<?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>70611</bug_id>
          
          <creation_ts>2011-10-21 08:25:54 -0700</creation_ts>
          <short_desc>Web Inspector: Advanced search is working very slowly and does not show searching progress.</short_desc>
          <delta_ts>2011-10-21 09:58:16 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>488398</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-21 08:25:54 -0700</bug_when>
    <thetext>Advanced search is working very slowly and does not show searching progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488411</commentid>
    <comment_count>1</comment_count>
      <attachid>111971</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-21 08:45:27 -0700</bug_when>
    <thetext>Created attachment 111971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488414</commentid>
    <comment_count>2</comment_count>
      <attachid>111972</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-21 08:50:40 -0700</bug_when>
    <thetext>Created attachment 111972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488444</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-10-21 09:58:16 -0700</bug_when>
    <thetext>Committed r98105: &lt;http://trac.webkit.org/changeset/98105&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111971</attachid>
            <date>2011-10-21 08:45:27 -0700</date>
            <delta_ts>2011-10-21 08:50:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70611-20111021194525.patch</filename>
            <type>text/plain</type>
            <size>41790</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgxMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZmFjMGMxMjc5NTFhMDdl
NDE2NGFlNWE1OTU0OTE4ZjhhYTIxMmFlLi5iZDNiM2Q4ZDk2YWI1ZDI0ZTg0OTY0MDA4MjQ0Njlj
ZDE4MzgxZDJjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTEtMTAtMjEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQWR2YW5jZWQgc2VhcmNoIGlzIHdvcmtpbmcgdmVyeSBzbG93bHkgYW5kIGRvZXMgbm90IHNo
b3cgc2VhcmNoaW5nIHByb2dyZXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzA2MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWFyY2hVdGlsczo6Z2V0UmVndWxhckV4cHJlc3Npb25NYXRjaGVzQnlMaW5lcyk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNoVXRpbHM6OmNvdW50UmVndWxhckV4cHJl
c3Npb25NYXRjaGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2Vh
cmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BZHZhbmNlZFNlYXJjaENv
bnRyb2xsZXIucHJvdG90eXBlLl9vblNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25TZWFyY2hGaW5pc2hlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlw
ZS5zdGFydFNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250
cm9sbGVyLnByb3RvdHlwZS5yZXNldFNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWR2
YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5zdG9wU2VhcmNoKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3
LnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNl
YXJjaFZpZXcucHJvdG90eXBlLmdldCBjb3VudGVyRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUuc2V0IHJlc3VsdHNQYW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5zZWFyY2hTdGFydGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2VhcmNoUmVzdWx0c01l
c3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlLl91cGRh
dGVTZWFyY2hQcm9ncmVzcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoVmlldy5wcm90
b3R5cGUucmVzZXRSZXN1bHRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnBy
b3RvdHlwZS5fcmVzZXRDb3VudGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoVmll
dy5wcm90b3R5cGUubm90aGluZ0ZvdW5kKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hW
aWV3LnByb3RvdHlwZS5hZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNl
YXJjaFZpZXcucHJvdG90eXBlLnNlYXJjaEZpbmlzaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZWFyY2hWaWV3LnByb3RvdHlwZS5fc2VhcmNoU3RvcEJ1dHRvblByZXNzZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNlYXJjaFJlc3VsdHNQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmls
ZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLmFkZFNlYXJjaFJlc3VsdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLl9m
aWxlVHJlZUVsZW1lbnRFeHBhbmRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZUJhc2Vk
U2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLl9hcHBlbmRTZWFyY2hNYXRjaGVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUuX2Fw
cGVuZFNob3dNb3JlTWF0Y2hlc0VsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVC
YXNlZFNlYXJjaFJlc3VsdHNQYW5lLnByb3RvdHlwZS5fc2hvd01vcmVNYXRjaGVzRWxlbWVudFNl
bGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFu
ZS5wcm90b3R5cGUuX2FkZEZpbGVUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLl9yZWdleE1hdGNoUmFuZ2VzKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBocy5wbmc6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1NlYXJjaFNjb3BlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzU2Vh
cmNoU2NvcGUucHJvdG90eXBlLnBlcmZvcm1TZWFyY2guZmlsdGVyT3V0Q29udGVudFNjcmlwdHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUucGVy
Zm9ybVNlYXJjaC5jb250aW51ZVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoLnNlYXJjaENhbGxiYWNrV3JhcHBl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5w
ZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUu
cHJvdG90eXBlLnN0b3BTZWFyY2gpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS5fcmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzczoKKyAgICAgICAgKCNkcmF3ZXItc3RhdHVzLWJhciAuc2VhcmNoLXN0YXR1
cy1iYXItaXRlbSk6CisgICAgICAgICgjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMt
YmFyLW1lc3NhZ2UpOgorICAgICAgICAoI2RyYXdlci1zdGF0dXMtYmFyIC5zZWFyY2gtc3RhdHVz
LWJhci1wcm9ncmVzcyk6CisgICAgICAgICgjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0
dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0pOgorICAgICAgICAoI2RyYXdlci1zdGF0dXMtYmFyIC5z
ZWFyY2gtc3RhdHVzLWJhci1zdG9wLWJ1dHRvbiAuZ2x5cGgpOgorICAgICAgICAoI2RyYXdlci1z
dGF0dXMtYmFyIC5zZWFyY2gtcmVzdWx0cy1zdGF0dXMtYmFyLW1lc3NhZ2UpOgorICAgICAgICAo
LnNlYXJjaC12aWV3IC5zZWFyY2gtcmVzdWx0cyk6CisgICAgICAgICgjc2VhcmNoLXJlc3VsdHMt
cGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0cy1vdXRsaW5lLWRpc2Nsb3N1cmUpOgorICAg
ICAgICAoI3NlYXJjaC1yZXN1bHRzLXBhbmUtZmlsZS1iYXNlZCAuc2VhcmNoLXJlc3VsdCk6Cisg
ICAgICAgICgjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0Omhv
dmVyKToKKyAgICAgICAgKCNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNob3ctbW9y
ZS1tYXRjaGVzKToKKyAgICAgICAgKCNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNo
b3ctbW9yZS1tYXRjaGVzOmhvdmVyKToKKyAgICAgICAgKCNzZWFyY2gtcmVzdWx0cy1wYW5lLWZp
bGUtYmFzZWQgLnNlYXJjaC1tYXRjaDpob3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC91dGlsaXRpZXMuanM6CisgICAgICAgICgpOgorCiAyMDExLTEwLTIxICBBbGVqYW5kcm8g
Ry4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjYWlyb10gRm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBHcmFwaGljc0NvbnRleHRTdGF0ZSB1c2VzIGNsYXNzIGluc3RlYWQgb2Yg
c3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKaW5kZXggMGFiZTE4Nzk4N2MxMDVmODAxMjYwNzI3MzdkMzgxM2U2NTA2YTBlYi4uZDEx
YTFkMjRhN2MzNmY4ZGIxNzM3ZDZhODkwZjJlMzUxMzc5NTQzZCAxMDA2NDQKR0lUIGJpbmFyeSBw
YXRjaApkZWx0YSA0MjQKemNtZG5lJis9KnQlWjl5d2A0dCMpODQ/KnY3P0skPjcqWkxFQyhwNXk3
V1FNdlhGd019WEpAJXRgUUpwJiR2eVd+CnpDO1EoUVFiZkBQUkliNkclOCZ4cW1ke1dHRylpO3d5
Y3Y/fWkzfllGaC1NaDM+ZDZLUl4qUDt1KXxOOGxGe0RoYwp6O31xOWRWOHtmcjZgLWMzMGVMd2Yy
UXVnfUNeNXRXI2NoRkRpMis1QUZjditORkhBTSZFQ0hIYTA5MFEqUyFhU0kKektiIXxORk9pe1dA
JmhzYiQ9VlptRUVPMCl3JlZlRUYqcTwlKENpOV5zMFJsWGlyVUZ+Q2s7VSsxVlpkRDBqZXRrClUh
Y3c0fUFVMXc7S3NJOTZWYT5uPTBOYGRAO1EjO3QKCmRlbHRhIDU0CnpjbWFEZ2c9SUBXJVo5eXdj
fW9+RjcmMDAxN302T083fTYlNiU5OXBFO3hwdGtscnJRXlBHSHBDWjJXSGBDamoqZwpCNWNMMjYK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCmlu
ZGV4IGEwZTBmNDBmYmU5YWQzOTYxYmYyMWMwMTkzZjViOWYxMTIwNGMzZTEuLjg5MjQyNWU3YzIz
NGI2MzQyZmY2ZmJlOTZmZWFlYjIyZWQ5ZmQ3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCkBAIC02Miw2ICs2Miw4IEBAIHN0YXRpYyBT
dHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UoY29uc3QgU3RyaW5nJiB0ZXh0KQogc3RhdGlj
IFZlY3RvcjxwYWlyPGludCwgU3RyaW5nPiA+IGdldFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5
TGluZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJlZ2V4LCBjb25zdCBTdHJpbmcmIHRleHQp
CiB7CiAgICAgVmVjdG9yPHBhaXI8aW50LCBTdHJpbmc+ID4gcmVzdWx0OworICAgIGlmICh0ZXh0
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIGludCBsaW5lTnVtYmVy
ID0gMDsKICAgICB1bnNpZ25lZCBzdGFydCA9IDA7CkBAIC0xMDUsNiArMTA3LDkgQEAgUmVndWxh
ckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVnZXgoY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBj
YXNlU2Vuc2l0aXZlLCBib28KIAogaW50IGNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKGNv
bnN0IFJlZ3VsYXJFeHByZXNzaW9uJiByZWdleCwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogewor
ICAgIGlmIChjb250ZW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpbnQg
cmVzdWx0ID0gMDsKICAgICBpbnQgcG9zaXRpb247CiAgICAgdW5zaWduZWQgc3RhcnQgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNl
YXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fk
dmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwppbmRleCBjY2FhNGI3MzM4NGY2NTMwZTU1NTZlY2Yz
ZmExYjdiOWM3MDMxMjRhLi45NTkxYmRhNGIyZWZhYjQ3YmMwYzYyZmI1NDEyODhkNTMxMGRkODA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2Vk
U2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwpAQCAtODMsNiArODMsMTAgQEAgV2ViSW5z
cGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
IChzZWFyY2hJZCAhPT0gdGhpcy5fc2VhcmNoSWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAg
ICAgICAgdGhpcy5fc2VhcmNoVmlldy5hZGRTZWFyY2hSZXN1bHQoc2VhcmNoUmVzdWx0KTsKKyAg
ICAgICAgaWYgKCFzZWFyY2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5sZW5ndGgpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIAogICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaFJlc3VsdHNQYW5l
KSAKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNQYW5lID0gdGhpcy5fY3VycmVudFNl
YXJjaFNjb3BlLmNyZWF0ZVNlYXJjaFJlc3VsdHNQYW5lKHRoaXMuX3NlYXJjaENvbmZpZyk7ICAg
ICAgICAKICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5yZXN1bHRzUGFuZSA9IHRoaXMuX3NlYXJj
aFJlc3VsdHNQYW5lOyAKQEAgLTkxLDggKzk1LDkgQEAgV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2Vh
cmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgCiAgICAgLyoqCiAgICAgICogQHBhcmFt
IHtudW1iZXJ9IHNlYXJjaElkCisgICAgICogQHBhcmFtIHtib29sZWFufSBmaW5pc2hlZAogICAg
ICAqLwotICAgIF9vblNlYXJjaEZpbmlzaGVkOiBmdW5jdGlvbihzZWFyY2hJZCkKKyAgICBfb25T
ZWFyY2hGaW5pc2hlZDogZnVuY3Rpb24oc2VhcmNoSWQsIGZpbmlzaGVkKQogICAgIHsKICAgICAg
ICAgaWYgKHNlYXJjaElkICE9PSB0aGlzLl9zZWFyY2hJZCkKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTEwMCw3ICsxMDUsNyBAQCBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hSZXN1bHRzUGFuZSkKICAg
ICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcubm90aGluZ0ZvdW5kKCk7CiAgICAgICAgIAotICAg
ICAgICB0aGlzLl9zZWFyY2hWaWV3LnNlYXJjaEZpbmlzaGVkKCk7CisgICAgICAgIHRoaXMuX3Nl
YXJjaFZpZXcuc2VhcmNoRmluaXNoZWQoZmluaXNoZWQpOwogICAgIH0sCiAgICAgCiAgICAgLyoq
CkBAIC0xMDgsMjAgKzExMywyOSBAQCBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9s
bGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzdGFydFNlYXJjaDogZnVuY3Rpb24oc2Vh
cmNoQ29uZmlnKQogICAgIHsKLSAgICAgICAgdGhpcy5zdG9wU2VhcmNoKCk7CisgICAgICAgIHRo
aXMucmVzZXRTZWFyY2goKTsKKyAgICAgICAgKyt0aGlzLl9zZWFyY2hJZDsKIAogICAgICAgICB0
aGlzLl9zZWFyY2hDb25maWcgPSBzZWFyY2hDb25maWc7CiAgICAgICAgIC8vIEZJWE1FOiB0aGlz
Ll9jdXJyZW50U2VhcmNoU2NvcGUgc2hvdWxkIGJlIGluaXRpYWxpemVkIGJhc2VkIG9uIHNlYXJj
aENvbmZpZwogICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoU2NvcGUgPSB0aGlzLl9zZWFyY2hT
Y29wZTsKIAotICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LnNlYXJjaFN0YXJ0ZWQoKTsKLSAgICAg
ICAgdGhpcy5fY3VycmVudFNlYXJjaFNjb3BlLnBlcmZvcm1TZWFyY2goc2VhcmNoQ29uZmlnLCB0
aGlzLl9vblNlYXJjaFJlc3VsdC5iaW5kKHRoaXMsIHRoaXMuX3NlYXJjaElkKSwgdGhpcy5fb25T
ZWFyY2hGaW5pc2hlZC5iaW5kKHRoaXMsIHRoaXMuX3NlYXJjaElkKSk7CisgICAgICAgIHZhciB0
b3RhbFNlYXJjaFJlc3VsdHNDb3VudCA9IHRoaXMuX2N1cnJlbnRTZWFyY2hTY29wZS5wZXJmb3Jt
U2VhcmNoKHNlYXJjaENvbmZpZywgdGhpcy5fb25TZWFyY2hSZXN1bHQuYmluZCh0aGlzLCB0aGlz
Ll9zZWFyY2hJZCksIHRoaXMuX29uU2VhcmNoRmluaXNoZWQuYmluZCh0aGlzLCB0aGlzLl9zZWFy
Y2hJZCkpOworICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LnNlYXJjaFN0YXJ0ZWQodG90YWxTZWFy
Y2hSZXN1bHRzQ291bnQpOworICAgIH0sCisgICAgCisgICAgcmVzZXRTZWFyY2g6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuc3RvcFNlYXJjaCgpOworCisgICAgICAgIGlmICh0aGlz
Ll9zZWFyY2hSZXN1bHRzUGFuZSkgeworICAgICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5yZXNl
dFJlc3VsdHMoKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zZWFyY2hSZXN1bHRzUGFuZTsK
KyAgICAgICAgfQogICAgIH0sCiAgICAgCiAgICAgc3RvcFNlYXJjaDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgKyt0aGlzLl9zZWFyY2hJZDsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3NlYXJj
aFJlc3VsdHNQYW5lOwogICAgICAgICBpZiAodGhpcy5fY3VycmVudFNlYXJjaFNjb3BlKQogICAg
ICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFNjb3BlLnN0b3BTZWFyY2goKTsKICAgICB9CkBA
IC0xNjIsNyArMTc2LDYgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcgPSBmdW5jdGlvbihjb250
cm9sbGVyKQogICAgIHRoaXMuX2lnbm9yZUNhc2VDaGVja2JveC5hZGRTdHlsZUNsYXNzKCJzZWFy
Y2gtY29uZmlnLWNoZWNrYm94Iik7CiAgICAgdGhpcy5faWdub3JlQ2FzZUxhYmVsLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiSWdub3Jl
IGNhc2UiKSkpOwogICAgIAotCiAgICAgdGhpcy5fcmVnZXhMYWJlbCA9IHRoaXMuX3NlYXJjaFBh
bmVsRWxlbWVudC5jcmVhdGVDaGlsZCgibGFiZWwiKTsKICAgICB0aGlzLl9yZWdleExhYmVsLmFk
ZFN0eWxlQ2xhc3MoInNlYXJjaC1jb25maWctbGFiZWwiKTsKICAgICB0aGlzLl9yZWdleENoZWNr
Ym94ID0gdGhpcy5fcmVnZXhMYWJlbC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKQEAgLTE3MCw2ICsx
ODMsMjIgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcgPSBmdW5jdGlvbihjb250cm9sbGVyKQog
ICAgIHRoaXMuX3JlZ2V4Q2hlY2tib3guYWRkU3R5bGVDbGFzcygic2VhcmNoLWNvbmZpZy1jaGVj
a2JveCIpOwogICAgIHRoaXMuX3JlZ2V4TGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWd1bGFyIGV4cHJlc3Npb24iKSkpOwog
ICAgIAorICAgIHRoaXMuX3NlYXJjaFN0YXR1c0JhckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9zZWFyY2hTdGF0dXNCYXJFbGVtZW50LmNsYXNzTmFt
ZSA9ICJzZWFyY2gtc3RhdHVzLWJhci1pdGVtIjsKKyAgICB0aGlzLl9zZWFyY2hNZXNzYWdlRWxl
bWVudCA9IHRoaXMuX3NlYXJjaFN0YXR1c0JhckVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOwor
ICAgIHRoaXMuX3NlYXJjaE1lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICJzZWFyY2gtc3RhdHVz
LWJhci1tZXNzYWdlIjsKKyAgICB0aGlzLl9zZWFyY2hQcm9ncmVzc0VsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJwcm9ncmVzcyIpOworICAgIHRoaXMuX3NlYXJjaFByb2dyZXNzRWxl
bWVudC5jbGFzc05hbWUgPSAic2VhcmNoLXN0YXR1cy1iYXItcHJvZ3Jlc3MiOworICAgIAorICAg
IHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgdGhpcy5fc2VhcmNoU3RvcEJ1dHRvbkl0ZW0uY2xhc3NOYW1lID0gInNlYXJjaC1z
dGF0dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0iOworICAgIHRoaXMuX3NlYXJjaFN0b3BTdGF0dXNC
YXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlN0b3Agc2VhcmNoIiksICJzZWFyY2gtc3RhdHVzLWJhci1zdG9wLWJ1dHRvbiIp
OworICAgIHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVtLmFwcGVuZENoaWxkKHRoaXMuX3NlYXJj
aFN0b3BTdGF0dXNCYXJCdXR0b24uZWxlbWVudCk7CisgICAgdGhpcy5fc2VhcmNoU3RvcFN0YXR1
c0JhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3NlYXJjaFN0b3BCdXR0
b25QcmVzc2VkLCB0aGlzKTsKKyAgICAKKyAgICB0aGlzLl9zZWFyY2hSZXN1bHRzTWVzc2FnZUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgdGhpcy5fc2VhcmNo
UmVzdWx0c01lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICJzZWFyY2gtcmVzdWx0cy1zdGF0dXMt
YmFyLW1lc3NhZ2UiOworCiAgICAgdGhpcy5fbG9hZCgpOwogfQogCkBAIC0xNzgsNiArMjA3LDIy
IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3Lm1heFF1ZXJpZXNDb3VudCA9IDIwOwogCiBXZWJJ
bnNwZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCisgICAgICogQHR5cGUg
e0FycmF5LjxFbGVtZW50Pn0KKyAgICAgKi8KKyAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFt0aGlzLl9zZWFyY2hTdGF0dXNCYXJFbGVtZW50XTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHR5cGUge0VsZW1lbnR9CisgICAgICovCisgICAgZ2V0IGNv
dW50ZXJFbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hSZXN1bHRz
TWVzc2FnZUVsZW1lbnQ7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuU2VhcmNoQ29uZmlnfQogICAgICAqLwogICAgIGdldCBzZWFyY2hDb25maWcoKQpAQCAt
MTk0LDI5ICsyMzksODcgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlID0gewog
ICAgICAqLwogICAgIHNldCByZXN1bHRzUGFuZShyZXN1bHRzUGFuZSkKICAgICB7Ci0gICAgICAg
IHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHRo
aXMucmVzZXRSZXN1bHRzKCk7CiAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50LmFw
cGVuZENoaWxkKHJlc3VsdHNQYW5lLmVsZW1lbnQpOwogICAgIH0sCiAgICAgCi0gICAgc2VhcmNo
U3RhcnRlZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b3Rh
bFNlYXJjaFJlc3VsdHNDb3VudAorICAgICAqLworICAgIHNlYXJjaFN0YXJ0ZWQ6IGZ1bmN0aW9u
KHRvdGFsU2VhcmNoUmVzdWx0c0NvdW50KQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMg
bmVlZHMgYmV0dGVyIFVJLgotICAgICAgICB2YXIgc2VhcmNoaW5nVmlldyA9IG5ldyBXZWJJbnNw
ZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VhcmNoaW5nLi4uIikpCi0g
ICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAg
ICAgIHRoaXMucmVzZXRSZXN1bHRzKCk7CisgICAgICAgIHRoaXMuX3Jlc2V0Q291bnRlcnMoKTsK
KyAgICAgICAgCisgICAgICAgIHRoaXMuX3RvdGFsU2VhcmNoUmVzdWx0c0NvdW50ID0gdG90YWxT
ZWFyY2hSZXN1bHRzQ291bnQ7CisKKyAgICAgICAgdGhpcy5fc2VhcmNoTWVzc2FnZUVsZW1lbnQu
dGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaGluZy4uLiIpOworICAg
ICAgICB0aGlzLl9zZWFyY2hTdGF0dXNCYXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NlYXJj
aFByb2dyZXNzRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3NlYXJjaFN0YXR1c0JhckVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fc2VhcmNoU3RvcEJ1dHRvbkl0ZW0pOworICAgICAgICB0aGlzLl91
cGRhdGVTZWFyY2hQcm9ncmVzcygpOworICAgICAgICAKKyAgICAgICAgdGhpcy5fdXBkYXRlU2Vh
cmNoUmVzdWx0c01lc3NhZ2UoKTsKKyAgICAgICAgCisgICAgICAgIHZhciBzZWFyY2hpbmdWaWV3
ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFy
Y2hpbmcuLi4iKSk7CiAgICAgICAgIHNlYXJjaGluZ1ZpZXcuc2hvdyh0aGlzLl9zZWFyY2hSZXN1
bHRzRWxlbWVudCk7CiAgICAgfSwKIAotICAgIG5vdGhpbmdGb3VuZDogZnVuY3Rpb24oKQorICAg
IF91cGRhdGVTZWFyY2hSZXN1bHRzTWVzc2FnZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX3NlYXJjaE1hdGNoZXNDb3VudCAmJiB0aGlzLl9zZWFyY2hSZXN1bHRzQ291bnQp
CisgICAgICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRzTWVzc2FnZUVsZW1lbnQudGV4dENvbnRl
bnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZvdW5kICVkIG1hdGNoZXMgaW4gJWQgZmlsZXMu
IiwgdGhpcy5fc2VhcmNoTWF0Y2hlc0NvdW50LCB0aGlzLl9ub25FbXB0eVNlYXJjaFJlc3VsdHND
b3VudCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNNZXNz
YWdlRWxlbWVudC50ZXh0Q29udGVudCA9ICIiOworICAgIH0sCisKKyAgICBfdXBkYXRlU2VhcmNo
UHJvZ3Jlc3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NlYXJjaFByb2dyZXNz
RWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIHRoaXMuX3RvdGFsU2VhcmNoUmVzdWx0c0NvdW50
KTsKKyAgICAgICAgdGhpcy5fc2VhcmNoUHJvZ3Jlc3NFbGVtZW50LnNldEF0dHJpYnV0ZSgidmFs
dWUiLCB0aGlzLl9zZWFyY2hSZXN1bHRzQ291bnQpOworICAgIH0sCisKKyAgICByZXNldFJlc3Vs
dHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIGJldHRl
ciBVSS4KLSAgICAgICAgdmFyIG5vdEZvdW5kVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlW
aWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm90aGluZyBmb3VuZCIpKQogICAgICAgICB0aGlz
Ll9zZWFyY2hSZXN1bHRzRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgIH0sCisKKyAgICBf
cmVzZXRDb3VudGVyczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2VhcmNoTWF0
Y2hlc0NvdW50ID0gMDsKKyAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0c0NvdW50ID0gMDsKKyAg
ICAgICAgdGhpcy5fbm9uRW1wdHlTZWFyY2hSZXN1bHRzQ291bnQgPSAwOworICAgIH0sCisKKyAg
ICBub3RoaW5nRm91bmQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVzZXRSZXN1
bHRzKCk7CisKKyAgICAgICAgdmFyIG5vdEZvdW5kVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1w
dHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gbWF0Y2hlcyBmb3VuZC4iKSk7CiAgICAg
ICAgIG5vdEZvdW5kVmlldy5zaG93KHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fc2VhcmNoUmVzdWx0c01lc3NhZ2VFbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJObyBtYXRjaGVzIGZvdW5kLiIpOwogICAgIH0sCiAKLSAgICBzZWFy
Y2hGaW5pc2hlZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBz
ZWFyY2hSZXN1bHQKKyAgICAgKi8KKyAgICBhZGRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKHNlYXJj
aFJlc3VsdCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBhZGQgbWVzc2FnZSB0byBkcmF3ZXIg
c3RhdHVzIGJhcgorICAgICAgICB0aGlzLl9zZWFyY2hNYXRjaGVzQ291bnQgKz0gc2VhcmNoUmVz
dWx0LnNlYXJjaE1hdGNoZXMubGVuZ3RoOworICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRzQ291
bnQrKzsKKyAgICAgICAgaWYgKHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzLmxlbmd0aCkKKyAg
ICAgICAgICAgIHRoaXMuX25vbkVtcHR5U2VhcmNoUmVzdWx0c0NvdW50Kys7CisgICAgICAgIHRo
aXMuX3VwZGF0ZVNlYXJjaFJlc3VsdHNNZXNzYWdlKCk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNl
YXJjaFByb2dyZXNzKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gZmluaXNoZWQKKyAgICAgKi8KKyAgICBzZWFyY2hGaW5pc2hlZDogZnVuY3Rpb24oZmluaXNo
ZWQpCisgICAgeworICAgICAgICB0aGlzLl9zZWFyY2hNZXNzYWdlRWxlbWVudC50ZXh0Q29udGVu
dCA9IGZpbmlzaGVkID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggZmluaXNoZWQuIikg
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBpbnRlcnJ1cHRlZC4iKTsKKyAgICAgICAg
dGhpcy5fc2VhcmNoU3RhdHVzQmFyRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9zZWFyY2hQcm9n
cmVzc0VsZW1lbnQpOworICAgICAgICB0aGlzLl9zZWFyY2hTdGF0dXNCYXJFbGVtZW50LnJlbW92
ZUNoaWxkKHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVtKTsKICAgICB9LAogCiAgICAgZm9jdXM6
IGZ1bmN0aW9uKCkKQEAgLTI1OCw2ICszNjEsMTIgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWdleENoZWNrYm94LmNoZWNrZWQgPSBzZWFy
Y2hDb25maWcuaXNSZWdleDsKICAgICB9LAogICAgIAorICAgIF9zZWFyY2hTdG9wQnV0dG9uUHJl
c3NlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fY29udHJvbGxlci5zdG9wU2Vh
cmNoKCk7CisgICAgICAgIHRoaXMuZm9jdXMoKTsKKyAgICB9LAorICAgIAogICAgIF9vbkFjdGlv
bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fc2F2ZSgpOwpAQCAtMjkwLDYgKzM5
OSw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTY29wZSA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rv
ci5TZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU2VhcmNoQ29uZmlnfSBzZWFyY2hDb25maWcKKyAgICAgKiBAcGFyYW0ge2Z1bmN0
aW9uKE9iamVjdCl9IHNlYXJjaFJlc3VsdENhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlv
bihib29sZWFuKX0gc2VhcmNoRmluaXNoZWRDYWxsYmFjawogICAgICAqLwogICAgIHBlcmZvcm1T
ZWFyY2g6IGZ1bmN0aW9uKHNlYXJjaENvbmZpZywgc2VhcmNoUmVzdWx0Q2FsbGJhY2ssIHNlYXJj
aEZpbmlzaGVkQ2FsbGJhY2spIHsgfSwKIApAQCAtMzQyLDEwICs0NTMsMTYgQEAgV2ViSW5zcGVj
dG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lID0gZnVuY3Rpb24oc2VhcmNoQ29uZmlnKQog
ICAgIAogICAgIHRoaXMuX3RyZWVPdXRsaW5lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoIm9sIik7CiAgICAgdGhpcy5fdHJlZU91dGxpbmVFbGVtZW50LmNsYXNzTmFtZSA9ICJvdXRs
aW5lLWRpc2Nsb3N1cmUiOworICAgIHRoaXMuX3RyZWVPdXRsaW5lRWxlbWVudC5hZGRTdHlsZUNs
YXNzKCJzZWFyY2gtcmVzdWx0cy1vdXRsaW5lLWRpc2Nsb3N1cmUiKTsKICAgICB0aGlzLmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fdHJlZU91dGxpbmVFbGVtZW50KTsKICAgICB0aGlzLl90cmVl
T3V0bGluZSA9IG5ldyBUcmVlT3V0bGluZSh0aGlzLl90cmVlT3V0bGluZUVsZW1lbnQpOworICAg
IAorICAgIHRoaXMuX21hdGNoZXNFeHBhbmRlZENvdW50ID0gMDsKIH0KIAorV2ViSW5zcGVjdG9y
LkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLm1hdGNoZXNFeHBhbmRlZEJ5RGVmYXVsdENvdW50
ID0gMjA7CitXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUuZmlsZU1hdGNo
ZXNTaG93bkF0T25jZSA9IDIwOworCiBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0
c1BhbmUucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBmaWxl
CkBAIC0zNTQsMTMgKzQ3MSwxMyBAQCBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0
c1BhbmUucHJvdG90eXBlID0gewogICAgICAqIEByZXR1cm4ge0VsZW1lbnR9CiAgICAgICovCiAg
ICAgY3JlYXRlQW5jaG9yOiBmdW5jdGlvbihmaWxlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIp
IHsgfSwKLSAgICAKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBmaWxlCiAgICAg
ICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwogICAgIGZpbGVOYW1lOiBmdW5jdGlvbihmaWxl
KSB7IH0sCi0gICAgCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge09iamVjdH0gc2VhcmNoUmVz
dWx0CiAgICAgICovCkBAIC0zNzAsMTIgKzQ4Nyw0MyBAQCBXZWJJbnNwZWN0b3IuRmlsZUJhc2Vk
U2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZmlsZSA9IHNlYXJj
aFJlc3VsdC5maWxlOwogICAgICAgICB2YXIgZmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lKGZpbGUp
OwogICAgICAgICB2YXIgc2VhcmNoTWF0Y2hlcyA9IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVz
OwotICAgICAgICAgICAgCi0gICAgICAgIC8vIEV4cGFuZCBmaXJzdCBmaWxlIHdpdGggbWF0Y2hl
cyBvbmx5LgotICAgICAgICB2YXIgZmlsZVRyZWVFbGVtZW50ID0gdGhpcy5fYWRkRmlsZVRyZWVF
bGVtZW50KGZpbGVOYW1lLCBzZWFyY2hNYXRjaGVzLmxlbmd0aCwgdGhpcy5fc2VhcmNoUmVzdWx0
cy5sZW5ndGggPT09IDEpOworCisgICAgICAgIHZhciBmaWxlVHJlZUVsZW1lbnQgPSB0aGlzLl9h
ZGRGaWxlVHJlZUVsZW1lbnQoZmlsZU5hbWUsIHNlYXJjaE1hdGNoZXMubGVuZ3RoLCB0aGlzLl9z
ZWFyY2hSZXN1bHRzLmxlbmd0aCAtIDEpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge09iamVjdH0gc2VhcmNoUmVzdWx0CisgICAgICogQHBhcmFtIHtUcmVlRWxlbWVudH0gZmls
ZVRyZWVFbGVtZW50CisgICAgICovCisgICAgX2ZpbGVUcmVlRWxlbWVudEV4cGFuZGVkOiBmdW5j
dGlvbihzZWFyY2hSZXN1bHQsIGZpbGVUcmVlRWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmIChm
aWxlVHJlZUVsZW1lbnQuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAKKyAgICAgICAgdmFyIHRvSW5kZXggPSBNYXRoLm1pbihzZWFyY2hSZXN1bHQuc2VhcmNoTWF0
Y2hlcy5sZW5ndGgsIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5maWxl
TWF0Y2hlc1Nob3duQXRPbmNlKTsKKyAgICAgICAgaWYgKHRvSW5kZXggPCBzZWFyY2hSZXN1bHQu
c2VhcmNoTWF0Y2hlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMuX2FwcGVuZFNlYXJjaE1h
dGNoZXMoZmlsZVRyZWVFbGVtZW50LCBzZWFyY2hSZXN1bHQsIDAsIHRvSW5kZXggLSAxKTsKKyAg
ICAgICAgICAgIHRoaXMuX2FwcGVuZFNob3dNb3JlTWF0Y2hlc0VsZW1lbnQoZmlsZVRyZWVFbGVt
ZW50LCBzZWFyY2hSZXN1bHQsIHRvSW5kZXggLSAxKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0aGlzLl9hcHBlbmRTZWFyY2hNYXRjaGVzKGZpbGVUcmVlRWxlbWVudCwgc2VhcmNoUmVz
dWx0LCAwLCB0b0luZGV4KTsKKyAgICAgICAgCisgICAgICAgIGZpbGVUcmVlRWxlbWVudC5faW5p
dGlhbGl6ZWQgPSB0cnVlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1RyZWVF
bGVtZW50fSBmaWxlVHJlZUVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge09iamVjdH0gc2VhcmNoUmVz
dWx0CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleAorICAgICAqIEBwYXJhbSB7bnVt
YmVyfSB0b0luZGV4CisgICAgICovCisgICAgX2FwcGVuZFNlYXJjaE1hdGNoZXM6IGZ1bmN0aW9u
KGZpbGVUcmVlRWxlbWVudCwgc2VhcmNoUmVzdWx0LCBmcm9tSW5kZXgsIHRvSW5kZXgpCisgICAg
eworICAgICAgICB2YXIgZmlsZSA9IHNlYXJjaFJlc3VsdC5maWxlOworICAgICAgICB2YXIgZmls
ZU5hbWUgPSB0aGlzLmZpbGVOYW1lKGZpbGUpOworICAgICAgICB2YXIgc2VhcmNoTWF0Y2hlcyA9
IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzOwogICAgICAgICAKICAgICAgICAgdmFyIHJlZ2V4
ID0gY3JlYXRlU2VhcmNoUmVnZXgodGhpcy5fc2VhcmNoQ29uZmlnLnF1ZXJ5LCAhdGhpcy5fc2Vh
cmNoQ29uZmlnLmlnbm9yZUNhc2UsIHRoaXMuX3NlYXJjaENvbmZpZy5pc1JlZ2V4KTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWFyY2hNYXRjaGVzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgIGZvciAodmFyIGkgPSBmcm9tSW5kZXg7IGkgPCB0b0luZGV4OyArK2kpIHsKICAgICAgICAg
ICAgIHZhciBsaW5lTnVtYmVyID0gc2VhcmNoTWF0Y2hlc1tpXS5saW5lTnVtYmVyOwogICAgICAg
ICAgICAgdmFyIGxpbmVDb250ZW50ID0gc2VhcmNoTWF0Y2hlc1tpXS5saW5lQ29udGVudDsKICAg
ICAgICAgICAgIHZhciBtYXRjaFJhbmdlcyA9IHRoaXMuX3JlZ2V4TWF0Y2hSYW5nZXMobGluZUNv
bnRlbnQsIHJlZ2V4KTsKQEAgLTM5OCwxNiArNTQ2LDQyIEBAIFdlYkluc3BlY3Rvci5GaWxlQmFz
ZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzZWFyY2hNYXRj
aEVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGFuY2hvcik7CiAgICAgICAgIH0K
ICAgICB9LAotICAgICAgICAKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7VHJlZUVsZW1lbnR9
IGZpbGVUcmVlRWxlbWVudAorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZWFyY2hSZXN1bHQKKyAg
ICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRNYXRjaEluZGV4CisgICAgICovCisgICAgX2FwcGVu
ZFNob3dNb3JlTWF0Y2hlc0VsZW1lbnQ6IGZ1bmN0aW9uKGZpbGVUcmVlRWxlbWVudCwgc2VhcmNo
UmVzdWx0LCBzdGFydE1hdGNoSW5kZXgpCisgICAgeworICAgICAgICB2YXIgbWF0Y2hlc0xlZnRD
b3VudCA9IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzLmxlbmd0aCAtIHN0YXJ0TWF0Y2hJbmRl
eDsKKyAgICAgICAgdmFyIHNob3dNb3JlTWF0Y2hlc1RleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNob3cgYWxsIG1hdGNoZXMgKCVkIG1vcmUpLiIsIG1hdGNoZXNMZWZ0Q291bnQpOworICAg
ICAgICB2YXIgc2hvd01vcmVNYXRjaGVzRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChzaG93TW9y
ZU1hdGNoZXNUZXh0LCBudWxsLCBmYWxzZSk7CisgICAgICAgIGZpbGVUcmVlRWxlbWVudC5hcHBl
bmRDaGlsZChzaG93TW9yZU1hdGNoZXNFbGVtZW50KTsKKyAgICAgICAgc2hvd01vcmVNYXRjaGVz
RWxlbWVudC5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2hvdy1tb3JlLW1hdGNoZXMi
KTsKKyAgICAgICAgc2hvd01vcmVNYXRjaGVzRWxlbWVudC5vbnNlbGVjdCA9IHRoaXMuX3Nob3dN
b3JlTWF0Y2hlc0VsZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMsIHNlYXJjaFJlc3VsdCwgc3RhcnRN
YXRjaEluZGV4KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9IHNl
YXJjaFJlc3VsdAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydE1hdGNoSW5kZXgKKyAgICAg
KiBAcGFyYW0ge1RyZWVFbGVtZW50fSBzaG93TW9yZU1hdGNoZXNFbGVtZW50CisgICAgICovCisg
ICAgX3Nob3dNb3JlTWF0Y2hlc0VsZW1lbnRTZWxlY3RlZDogZnVuY3Rpb24oc2VhcmNoUmVzdWx0
LCBzdGFydE1hdGNoSW5kZXgsIHNob3dNb3JlTWF0Y2hlc0VsZW1lbnQpCisgICAgeworICAgICAg
ICB2YXIgZmlsZVRyZWVFbGVtZW50ID0gc2hvd01vcmVNYXRjaGVzRWxlbWVudC5wYXJlbnQ7Cisg
ICAgICAgIGZpbGVUcmVlRWxlbWVudC5yZW1vdmVDaGlsZChzaG93TW9yZU1hdGNoZXNFbGVtZW50
KTsKKyAgICAgICAgdGhpcy5fYXBwZW5kU2VhcmNoTWF0Y2hlcyhmaWxlVHJlZUVsZW1lbnQsIHNl
YXJjaFJlc3VsdCwgc3RhcnRNYXRjaEluZGV4LCBzZWFyY2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5s
ZW5ndGgpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5h
bWUKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc2VhcmNoTWF0Y2hlc0NvdW50Ci0gICAgICogQHBh
cmFtIHtib29sZWFufSBleHBhbmRlZAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWFyY2hSZXN1
bHRJbmRleAogICAgICAqLwotICAgIF9hZGRGaWxlVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKGZpbGVO
YW1lLCBzZWFyY2hNYXRjaGVzQ291bnQsIGV4cGFuZGVkKQorICAgIF9hZGRGaWxlVHJlZUVsZW1l
bnQ6IGZ1bmN0aW9uKGZpbGVOYW1lLCBzZWFyY2hNYXRjaGVzQ291bnQsIHNlYXJjaFJlc3VsdElu
ZGV4KQogICAgIHsKICAgICAgICAgdmFyIGZpbGVUcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVu
dCgiIiwgbnVsbCwgdHJ1ZSk7Ci0gICAgICAgIGZpbGVUcmVlRWxlbWVudC5leHBhbmRlZCA9IGV4
cGFuZGVkOwogICAgICAgICBmaWxlVHJlZUVsZW1lbnQudG9nZ2xlT25DbGljayA9IHRydWU7CiAg
ICAgICAgIGZpbGVUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAKQEAgLTQyOCw2ICs2
MDIsMTQgQEAgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgCiAgICAgICAgIGZpbGVUcmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQu
YXBwZW5kQ2hpbGQobWF0Y2hlc0NvdW50U3Bhbik7CiAgICAgICAgIAorICAgICAgICB2YXIgc2Vh
cmNoUmVzdWx0ID0gdGhpcy5fc2VhcmNoUmVzdWx0c1tzZWFyY2hSZXN1bHRJbmRleF07CisgICAg
ICAgIGZpbGVUcmVlRWxlbWVudC5vbmV4cGFuZCA9IHRoaXMuX2ZpbGVUcmVlRWxlbWVudEV4cGFu
ZGVkLmJpbmQodGhpcywgc2VhcmNoUmVzdWx0KTsKKworICAgICAgICAvLyBFeHBhbmQgdW50aWwg
YXQgbGVhc3QgY2VydGFpbiBhbW91bnQgb2YgbWF0Y2hlcyBpcyBleHBhbmRlZC4KKyAgICAgICAg
aWYgKHRoaXMuX21hdGNoZXNFeHBhbmRlZENvdW50IDwgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNl
YXJjaFJlc3VsdHNQYW5lLm1hdGNoZXNFeHBhbmRlZEJ5RGVmYXVsdENvdW50KQorICAgICAgICAg
ICAgZmlsZVRyZWVFbGVtZW50LmV4cGFuZCgpOworICAgICAgICB0aGlzLl9tYXRjaGVzRXhwYW5k
ZWRDb3VudCArPSBzZWFyY2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5sZW5ndGg7CisKICAgICAgICAg
cmV0dXJuIGZpbGVUcmVlRWxlbWVudDsgCiAgICAgfSwKIApAQCAtNDQyLDcgKzYyNCw3IEBAIFdl
Ykluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBtYXRjaDsKICAgICAgICAgdmFyIG9mZnNldCA9IDA7CiAgICAgICAgIHZhciBtYXRj
aFJhbmdlcyA9IFtdOwotICAgICAgICB3aGlsZSAobWF0Y2ggPSByZWdleC5leGVjKGxpbmVDb250
ZW50KSkKKyAgICAgICAgd2hpbGUgKChyZWdleC5sYXN0SW5kZXggPCBsaW5lQ29udGVudC5sZW5n
dGgpICYmIChtYXRjaCA9IHJlZ2V4LmV4ZWMobGluZUNvbnRlbnQpKSkKICAgICAgICAgICAgIG1h
dGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNoWzBdLmxl
bmd0aCB9KTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiBtYXRjaFJhbmdlczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5kZXggYzgzNjdjZmY2ODRh
MWU5YWJmM2I5OWUyNTA4NGRiNDRiNjc0ZTM0NC4uMjIxYWRkMGVkODNjM2Y5YjE4ZjFkODA3ODEw
ZmUyZjBiN2IyMjVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
cmF3ZXIuanMKQEAgLTc3LDggKzc3LDEyIEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHZhciBkcmF3ZXJXYXNWaXNpYmxlID0gdGhpcy52aXNpYmxlOwogCi0g
ICAgICAgIGlmICh0aGlzLl92aWV3KQorICAgICAgICBpZiAodGhpcy5fdmlldykgeworICAgICAg
ICAgICAgdGhpcy5fdmlldy5oaWRlKCk7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJDb250ZW50
c0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmICh0aGlzLl92aWV3LmNv
dW50ZXJFbGVtZW50KQorICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXcuY291bnRlckVsZW1lbnQu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl92aWV3LmNvdW50ZXJFbGVtZW50KTsKKyAgICAg
ICAgfQogCiAgICAgICAgIHRoaXMuX3ZpZXcgPSB2aWV3OwogCkBAIC04Nyw2ICs5MSw5IEBAIFdl
Ykluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0YXR1c0Jhckl0ZW1zLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5fdmlld1N0
YXR1c0Jhci5hcHBlbmRDaGlsZChzdGF0dXNCYXJJdGVtc1tpXSk7CiAKKyAgICAgICAgaWYgKHRo
aXMuX3ZpZXcuY291bnRlckVsZW1lbnQpCisgICAgICAgICAgICB0aGlzLl9jb3VudGVycy5pbnNl
cnRCZWZvcmUodGhpcy5fdmlldy5jb3VudGVyRWxlbWVudCwgdGhpcy5fY291bnRlcnMuZmlyc3RD
aGlsZCk7CisKICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRTdHlsZUNsYXNzKCJkcmF3ZXItdmlz
aWJsZSIpOwogICAgICAgICB0aGlzLl92aWV3LnNob3codGhpcy5fZHJhd2VyQ29udGVudHNFbGVt
ZW50KTsKIApAQCAtMTEyLDcgKzExOSw3IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdGhpcy5fY3VycmVudFBhbmVsQ291bnRlcnMucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZCh0aGlzLl9jdXJyZW50UGFuZWxDb3VudGVycyk7CiAgICAgICAgICAgICB0aGlz
Ll9tYWluU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzKTsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBhbmltYXRpb25GaW5pc2hl
ZCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKS5z
dGF0dXNCYXJSZXNpemVkKCk7CkBAIC0xNjcsNiArMTc0LDkgQEAgV2ViSW5zcGVjdG9yLkRyYXdl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLmluc2VydEJl
Zm9yZShhbmNob3JlZEl0ZW1zLCB0aGlzLl9tYWluU3RhdHVzQmFyLmZpcnN0Q2hpbGQpOwogICAg
ICAgICAgICAgdGhpcy5fbWFpblN0YXR1c0Jhci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgicGFkZGlu
Zy1sZWZ0Iik7CiAKKyAgICAgICAgICAgIGlmICh0aGlzLl92aWV3LmNvdW50ZXJFbGVtZW50KQor
ICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXcuY291bnRlckVsZW1lbnQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZCh0aGlzLl92aWV3LmNvdW50ZXJFbGVtZW50KTsKKwogICAgICAgICAgICAgaWYgKHRo
aXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzKSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVu
dFBhbmVsQ291bnRlcnMuc2V0QXR0cmlidXRlKCJzdHlsZSIsIG51bGwpOwogICAgICAgICAgICAg
ICAgIHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhp
cy5fY3VycmVudFBhbmVsQ291bnRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBo
cy5wbmcKaW5kZXggYzY4ZTkzNTc2NTQ5M2QxYjU0MDRlNzE5NWVmNTJkZDBkMTEzZTQ2MS4uMzYz
NGY0OTVjODFlNGE2MTViZTA0Mzg5OGIwMjE4NGZlOGJkM2FjOSAxMDA2NDQKR0lUIGJpbmFyeSBw
YXRjaApkZWx0YSAzNDY3CnpjbVY7NjRSckYpRiNqO0hnJGZBKDAwMDAwYDlyJlpsYTJ9PmUrbV4y
MnNtPmU9RypgUDRZNWY/S34jOSE/VldqJAp6OTkxMzFLUnVjM2tafG1CcEtfUlJZZWIwKU1KWGYm
bCVPT2MwcCYwZmx0V2BlQ3tWem8jQmkhbkFPdyY9aUdkXyYKejNRPzFTQV96JTExWjBSTDBeeUpa
SWZ+KjZBekAqfFkkbnRHQHFYPlR2Xl9oJHlZS1ooQ2NqVkJ0TGRLWm5iLWFMCnpmNCVTZnlgejUq
NmglPUtNTnQkKlE0fmN7NmglPUtNTnlpTkskRDxQdjtyZjVBK287JGNvMH5sTnN8ZU8wXmJJWAp6
MChKd3wwIzVAczBrYSRJU30mNVk2VlROSlgrSUc3NjBvaThob1UyfDAxd09sQ2RDe3BGYEF0Zzs3
N25KZEMrIVAKejF6WmZ8UmlDXlFfN0tpKnB6R1dqN3oqcUZZfHx3OWZCI29OQl9aOFEhMSM9ZXMm
anozSyE9MzZAP0c2Qjw2RlMtCnpPPHcyKjApTGhKP0VxIzBYR0BwYGQ/ZCYyQEdPRlpmS2s4PSEy
UTdFQF9CPU5LZ2VVOytXYHhKVk81Un5sakdaWQp6ZWlqYntyLSlVeDhTcWBKQWlteHBMaCV5dGd0
Zm9ZcTJMMnRSLSs9Z0VKTnsmTEtpUnIkYXpaRnkrckopZjVrc24KeiZoZ0dEVjQoPHNlRX5DcHQo
I047RlNoUDtHMCt3fXpDVztCaiRpQ2FmUFZuSVRPO0dZRTlWWExhMTlIcklFRSNOCnpVdnpCP0dK
WkImU0Ate08xTFQhRyNyaWA4ZE1MMUNLZGhyOTBsZDZNS0RheiVAdn12NnE5K2xZbjxEPFh6OH4o
RAp6SncoMTlfPVVyYC1jRTdETiNRLXxCWFVKNmZBQnU9QUBHI01AbzBodz9ndzxyeHZkVzQteUpC
JT95KDNRMmtheEMKek55bTQwe09vTyF2cWlBbF9nUF9FTHl1K0A9U15hTCQ5V3VoUjxfUnRKXiY3
UCt+bSlpNkpwfUdOSjZ4S2kzRDImCnprTVlwI088VnJHSEhTeDg/ZnBxJj9NMEZQMV44NWtlTGMw
cGRXUngteWsrNkdOZz1CeWYtfmlxZjIlSG1KJVFIfQp6I0h8b0p1YUY+dXVnZFJ6aXJeYEE3UWdl
WWAmfG5obDBscXBRclFpT0olPz9pTEpHdHgtUGNpZk5Sanx2U3RJe24Kej5GfEVmanM1cE52Rmsj
PHYoSzRXMmtYemY2fVY2JElNQDJfMGlmTXV8NitlYUNvc21yYnpDNi1jYX5LRXMpXnVQCnpeOEUh
NDt3QGxDSHs8dHBvSyotcWV9RjR1Nl9nJFJCfjJKI0F7Zj9Ee0VtK2BlVUhyYCZoY1g1OTFJKzNe
Kko3bAp6PT9ESVZHKFg+JD9QZyROOXxVbE08Nz8+WE1ZLT9ybEBRVElXWXkwWEl0YUA9MncrYmw9
dSFZcnNCJXlII0dYZS0Kemx9czNndVglVmpyXmV6cXI0OXZpbkhCJSg4TzZEKVNicWJwe1ZqbUtm
ejJpQzJNbk5qZWBzMChibEZrNHdRdSQ5CnoxOGFld0lyeUl5QEBlPHd0T21YVUpPJiZGKyNAMSpj
PGVYKjtVMkw3PDN0JjduKUZMdkM7UiYqb2NweD1rODJCWAp6WVY1bn4+Ujx1ZF9uWCFIemMrdmJG
I1hkPDAlZ255P3t2KWsjUD51NSpMeVNzMElzZWYwI2BlWnp1cWtMYlooIVQKeno+Xlk9T19Ffl5K
d0V0KWZBcy1JZ0NMeiF5SG12eVRxMSh4YXVCNF5gdjZhXmIwMSo2JFlWeCNIPFNMcG9hQndvCnp0
LVJhbnNUXmMyZmE3QlNlVDBOK2B4VzNjJExaYSRnQ0pZV2J9ODBCPCRee1QxJX5jdkZ2fkdoVWc5
RlMqb3hvdgp6RyNES1B0fVA1JTYyJihKY3ZHellDNzF5KUc3YFduKiNSQHhHKT52N05JTGtLZX47
U20oX3BTPkAqNGstYS1TYmIKemxXViskKjtYSUxKbHFkRGZYKU1LTDs7TVIlbF5QODZWN1FDM29z
SkYyVTNYTkVYeFhaTyshd0U/dlUte1hsQDFwCnp5OHlxJnl6PzdSezU1aUhteFNpMj4rOUltLXZu
dFMwcXA2VikrUT9oSXtePiVBYnhXKWRpS3M8ZztRcTs+MW59Pwp6XzY/TEtaIyYoY0VBVEkzVVZC
OyV0aSR2SnVHMXVJVEc5JGA4X25TJEJlM3B5VGl7STBvWDV+UXo2IVYtX195WUwKemxrcFpFZS11
U2dsI1BnP25ncDheMHJnbn1XJnw2KWhCWlBUaDArJlh1M21OayN2e3JjJSZSaSVIRj13czA+JWVv
CnpKSHtpKjNtRVMrT0U4V2lkQHY1PGIhY1JqPDg3RkFEeTlONj5YYUB5JXNhNylCaWheQmJEfm8l
N31zTmlCQGBfRQp6RHIzQStieFFhYzxGJmg3RUVYJFMyO2RnTHBEezF1NUFZeTxmQmt2Y2VOJWVo
ZDMoQ08pR1lWI3w5YiNxRzREV3MKem5HTSZ2ZUgtSGxWWDBKdHVRP1hLLV49elE7SWBRRGdNZSR+
R2RqPDsydXtaPWZlTFVURmVQXlVBJmd0QjlSOGclCno5Nz96SWstTEZeR2BXJTFCQkhreSZ7YF4k
IylNKG05KXt0ODA2YEVlM3hjM25DPX45KHluRnFEXzR9P1kjOT1uWgp6ZT0rOEJ6O0tLdz00S01X
JGp7ckBVUj45I2chOD50bWNYNERBQW9hIWxSZDw3Qj1CUjV2eGljd3E4bEshYXVASmgKeismYWN4
QkkxXm9yTkN6JCN7V2FpdlhITmNyUCY2MlVScGUwb1gtOVNfJiN1Pj1qWGchdFp0aFhXWWhmPV9F
NEB1CnpBNFclZWR3WFFAd1V4YHwxSXkqfCM3ZDx5SlNxTk1lPWZIO3BVK1JyPWt2PWpqIThPOyNi
VCMjMy1FZyllamo0aQp6dXZxS3kwUigrflNUNld4NiVsTCVNcV8qeE15e3w8I0pGTnw/VE8/JDsz
QiU2LXpHSHktXlh8Y2FtaCVye0wrWnYKeihqSj0wZVB6NlM0aVRZd1FRfXheMnthPTdLNnl2MXtP
OVJqYkxLWX5lfXIkK3kldz1nQGpEaW5VIWBtd2UqQGVyCno9ZWlRWGZnKnNka0B5OGNrVl9LNE5+
SlFxVHJOK3s9a3BneU1PQFA+TylVWEA4ey1IdWlIRD9TeWpKJDNlIXVzdQp6VEp6UT5Gfmk0SjV5
M2BpVWJufUBaPmJibUE4d2RWbD5jN2EhQFVvZD1KNShnYWdMREIraFBKWkwtT0RlKG5LY1YKenlh
eWQhIT9SLUxNRk1hMDErZlReX1QyUDY3K0oqYzg4LUNDYyZ9N1VgJTZWUSZxTGh5OG8lPjxJRm8h
NUIhNn5ICnplXysxXnUkdVYyMGVsREpoX2dqJXpXSkMxZn0oeipUamFDWk1LQ0p7TlRxVktXbm00
S0tBPWVhPF5kPHc+aTZnZQp6TVUxRTYwYVhNcmEqVm1jVlZzSyt6TUJEQFZRcGlIOzU4bmFWKWxD
MWQmR2BDQkYoSl9KVXs8dmREbz1YMX02YzMKel5DKkR6V0ZTeG8hPzBiUlhJJVZ7PytBaCorSkEx
QlpsSWM4KGZoSjBUJGRFR3QxPDRVe3xUSDIrPlJMdXcqVUtqCnorXm95bk5GcTIoTTleT1VBekJS
RzRsXkNieVM+IShTN0FFaUJTRC1rI3ttQjFTXlQxPS1iWHpNT0NXdD16UFlXJgp6ekg2ZD55Pi1C
b21oZ1VFd2h5dGEhSzNncUg3RlgqTyE2YHZlYisrc0YjeU8lMTBKIThFckBOS1Q3VEdfbjx2SDYK
enE8czs8Xlc7SH5tUyl5VG41OEYyQyE5TTd4RD0obzhEUDNKdjclPF5zbFpSQFVYWHNDRz9CVklV
clFJPTN4UVc3CnppfWdUOClZeH47NnRPclQ3Sz9pclcrfWAkbjEkekdsMWxGcFglKCUpMzxrUjdL
S1khU2FCT21sPTRvRzxBZUM9Zwp6aSNvOEg8YFd2ZGFQP0xJWEdrQiFSZSFTb0UjUDEmajdoaiFt
KUNBJHI0MnJxRGJgPG5nbTxofTglNG9ZNkx+I20KemFPb1VOO0JLX2l7MjM5eXRtYStibW0taDJX
VGJAMnVfb1UqT3V5VlhIZTlCNHZoXkY2JSlzPEZqKj5Ld3JvbnRzCnpqRFJUYXNESktHJE1ONWE4
RThCSkdhN3hpZ3g5VD5TSkFgc3o4KjkxMHFOSTVMNEk/K3Frc0hnNHVXNz1MTDZhaQp6K2JGTyh4
MTZSLV5reCl6c2ZnTCpWd0ZzaD1GU3M2bkN1Z1B5UEN1anQwc09+YWtIZk4tQnkkNTRhc1AwQj9E
eCEKejJFfkZae1pKOWxJZ2FsXnhpN25LdVpgfmNlc1I4djhKSnRgRiU3bnFIMjRFJVFKIWNhcHM5
MlpsQzFGKlp3SUN5CnphKGNxP21vT3ZNRkU+I09YbiE0MDNXQV8wUiZeS3owYnY7MClAQiQ0IVQq
ZE9JayFaTFFRJXFAOzUraVVOQH1eXgp6MGxOWiEkTWdaKDlxPX0qZlV7X3gwZyE2cSpPTFk2dkpX
dC0tUl9zQlNYOHJ9QXRJUDFKcWdeYV8/WlRrYl94dH4Kei1YaE93YUVGIXRIaU5CZ1VufDBHRFhv
RWQ2MyE3SlNTaVB8bmlINiUwQ3BBJWdAM3pweCFtRn4zQGVlfjF3bH1lCno1Q1VOc2hMdjB7d14k
fWJjajkwZyUjTnw5I25HNnhVcno/ITt7UWopbndmZjhlbzJMfDc1S0NXViVEdDBPdlgocgp6V0RE
ezBEJWUhWjsjKD9LO2QkMmFZY2MoUjJVK0wpVnBxJnQ3P1pgeWZiTT9Mbj1wZmQ7UHk/SnF9SVVB
dkcyQ1cKeiVtdiZARVd5MlRfa1Q3fStVWUg2cl8xek8wRCgzNmUxMk0qaU9eendyeEwpbCgqJXlE
eUNkfTJJdXlLM3taK1c2CnppS1gjWjR6cD9rd0BCZVRKPmw0QlglK2JCZ0I/ZnJ5VEVaUFo9P3Vn
N1ZpUndSe0I/QlR8fVI7X0JTV1JKVHduUAp6QjZ0VUluI1hkTyl0ZXdLXnpCdStQTjF0O0VPenpC
MCpzZ0A1QiQ8UFN3JFZYZXNUN1RlXjtYeyo2X0g1VntJTzwKemI0Q3FlVGFEWS0tPlJ7ajZ0R0d7
KD50MWFRTDV3ZiolYFBUXy1WJUZGen1lKUF9VDxhT21kej4zVEZ0ZUVARjMrCnotV0QtYERuNiU0
cGVXNXZOVmJraSErd1VXKTgjYkhCOHN3YzVjSUwyYDtIP2l6R1dDczRfampWNylJTD4oUmF+dQp6
a2NUO25La1lSPmc3RlJ2IyFMMjduIU9hSXZGWHBjeihFUjhhNno7UChHdEA4PENgZjBJNGRMWlRX
eUtvZFdZaDcKek5zNG5PWWNeSnRZP15vVXFHez19Ml55YHNIcS1JQkY0QVJ4ckZFfCNJe3lEbFlC
Y1hKKFg2UWAlYGJweWcpTTlHCnozcTZYVDNaU0I+MEh6a1d0aXxzSWBGdE1aZllBcGtmUXE2NVNY
MWItN1FaRUFHdCNVQXMzOzk4ZmMyYik2MCtnYQp6ZT1uMkdsJFFgUSFrcERLOHg9ckJAa21hU3Bq
WUF0Vz9gMWNMPG5gUTU9R2c+MVRnNGpYYTxHQHcqV2BUeyRaRngKejElTVBxKkApQHdKaXhSfnpP
MDBBVz04UW1pQ0skd2FfcylqMWlwYjtIdU9UXm12WVNCP2tfKnJZXm9AWUElS208CnRVSnxsbUo3
NVpDNGNlXkdOelJrYzQ7VUF6XyVFe0UqN1hjfHdVN1YrMDAyb3ZQREhMa1YxbDB8bUJSbzQKCmRl
bHRhIDM0MjAKemNtVi1pNFdzaF5Gd1pjc2ckZkQoMFJJNjBwdU1NKWxhMn0+ZStkVys2ZEkhdCVe
VXkjNFNgOFNLfiM5IT9WV2tCCno5N1A/K0tlTzRxQ0U8OUZgO14wa1RPJiQqUD9TUGFLblk0QjYw
a1VvMW0pMH01REZDVkQ2TWM+TXU4QU9mK1lyJAp6cGVhTzYzV157aztTaThEa19kIUQ2NjdkfkU5
QnQ4MztWTCFAc0l3RStaa3V5WnI8eWotQXNPO3M7LV5jbmNiZjAKemY5ZH1BdWFFZ1BEMmsjZWls
UWlycTl9QEBEMmsjZWlsU3RZSyREPFB2OyFsNkErbzskY288bCNOc3xnazBeYjZUCnoxTkgqZTBu
WSVwMDwmQX1TfSY4WjhfPCkxdj55bjMzRHtCZ0woITJ9ZmskUDNpKC16STcrSSRjXyN2PUw5PCZg
Kwp6MGhhQEwpaEYrU3lAWlFmPXNJQD9oNjF8KUo3Z3NQZkJ5b2dCJjIlQDdAdnwrYnBiRko9I25z
M3pIM0AkZD5jNDkKejxBclZAQEU1dD9FP15kTHpKeXU4TXs/e2cmbXVTbzd6Tng2SlAxNH5wRXR8
KmdGTUUpNlItZG5SXiN8RUlsaHpVCnpYWW5YLWhGRGN3MHBHQy07dXxkQDZmWGwkU15GeTszTz5N
PGJ0LX1AUXh2fV9eWipscG9UcWYlUHNGWlBmQmJYaAp6OVBmKyo3SyN3cTdjZGpwS0JFRzd4cGtr
NWZzV1ltZ01zQzh7QmxuTXtDKGlQSXZNe3hJZDduY1lna34jRilUcysKenFIOX1fXjBWMl95OG4r
YEFnfUJ6KSptOSFMeEVsVVZJM3QyOzhrXzwhQnJgWHBEbHRESiZFQWwySThPVmB7Nz5HCnpPWE00
WHBGNTF9b2QjfD1EWkRSek02UEhEZV52dEAwIzhkRWswKiVXS3xyXmgrd0wmX3lANnV2OSplKzl6
eWIxXgp6YmJOMmUmKXlhfVRMZiE7cEJBPD9ebXN+Zi1ZVjkyb0Z7P2pXY3h6azFLPz1LUDUhaHdC
X0A4MEJ0LWlebFZGU0IKejJfQmxnamgyNkomRVpqMmR3LUh4ZHJfbysyMG9ReVVyKVdUIUohREFZ
KzFNK1FwanFGOzdtRUBmMnZEaFUqUG93CnphVnh+bUQ8cHtFWXd+LWFCNnZvViNxVlA0ZSVBcDxx
ITRGXlJDWXNSJnRWNnRrT0h3djR8TFFXa3xjb0YpWEQkWAp6SUsxQnJXQit8WD83RVFlPn5raEkh
VFIlVjF1bTJiRjB7VVQyPFlfS3p1Mkc5NFVCUGM5aGI9ZW9vNXcqU3xXSSEKemUxRDA5Y25nQCgm
Rz56dFdFRnhnZjhncF4xIWFlU05mWEFHMiE+NCp6bXNFNC14RWBhYkclcU1oWGNvMmVVNjc/Cnpg
aGg8byZDa2Bjb2RxV0xLPiNOPnpKeyglREVEMnk1K2JeWXdFRm8lMlZ0MjkwcWppI1Q/KmhTSFNY
enYqekBTQgp6a3FNKmxING8zYCV2Yzt9R0ApUUZ2KkpISHI4eEgjPnU7ZDd6WVZaSXUoZ0RQZkJ8
SE9mNk5NPyVafCRKZVhET0QKelNPQCZuIVQrcH5QckVOPzRlJUE8M0UoSztKYHVzQVc1NE1TX2xY
NDxDKDN9K3Erand6KipgR2grLUt4fVR3OCFzCnpXOGRBXzFQam88LT9abGN5JEt3Rz43UENwQ31U
IT1yKEA8UHpBcXhVIUp7RG5hOXRle3hYeTk+JjFSdmViTmtjOwp6b3xKSEdre255O0B4ZUUlZS1B
SmsxbkhMQW9mPytsNSltWXFnQ01RbTJZNjxhYHY5OW85eTdZVG1HdC1KQnlWaE8Kejw9dThxPHNm
WVY5MmZpVlY8Z250dUs7SGBQVmJmLTFsZUE7T1JAZWI3cXJTS0ZqU3woRVhQY0ZpSHFRM0R9TEEw
CnpWMDA5P3pBJlVvNnlGZndFd1RFU1U8U1pRTmRWSmk3dENES00jXjRBKCFzfWtmN0YocjI2SmBC
WXkzYVJlU1JjTwp6dUpJQ1BUWVZKc2E2amsoSXVFY0YxdSVMcDJMcW8+STQzST5VP2hTTUg2VlZv
RUd5VkdFamJhb09TVnJVK1lBRXMKejBEZyZpPVFwMUNZdnRHOzNDJmEyKlJpRikzRFFhZSp4TmJu
ODdsKzMwZ3Y8fGVzZlpLX1Jkfn5RKWRXYCh9byVDCno4ekBjUVBPNj5vRGxjSlBkcytqbSRNZ2ZQ
KkNmajxqUzZsRCo+STIlU29nZG1hNHUlZlZgdj47MT42aCNUbDJuPwp6UTVZQUtVbDw5MCU0V24r
T0BifG9mYWFfTEdsR3BAIXkyS0ZMZ0A9R1MxJnNSO31LO0o9MmUqdW4hSzUlZmJvSVkKemlTZFo/
QkY2ajc1eyNuPUFCQDl6OVU1OFZjbjQ7a2ltQVlpQ1okVWJeRz5ZZGh8YlE9b2FqXj0jYFZ9PjI/
YX5QCnokezI0ey00Wl49YzxuQTFpXldQQjA9TnpFQyhNaVoxM1pYZGVfblFmLTsmO1Uta0dZR24m
bHE7ZTs7NWg8e2p1Uwp6distS0Q/X2VBdUVSezt8YjtzaU9KSzBfWSt6fnJ8Nzt3Rk9NKDRRfSFS
ZVNLUHlzRmxyb0BndmZebXpMIUBxTmUKekJkSXpjeGZsMyojKk1UIzV4d256X0VNPWRDSmUqUUZi
b2RgMiFkYyk1Q3B8U3A+UGw4LVJscG0tfWpeOzR6bj9pCnpGYG95MmhHUlQyWEdzN2ZLV30zPDtr
c3Jlb2JSPT0xbiRRODBHdER5P2plcTJmZ2ZSPEooT1k8LTJrYlRkd15mIwp6KS1tbzk1d31LSjNW
aGFLezZEfWYzO0MqOG5qT0lCck5zbHI+RmpAaT8qWEBYZSRMQ3E+YjYteUleOW9VRlhieHEKelZS
VXFNYzE5TG9ONFo9K3Z8S0p2dFcrdylsajZfaWEqT2tTYFRWcWVLRURqKG41NFR7RU96XzAwS1k1
Wl9hU0J0CnppKis2IUsrd21CPCRgYjI1VyFZcEd7I3E5PE89SWxqNExNQm89QmJ0RX5EIUZIbU0x
PzhzaXpuQl9xWjFZZVdRPgp6X1I+dTVFOTIjSmh6UUx+NjMxZG9wYl9FcyQtODNaemQmYChuT3xa
MjV4enhyRW49VkljT28jcU0lZz84eEw/a0gKemJ0UXJXTUY4NilAZTZfPW1uNDlkTkBhTXRUJU1U
RT1QIzNyeFVOXjRkSUk8ayN0fnU/azRWalVnWH5CQmUoemhnCno9SXQzViFeaFNUIUIlS3FjZ0Ru
VHNUNWNyWmtTRyR8NmJTMnkkX2I9QGRgKEFqKiFuZ1ZnZmlyXjU4TWpMPys/OQp6aGFGd1JiN0pM
MTAmbnZMdT9VYSUtMUkkTiNQMy1ZSHVsR096Zj8+SU9HUC0oTClgV256dz4pSmxZU0I7ZUA7dykK
elY3fjtnbWlXQzFkPmlBNHZyVEhnYElyVFFxSkUqQCRZPDY/RmY5ZzFyRTs1UFZHV2YmcGgqMVkw
akpnTF92aTtqCnpqSGxyTkgzVHFuakpkKkxvUW8yXm4qcDMtWkRXYnheJlhtSF9JbFUqI0V2fkMm
OD4kI0ttVFpYKlFDYDNDam8hOwp6RDFnbW1BVyNVeXV2NENBVD5PeWwyIWJIbWY5e2xTcHRAZXNg
PzR4cmp9KUAmRnolPVMzMHdyK2k1VXNEfE5BRH4KenRqcFU8QX47SiMmfGQhYFNgNkl8R2FiZ2V2
KCl0MFZtampeTDdYa2UwUkhHJXtHejdiTjQqRzNBYm54Snh1ZWQkCnpZb2RPPV59cyhZO3IrVTdB
N05SOCRLaHZjUCZBc0U8WWhZZ3U4cig1MExWdUo5PGhvb2g7NXIlZjdxT3hyLTd3Twp6YHl6bEIk
JTdzKCY4KldmT0hZbllJQ2xfbTF4a04yejt0UDFNYXxHTmZnZSp7a2JhJnRrJE9CfE9BcG5Cei15
N2wKemRMU2R9PzdMPSlTZSVjRiNYU3RPNnlfWXYhdCphbnJUM1YkaWRKQzsxNn1mZmRgP2F7SG8x
WjNYPHdOam0yYWFLCnpiem44a0MkeEl1K0VmOVlBJDxfbmY2RCRoZnkxUlJDZ0V5YlVifjZhWHo7
O0l2SHMjQ3lrbzd9Qzw/QmMkUXYrJgp6T0JZeEljWi0kZyZ4LWheSFNoOSkySihuWU1vTzMqWXgw
ZjVedmpLNzw3SFlXVGZjRzEzYH5GSENgdDJaOHE2MlAKejIjRGcyYHNlTzs5UktaQGZ5UDVIcXRX
TH1jKkFPVzYrSnhmbj1rXygoRCsmPyRadXxQZjBYfnJLQGNvVWgkRDxgCno4d0VEIW1LIU0obj0l
VCNSSylCX3V9WT4kYkxYakVPIWYpREpzR2pZWUtkUTMrJFFPTHVocnl2USE/NSokcEM0cgp6TDl3
N2xLVUJvP2pebGUrPyN1NG0+ITNRe0ZWMHNuMTlOTFVyb3B6NzJFV0hGJGBkVUZHP25UZyR5IWhH
YzQ3SjwKenJ6YWVMODhjRy1OYF9pTWY5cnUjNUNsY0JzPjJgJTIqYzJ9SHAzdFl7JThFaXhne0RI
MStIZlN6QUstcnE/WT9GCnp1cVdfME9kcGAjMGRLUGtJRklaTWZZY0pkLVlpZztlU2xIel9Na015
cU1HZC01eTNSK1AyZ1VgJm9ybjtyQCRjUgp6RSVLWk9jVWtGZ0d1WWJwd0liWk0oaSlnMjtRfHFZ
bTJ5MC1JZX0+a1YwV1FWZjRDPT8lUGtKV3VvNE1nNUNqem8KekFyT1hQU2pwdmJpKUJKfEh4OCEz
Pj42dVk5RkpOMV4+cEJFeyhuUiklUVZhS09EY1Ryel42cUooYEZAUkdIeX5LCnpUWm9AbSFLUFhr
LSVfeShGUzNyYGZhd1EzJXNTcn1kdCU8Z21ASE5YUlFwQTUjUzk5OStjI203U184TW16U3xpeQp6
N2pRU1Ixb3l8P2Y3P0tmUEgkOyt5MzhnRUFoMCV7JnJmUylCRDdmRjRHQ2JRKColeUUrN1d0VTZB
SXB6e3dpRzMKeiNNMWFIaGlOcnwrb2JURm9wNVpsdjxpSW0hSCVRKUVeeXErOCE1dD0jPUYzd21I
dzRqN3R2Pnx7akYoVzktMFJ0Cno1eGZnSCVWUmxBPnJJZTBgdH5ZWkhfJWZvN0pLPyowWSolZDJZ
eUE5TXl3ODl6Y35ISHppVXd6WWp8QTN1P347ZAp6SWlyclN0LTxaPFo/KUo8M1JvcWY9XmFoSUNe
aGw8PjwoTjd7M1BYYTc8a05ZNWZ6fEVDT09aYzBjUXhWRUBFJCEKei14ZWB7RD9YPTVwZVdmVUJ3
ZmQoVkx3Q0s+Mmo4NDVrPVdOMj5NdmllYURkJC0haEQraGl4JV80NVJJYz0ofWgrCnokZkYjXi17
Pl95aFZjI3ojIUwzb24hT1l5eUI0NlVeWGReVEk1Z0FxWn5CdVN0RjhNallaZyhJPzIyQzYwPVRK
eQp6bWJVbjx3Qz9wbyVfQHFiMF9hKSo4eF4qKyNWPUl4UXhwfHt6JSZHfnAxYEZvZWxOPUIzbTZC
Q2lsVjNoZEtKSzAKekxZS0RxRXVsRmgmNUVNNWh5WFRvOGNOODxPYUh4K2tgUlRNNW9RJVhNYWNq
O09AZDdsS1FJZmtKUnc0O1luM1I8Cno3Rz9wcSVKcm1hMFM/RWtnbSQhQWV1fWM/M1NnX2VlR3Yp
Wk9iTmFQRnZLam14RntDU3hsfnVseVZOPiVzZndmJAp5cU8/QncmR18yKWxhTGxXMGFHdyomPz1L
cTcjSjhXI2VWXm5qbXJvUUkmOEg3MDAwMDxNTlVNbkxTVGExUzcpSUIKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hTY29wZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpz
CmluZGV4IDlmODhjMWVhNDAwYmZiOTBmNWM3YzBlNTdiNmVjNGYyZmNmMjY4YWUuLjlmNGFlYzE2
ZWJiNDNmNmEyZjM0MDAxMmQxNTljM2Q2ZDRlYzNiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCkBAIC0z
NCw1MyArMzQsNjAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZSA9IGZ1bmN0aW9u
KCkKIHsKICAgICAvLyBGSVhNRTogQWRkIHRpdGxlIG9uY2UgaXQgaXMgdXNlZCBieSBzZWFyY2gg
Y29udHJvbGxlci4KICAgICBXZWJJbnNwZWN0b3IuU2VhcmNoU2NvcGUuY2FsbCh0aGlzKQorICAg
IHRoaXMuX3NlYXJjaElkID0gMDsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29w
ZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2Vh
cmNoQ29uZmlnfSBzZWFyY2hDb25maWcKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKE9iamVjdCl9
IHNlYXJjaFJlc3VsdENhbGxiYWNrCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbigpfSBzZWFyY2hG
aW5pc2hlZENhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihib29sZWFuKX0gc2VhcmNo
RmluaXNoZWRDYWxsYmFjawogICAgICAqLwogICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHNl
YXJjaENvbmZpZywgc2VhcmNoUmVzdWx0Q2FsbGJhY2ssIHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2sp
CiAgICAgewotICAgICAgICB2YXIgY2FsbGJhY2tzTGVmdCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rp
b24gbWF5YmVTZWFyY2hGaW5pc2hlZCgpCisgICAgICAgIHRoaXMuc3RvcFNlYXJjaCgpOworICAg
ICAgICAKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl9zb3J0ZWRVSVNvdXJjZUNv
ZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVJbmRleCA9IDA7CisgICAgICAgIAorICAg
ICAgICBmdW5jdGlvbiBmaWx0ZXJPdXRDb250ZW50U2NyaXB0cyh1aVNvdXJjZUNvZGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChjYWxsYmFja3NMZWZ0ID09PSAwKQotICAgICAgICAgICAg
ICAgIHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2soKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICByZXR1cm4gIXVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIGZ1bmN0aW9uIHNlYXJjaENhbGxiYWNrV3JhcHBlcih1aVNvdXJjZUNvZGUs
IHNlYXJjaE1hdGNoZXMpCisgICAgICAgIC8vIEZJWE1FOiBBZGQgc2V0dGluZyB0byBzZWFyY2gg
aW4gY29udGVudCBzY3JpcHRzIGFzIHdlbGwuCisgICAgICAgIHVpU291cmNlQ29kZXMuZmlsdGVy
KGZpbHRlck91dENvbnRlbnRTY3JpcHRzKTsKKworICAgICAgICBmdW5jdGlvbiBjb250aW51ZVNl
YXJjaCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChzZWFyY2hNYXRjaGVzLmxlbmd0aCkg
ewotICAgICAgICAgICAgICAgIHZhciBzZWFyY2hSZXN1bHQgPSBuZXcgV2ViSW5zcGVjdG9yLkZp
bGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLlNlYXJjaFJlc3VsdCh1aVNvdXJjZUNvZGUsIHNlYXJj
aE1hdGNoZXMpOwotICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdENhbGxiYWNrKHNlYXJjaFJl
c3VsdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAtLWNhbGxiYWNrc0xlZnQ7Ci0gICAg
ICAgICAgICBtYXliZVNlYXJjaEZpbmlzaGVkKCk7CisgICAgICAgICAgICAvLyBGSVhNRTogRW5h
YmxlIHN1cHBvcnQgZm9yIGNvdW50aW5nIG1hdGNoZXMgZm9yIGluY3JlbWVudGFsIHNlYXJjaC4K
KyAgICAgICAgICAgIC8vIEZJWE1FOiBFbmFibGUgc3VwcG9ydCBmb3IgYm91bmRpbmcgc2VhcmNo
IHJlc3VsdHMvbWF0Y2hlcyBudW1iZXIgdG8ga2VlcCBpbnNwZWN0b3IgcmVzcG9uc2l2ZS4KKyAg
ICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVJbmRleCA8IHVpU291cmNlQ29kZXMubGVuZ3RoKSB7
CisgICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZXNbdWlTb3Vy
Y2VDb2RlSW5kZXgrK107CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNlYXJjaEluQ29u
dGVudChzZWFyY2hDb25maWcucXVlcnksICFzZWFyY2hDb25maWcuaWdub3JlQ2FzZSwgc2VhcmNo
Q29uZmlnLmlzUmVnZXgsIHNlYXJjaENhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMsIHRoaXMuX3Nl
YXJjaElkLCB1aVNvdXJjZUNvZGUpKTsKKyAgICAgICAgICAgIH0gZWxzZSAKKyAgICAgICAgICAg
ICAgICBzZWFyY2hGaW5pc2hlZENhbGxiYWNrKHRydWUpOwogICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3NvcnRlZFVJU291cmNlQ29kZXMoKTsK
LSAgICAgICAgLy8gRklYTUU6IEVuYWJsZSBzdXBwb3J0IGZvciBjb3VudGluZyBtYXRjaGVzIGZv
ciBpbmNyZW1lbnRhbCBzZWFyY2guCi0gICAgICAgIC8vIEZJWE1FOiBFbmFibGUgc3VwcG9ydCBm
b3IgYm91bmRpbmcgc2VhcmNoIHJlc3VsdHMvbWF0Y2hlcyBudW1iZXIgdG8ga2VlcCBpbnNwZWN0
b3IgcmVzcG9uc2l2ZS4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVz
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VD
b2Rlc1tpXTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc2V0dGluZyB0byBzZWFyY2ggaW4g
Y29udGVudCBzY3JpcHRzIGFzIHdlbGwuCi0gICAgICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5p
c0NvbnRlbnRTY3JpcHQpIHsKLSAgICAgICAgICAgICAgICAvLyBJbmNyZWFzZSBjYWxsYmFja3NM
ZWZ0IGZpcnN0IGJlY2F1c2Ugc2VhcmNoSW5Db250ZW50IGNhbGwgY291bGQgYmUgc3luY2hyb25v
dXMuCi0gICAgICAgICAgICAgICAgY2FsbGJhY2tzTGVmdCsrOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgbm90IHJlcXVlc3QgbmV4dCBzZWFyY2hJbkNvbnRlbnQgdW5sZXNz
IHByZXZpb3VzIG9uZSBpcyBhbHJlYWR5IGZpbmlzaGVkLiAgCi0gICAgICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLnNlYXJjaEluQ29udGVudChzZWFyY2hDb25maWcucXVlcnksICFzZWFyY2hDb25m
aWcuaWdub3JlQ2FzZSwgc2VhcmNoQ29uZmlnLmlzUmVnZXgsIHNlYXJjaENhbGxiYWNrV3JhcHBl
ci5iaW5kKHRoaXMsIHVpU291cmNlQ29kZSkpOworCisgICAgICAgIGZ1bmN0aW9uIHNlYXJjaENh
bGxiYWNrV3JhcHBlcihzZWFyY2hJZCwgdWlTb3VyY2VDb2RlLCBzZWFyY2hNYXRjaGVzKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoc2VhcmNoSWQgIT09IHRoaXMuX3NlYXJjaElkKSB7Cisg
ICAgICAgICAgICAgICAgc2VhcmNoRmluaXNoZWRDYWxsYmFjayhmYWxzZSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgdmFyIHNlYXJjaFJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVz
dWx0c1BhbmUuU2VhcmNoUmVzdWx0KHVpU291cmNlQ29kZSwgc2VhcmNoTWF0Y2hlcyk7CisgICAg
ICAgICAgICBzZWFyY2hSZXN1bHRDYWxsYmFjayhzZWFyY2hSZXN1bHQpOworICAgICAgICAgICAg
Y29udGludWVTZWFyY2guY2FsbCh0aGlzKTsKICAgICAgICAgfQotICAgICAgICBtYXliZVNlYXJj
aEZpbmlzaGVkKCk7CisgICAgICAgIAorICAgICAgICBjb250aW51ZVNlYXJjaC5jYWxsKHRoaXMp
OworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2Rlcy5sZW5ndGg7CiAgICAgfSwKIAogICAgIHN0
b3BTZWFyY2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
c2VhcmNoIHNvIHRoYXQgaXQgY291bGQgYmUgc3RvcHBlZC4KKyAgICAgICAgKyt0aGlzLl9zZWFy
Y2hJZDsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYThhMTJjMzM3YjY1MTMxMDgzYmE5
MTE2ZDI3OTQxZjE0M2Q4MDllMC4uOTNmZGNjNTNiYzk0OGE5YWEwYWMwMGVhMTAyOGU5OWFkOWE4
YjVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qcwpAQCAtMjU1LDEwICsyNTUsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtl
S2V5KCJlIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9IHRoaXMuX3RvZ2dsZVRpbWVsaW5lQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpOwogICAgICAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1dC5z
aG9ydGN1dFRvU3RyaW5nKCJlIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlN0YXJ0L3N0b3AgcmVjb3JkaW5nIikpOwogCi0gICAgICAgIHZhciBzaG9ydFJl
Y29yZFRocmVzaG9sZFRpdGxlID0gTnVtYmVyLnNlY29uZHNUb1N0cmluZyhXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5zaG9ydFJlY29yZFRocmVzaG9sZCk7Ci0gICAgICAgIHRoaXMuX3Nob3J0
Y3V0c1tzaG9ydGN1dC5tYWtlS2V5KCJmIiwgbW9kaWZpZXJzLlNoaWZ0IHwgbW9kaWZpZXJzLkN0
cmxPck1ldGEpXSA9IHRoaXMuX3RvZ2dsZUZpbHRlckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKTsK
LSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygiZiIsIG1v
ZGlmaWVycy5TaGlmdCB8IG1vZGlmaWVycy5DdHJsT3JNZXRhKSwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJGaWx0ZXIgb3V0IHJlY29yZHMgc2hvcnRlciB0aGFuICVzIiwgc2hvcnRSZWNvcmRUaHJl
c2hvbGRUaXRsZSkpOwotCiAgICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtlS2V5
KCJzIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9IHRoaXMuX3NhdmVUb0ZpbGUuYmluZCh0aGlz
KTsKICAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygicyIs
IG1vZGlmaWVycy5DdHJsT3JNZXRhKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIFRpbWVs
aW5lIGRhdGFcdTIwMjYiKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBiOGU5MzBiM2RjYzEwNTgzZGRlMWQ4ZGI4NTEzMjU5
NDZkOWJjMWFjLi5mNWE3MTc2NDViMWNjOTA4NWM0ODg4ZjVmMTgwZTBmZWYyNDc4MjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBA
IC00MTU5LDYgKzQxNTksNDMgQEAgYS53b3JrZXItaXRlbTpob3ZlciB7CiAgICAgbWFyZ2luLWJv
dHRvbTogNnB4OwogfQogCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLWl0
ZW0geworICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBmb250LXNpemU6IDExcHg7CisgICAgaGVp
Z2h0OiAyM3B4OworfQorCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLW1l
c3NhZ2UgeworICAgIG1hcmdpbi1sZWZ0OjVweDsKKyAgICBtYXJnaW4tcmlnaHQ6NXB4OworICAg
IG1hcmdpbi10b3A6NnB4OworICAgIGZsb2F0OmxlZnQ7Cit9CisKKyNkcmF3ZXItc3RhdHVzLWJh
ciAuc2VhcmNoLXN0YXR1cy1iYXItcHJvZ3Jlc3MgeworICAgIGhlaWdodDogMTBweDsKKyAgICB3
aWR0aDogMTAwcHg7CisgICAgbWFyZ2luLXRvcDogOHB4OworICAgIGZsb2F0OiBsZWZ0OworfQor
CisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0g
eworICAgIHdpZHRoOiAxOXB4OworICAgIGhlaWdodDogMjRweDsKKyAgICBvdmVyZmxvdzogaGlk
ZGVuOworfQorCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLXN0b3AtYnV0
dG9uIC5nbHlwaCB7CisgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiAtOTZweCAtNDhweDsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LCAwLCAwKSAhaW1wb3J0YW50OworfQorCisjZHJh
d2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1yZXN1bHRzLXN0YXR1cy1iYXItbWVzc2FnZSB7CisgICAg
bWFyZ2luLXJpZ2h0OiAxMHB4OworICAgIGN1cnNvcjogZGVmYXVsdDsKKyAgICBmb250LXNpemU6
IDExcHg7Cit9CisKIC5zZWFyY2gtdmlldyAuc2VhcmNoLXJlc3VsdHMgewogICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKICAgICB0b3A6IDM1cHg7CkBAIC00MTY2LDEzICs0MjAzLDIzIEBAIGEud29y
a2VyLWl0ZW06aG92ZXIgewogICAgIGxlZnQ6IDA7CiAgICAgcmlnaHQ6IDA7CiAgICAgb3ZlcmZs
b3cteTogYXV0bzsKLSAgICAKK30KKworI3NlYXJjaC1yZXN1bHRzLXBhbmUtZmlsZS1iYXNlZCAu
c2VhcmNoLXJlc3VsdHMtb3V0bGluZS1kaXNjbG9zdXJlIHsKICAgICBwYWRkaW5nLWJvdHRvbTog
NXB4OwogfQogCiAjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0
IHsKICAgICBmb250LXNpemU6IDEycHg7CiAgICAgbWFyZ2luLXRvcDogM3B4OworICAgIHdvcmQt
d3JhcDogbm9ybWFsOworICAgIHdoaXRlLXNwYWNlOiBwcmU7CisgICAgY3Vyc29yOiBwb2ludGVy
OworfQorCisjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0Omhv
dmVyIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyMSwgMTIxLCAxMjEsIDAuMSk7Cisg
ICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiB9CiAKICNzZWFyY2gtcmVzdWx0cy1wYW5l
LWZpbGUtYmFzZWQgLnNlYXJjaC1yZXN1bHQ6Zmlyc3QtY2hpbGQgewpAQCAtNDE5MCw2ICs0MjM3
LDE3IEBAIGEud29ya2VyLWl0ZW06aG92ZXIgewogICAgIGNvbG9yOiAjMzMzOwogfQogCisjc2Vh
cmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zaG93LW1vcmUtbWF0Y2hlcyB7CisgICAgbWFy
Z2luLWxlZnQ6IDVweDsKKyAgICBjb2xvcjogIzMzMzsKKyAgICBjdXJzb3I6IHBvaW50ZXI7Cit9
CisKKyNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNob3ctbW9yZS1tYXRjaGVzOmhv
dmVyIHsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKworCiAjc2VhcmNoLXJl
c3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtbWF0Y2ggewogICAgIGZvbnQtZmFtaWx5OiAn
ZGVqYXZ1IHNhbnMgbW9ubycsIG1vbm9zcGFjZTsKICAgICBmb250LXNpemU6IDExcHg7CkBAIC00
MjA4LDcgKzQyNjYsNyBAQCBhLndvcmtlci1pdGVtOmhvdmVyIHsKIAogI3NlYXJjaC1yZXN1bHRz
LXBhbmUtZmlsZS1iYXNlZCAuc2VhcmNoLW1hdGNoOmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDU2LCAxMjEsIDIxNywgMC4xKTsKLSAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6
IDVweDsqLworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwogfQogCiAjc2VhcmNoLXJl
c3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtbWF0Y2ggLmhpZ2hsaWdodGVkLW1hdGNoIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVz
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKaW5k
ZXggZmMzNWQ1YTNlODc4YzZjYzg3MTliODdlMGRhYTViNTM0ZmUzOGQ1ZC4uYjMyMTM0YjFlM2Jj
MzFkY2ZiOWZkNWQxYjEyOTVhNTVkNmEzNmVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTEwNDYsNyArMTA0Niw3IEBAIGZ1bmN0
aW9uIG51bWJlclRvU3RyaW5nV2l0aFNwYWNlc1BhZGRpbmcodmFsdWUsIHN5bWJvbHNDb3VudCkK
IHsKICAgICB2YXIgbnVtYmVyU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTsKICAgICB2YXIgcGFk
ZGluZ0xlbmd0aCA9IE1hdGgubWF4KDAsIHN5bWJvbHNDb3VudCAtIG51bWJlclN0cmluZy5sZW5n
dGgpOwotICAgIHZhciBwYWRkaW5nU3RyaW5nID0gQXJyYXkocGFkZGluZ0xlbmd0aCkuam9pbigi
XHUwMGEwIik7CisgICAgdmFyIHBhZGRpbmdTdHJpbmcgPSBBcnJheShwYWRkaW5nTGVuZ3RoICsg
MSkuam9pbigiXHUwMGEwIik7CiAgICAgcmV0dXJuIHBhZGRpbmdTdHJpbmcgKyBudW1iZXJTdHJp
bmc7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111972</attachid>
            <date>2011-10-21 08:50:40 -0700</date>
            <delta_ts>2011-10-21 09:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70611-20111021195036.patch</filename>
            <type>text/plain</type>
            <size>42156</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgxMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZmFjMGMxMjc5NTFhMDdl
NDE2NGFlNWE1OTU0OTE4ZjhhYTIxMmFlLi4xYzVmMGIzZDk1ZWRkNzVhN2QyMDA0M2RmMDFlOTdl
Njc4YWEwN2M3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTEtMTAtMjEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQWR2YW5jZWQgc2VhcmNoIGlzIHdvcmtpbmcgdmVyeSBzbG93bHkgYW5kIGRvZXMgbm90IHNo
b3cgc2VhcmNoaW5nIHByb2dyZXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzA2MTEKKworICAgICAgICBTZWFyY2ggaW1wbGVtZW50YXRpb24gY2hh
bmdlZCBzbyB0aGF0IHdlIGRvIG5vdCBzdGFydCBzZWFyY2hpbmcgaW4gdGhlIG5leHQgZmlsZSB1
bmxlc3MKKyAgICAgICAgdGhlIHByZXZpb3VzIG9uZSB3YXMgYWxyZWFkeSBzZWFyY2hlZC4gVGhp
cyBhbGxvd3MgdG8gaW50ZXJydXB0IHNlYXJjaC4KKyAgICAgICAgTm90IGFsbCBzZWFyY2ggbWF0
Y2hlcyBhcmUgYWRkZWQgb24gVUkgYnkgZGVmYXVsdCBub3csIG9ubHkgZmlyc3QgMjAgZm9yIGVh
Y2ggZmlsZS4KKyAgICAgICAgU2VhcmNoIHByb2dyZXNzIGluZm9ybWF0aW9uIGFuZCBzZWFyY2gg
c3RvcCBidXR0b24gd2VyZSBhZGRlZCB0byBkcmF3ZXIgc3RhdHVzIGJhci4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWFyY2hVdGlsczo6Z2V0UmVndWxhckV4
cHJlc3Npb25NYXRjaGVzQnlMaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VhcmNo
VXRpbHM6OmNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9vblNlYXJjaFJlc3Vs
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3Rv
dHlwZS5fb25TZWFyY2hGaW5pc2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWR2YW5jZWRT
ZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5zdGFydFNlYXJjaCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5yZXNldFNlYXJjaCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5z
dG9wU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlLmdldCBjb3VudGVyRWxl
bWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUuc2V0IHJl
c3VsdHNQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5z
ZWFyY2hTdGFydGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlU2VhcmNoUmVzdWx0c01lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNl
YXJjaFZpZXcucHJvdG90eXBlLl91cGRhdGVTZWFyY2hQcm9ncmVzcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUucmVzZXRSZXN1bHRzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5fcmVzZXRDb3VudGVycyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUubm90aGluZ0ZvdW5kKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5hZGRTZWFyY2hSZXN1bHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlLnNlYXJjaEZpbmlzaGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3LnByb3RvdHlwZS5fc2VhcmNoU3Rv
cEJ1dHRvblByZXNzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFJlc3VsdHNQYW5l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBl
LmFkZFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNo
UmVzdWx0c1BhbmUucHJvdG90eXBlLl9maWxlVHJlZUVsZW1lbnRFeHBhbmRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLl9hcHBl
bmRTZWFyY2hNYXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hS
ZXN1bHRzUGFuZS5wcm90b3R5cGUuX2FwcGVuZFNob3dNb3JlTWF0Y2hlc0VsZW1lbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLnByb3RvdHlwZS5f
c2hvd01vcmVNYXRjaGVzRWxlbWVudFNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
aWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUuX2FkZEZpbGVUcmVlRWxlbWVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90
eXBlLl9yZWdleE1hdGNoUmFuZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Ry
YXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBo
cy5wbmc6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gu
ZmlsdGVyT3V0Q29udGVudFNjcmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNT
ZWFyY2hTY29wZS5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5jb250aW51ZVNlYXJjaCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5wZXJmb3JtU2Vh
cmNoLnNlYXJjaENhbGxiYWNrV3JhcHBlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUucHJvdG90eXBlLnN0b3BTZWFyY2gpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fcmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKCNkcmF3ZXIt
c3RhdHVzLWJhciAuc2VhcmNoLXN0YXR1cy1iYXItaXRlbSk6CisgICAgICAgICgjZHJhd2VyLXN0
YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLW1lc3NhZ2UpOgorICAgICAgICAoI2RyYXdlci1z
dGF0dXMtYmFyIC5zZWFyY2gtc3RhdHVzLWJhci1wcm9ncmVzcyk6CisgICAgICAgICgjZHJhd2Vy
LXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0pOgorICAgICAg
ICAoI2RyYXdlci1zdGF0dXMtYmFyIC5zZWFyY2gtc3RhdHVzLWJhci1zdG9wLWJ1dHRvbiAuZ2x5
cGgpOgorICAgICAgICAoI2RyYXdlci1zdGF0dXMtYmFyIC5zZWFyY2gtcmVzdWx0cy1zdGF0dXMt
YmFyLW1lc3NhZ2UpOgorICAgICAgICAoLnNlYXJjaC12aWV3IC5zZWFyY2gtcmVzdWx0cyk6Cisg
ICAgICAgICgjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0cy1v
dXRsaW5lLWRpc2Nsb3N1cmUpOgorICAgICAgICAoI3NlYXJjaC1yZXN1bHRzLXBhbmUtZmlsZS1i
YXNlZCAuc2VhcmNoLXJlc3VsdCk6CisgICAgICAgICgjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxl
LWJhc2VkIC5zZWFyY2gtcmVzdWx0OmhvdmVyKToKKyAgICAgICAgKCNzZWFyY2gtcmVzdWx0cy1w
YW5lLWZpbGUtYmFzZWQgLnNob3ctbW9yZS1tYXRjaGVzKToKKyAgICAgICAgKCNzZWFyY2gtcmVz
dWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNob3ctbW9yZS1tYXRjaGVzOmhvdmVyKToKKyAgICAgICAg
KCNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNlYXJjaC1tYXRjaDpob3Zlcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6CisgICAgICAgICgpOgor
CiAyMDExLTEwLTIxICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtjYWlyb10gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBHcmFwaGljc0NvbnRleHRTdGF0
ZSB1c2VzIGNsYXNzIGluc3RlYWQgb2Ygc3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9Fbmds
aXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMGFiZTE4Nzk4N2MxMDVmODAxMjYw
NzI3MzdkMzgxM2U2NTA2YTBlYi4uZDExYTFkMjRhN2MzNmY4ZGIxNzM3ZDZhODkwZjJlMzUxMzc5
NTQzZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA0MjQKemNtZG5lJis9KnQlWjl5d2A0
dCMpODQ/KnY3P0skPjcqWkxFQyhwNXk3V1FNdlhGd019WEpAJXRgUUpwJiR2eVd+CnpDO1EoUVFi
ZkBQUkliNkclOCZ4cW1ke1dHRylpO3d5Y3Y/fWkzfllGaC1NaDM+ZDZLUl4qUDt1KXxOOGxGe0Ro
Ywp6O31xOWRWOHtmcjZgLWMzMGVMd2YyUXVnfUNeNXRXI2NoRkRpMis1QUZjditORkhBTSZFQ0hI
YTA5MFEqUyFhU0kKektiIXxORk9pe1dAJmhzYiQ9VlptRUVPMCl3JlZlRUYqcTwlKENpOV5zMFJs
WGlyVUZ+Q2s7VSsxVlpkRDBqZXRrClUhY3c0fUFVMXc7S3NJOTZWYT5uPTBOYGRAO1EjO3QKCmRl
bHRhIDU0CnpjbWFEZ2c9SUBXJVo5eXdjfW9+RjcmMDAxN302T083fTYlNiU5OXBFO3hwdGtscnJR
XlBHSHBDWjJXSGBDamoqZwpCNWNMMjYKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b250ZW50U2VhcmNoVXRpbHMuY3BwCmluZGV4IGEwZTBmNDBmYmU5YWQzOTYxYmYyMWMwMTkzZjVi
OWYxMTIwNGMzZTEuLjg5MjQyNWU3YzIzNGI2MzQyZmY2ZmJlOTZmZWFlYjIyZWQ5ZmQ3M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwCkBA
IC02Miw2ICs2Miw4IEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlU2VhcmNoUmVnZXhTb3VyY2UoY29u
c3QgU3RyaW5nJiB0ZXh0KQogc3RhdGljIFZlY3RvcjxwYWlyPGludCwgU3RyaW5nPiA+IGdldFJl
Z3VsYXJFeHByZXNzaW9uTWF0Y2hlc0J5TGluZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJl
Z2V4LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgVmVjdG9yPHBhaXI8aW50LCBTdHJpbmc+
ID4gcmVzdWx0OworICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKIAogICAgIGludCBsaW5lTnVtYmVyID0gMDsKICAgICB1bnNpZ25lZCBzdGFydCA9IDA7CkBA
IC0xMDUsNiArMTA3LDkgQEAgUmVndWxhckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVnZXgoY29u
c3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib28KIAogaW50IGNvdW50UmVn
dWxhckV4cHJlc3Npb25NYXRjaGVzKGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJiByZWdleCwgY29u
c3QgU3RyaW5nJiBjb250ZW50KQogeworICAgIGlmIChjb250ZW50LmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICBpbnQgcG9zaXRpb247CiAg
ICAgdW5zaWduZWQgc3RhcnQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwppbmRleCBj
Y2FhNGI3MzM4NGY2NTMwZTU1NTZlY2YzZmExYjdiOWM3MDMxMjRhLi45NTkxYmRhNGIyZWZhYjQ3
YmMwYzYyZmI1NDEyODhkNTMxMGRkODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwpA
QCAtODMsNiArODMsMTAgQEAgV2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChzZWFyY2hJZCAhPT0gdGhpcy5fc2VhcmNoSWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5hZGRTZWFyY2hS
ZXN1bHQoc2VhcmNoUmVzdWx0KTsKKyAgICAgICAgaWYgKCFzZWFyY2hSZXN1bHQuc2VhcmNoTWF0
Y2hlcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAogICAgICAgICBpZiAo
IXRoaXMuX3NlYXJjaFJlc3VsdHNQYW5lKSAKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3Vs
dHNQYW5lID0gdGhpcy5fY3VycmVudFNlYXJjaFNjb3BlLmNyZWF0ZVNlYXJjaFJlc3VsdHNQYW5l
KHRoaXMuX3NlYXJjaENvbmZpZyk7ICAgICAgICAKICAgICAgICAgdGhpcy5fc2VhcmNoVmlldy5y
ZXN1bHRzUGFuZSA9IHRoaXMuX3NlYXJjaFJlc3VsdHNQYW5lOyAKQEAgLTkxLDggKzk1LDkgQEAg
V2ViSW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAg
CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHNlYXJjaElkCisgICAgICogQHBhcmFt
IHtib29sZWFufSBmaW5pc2hlZAogICAgICAqLwotICAgIF9vblNlYXJjaEZpbmlzaGVkOiBmdW5j
dGlvbihzZWFyY2hJZCkKKyAgICBfb25TZWFyY2hGaW5pc2hlZDogZnVuY3Rpb24oc2VhcmNoSWQs
IGZpbmlzaGVkKQogICAgIHsKICAgICAgICAgaWYgKHNlYXJjaElkICE9PSB0aGlzLl9zZWFyY2hJ
ZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMCw3ICsxMDUsNyBAQCBXZWJJbnNwZWN0b3Iu
QWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlz
Ll9zZWFyY2hSZXN1bHRzUGFuZSkKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcubm90aGlu
Z0ZvdW5kKCk7CiAgICAgICAgIAotICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LnNlYXJjaEZpbmlz
aGVkKCk7CisgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuc2VhcmNoRmluaXNoZWQoZmluaXNoZWQp
OwogICAgIH0sCiAgICAgCiAgICAgLyoqCkBAIC0xMDgsMjAgKzExMywyOSBAQCBXZWJJbnNwZWN0
b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBz
dGFydFNlYXJjaDogZnVuY3Rpb24oc2VhcmNoQ29uZmlnKQogICAgIHsKLSAgICAgICAgdGhpcy5z
dG9wU2VhcmNoKCk7CisgICAgICAgIHRoaXMucmVzZXRTZWFyY2goKTsKKyAgICAgICAgKyt0aGlz
Ll9zZWFyY2hJZDsKIAogICAgICAgICB0aGlzLl9zZWFyY2hDb25maWcgPSBzZWFyY2hDb25maWc7
CiAgICAgICAgIC8vIEZJWE1FOiB0aGlzLl9jdXJyZW50U2VhcmNoU2NvcGUgc2hvdWxkIGJlIGlu
aXRpYWxpemVkIGJhc2VkIG9uIHNlYXJjaENvbmZpZwogICAgICAgICB0aGlzLl9jdXJyZW50U2Vh
cmNoU2NvcGUgPSB0aGlzLl9zZWFyY2hTY29wZTsKIAotICAgICAgICB0aGlzLl9zZWFyY2hWaWV3
LnNlYXJjaFN0YXJ0ZWQoKTsKLSAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFNjb3BlLnBlcmZv
cm1TZWFyY2goc2VhcmNoQ29uZmlnLCB0aGlzLl9vblNlYXJjaFJlc3VsdC5iaW5kKHRoaXMsIHRo
aXMuX3NlYXJjaElkKSwgdGhpcy5fb25TZWFyY2hGaW5pc2hlZC5iaW5kKHRoaXMsIHRoaXMuX3Nl
YXJjaElkKSk7CisgICAgICAgIHZhciB0b3RhbFNlYXJjaFJlc3VsdHNDb3VudCA9IHRoaXMuX2N1
cnJlbnRTZWFyY2hTY29wZS5wZXJmb3JtU2VhcmNoKHNlYXJjaENvbmZpZywgdGhpcy5fb25TZWFy
Y2hSZXN1bHQuYmluZCh0aGlzLCB0aGlzLl9zZWFyY2hJZCksIHRoaXMuX29uU2VhcmNoRmluaXNo
ZWQuYmluZCh0aGlzLCB0aGlzLl9zZWFyY2hJZCkpOworICAgICAgICB0aGlzLl9zZWFyY2hWaWV3
LnNlYXJjaFN0YXJ0ZWQodG90YWxTZWFyY2hSZXN1bHRzQ291bnQpOworICAgIH0sCisgICAgCisg
ICAgcmVzZXRTZWFyY2g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuc3RvcFNlYXJj
aCgpOworCisgICAgICAgIGlmICh0aGlzLl9zZWFyY2hSZXN1bHRzUGFuZSkgeworICAgICAgICAg
ICAgdGhpcy5fc2VhcmNoVmlldy5yZXNldFJlc3VsdHMoKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9zZWFyY2hSZXN1bHRzUGFuZTsKKyAgICAgICAgfQogICAgIH0sCiAgICAgCiAgICAgc3Rv
cFNlYXJjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgKyt0aGlzLl9zZWFyY2hJZDsKLSAg
ICAgICAgZGVsZXRlIHRoaXMuX3NlYXJjaFJlc3VsdHNQYW5lOwogICAgICAgICBpZiAodGhpcy5f
Y3VycmVudFNlYXJjaFNjb3BlKQogICAgICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFNjb3Bl
LnN0b3BTZWFyY2goKTsKICAgICB9CkBAIC0xNjIsNyArMTc2LDYgQEAgV2ViSW5zcGVjdG9yLlNl
YXJjaFZpZXcgPSBmdW5jdGlvbihjb250cm9sbGVyKQogICAgIHRoaXMuX2lnbm9yZUNhc2VDaGVj
a2JveC5hZGRTdHlsZUNsYXNzKCJzZWFyY2gtY29uZmlnLWNoZWNrYm94Iik7CiAgICAgdGhpcy5f
aWdub3JlQ2FzZUxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiSWdub3JlIGNhc2UiKSkpOwogICAgIAotCiAgICAgdGhpcy5fcmVn
ZXhMYWJlbCA9IHRoaXMuX3NlYXJjaFBhbmVsRWxlbWVudC5jcmVhdGVDaGlsZCgibGFiZWwiKTsK
ICAgICB0aGlzLl9yZWdleExhYmVsLmFkZFN0eWxlQ2xhc3MoInNlYXJjaC1jb25maWctbGFiZWwi
KTsKICAgICB0aGlzLl9yZWdleENoZWNrYm94ID0gdGhpcy5fcmVnZXhMYWJlbC5jcmVhdGVDaGls
ZCgiaW5wdXQiKTsKQEAgLTE3MCw2ICsxODMsMjIgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcg
PSBmdW5jdGlvbihjb250cm9sbGVyKQogICAgIHRoaXMuX3JlZ2V4Q2hlY2tib3guYWRkU3R5bGVD
bGFzcygic2VhcmNoLWNvbmZpZy1jaGVja2JveCIpOwogICAgIHRoaXMuX3JlZ2V4TGFiZWwuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJS
ZWd1bGFyIGV4cHJlc3Npb24iKSkpOwogICAgIAorICAgIHRoaXMuX3NlYXJjaFN0YXR1c0JhckVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9zZWFyY2hT
dGF0dXNCYXJFbGVtZW50LmNsYXNzTmFtZSA9ICJzZWFyY2gtc3RhdHVzLWJhci1pdGVtIjsKKyAg
ICB0aGlzLl9zZWFyY2hNZXNzYWdlRWxlbWVudCA9IHRoaXMuX3NlYXJjaFN0YXR1c0JhckVsZW1l
bnQuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgIHRoaXMuX3NlYXJjaE1lc3NhZ2VFbGVtZW50LmNs
YXNzTmFtZSA9ICJzZWFyY2gtc3RhdHVzLWJhci1tZXNzYWdlIjsKKyAgICB0aGlzLl9zZWFyY2hQ
cm9ncmVzc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcm9ncmVzcyIpOworICAg
IHRoaXMuX3NlYXJjaFByb2dyZXNzRWxlbWVudC5jbGFzc05hbWUgPSAic2VhcmNoLXN0YXR1cy1i
YXItcHJvZ3Jlc3MiOworICAgIAorICAgIHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVtID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fc2VhcmNoU3RvcEJ1dHRvbkl0
ZW0uY2xhc3NOYW1lID0gInNlYXJjaC1zdGF0dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0iOworICAg
IHRoaXMuX3NlYXJjaFN0b3BTdGF0dXNCYXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1
c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Agc2VhcmNoIiksICJzZWFyY2gt
c3RhdHVzLWJhci1zdG9wLWJ1dHRvbiIpOworICAgIHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVt
LmFwcGVuZENoaWxkKHRoaXMuX3NlYXJjaFN0b3BTdGF0dXNCYXJCdXR0b24uZWxlbWVudCk7Cisg
ICAgdGhpcy5fc2VhcmNoU3RvcFN0YXR1c0JhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX3NlYXJjaFN0b3BCdXR0b25QcmVzc2VkLCB0aGlzKTsKKyAgICAKKyAgICB0aGlz
Ll9zZWFyY2hSZXN1bHRzTWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CisgICAgdGhpcy5fc2VhcmNoUmVzdWx0c01lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9
ICJzZWFyY2gtcmVzdWx0cy1zdGF0dXMtYmFyLW1lc3NhZ2UiOworCiAgICAgdGhpcy5fbG9hZCgp
OwogfQogCkBAIC0xNzgsNiArMjA3LDIyIEBAIFdlYkluc3BlY3Rvci5TZWFyY2hWaWV3Lm1heFF1
ZXJpZXNDb3VudCA9IDIwOwogCiBXZWJJbnNwZWN0b3IuU2VhcmNoVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgLyoqCisgICAgICogQHR5cGUge0FycmF5LjxFbGVtZW50Pn0KKyAgICAgKi8KKyAgICBn
ZXQgc3RhdHVzQmFySXRlbXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFt0aGlzLl9zZWFyY2hT
dGF0dXNCYXJFbGVtZW50XTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHR5cGUge0VsZW1l
bnR9CisgICAgICovCisgICAgZ2V0IGNvdW50ZXJFbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9zZWFyY2hSZXN1bHRzTWVzc2FnZUVsZW1lbnQ7CisgICAgfSwKKworICAgIC8q
KgogICAgICAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU2VhcmNoQ29uZmlnfQogICAgICAqLwogICAg
IGdldCBzZWFyY2hDb25maWcoKQpAQCAtMTk0LDI5ICsyMzksODcgQEAgV2ViSW5zcGVjdG9yLlNl
YXJjaFZpZXcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNldCByZXN1bHRzUGFuZShyZXN1
bHRzUGFuZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CisgICAgICAgIHRoaXMucmVzZXRSZXN1bHRzKCk7CiAgICAgICAgIHRoaXMu
X3NlYXJjaFJlc3VsdHNFbGVtZW50LmFwcGVuZENoaWxkKHJlc3VsdHNQYW5lLmVsZW1lbnQpOwog
ICAgIH0sCiAgICAgCi0gICAgc2VhcmNoU3RhcnRlZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSB0b3RhbFNlYXJjaFJlc3VsdHNDb3VudAorICAgICAqLworICAg
IHNlYXJjaFN0YXJ0ZWQ6IGZ1bmN0aW9uKHRvdGFsU2VhcmNoUmVzdWx0c0NvdW50KQogICAgIHsK
LSAgICAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgYmV0dGVyIFVJLgotICAgICAgICB2YXIgc2Vh
cmNoaW5nVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2VhcmNoaW5nLi4uIikpCi0gICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHNFbGVtZW50
LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHRoaXMucmVzZXRSZXN1bHRzKCk7CisgICAgICAg
IHRoaXMuX3Jlc2V0Q291bnRlcnMoKTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuX3RvdGFsU2Vh
cmNoUmVzdWx0c0NvdW50ID0gdG90YWxTZWFyY2hSZXN1bHRzQ291bnQ7CisKKyAgICAgICAgdGhp
cy5fc2VhcmNoTWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNlYXJjaGluZy4uLiIpOworICAgICAgICB0aGlzLl9zZWFyY2hTdGF0dXNCYXJFbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMuX3NlYXJjaFByb2dyZXNzRWxlbWVudCk7CisgICAgICAgIHRoaXMu
X3NlYXJjaFN0YXR1c0JhckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2VhcmNoU3RvcEJ1dHRv
bkl0ZW0pOworICAgICAgICB0aGlzLl91cGRhdGVTZWFyY2hQcm9ncmVzcygpOworICAgICAgICAK
KyAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoUmVzdWx0c01lc3NhZ2UoKTsKKyAgICAgICAgCisg
ICAgICAgIHZhciBzZWFyY2hpbmdWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2hpbmcuLi4iKSk7CiAgICAgICAgIHNlYXJjaGluZ1Zp
ZXcuc2hvdyh0aGlzLl9zZWFyY2hSZXN1bHRzRWxlbWVudCk7CiAgICAgfSwKIAotICAgIG5vdGhp
bmdGb3VuZDogZnVuY3Rpb24oKQorICAgIF91cGRhdGVTZWFyY2hSZXN1bHRzTWVzc2FnZTogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaE1hdGNoZXNDb3VudCAmJiB0
aGlzLl9zZWFyY2hSZXN1bHRzQ291bnQpCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRz
TWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZvdW5k
ICVkIG1hdGNoZXMgaW4gJWQgZmlsZXMuIiwgdGhpcy5fc2VhcmNoTWF0Y2hlc0NvdW50LCB0aGlz
Ll9ub25FbXB0eVNlYXJjaFJlc3VsdHNDb3VudCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMuX3NlYXJjaFJlc3VsdHNNZXNzYWdlRWxlbWVudC50ZXh0Q29udGVudCA9ICIiOworICAg
IH0sCisKKyAgICBfdXBkYXRlU2VhcmNoUHJvZ3Jlc3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX3NlYXJjaFByb2dyZXNzRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIHRoaXMu
X3RvdGFsU2VhcmNoUmVzdWx0c0NvdW50KTsKKyAgICAgICAgdGhpcy5fc2VhcmNoUHJvZ3Jlc3NF
bGVtZW50LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB0aGlzLl9zZWFyY2hSZXN1bHRzQ291bnQpOwor
ICAgIH0sCisKKyAgICByZXNldFJlc3VsdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8v
IEZJWE1FOiBUaGlzIG5lZWRzIGJldHRlciBVSS4KLSAgICAgICAgdmFyIG5vdEZvdW5kVmlldyA9
IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm90aGlu
ZyBmb3VuZCIpKQogICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRzRWxlbWVudC5yZW1vdmVDaGls
ZHJlbigpOworICAgIH0sCisKKyAgICBfcmVzZXRDb3VudGVyczogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdGhpcy5fc2VhcmNoTWF0Y2hlc0NvdW50ID0gMDsKKyAgICAgICAgdGhpcy5fc2Vh
cmNoUmVzdWx0c0NvdW50ID0gMDsKKyAgICAgICAgdGhpcy5fbm9uRW1wdHlTZWFyY2hSZXN1bHRz
Q291bnQgPSAwOworICAgIH0sCisKKyAgICBub3RoaW5nRm91bmQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMucmVzZXRSZXN1bHRzKCk7CisKKyAgICAgICAgdmFyIG5vdEZvdW5kVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8g
bWF0Y2hlcyBmb3VuZC4iKSk7CiAgICAgICAgIG5vdEZvdW5kVmlldy5zaG93KHRoaXMuX3NlYXJj
aFJlc3VsdHNFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0c01lc3NhZ2VFbGVt
ZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBtYXRjaGVzIGZvdW5k
LiIpOwogICAgIH0sCiAKLSAgICBzZWFyY2hGaW5pc2hlZDogZnVuY3Rpb24oKQorICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZWFyY2hSZXN1bHQKKyAgICAgKi8KKyAgICBhZGRTZWFy
Y2hSZXN1bHQ6IGZ1bmN0aW9uKHNlYXJjaFJlc3VsdCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBhZGQgbWVzc2FnZSB0byBkcmF3ZXIgc3RhdHVzIGJhcgorICAgICAgICB0aGlzLl9zZWFyY2hN
YXRjaGVzQ291bnQgKz0gc2VhcmNoUmVzdWx0LnNlYXJjaE1hdGNoZXMubGVuZ3RoOworICAgICAg
ICB0aGlzLl9zZWFyY2hSZXN1bHRzQ291bnQrKzsKKyAgICAgICAgaWYgKHNlYXJjaFJlc3VsdC5z
ZWFyY2hNYXRjaGVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX25vbkVtcHR5U2VhcmNoUmVz
dWx0c0NvdW50Kys7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlYXJjaFJlc3VsdHNNZXNzYWdlKCk7
CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlYXJjaFByb2dyZXNzKCk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmluaXNoZWQKKyAgICAgKi8KKyAgICBzZWFyY2hG
aW5pc2hlZDogZnVuY3Rpb24oZmluaXNoZWQpCisgICAgeworICAgICAgICB0aGlzLl9zZWFyY2hN
ZXNzYWdlRWxlbWVudC50ZXh0Q29udGVudCA9IGZpbmlzaGVkID8gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTZWFyY2ggZmluaXNoZWQuIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBp
bnRlcnJ1cHRlZC4iKTsKKyAgICAgICAgdGhpcy5fc2VhcmNoU3RhdHVzQmFyRWxlbWVudC5yZW1v
dmVDaGlsZCh0aGlzLl9zZWFyY2hQcm9ncmVzc0VsZW1lbnQpOworICAgICAgICB0aGlzLl9zZWFy
Y2hTdGF0dXNCYXJFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3NlYXJjaFN0b3BCdXR0b25JdGVt
KTsKICAgICB9LAogCiAgICAgZm9jdXM6IGZ1bmN0aW9uKCkKQEAgLTI1OCw2ICszNjEsMTIgQEAg
V2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWdl
eENoZWNrYm94LmNoZWNrZWQgPSBzZWFyY2hDb25maWcuaXNSZWdleDsKICAgICB9LAogICAgIAor
ICAgIF9zZWFyY2hTdG9wQnV0dG9uUHJlc3NlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dGhpcy5fY29udHJvbGxlci5zdG9wU2VhcmNoKCk7CisgICAgICAgIHRoaXMuZm9jdXMoKTsKKyAg
ICB9LAorICAgIAogICAgIF9vbkFjdGlvbjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhp
cy5fc2F2ZSgpOwpAQCAtMjkwLDYgKzM5OSw4IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTY29wZSA9
IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5TZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2VhcmNoQ29uZmlnfSBzZWFyY2hDb25m
aWcKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKE9iamVjdCl9IHNlYXJjaFJlc3VsdENhbGxiYWNr
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihib29sZWFuKX0gc2VhcmNoRmluaXNoZWRDYWxsYmFj
awogICAgICAqLwogICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHNlYXJjaENvbmZpZywgc2Vh
cmNoUmVzdWx0Q2FsbGJhY2ssIHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2spIHsgfSwKIApAQCAtMzQy
LDEwICs0NTMsMTYgQEAgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lID0g
ZnVuY3Rpb24oc2VhcmNoQ29uZmlnKQogICAgIAogICAgIHRoaXMuX3RyZWVPdXRsaW5lRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CiAgICAgdGhpcy5fdHJlZU91dGxpbmVF
bGVtZW50LmNsYXNzTmFtZSA9ICJvdXRsaW5lLWRpc2Nsb3N1cmUiOworICAgIHRoaXMuX3RyZWVP
dXRsaW5lRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzZWFyY2gtcmVzdWx0cy1vdXRsaW5lLWRpc2Ns
b3N1cmUiKTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdHJlZU91dGxpbmVF
bGVtZW50KTsKICAgICB0aGlzLl90cmVlT3V0bGluZSA9IG5ldyBUcmVlT3V0bGluZSh0aGlzLl90
cmVlT3V0bGluZUVsZW1lbnQpOworICAgIAorICAgIHRoaXMuX21hdGNoZXNFeHBhbmRlZENvdW50
ID0gMDsKIH0KIAorV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLm1hdGNo
ZXNFeHBhbmRlZEJ5RGVmYXVsdENvdW50ID0gMjA7CitXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2Vh
cmNoUmVzdWx0c1BhbmUuZmlsZU1hdGNoZXNTaG93bkF0T25jZSA9IDIwOworCiBXZWJJbnNwZWN0
b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlID0gewogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7T2JqZWN0fSBmaWxlCkBAIC0zNTQsMTMgKzQ3MSwxMyBAQCBXZWJJbnNwZWN0
b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlID0gewogICAgICAqIEByZXR1
cm4ge0VsZW1lbnR9CiAgICAgICovCiAgICAgY3JlYXRlQW5jaG9yOiBmdW5jdGlvbihmaWxlLCBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpIHsgfSwKLSAgICAKKwogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7T2JqZWN0fSBmaWxlCiAgICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwogICAg
IGZpbGVOYW1lOiBmdW5jdGlvbihmaWxlKSB7IH0sCi0gICAgCisKICAgICAvKioKICAgICAgKiBA
cGFyYW0ge09iamVjdH0gc2VhcmNoUmVzdWx0CiAgICAgICovCkBAIC0zNzAsMTIgKzQ4Nyw0MyBA
QCBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgZmlsZSA9IHNlYXJjaFJlc3VsdC5maWxlOwogICAgICAgICB2YXIgZmlsZU5h
bWUgPSB0aGlzLmZpbGVOYW1lKGZpbGUpOwogICAgICAgICB2YXIgc2VhcmNoTWF0Y2hlcyA9IHNl
YXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIEV4cGFu
ZCBmaXJzdCBmaWxlIHdpdGggbWF0Y2hlcyBvbmx5LgotICAgICAgICB2YXIgZmlsZVRyZWVFbGVt
ZW50ID0gdGhpcy5fYWRkRmlsZVRyZWVFbGVtZW50KGZpbGVOYW1lLCBzZWFyY2hNYXRjaGVzLmxl
bmd0aCwgdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGggPT09IDEpOworCisgICAgICAgIHZhciBm
aWxlVHJlZUVsZW1lbnQgPSB0aGlzLl9hZGRGaWxlVHJlZUVsZW1lbnQoZmlsZU5hbWUsIHNlYXJj
aE1hdGNoZXMubGVuZ3RoLCB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCAtIDEpOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge09iamVjdH0gc2VhcmNoUmVzdWx0CisgICAgICog
QHBhcmFtIHtUcmVlRWxlbWVudH0gZmlsZVRyZWVFbGVtZW50CisgICAgICovCisgICAgX2ZpbGVU
cmVlRWxlbWVudEV4cGFuZGVkOiBmdW5jdGlvbihzZWFyY2hSZXN1bHQsIGZpbGVUcmVlRWxlbWVu
dCkKKyAgICB7CisgICAgICAgIGlmIChmaWxlVHJlZUVsZW1lbnQuX2luaXRpYWxpemVkKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgdmFyIHRvSW5kZXggPSBNYXRoLm1p
bihzZWFyY2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5sZW5ndGgsIFdlYkluc3BlY3Rvci5GaWxlQmFz
ZWRTZWFyY2hSZXN1bHRzUGFuZS5maWxlTWF0Y2hlc1Nob3duQXRPbmNlKTsKKyAgICAgICAgaWYg
KHRvSW5kZXggPCBzZWFyY2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgIHRoaXMuX2FwcGVuZFNlYXJjaE1hdGNoZXMoZmlsZVRyZWVFbGVtZW50LCBzZWFyY2hSZXN1
bHQsIDAsIHRvSW5kZXggLSAxKTsKKyAgICAgICAgICAgIHRoaXMuX2FwcGVuZFNob3dNb3JlTWF0
Y2hlc0VsZW1lbnQoZmlsZVRyZWVFbGVtZW50LCBzZWFyY2hSZXN1bHQsIHRvSW5kZXggLSAxKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLl9hcHBlbmRTZWFyY2hNYXRjaGVzKGZp
bGVUcmVlRWxlbWVudCwgc2VhcmNoUmVzdWx0LCAwLCB0b0luZGV4KTsKKyAgICAgICAgCisgICAg
ICAgIGZpbGVUcmVlRWxlbWVudC5faW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1RyZWVFbGVtZW50fSBmaWxlVHJlZUVsZW1lbnQKKyAgICAgKiBA
cGFyYW0ge09iamVjdH0gc2VhcmNoUmVzdWx0CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21J
bmRleAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b0luZGV4CisgICAgICovCisgICAgX2FwcGVu
ZFNlYXJjaE1hdGNoZXM6IGZ1bmN0aW9uKGZpbGVUcmVlRWxlbWVudCwgc2VhcmNoUmVzdWx0LCBm
cm9tSW5kZXgsIHRvSW5kZXgpCisgICAgeworICAgICAgICB2YXIgZmlsZSA9IHNlYXJjaFJlc3Vs
dC5maWxlOworICAgICAgICB2YXIgZmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lKGZpbGUpOworICAg
ICAgICB2YXIgc2VhcmNoTWF0Y2hlcyA9IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzOwogICAg
ICAgICAKICAgICAgICAgdmFyIHJlZ2V4ID0gY3JlYXRlU2VhcmNoUmVnZXgodGhpcy5fc2VhcmNo
Q29uZmlnLnF1ZXJ5LCAhdGhpcy5fc2VhcmNoQ29uZmlnLmlnbm9yZUNhc2UsIHRoaXMuX3NlYXJj
aENvbmZpZy5pc1JlZ2V4KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWFyY2hNYXRj
aGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGZvciAodmFyIGkgPSBmcm9tSW5kZXg7IGkgPCB0
b0luZGV4OyArK2kpIHsKICAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gc2VhcmNoTWF0Y2hl
c1tpXS5saW5lTnVtYmVyOwogICAgICAgICAgICAgdmFyIGxpbmVDb250ZW50ID0gc2VhcmNoTWF0
Y2hlc1tpXS5saW5lQ29udGVudDsKICAgICAgICAgICAgIHZhciBtYXRjaFJhbmdlcyA9IHRoaXMu
X3JlZ2V4TWF0Y2hSYW5nZXMobGluZUNvbnRlbnQsIHJlZ2V4KTsKQEAgLTM5OCwxNiArNTQ2LDQy
IEBAIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBzZWFyY2hNYXRjaEVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENo
aWxkKGFuY2hvcik7CiAgICAgICAgIH0KICAgICB9LAotICAgICAgICAKKworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7VHJlZUVsZW1lbnR9IGZpbGVUcmVlRWxlbWVudAorICAgICAqIEBwYXJhbSB7
T2JqZWN0fSBzZWFyY2hSZXN1bHQKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRNYXRjaElu
ZGV4CisgICAgICovCisgICAgX2FwcGVuZFNob3dNb3JlTWF0Y2hlc0VsZW1lbnQ6IGZ1bmN0aW9u
KGZpbGVUcmVlRWxlbWVudCwgc2VhcmNoUmVzdWx0LCBzdGFydE1hdGNoSW5kZXgpCisgICAgewor
ICAgICAgICB2YXIgbWF0Y2hlc0xlZnRDb3VudCA9IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVz
Lmxlbmd0aCAtIHN0YXJ0TWF0Y2hJbmRleDsKKyAgICAgICAgdmFyIHNob3dNb3JlTWF0Y2hlc1Rl
eHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgYWxsIG1hdGNoZXMgKCVkIG1vcmUpLiIs
IG1hdGNoZXNMZWZ0Q291bnQpOworICAgICAgICB2YXIgc2hvd01vcmVNYXRjaGVzRWxlbWVudCA9
IG5ldyBUcmVlRWxlbWVudChzaG93TW9yZU1hdGNoZXNUZXh0LCBudWxsLCBmYWxzZSk7CisgICAg
ICAgIGZpbGVUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChzaG93TW9yZU1hdGNoZXNFbGVtZW50KTsK
KyAgICAgICAgc2hvd01vcmVNYXRjaGVzRWxlbWVudC5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVD
bGFzcygic2hvdy1tb3JlLW1hdGNoZXMiKTsKKyAgICAgICAgc2hvd01vcmVNYXRjaGVzRWxlbWVu
dC5vbnNlbGVjdCA9IHRoaXMuX3Nob3dNb3JlTWF0Y2hlc0VsZW1lbnRTZWxlY3RlZC5iaW5kKHRo
aXMsIHNlYXJjaFJlc3VsdCwgc3RhcnRNYXRjaEluZGV4KTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtPYmplY3R9IHNlYXJjaFJlc3VsdAorICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBzdGFydE1hdGNoSW5kZXgKKyAgICAgKiBAcGFyYW0ge1RyZWVFbGVtZW50fSBzaG93TW9yZU1h
dGNoZXNFbGVtZW50CisgICAgICovCisgICAgX3Nob3dNb3JlTWF0Y2hlc0VsZW1lbnRTZWxlY3Rl
ZDogZnVuY3Rpb24oc2VhcmNoUmVzdWx0LCBzdGFydE1hdGNoSW5kZXgsIHNob3dNb3JlTWF0Y2hl
c0VsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgZmlsZVRyZWVFbGVtZW50ID0gc2hvd01vcmVN
YXRjaGVzRWxlbWVudC5wYXJlbnQ7CisgICAgICAgIGZpbGVUcmVlRWxlbWVudC5yZW1vdmVDaGls
ZChzaG93TW9yZU1hdGNoZXNFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fYXBwZW5kU2VhcmNoTWF0
Y2hlcyhmaWxlVHJlZUVsZW1lbnQsIHNlYXJjaFJlc3VsdCwgc3RhcnRNYXRjaEluZGV4LCBzZWFy
Y2hSZXN1bHQuc2VhcmNoTWF0Y2hlcy5sZW5ndGgpOworICAgIH0sCisKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWUKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc2VhcmNo
TWF0Y2hlc0NvdW50Ci0gICAgICogQHBhcmFtIHtib29sZWFufSBleHBhbmRlZAorICAgICAqIEBw
YXJhbSB7bnVtYmVyfSBzZWFyY2hSZXN1bHRJbmRleAogICAgICAqLwotICAgIF9hZGRGaWxlVHJl
ZUVsZW1lbnQ6IGZ1bmN0aW9uKGZpbGVOYW1lLCBzZWFyY2hNYXRjaGVzQ291bnQsIGV4cGFuZGVk
KQorICAgIF9hZGRGaWxlVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKGZpbGVOYW1lLCBzZWFyY2hNYXRj
aGVzQ291bnQsIHNlYXJjaFJlc3VsdEluZGV4KQogICAgIHsKICAgICAgICAgdmFyIGZpbGVUcmVl
RWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudCgiIiwgbnVsbCwgdHJ1ZSk7Ci0gICAgICAgIGZpbGVU
cmVlRWxlbWVudC5leHBhbmRlZCA9IGV4cGFuZGVkOwogICAgICAgICBmaWxlVHJlZUVsZW1lbnQu
dG9nZ2xlT25DbGljayA9IHRydWU7CiAgICAgICAgIGZpbGVUcmVlRWxlbWVudC5zZWxlY3RhYmxl
ID0gZmFsc2U7CiAKQEAgLTQyOCw2ICs2MDIsMTQgQEAgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNl
YXJjaFJlc3VsdHNQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgCiAgICAgICAgIGZpbGVUcmVl
RWxlbWVudC5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQobWF0Y2hlc0NvdW50U3Bhbik7CiAg
ICAgICAgIAorICAgICAgICB2YXIgc2VhcmNoUmVzdWx0ID0gdGhpcy5fc2VhcmNoUmVzdWx0c1tz
ZWFyY2hSZXN1bHRJbmRleF07CisgICAgICAgIGZpbGVUcmVlRWxlbWVudC5vbmV4cGFuZCA9IHRo
aXMuX2ZpbGVUcmVlRWxlbWVudEV4cGFuZGVkLmJpbmQodGhpcywgc2VhcmNoUmVzdWx0KTsKKwor
ICAgICAgICAvLyBFeHBhbmQgdW50aWwgYXQgbGVhc3QgY2VydGFpbiBhbW91bnQgb2YgbWF0Y2hl
cyBpcyBleHBhbmRlZC4KKyAgICAgICAgaWYgKHRoaXMuX21hdGNoZXNFeHBhbmRlZENvdW50IDwg
V2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLm1hdGNoZXNFeHBhbmRlZEJ5
RGVmYXVsdENvdW50KQorICAgICAgICAgICAgZmlsZVRyZWVFbGVtZW50LmV4cGFuZCgpOworICAg
ICAgICB0aGlzLl9tYXRjaGVzRXhwYW5kZWRDb3VudCArPSBzZWFyY2hSZXN1bHQuc2VhcmNoTWF0
Y2hlcy5sZW5ndGg7CisKICAgICAgICAgcmV0dXJuIGZpbGVUcmVlRWxlbWVudDsgCiAgICAgfSwK
IApAQCAtNDQyLDcgKzYyNCw3IEBAIFdlYkluc3BlY3Rvci5GaWxlQmFzZWRTZWFyY2hSZXN1bHRz
UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBtYXRjaDsKICAgICAgICAgdmFyIG9mZnNl
dCA9IDA7CiAgICAgICAgIHZhciBtYXRjaFJhbmdlcyA9IFtdOwotICAgICAgICB3aGlsZSAobWF0
Y2ggPSByZWdleC5leGVjKGxpbmVDb250ZW50KSkKKyAgICAgICAgd2hpbGUgKChyZWdleC5sYXN0
SW5kZXggPCBsaW5lQ29udGVudC5sZW5ndGgpICYmIChtYXRjaCA9IHJlZ2V4LmV4ZWMobGluZUNv
bnRlbnQpKSkKICAgICAgICAgICAgIG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmlu
ZGV4LCBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCB9KTsKICAgICAgICAgCiAgICAgICAgIHJldHVy
biBtYXRjaFJhbmdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRHJhd2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3
ZXIuanMKaW5kZXggYzgzNjdjZmY2ODRhMWU5YWJmM2I5OWUyNTA4NGRiNDRiNjc0ZTM0NC4uMjIx
YWRkMGVkODNjM2Y5YjE4ZjFkODA3ODEwZmUyZjBiN2IyMjVmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKQEAgLTc3LDggKzc3LDEyIEBAIFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBkcmF3ZXJXYXNWaXNp
YmxlID0gdGhpcy52aXNpYmxlOwogCi0gICAgICAgIGlmICh0aGlzLl92aWV3KQorICAgICAgICBp
ZiAodGhpcy5fdmlldykgeworICAgICAgICAgICAgdGhpcy5fdmlldy5oaWRlKCk7CiAgICAgICAg
ICAgICB0aGlzLl9kcmF3ZXJDb250ZW50c0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAg
ICAgICAgIGlmICh0aGlzLl92aWV3LmNvdW50ZXJFbGVtZW50KQorICAgICAgICAgICAgICAgIHRo
aXMuX3ZpZXcuY291bnRlckVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl92aWV3
LmNvdW50ZXJFbGVtZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3ZpZXcgPSB2aWV3
OwogCkBAIC04Nyw2ICs5MSw5IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewog
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXR1c0Jhckl0ZW1zLmxlbmd0aDsgKytpKQog
ICAgICAgICAgICAgdGhpcy5fdmlld1N0YXR1c0Jhci5hcHBlbmRDaGlsZChzdGF0dXNCYXJJdGVt
c1tpXSk7CiAKKyAgICAgICAgaWYgKHRoaXMuX3ZpZXcuY291bnRlckVsZW1lbnQpCisgICAgICAg
ICAgICB0aGlzLl9jb3VudGVycy5pbnNlcnRCZWZvcmUodGhpcy5fdmlldy5jb3VudGVyRWxlbWVu
dCwgdGhpcy5fY291bnRlcnMuZmlyc3RDaGlsZCk7CisKICAgICAgICAgZG9jdW1lbnQuYm9keS5h
ZGRTdHlsZUNsYXNzKCJkcmF3ZXItdmlzaWJsZSIpOwogICAgICAgICB0aGlzLl92aWV3LnNob3co
dGhpcy5fZHJhd2VyQ29udGVudHNFbGVtZW50KTsKIApAQCAtMTEyLDcgKzExOSw3IEBAIFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fY3VycmVudFBh
bmVsQ291bnRlcnMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9jdXJyZW50UGFuZWxDb3Vu
dGVycyk7CiAgICAgICAgICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMu
X2N1cnJlbnRQYW5lbENvdW50ZXJzKTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBm
dW5jdGlvbiBhbmltYXRpb25GaW5pc2hlZCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5jdXJyZW50UGFuZWwoKS5zdGF0dXNCYXJSZXNpemVkKCk7CkBAIC0xNjcsNiArMTc0
LDkgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlz
Ll9tYWluU3RhdHVzQmFyLmluc2VydEJlZm9yZShhbmNob3JlZEl0ZW1zLCB0aGlzLl9tYWluU3Rh
dHVzQmFyLmZpcnN0Q2hpbGQpOwogICAgICAgICAgICAgdGhpcy5fbWFpblN0YXR1c0Jhci5zdHls
ZS5yZW1vdmVQcm9wZXJ0eSgicGFkZGluZy1sZWZ0Iik7CiAKKyAgICAgICAgICAgIGlmICh0aGlz
Ll92aWV3LmNvdW50ZXJFbGVtZW50KQorICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXcuY291bnRl
ckVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl92aWV3LmNvdW50ZXJFbGVtZW50
KTsKKwogICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fY3VycmVudFBhbmVsQ291bnRlcnMuc2V0QXR0cmlidXRlKCJzdHls
ZSIsIG51bGwpOwogICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYW5lbENvdW50ZXJzLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY3VycmVudFBhbmVsQ291bnRlcnMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvc3RhdHVzYmFy
QnV0dG9uR2x5cGhzLnBuZyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1h
Z2VzL3N0YXR1c2JhckJ1dHRvbkdseXBocy5wbmcKaW5kZXggYzY4ZTkzNTc2NTQ5M2QxYjU0MDRl
NzE5NWVmNTJkZDBkMTEzZTQ2MS4uMzYzNGY0OTVjODFlNGE2MTViZTA0Mzg5OGIwMjE4NGZlOGJk
M2FjOSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAzNDY3CnpjbVY7NjRSckYpRiNqO0hn
JGZBKDAwMDAwYDlyJlpsYTJ9PmUrbV4yMnNtPmU9RypgUDRZNWY/S34jOSE/VldqJAp6OTkxMzFL
UnVjM2tafG1CcEtfUlJZZWIwKU1KWGYmbCVPT2MwcCYwZmx0V2BlQ3tWem8jQmkhbkFPdyY9aUdk
XyYKejNRPzFTQV96JTExWjBSTDBeeUpaSWZ+KjZBekAqfFkkbnRHQHFYPlR2Xl9oJHlZS1ooQ2Nq
VkJ0TGRLWm5iLWFMCnpmNCVTZnlgejUqNmglPUtNTnQkKlE0fmN7NmglPUtNTnlpTkskRDxQdjty
ZjVBK287JGNvMH5sTnN8ZU8wXmJJWAp6MChKd3wwIzVAczBrYSRJU30mNVk2VlROSlgrSUc3NjBv
aThob1UyfDAxd09sQ2RDe3BGYEF0Zzs3N25KZEMrIVAKejF6WmZ8UmlDXlFfN0tpKnB6R1dqN3oq
cUZZfHx3OWZCI29OQl9aOFEhMSM9ZXMmanozSyE9MzZAP0c2Qjw2RlMtCnpPPHcyKjApTGhKP0Vx
IzBYR0BwYGQ/ZCYyQEdPRlpmS2s4PSEyUTdFQF9CPU5LZ2VVOytXYHhKVk81Un5sakdaWQp6ZWlq
YntyLSlVeDhTcWBKQWlteHBMaCV5dGd0Zm9ZcTJMMnRSLSs9Z0VKTnsmTEtpUnIkYXpaRnkrckop
ZjVrc24KeiZoZ0dEVjQoPHNlRX5DcHQoI047RlNoUDtHMCt3fXpDVztCaiRpQ2FmUFZuSVRPO0dZ
RTlWWExhMTlIcklFRSNOCnpVdnpCP0dKWkImU0Ate08xTFQhRyNyaWA4ZE1MMUNLZGhyOTBsZDZN
S0RheiVAdn12NnE5K2xZbjxEPFh6OH4oRAp6SncoMTlfPVVyYC1jRTdETiNRLXxCWFVKNmZBQnU9
QUBHI01AbzBodz9ndzxyeHZkVzQteUpCJT95KDNRMmtheEMKek55bTQwe09vTyF2cWlBbF9nUF9F
THl1K0A9U15hTCQ5V3VoUjxfUnRKXiY3UCt+bSlpNkpwfUdOSjZ4S2kzRDImCnprTVlwI088VnJH
SEhTeDg/ZnBxJj9NMEZQMV44NWtlTGMwcGRXUngteWsrNkdOZz1CeWYtfmlxZjIlSG1KJVFIfQp6
I0h8b0p1YUY+dXVnZFJ6aXJeYEE3UWdlWWAmfG5obDBscXBRclFpT0olPz9pTEpHdHgtUGNpZk5S
anx2U3RJe24Kej5GfEVmanM1cE52RmsjPHYoSzRXMmtYemY2fVY2JElNQDJfMGlmTXV8NitlYUNv
c21yYnpDNi1jYX5LRXMpXnVQCnpeOEUhNDt3QGxDSHs8dHBvSyotcWV9RjR1Nl9nJFJCfjJKI0F7
Zj9Ee0VtK2BlVUhyYCZoY1g1OTFJKzNeKko3bAp6PT9ESVZHKFg+JD9QZyROOXxVbE08Nz8+WE1Z
LT9ybEBRVElXWXkwWEl0YUA9MncrYmw9dSFZcnNCJXlII0dYZS0Kemx9czNndVglVmpyXmV6cXI0
OXZpbkhCJSg4TzZEKVNicWJwe1ZqbUtmejJpQzJNbk5qZWBzMChibEZrNHdRdSQ5CnoxOGFld0ly
eUl5QEBlPHd0T21YVUpPJiZGKyNAMSpjPGVYKjtVMkw3PDN0JjduKUZMdkM7UiYqb2NweD1rODJC
WAp6WVY1bn4+Ujx1ZF9uWCFIemMrdmJGI1hkPDAlZ255P3t2KWsjUD51NSpMeVNzMElzZWYwI2Bl
Wnp1cWtMYlooIVQKeno+Xlk9T19Ffl5Kd0V0KWZBcy1JZ0NMeiF5SG12eVRxMSh4YXVCNF5gdjZh
XmIwMSo2JFlWeCNIPFNMcG9hQndvCnp0LVJhbnNUXmMyZmE3QlNlVDBOK2B4VzNjJExaYSRnQ0pZ
V2J9ODBCPCRee1QxJX5jdkZ2fkdoVWc5RlMqb3hvdgp6RyNES1B0fVA1JTYyJihKY3ZHellDNzF5
KUc3YFduKiNSQHhHKT52N05JTGtLZX47U20oX3BTPkAqNGstYS1TYmIKemxXViskKjtYSUxKbHFk
RGZYKU1LTDs7TVIlbF5QODZWN1FDM29zSkYyVTNYTkVYeFhaTyshd0U/dlUte1hsQDFwCnp5OHlx
Jnl6PzdSezU1aUhteFNpMj4rOUltLXZudFMwcXA2VikrUT9oSXtePiVBYnhXKWRpS3M8ZztRcTs+
MW59Pwp6XzY/TEtaIyYoY0VBVEkzVVZCOyV0aSR2SnVHMXVJVEc5JGA4X25TJEJlM3B5VGl7STBv
WDV+UXo2IVYtX195WUwKemxrcFpFZS11U2dsI1BnP25ncDheMHJnbn1XJnw2KWhCWlBUaDArJlh1
M21OayN2e3JjJSZSaSVIRj13czA+JWVvCnpKSHtpKjNtRVMrT0U4V2lkQHY1PGIhY1JqPDg3RkFE
eTlONj5YYUB5JXNhNylCaWheQmJEfm8lN31zTmlCQGBfRQp6RHIzQStieFFhYzxGJmg3RUVYJFMy
O2RnTHBEezF1NUFZeTxmQmt2Y2VOJWVoZDMoQ08pR1lWI3w5YiNxRzREV3MKem5HTSZ2ZUgtSGxW
WDBKdHVRP1hLLV49elE7SWBRRGdNZSR+R2RqPDsydXtaPWZlTFVURmVQXlVBJmd0QjlSOGclCno5
Nz96SWstTEZeR2BXJTFCQkhreSZ7YF4kIylNKG05KXt0ODA2YEVlM3hjM25DPX45KHluRnFEXzR9
P1kjOT1uWgp6ZT0rOEJ6O0tLdz00S01XJGp7ckBVUj45I2chOD50bWNYNERBQW9hIWxSZDw3Qj1C
UjV2eGljd3E4bEshYXVASmgKeismYWN4QkkxXm9yTkN6JCN7V2FpdlhITmNyUCY2MlVScGUwb1gt
OVNfJiN1Pj1qWGchdFp0aFhXWWhmPV9FNEB1CnpBNFclZWR3WFFAd1V4YHwxSXkqfCM3ZDx5SlNx
Tk1lPWZIO3BVK1JyPWt2PWpqIThPOyNiVCMjMy1FZyllamo0aQp6dXZxS3kwUigrflNUNld4NiVs
TCVNcV8qeE15e3w8I0pGTnw/VE8/JDszQiU2LXpHSHktXlh8Y2FtaCVye0wrWnYKeihqSj0wZVB6
NlM0aVRZd1FRfXheMnthPTdLNnl2MXtPOVJqYkxLWX5lfXIkK3kldz1nQGpEaW5VIWBtd2UqQGVy
Cno9ZWlRWGZnKnNka0B5OGNrVl9LNE5+SlFxVHJOK3s9a3BneU1PQFA+TylVWEA4ey1IdWlIRD9T
eWpKJDNlIXVzdQp6VEp6UT5Gfmk0SjV5M2BpVWJufUBaPmJibUE4d2RWbD5jN2EhQFVvZD1KNShn
YWdMREIraFBKWkwtT0RlKG5LY1YKenlheWQhIT9SLUxNRk1hMDErZlReX1QyUDY3K0oqYzg4LUND
YyZ9N1VgJTZWUSZxTGh5OG8lPjxJRm8hNUIhNn5ICnplXysxXnUkdVYyMGVsREpoX2dqJXpXSkMx
Zn0oeipUamFDWk1LQ0p7TlRxVktXbm00S0tBPWVhPF5kPHc+aTZnZQp6TVUxRTYwYVhNcmEqVm1j
VlZzSyt6TUJEQFZRcGlIOzU4bmFWKWxDMWQmR2BDQkYoSl9KVXs8dmREbz1YMX02YzMKel5DKkR6
V0ZTeG8hPzBiUlhJJVZ7PytBaCorSkExQlpsSWM4KGZoSjBUJGRFR3QxPDRVe3xUSDIrPlJMdXcq
VUtqCnorXm95bk5GcTIoTTleT1VBekJSRzRsXkNieVM+IShTN0FFaUJTRC1rI3ttQjFTXlQxPS1i
WHpNT0NXdD16UFlXJgp6ekg2ZD55Pi1Cb21oZ1VFd2h5dGEhSzNncUg3RlgqTyE2YHZlYisrc0Yj
eU8lMTBKIThFckBOS1Q3VEdfbjx2SDYKenE8czs8Xlc7SH5tUyl5VG41OEYyQyE5TTd4RD0obzhE
UDNKdjclPF5zbFpSQFVYWHNDRz9CVklVclFJPTN4UVc3CnppfWdUOClZeH47NnRPclQ3Sz9pclcr
fWAkbjEkekdsMWxGcFglKCUpMzxrUjdLS1khU2FCT21sPTRvRzxBZUM9Zwp6aSNvOEg8YFd2ZGFQ
P0xJWEdrQiFSZSFTb0UjUDEmajdoaiFtKUNBJHI0MnJxRGJgPG5nbTxofTglNG9ZNkx+I20KemFP
b1VOO0JLX2l7MjM5eXRtYStibW0taDJXVGJAMnVfb1UqT3V5VlhIZTlCNHZoXkY2JSlzPEZqKj5L
d3JvbnRzCnpqRFJUYXNESktHJE1ONWE4RThCSkdhN3hpZ3g5VD5TSkFgc3o4KjkxMHFOSTVMNEk/
K3Frc0hnNHVXNz1MTDZhaQp6K2JGTyh4MTZSLV5reCl6c2ZnTCpWd0ZzaD1GU3M2bkN1Z1B5UEN1
anQwc09+YWtIZk4tQnkkNTRhc1AwQj9EeCEKejJFfkZae1pKOWxJZ2FsXnhpN25LdVpgfmNlc1I4
djhKSnRgRiU3bnFIMjRFJVFKIWNhcHM5MlpsQzFGKlp3SUN5CnphKGNxP21vT3ZNRkU+I09YbiE0
MDNXQV8wUiZeS3owYnY7MClAQiQ0IVQqZE9JayFaTFFRJXFAOzUraVVOQH1eXgp6MGxOWiEkTWda
KDlxPX0qZlV7X3gwZyE2cSpPTFk2dkpXdC0tUl9zQlNYOHJ9QXRJUDFKcWdeYV8/WlRrYl94dH4K
ei1YaE93YUVGIXRIaU5CZ1VufDBHRFhvRWQ2MyE3SlNTaVB8bmlINiUwQ3BBJWdAM3pweCFtRn4z
QGVlfjF3bH1lCno1Q1VOc2hMdjB7d14kfWJjajkwZyUjTnw5I25HNnhVcno/ITt7UWopbndmZjhl
bzJMfDc1S0NXViVEdDBPdlgocgp6V0REezBEJWUhWjsjKD9LO2QkMmFZY2MoUjJVK0wpVnBxJnQ3
P1pgeWZiTT9Mbj1wZmQ7UHk/SnF9SVVBdkcyQ1cKeiVtdiZARVd5MlRfa1Q3fStVWUg2cl8xek8w
RCgzNmUxMk0qaU9eendyeEwpbCgqJXlEeUNkfTJJdXlLM3taK1c2CnppS1gjWjR6cD9rd0BCZVRK
Pmw0QlglK2JCZ0I/ZnJ5VEVaUFo9P3VnN1ZpUndSe0I/QlR8fVI7X0JTV1JKVHduUAp6QjZ0VUlu
I1hkTyl0ZXdLXnpCdStQTjF0O0VPenpCMCpzZ0A1QiQ8UFN3JFZYZXNUN1RlXjtYeyo2X0g1VntJ
TzwKemI0Q3FlVGFEWS0tPlJ7ajZ0R0d7KD50MWFRTDV3ZiolYFBUXy1WJUZGen1lKUF9VDxhT21k
ej4zVEZ0ZUVARjMrCnotV0QtYERuNiU0cGVXNXZOVmJraSErd1VXKTgjYkhCOHN3YzVjSUwyYDtI
P2l6R1dDczRfampWNylJTD4oUmF+dQp6a2NUO25La1lSPmc3RlJ2IyFMMjduIU9hSXZGWHBjeihF
UjhhNno7UChHdEA4PENgZjBJNGRMWlRXeUtvZFdZaDcKek5zNG5PWWNeSnRZP15vVXFHez19Ml55
YHNIcS1JQkY0QVJ4ckZFfCNJe3lEbFlCY1hKKFg2UWAlYGJweWcpTTlHCnozcTZYVDNaU0I+MEh6
a1d0aXxzSWBGdE1aZllBcGtmUXE2NVNYMWItN1FaRUFHdCNVQXMzOzk4ZmMyYik2MCtnYQp6ZT1u
MkdsJFFgUSFrcERLOHg9ckJAa21hU3BqWUF0Vz9gMWNMPG5gUTU9R2c+MVRnNGpYYTxHQHcqV2BU
eyRaRngKejElTVBxKkApQHdKaXhSfnpPMDBBVz04UW1pQ0skd2FfcylqMWlwYjtIdU9UXm12WVNC
P2tfKnJZXm9AWUElS208CnRVSnxsbUo3NVpDNGNlXkdOelJrYzQ7VUF6XyVFe0UqN1hjfHdVN1Yr
MDAyb3ZQREhMa1YxbDB8bUJSbzQKCmRlbHRhIDM0MjAKemNtVi1pNFdzaF5Gd1pjc2ckZkQoMFJJ
NjBwdU1NKWxhMn0+ZStkVys2ZEkhdCVeVXkjNFNgOFNLfiM5IT9WV2tCCno5N1A/K0tlTzRxQ0U8
OUZgO14wa1RPJiQqUD9TUGFLblk0QjYwa1VvMW0pMH01REZDVkQ2TWM+TXU4QU9mK1lyJAp6cGVh
TzYzV157aztTaThEa19kIUQ2NjdkfkU5QnQ4MztWTCFAc0l3RStaa3V5WnI8eWotQXNPO3M7LV5j
bmNiZjAKemY5ZH1BdWFFZ1BEMmsjZWlsUWlycTl9QEBEMmsjZWlsU3RZSyREPFB2OyFsNkErbzsk
Y288bCNOc3xnazBeYjZUCnoxTkgqZTBuWSVwMDwmQX1TfSY4WjhfPCkxdj55bjMzRHtCZ0woITJ9
ZmskUDNpKC16STcrSSRjXyN2PUw5PCZgKwp6MGhhQEwpaEYrU3lAWlFmPXNJQD9oNjF8KUo3Z3NQ
ZkJ5b2dCJjIlQDdAdnwrYnBiRko9I25zM3pIM0AkZD5jNDkKejxBclZAQEU1dD9FP15kTHpKeXU4
TXs/e2cmbXVTbzd6Tng2SlAxNH5wRXR8KmdGTUUpNlItZG5SXiN8RUlsaHpVCnpYWW5YLWhGRGN3
MHBHQy07dXxkQDZmWGwkU15GeTszTz5NPGJ0LX1AUXh2fV9eWipscG9UcWYlUHNGWlBmQmJYaAp6
OVBmKyo3SyN3cTdjZGpwS0JFRzd4cGtrNWZzV1ltZ01zQzh7QmxuTXtDKGlQSXZNe3hJZDduY1ln
a34jRilUcysKenFIOX1fXjBWMl95OG4rYEFnfUJ6KSptOSFMeEVsVVZJM3QyOzhrXzwhQnJgWHBE
bHRESiZFQWwySThPVmB7Nz5HCnpPWE00WHBGNTF9b2QjfD1EWkRSek02UEhEZV52dEAwIzhkRWsw
KiVXS3xyXmgrd0wmX3lANnV2OSplKzl6eWIxXgp6YmJOMmUmKXlhfVRMZiE7cEJBPD9ebXN+Zi1Z
Vjkyb0Z7P2pXY3h6azFLPz1LUDUhaHdCX0A4MEJ0LWlebFZGU0IKejJfQmxnamgyNkomRVpqMmR3
LUh4ZHJfbysyMG9ReVVyKVdUIUohREFZKzFNK1FwanFGOzdtRUBmMnZEaFUqUG93CnphVnh+bUQ8
cHtFWXd+LWFCNnZvViNxVlA0ZSVBcDxxITRGXlJDWXNSJnRWNnRrT0h3djR8TFFXa3xjb0YpWEQk
WAp6SUsxQnJXQit8WD83RVFlPn5raEkhVFIlVjF1bTJiRjB7VVQyPFlfS3p1Mkc5NFVCUGM5aGI9
ZW9vNXcqU3xXSSEKemUxRDA5Y25nQCgmRz56dFdFRnhnZjhncF4xIWFlU05mWEFHMiE+NCp6bXNF
NC14RWBhYkclcU1oWGNvMmVVNjc/CnpgaGg8byZDa2Bjb2RxV0xLPiNOPnpKeyglREVEMnk1K2Je
WXdFRm8lMlZ0MjkwcWppI1Q/KmhTSFNYenYqekBTQgp6a3FNKmxING8zYCV2Yzt9R0ApUUZ2KkpI
SHI4eEgjPnU7ZDd6WVZaSXUoZ0RQZkJ8SE9mNk5NPyVafCRKZVhET0QKelNPQCZuIVQrcH5QckVO
PzRlJUE8M0UoSztKYHVzQVc1NE1TX2xYNDxDKDN9K3Erand6KipgR2grLUt4fVR3OCFzCnpXOGRB
XzFQam88LT9abGN5JEt3Rz43UENwQ31UIT1yKEA8UHpBcXhVIUp7RG5hOXRle3hYeTk+JjFSdmVi
TmtjOwp6b3xKSEdre255O0B4ZUUlZS1BSmsxbkhMQW9mPytsNSltWXFnQ01RbTJZNjxhYHY5OW85
eTdZVG1HdC1KQnlWaE8Kejw9dThxPHNmWVY5MmZpVlY8Z250dUs7SGBQVmJmLTFsZUE7T1JAZWI3
cXJTS0ZqU3woRVhQY0ZpSHFRM0R9TEEwCnpWMDA5P3pBJlVvNnlGZndFd1RFU1U8U1pRTmRWSmk3
dENES00jXjRBKCFzfWtmN0YocjI2SmBCWXkzYVJlU1JjTwp6dUpJQ1BUWVZKc2E2amsoSXVFY0Yx
dSVMcDJMcW8+STQzST5VP2hTTUg2VlZvRUd5VkdFamJhb09TVnJVK1lBRXMKejBEZyZpPVFwMUNZ
dnRHOzNDJmEyKlJpRikzRFFhZSp4TmJuODdsKzMwZ3Y8fGVzZlpLX1Jkfn5RKWRXYCh9byVDCno4
ekBjUVBPNj5vRGxjSlBkcytqbSRNZ2ZQKkNmajxqUzZsRCo+STIlU29nZG1hNHUlZlZgdj47MT42
aCNUbDJuPwp6UTVZQUtVbDw5MCU0V24rT0BifG9mYWFfTEdsR3BAIXkyS0ZMZ0A9R1MxJnNSO31L
O0o9MmUqdW4hSzUlZmJvSVkKemlTZFo/QkY2ajc1eyNuPUFCQDl6OVU1OFZjbjQ7a2ltQVlpQ1ok
VWJeRz5ZZGh8YlE9b2FqXj0jYFZ9PjI/YX5QCnokezI0ey00Wl49YzxuQTFpXldQQjA9TnpFQyhN
aVoxM1pYZGVfblFmLTsmO1Uta0dZR24mbHE7ZTs7NWg8e2p1Uwp6distS0Q/X2VBdUVSezt8Yjtz
aU9KSzBfWSt6fnJ8Nzt3Rk9NKDRRfSFSZVNLUHlzRmxyb0BndmZebXpMIUBxTmUKekJkSXpjeGZs
MyojKk1UIzV4d256X0VNPWRDSmUqUUZib2RgMiFkYyk1Q3B8U3A+UGw4LVJscG0tfWpeOzR6bj9p
CnpGYG95MmhHUlQyWEdzN2ZLV30zPDtrc3Jlb2JSPT0xbiRRODBHdER5P2plcTJmZ2ZSPEooT1k8
LTJrYlRkd15mIwp6KS1tbzk1d31LSjNWaGFLezZEfWYzO0MqOG5qT0lCck5zbHI+RmpAaT8qWEBY
ZSRMQ3E+YjYteUleOW9VRlhieHEKelZSVXFNYzE5TG9ONFo9K3Z8S0p2dFcrdylsajZfaWEqT2tT
YFRWcWVLRURqKG41NFR7RU96XzAwS1k1Wl9hU0J0CnppKis2IUsrd21CPCRgYjI1VyFZcEd7I3E5
PE89SWxqNExNQm89QmJ0RX5EIUZIbU0xPzhzaXpuQl9xWjFZZVdRPgp6X1I+dTVFOTIjSmh6UUx+
NjMxZG9wYl9FcyQtODNaemQmYChuT3xaMjV4enhyRW49VkljT28jcU0lZz84eEw/a0gKemJ0UXJX
TUY4NilAZTZfPW1uNDlkTkBhTXRUJU1URT1QIzNyeFVOXjRkSUk8ayN0fnU/azRWalVnWH5CQmUo
emhnCno9SXQzViFeaFNUIUIlS3FjZ0RuVHNUNWNyWmtTRyR8NmJTMnkkX2I9QGRgKEFqKiFuZ1Zn
ZmlyXjU4TWpMPys/OQp6aGFGd1JiN0pMMTAmbnZMdT9VYSUtMUkkTiNQMy1ZSHVsR096Zj8+SU9H
UC0oTClgV256dz4pSmxZU0I7ZUA7dykKelY3fjtnbWlXQzFkPmlBNHZyVEhnYElyVFFxSkUqQCRZ
PDY/RmY5ZzFyRTs1UFZHV2YmcGgqMVkwakpnTF92aTtqCnpqSGxyTkgzVHFuakpkKkxvUW8yXm4q
cDMtWkRXYnheJlhtSF9JbFUqI0V2fkMmOD4kI0ttVFpYKlFDYDNDam8hOwp6RDFnbW1BVyNVeXV2
NENBVD5PeWwyIWJIbWY5e2xTcHRAZXNgPzR4cmp9KUAmRnolPVMzMHdyK2k1VXNEfE5BRH4KenRq
cFU8QX47SiMmfGQhYFNgNkl8R2FiZ2V2KCl0MFZtampeTDdYa2UwUkhHJXtHejdiTjQqRzNBYm54
Snh1ZWQkCnpZb2RPPV59cyhZO3IrVTdBN05SOCRLaHZjUCZBc0U8WWhZZ3U4cig1MExWdUo5PGhv
b2g7NXIlZjdxT3hyLTd3Twp6YHl6bEIkJTdzKCY4KldmT0hZbllJQ2xfbTF4a04yejt0UDFNYXxH
TmZnZSp7a2JhJnRrJE9CfE9BcG5Cei15N2wKemRMU2R9PzdMPSlTZSVjRiNYU3RPNnlfWXYhdCph
bnJUM1YkaWRKQzsxNn1mZmRgP2F7SG8xWjNYPHdOam0yYWFLCnpiem44a0MkeEl1K0VmOVlBJDxf
bmY2RCRoZnkxUlJDZ0V5YlVifjZhWHo7O0l2SHMjQ3lrbzd9Qzw/QmMkUXYrJgp6T0JZeEljWi0k
ZyZ4LWheSFNoOSkySihuWU1vTzMqWXgwZjVedmpLNzw3SFlXVGZjRzEzYH5GSENgdDJaOHE2MlAK
ejIjRGcyYHNlTzs5UktaQGZ5UDVIcXRXTH1jKkFPVzYrSnhmbj1rXygoRCsmPyRadXxQZjBYfnJL
QGNvVWgkRDxgCno4d0VEIW1LIU0obj0lVCNSSylCX3V9WT4kYkxYakVPIWYpREpzR2pZWUtkUTMr
JFFPTHVocnl2USE/NSokcEM0cgp6TDl3N2xLVUJvP2pebGUrPyN1NG0+ITNRe0ZWMHNuMTlOTFVy
b3B6NzJFV0hGJGBkVUZHP25UZyR5IWhHYzQ3SjwKenJ6YWVMODhjRy1OYF9pTWY5cnUjNUNsY0Jz
PjJgJTIqYzJ9SHAzdFl7JThFaXhne0RIMStIZlN6QUstcnE/WT9GCnp1cVdfME9kcGAjMGRLUGtJ
RklaTWZZY0pkLVlpZztlU2xIel9Na015cU1HZC01eTNSK1AyZ1VgJm9ybjtyQCRjUgp6RSVLWk9j
VWtGZ0d1WWJwd0liWk0oaSlnMjtRfHFZbTJ5MC1JZX0+a1YwV1FWZjRDPT8lUGtKV3VvNE1nNUNq
em8KekFyT1hQU2pwdmJpKUJKfEh4OCEzPj42dVk5RkpOMV4+cEJFeyhuUiklUVZhS09EY1Ryel42
cUooYEZAUkdIeX5LCnpUWm9AbSFLUFhrLSVfeShGUzNyYGZhd1EzJXNTcn1kdCU8Z21ASE5YUlFw
QTUjUzk5OStjI203U184TW16U3xpeQp6N2pRU1Ixb3l8P2Y3P0tmUEgkOyt5MzhnRUFoMCV7JnJm
UylCRDdmRjRHQ2JRKColeUUrN1d0VTZBSXB6e3dpRzMKeiNNMWFIaGlOcnwrb2JURm9wNVpsdjxp
SW0hSCVRKUVeeXErOCE1dD0jPUYzd21IdzRqN3R2Pnx7akYoVzktMFJ0Cno1eGZnSCVWUmxBPnJJ
ZTBgdH5ZWkhfJWZvN0pLPyowWSolZDJZeUE5TXl3ODl6Y35ISHppVXd6WWp8QTN1P347ZAp6SWly
clN0LTxaPFo/KUo8M1JvcWY9XmFoSUNeaGw8PjwoTjd7M1BYYTc8a05ZNWZ6fEVDT09aYzBjUXhW
RUBFJCEKei14ZWB7RD9YPTVwZVdmVUJ3ZmQoVkx3Q0s+Mmo4NDVrPVdOMj5NdmllYURkJC0haEQr
aGl4JV80NVJJYz0ofWgrCnokZkYjXi17Pl95aFZjI3ojIUwzb24hT1l5eUI0NlVeWGReVEk1Z0Fx
Wn5CdVN0RjhNallaZyhJPzIyQzYwPVRKeQp6bWJVbjx3Qz9wbyVfQHFiMF9hKSo4eF4qKyNWPUl4
UXhwfHt6JSZHfnAxYEZvZWxOPUIzbTZCQ2lsVjNoZEtKSzAKekxZS0RxRXVsRmgmNUVNNWh5WFRv
OGNOODxPYUh4K2tgUlRNNW9RJVhNYWNqO09AZDdsS1FJZmtKUnc0O1luM1I8Cno3Rz9wcSVKcm1h
MFM/RWtnbSQhQWV1fWM/M1NnX2VlR3YpWk9iTmFQRnZLam14RntDU3hsfnVseVZOPiVzZndmJAp5
cU8/QncmR18yKWxhTGxXMGFHdyomPz1LcTcjSjhXI2VWXm5qbXJvUUkmOEg3MDAwMDxNTlVNbkxT
VGExUzcpSUIKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNTZWFyY2hTY29wZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzCmluZGV4IDlmODhjMWVhNDAwYmZiOTBmNWM3YzBlNTdi
NmVjNGYyZmNmMjY4YWUuLjlmNGFlYzE2ZWJiNDNmNmEyZjM0MDAxMmQxNTljM2Q2ZDRlYzNiYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Nl
YXJjaFNjb3BlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1NlYXJjaFNjb3BlLmpzCkBAIC0zNCw1MyArMzQsNjAgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNTZWFyY2hTY29wZSA9IGZ1bmN0aW9uKCkKIHsKICAgICAvLyBGSVhNRTogQWRkIHRpdGxlIG9u
Y2UgaXQgaXMgdXNlZCBieSBzZWFyY2ggY29udHJvbGxlci4KICAgICBXZWJJbnNwZWN0b3IuU2Vh
cmNoU2NvcGUuY2FsbCh0aGlzKQorICAgIHRoaXMuX3NlYXJjaElkID0gMDsKIH0KIAogV2ViSW5z
cGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuU2VhcmNoQ29uZmlnfSBzZWFyY2hDb25maWcKICAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKE9iamVjdCl9IHNlYXJjaFJlc3VsdENhbGxiYWNrCi0gICAgICogQHBh
cmFtIHtmdW5jdGlvbigpfSBzZWFyY2hGaW5pc2hlZENhbGxiYWNrCisgICAgICogQHBhcmFtIHtm
dW5jdGlvbihib29sZWFuKX0gc2VhcmNoRmluaXNoZWRDYWxsYmFjawogICAgICAqLwogICAgIHBl
cmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHNlYXJjaENvbmZpZywgc2VhcmNoUmVzdWx0Q2FsbGJhY2ss
IHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgY2FsbGJhY2tzTGVm
dCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gbWF5YmVTZWFyY2hGaW5pc2hlZCgpCisgICAgICAg
IHRoaXMuc3RvcFNlYXJjaCgpOworICAgICAgICAKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMg
PSB0aGlzLl9zb3J0ZWRVSVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVJ
bmRleCA9IDA7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBmaWx0ZXJPdXRDb250ZW50U2Ny
aXB0cyh1aVNvdXJjZUNvZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjYWxsYmFja3NM
ZWZ0ID09PSAwKQotICAgICAgICAgICAgICAgIHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2soKTsgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gIXVpU291cmNlQ29kZS5pc0NvbnRlbnRT
Y3JpcHQ7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uIHNlYXJjaENhbGxi
YWNrV3JhcHBlcih1aVNvdXJjZUNvZGUsIHNlYXJjaE1hdGNoZXMpCisgICAgICAgIC8vIEZJWE1F
OiBBZGQgc2V0dGluZyB0byBzZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIGFzIHdlbGwuCisgICAg
ICAgIHVpU291cmNlQ29kZXMuZmlsdGVyKGZpbHRlck91dENvbnRlbnRTY3JpcHRzKTsKKworICAg
ICAgICBmdW5jdGlvbiBjb250aW51ZVNlYXJjaCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
IChzZWFyY2hNYXRjaGVzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHZhciBzZWFyY2hSZXN1
bHQgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5lLlNlYXJjaFJl
c3VsdCh1aVNvdXJjZUNvZGUsIHNlYXJjaE1hdGNoZXMpOwotICAgICAgICAgICAgICAgIHNlYXJj
aFJlc3VsdENhbGxiYWNrKHNlYXJjaFJlc3VsdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAtLWNhbGxiYWNrc0xlZnQ7Ci0gICAgICAgICAgICBtYXliZVNlYXJjaEZpbmlzaGVkKCk7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogRW5hYmxlIHN1cHBvcnQgZm9yIGNvdW50aW5nIG1hdGNoZXMg
Zm9yIGluY3JlbWVudGFsIHNlYXJjaC4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBFbmFibGUgc3Vw
cG9ydCBmb3IgYm91bmRpbmcgc2VhcmNoIHJlc3VsdHMvbWF0Y2hlcyBudW1iZXIgdG8ga2VlcCBp
bnNwZWN0b3IgcmVzcG9uc2l2ZS4KKyAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVJbmRleCA8
IHVpU291cmNlQ29kZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IHVpU291cmNlQ29kZXNbdWlTb3VyY2VDb2RlSW5kZXgrK107CisgICAgICAgICAgICAgICAg
dWlTb3VyY2VDb2RlLnNlYXJjaEluQ29udGVudChzZWFyY2hDb25maWcucXVlcnksICFzZWFyY2hD
b25maWcuaWdub3JlQ2FzZSwgc2VhcmNoQ29uZmlnLmlzUmVnZXgsIHNlYXJjaENhbGxiYWNrV3Jh
cHBlci5iaW5kKHRoaXMsIHRoaXMuX3NlYXJjaElkLCB1aVNvdXJjZUNvZGUpKTsKKyAgICAgICAg
ICAgIH0gZWxzZSAKKyAgICAgICAgICAgICAgICBzZWFyY2hGaW5pc2hlZENhbGxiYWNrKHRydWUp
OwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMu
X3NvcnRlZFVJU291cmNlQ29kZXMoKTsKLSAgICAgICAgLy8gRklYTUU6IEVuYWJsZSBzdXBwb3J0
IGZvciBjb3VudGluZyBtYXRjaGVzIGZvciBpbmNyZW1lbnRhbCBzZWFyY2guCi0gICAgICAgIC8v
IEZJWE1FOiBFbmFibGUgc3VwcG9ydCBmb3IgYm91bmRpbmcgc2VhcmNoIHJlc3VsdHMvbWF0Y2hl
cyBudW1iZXIgdG8ga2VlcCBpbnNwZWN0b3IgcmVzcG9uc2l2ZS4KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBB
ZGQgc2V0dGluZyB0byBzZWFyY2ggaW4gY29udGVudCBzY3JpcHRzIGFzIHdlbGwuCi0gICAgICAg
ICAgICBpZiAoIXVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQpIHsKLSAgICAgICAgICAgICAg
ICAvLyBJbmNyZWFzZSBjYWxsYmFja3NMZWZ0IGZpcnN0IGJlY2F1c2Ugc2VhcmNoSW5Db250ZW50
IGNhbGwgY291bGQgYmUgc3luY2hyb25vdXMuCi0gICAgICAgICAgICAgICAgY2FsbGJhY2tzTGVm
dCsrOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IHJlcXVlc3QgbmV4
dCBzZWFyY2hJbkNvbnRlbnQgdW5sZXNzIHByZXZpb3VzIG9uZSBpcyBhbHJlYWR5IGZpbmlzaGVk
LiAgCi0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNlYXJjaEluQ29udGVudChzZWFyY2hD
b25maWcucXVlcnksICFzZWFyY2hDb25maWcuaWdub3JlQ2FzZSwgc2VhcmNoQ29uZmlnLmlzUmVn
ZXgsIHNlYXJjaENhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMsIHVpU291cmNlQ29kZSkpOworCisg
ICAgICAgIGZ1bmN0aW9uIHNlYXJjaENhbGxiYWNrV3JhcHBlcihzZWFyY2hJZCwgdWlTb3VyY2VD
b2RlLCBzZWFyY2hNYXRjaGVzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc2VhcmNoSWQg
IT09IHRoaXMuX3NlYXJjaElkKSB7CisgICAgICAgICAgICAgICAgc2VhcmNoRmluaXNoZWRDYWxs
YmFjayhmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIHNlYXJjaFJlc3VsdCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUuU2VhcmNoUmVzdWx0KHVpU291cmNlQ29k
ZSwgc2VhcmNoTWF0Y2hlcyk7CisgICAgICAgICAgICBzZWFyY2hSZXN1bHRDYWxsYmFjayhzZWFy
Y2hSZXN1bHQpOworICAgICAgICAgICAgY29udGludWVTZWFyY2guY2FsbCh0aGlzKTsKICAgICAg
ICAgfQotICAgICAgICBtYXliZVNlYXJjaEZpbmlzaGVkKCk7CisgICAgICAgIAorICAgICAgICBj
b250aW51ZVNlYXJjaC5jYWxsKHRoaXMpOworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2Rlcy5s
ZW5ndGg7CiAgICAgfSwKIAogICAgIHN0b3BTZWFyY2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc2VhcmNoIHNvIHRoYXQgaXQgY291bGQgYmUgc3RvcHBl
ZC4KKyAgICAgICAgKyt0aGlzLl9zZWFyY2hJZDsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggYThhMTJjMzM3YjY1MTMxMDgzYmE5MTE2ZDI3OTQxZjE0M2Q4MDllMC4uOTNmZGNjNTNiYzk0
OGE5YWEwYWMwMGVhMTAyOGU5OWFkOWE4YjVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMjU1LDEwICsyNTUsNiBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtlS2V5KCJlIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9
IHRoaXMuX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpOwogICAgICAgICBz
ZWN0aW9uLmFkZEtleShzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJlIiwgbW9kaWZpZXJzLkN0
cmxPck1ldGEpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXJ0L3N0b3AgcmVjb3JkaW5nIikp
OwogCi0gICAgICAgIHZhciBzaG9ydFJlY29yZFRocmVzaG9sZFRpdGxlID0gTnVtYmVyLnNlY29u
ZHNUb1N0cmluZyhXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5zaG9ydFJlY29yZFRocmVzaG9s
ZCk7Ci0gICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtlS2V5KCJmIiwgbW9kaWZp
ZXJzLlNoaWZ0IHwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9IHRoaXMuX3RvZ2dsZUZpbHRlckJ1
dHRvbkNsaWNrZWQuYmluZCh0aGlzKTsKLSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQu
c2hvcnRjdXRUb1N0cmluZygiZiIsIG1vZGlmaWVycy5TaGlmdCB8IG1vZGlmaWVycy5DdHJsT3JN
ZXRhKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaWx0ZXIgb3V0IHJlY29yZHMgc2hvcnRlciB0
aGFuICVzIiwgc2hvcnRSZWNvcmRUaHJlc2hvbGRUaXRsZSkpOwotCiAgICAgICAgIHRoaXMuX3No
b3J0Y3V0c1tzaG9ydGN1dC5tYWtlS2V5KCJzIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9IHRo
aXMuX3NhdmVUb0ZpbGUuYmluZCh0aGlzKTsKICAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRj
dXQuc2hvcnRjdXRUb1N0cmluZygicyIsIG1vZGlmaWVycy5DdHJsT3JNZXRhKSwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTYXZlIFRpbWVsaW5lIGRhdGFcdTIwMjYiKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBiOGU5MzBi
M2RjYzEwNTgzZGRlMWQ4ZGI4NTEzMjU5NDZkOWJjMWFjLi5mNWE3MTc2NDViMWNjOTA4NWM0ODg4
ZjVmMTgwZTBmZWYyNDc4MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC00MTU5LDYgKzQxNTksNDMgQEAgYS53b3JrZXItaXRl
bTpob3ZlciB7CiAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogfQogCisjZHJhd2VyLXN0YXR1cy1i
YXIgLnNlYXJjaC1zdGF0dXMtYmFyLWl0ZW0geworICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBm
b250LXNpemU6IDExcHg7CisgICAgaGVpZ2h0OiAyM3B4OworfQorCisjZHJhd2VyLXN0YXR1cy1i
YXIgLnNlYXJjaC1zdGF0dXMtYmFyLW1lc3NhZ2UgeworICAgIG1hcmdpbi1sZWZ0OjVweDsKKyAg
ICBtYXJnaW4tcmlnaHQ6NXB4OworICAgIG1hcmdpbi10b3A6NnB4OworICAgIGZsb2F0OmxlZnQ7
Cit9CisKKyNkcmF3ZXItc3RhdHVzLWJhciAuc2VhcmNoLXN0YXR1cy1iYXItcHJvZ3Jlc3Mgewor
ICAgIGhlaWdodDogMTBweDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgbWFyZ2luLXRvcDogOHB4
OworICAgIGZsb2F0OiBsZWZ0OworfQorCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1zdGF0
dXMtYmFyLXN0b3AtYnV0dG9uLWl0ZW0geworICAgIHdpZHRoOiAxOXB4OworICAgIGhlaWdodDog
MjRweDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNl
YXJjaC1zdGF0dXMtYmFyLXN0b3AtYnV0dG9uIC5nbHlwaCB7CisgICAgLXdlYmtpdC1tYXNrLXBv
c2l0aW9uOiAtOTZweCAtNDhweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LCAwLCAw
KSAhaW1wb3J0YW50OworfQorCisjZHJhd2VyLXN0YXR1cy1iYXIgLnNlYXJjaC1yZXN1bHRzLXN0
YXR1cy1iYXItbWVzc2FnZSB7CisgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OworICAgIGN1cnNvcjog
ZGVmYXVsdDsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKIC5zZWFyY2gtdmlldyAuc2VhcmNo
LXJlc3VsdHMgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6IDM1cHg7CkBAIC00
MTY2LDEzICs0MjAzLDIzIEBAIGEud29ya2VyLWl0ZW06aG92ZXIgewogICAgIGxlZnQ6IDA7CiAg
ICAgcmlnaHQ6IDA7CiAgICAgb3ZlcmZsb3cteTogYXV0bzsKLSAgICAKK30KKworI3NlYXJjaC1y
ZXN1bHRzLXBhbmUtZmlsZS1iYXNlZCAuc2VhcmNoLXJlc3VsdHMtb3V0bGluZS1kaXNjbG9zdXJl
IHsKICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogfQogCiAjc2VhcmNoLXJlc3VsdHMtcGFuZS1m
aWxlLWJhc2VkIC5zZWFyY2gtcmVzdWx0IHsKICAgICBmb250LXNpemU6IDEycHg7CiAgICAgbWFy
Z2luLXRvcDogM3B4OworICAgIHdvcmQtd3JhcDogbm9ybWFsOworICAgIHdoaXRlLXNwYWNlOiBw
cmU7CisgICAgY3Vyc29yOiBwb2ludGVyOworfQorCisjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxl
LWJhc2VkIC5zZWFyY2gtcmVzdWx0OmhvdmVyIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Jh
KDEyMSwgMTIxLCAxMjEsIDAuMSk7CisgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiB9
CiAKICNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNlYXJjaC1yZXN1bHQ6Zmlyc3Qt
Y2hpbGQgewpAQCAtNDE5MCw2ICs0MjM3LDE3IEBAIGEud29ya2VyLWl0ZW06aG92ZXIgewogICAg
IGNvbG9yOiAjMzMzOwogfQogCisjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zaG93
LW1vcmUtbWF0Y2hlcyB7CisgICAgbWFyZ2luLWxlZnQ6IDVweDsKKyAgICBjb2xvcjogIzMzMzsK
KyAgICBjdXJzb3I6IHBvaW50ZXI7Cit9CisKKyNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFz
ZWQgLnNob3ctbW9yZS1tYXRjaGVzOmhvdmVyIHsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVy
bGluZTsKK30KKworCiAjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtbWF0
Y2ggewogICAgIGZvbnQtZmFtaWx5OiAnZGVqYXZ1IHNhbnMgbW9ubycsIG1vbm9zcGFjZTsKICAg
ICBmb250LXNpemU6IDExcHg7CkBAIC00MjA4LDcgKzQyNjYsNyBAQCBhLndvcmtlci1pdGVtOmhv
dmVyIHsKIAogI3NlYXJjaC1yZXN1bHRzLXBhbmUtZmlsZS1iYXNlZCAuc2VhcmNoLW1hdGNoOmhv
dmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU2LCAxMjEsIDIxNywgMC4xKTsKLSAg
ICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsqLworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1
czogNXB4OwogfQogCiAjc2VhcmNoLXJlc3VsdHMtcGFuZS1maWxlLWJhc2VkIC5zZWFyY2gtbWF0
Y2ggLmhpZ2hsaWdodGVkLW1hdGNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggZmMzNWQ1YTNlODc4YzZjYzg3MTliODdlMGRhYTVi
NTM0ZmUzOGQ1ZC4uYjMyMTM0YjFlM2JjMzFkY2ZiOWZkNWQxYjEyOTVhNTVkNmEzNmVjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAg
LTEwNDYsNyArMTA0Niw3IEBAIGZ1bmN0aW9uIG51bWJlclRvU3RyaW5nV2l0aFNwYWNlc1BhZGRp
bmcodmFsdWUsIHN5bWJvbHNDb3VudCkKIHsKICAgICB2YXIgbnVtYmVyU3RyaW5nID0gdmFsdWUu
dG9TdHJpbmcoKTsKICAgICB2YXIgcGFkZGluZ0xlbmd0aCA9IE1hdGgubWF4KDAsIHN5bWJvbHND
b3VudCAtIG51bWJlclN0cmluZy5sZW5ndGgpOwotICAgIHZhciBwYWRkaW5nU3RyaW5nID0gQXJy
YXkocGFkZGluZ0xlbmd0aCkuam9pbigiXHUwMGEwIik7CisgICAgdmFyIHBhZGRpbmdTdHJpbmcg
PSBBcnJheShwYWRkaW5nTGVuZ3RoICsgMSkuam9pbigiXHUwMGEwIik7CiAgICAgcmV0dXJuIHBh
ZGRpbmdTdHJpbmcgKyBudW1iZXJTdHJpbmc7CiB9CiAK
</data>
<flag name="review"
          id="109933"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>