<?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>108437</bug_id>
          
          <creation_ts>2013-01-30 23:56:07 -0800</creation_ts>
          <short_desc>Web Inspector: [CPU Profile] Apply minor refactorings and add JSDocs.</short_desc>
          <delta_ts>2013-02-20 20:10:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter name="Eugene Klyuchnikov">eustas</reporter>
          <assigned_to name="Eugene Klyuchnikov">eustas</assigned_to>
          <cc>apavlov</cc>
    
    <cc>caseq</cc>
    
    <cc>eustas</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>821153</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-01-30 23:56:07 -0800</bug_when>
    <thetext>CPU Profile code has obsolete inline-comments to clarify types.
Currently we use JSDocs to specify types.

Also applied some minor refactorings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821187</commentid>
    <comment_count>1</comment_count>
      <attachid>185701</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-01-31 00:23:44 -0800</bug_when>
    <thetext>Created attachment 185701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821343</commentid>
    <comment_count>2</comment_count>
      <attachid>185701</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-31 03:50:00 -0800</bug_when>
    <thetext>Comment on attachment 185701
Patch

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

&gt; Source/WebCore/inspector/front-end/BottomUpProfileDataGridTree.js:60
&gt; +     *

Extra blank line we don&apos;t need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821464</commentid>
    <comment_count>3</comment_count>
      <attachid>185701</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-01-31 06:10:47 -0800</bug_when>
    <thetext>Comment on attachment 185701
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/BottomUpProfileDataGridTree.js:60
&gt;&gt; +     *
&gt; 
&gt; Extra blank line we don&apos;t need.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821469</commentid>
    <comment_count>4</comment_count>
      <attachid>185768</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-01-31 06:16:38 -0800</bug_when>
    <thetext>Created attachment 185768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824294</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-04 05:57:59 -0800</bug_when>
    <thetext>Committed r141764: &lt;http://trac.webkit.org/changeset/141764&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185701</attachid>
            <date>2013-01-31 00:23:44 -0800</date>
            <delta_ts>2013-01-31 06:10:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108437-20130131122027.patch</filename>
            <type>text/plain</type>
            <size>24938</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjNjI0YWUxZWJkYTNl
MTNhZGQwNzM1NjcyNGVhZTI0MzBlN2I3YS4uMGIzODU0MDVkNTUyNDBlYTE2MWU1NmQ4NjQxNzYw
ZTUyMTQyNzhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAxLTMxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDUFUgUHJvZmlsZV0gQXBwbHkgbWlub3IgcmVmYWN0b3JpbmdzIGFuZCBhZGQgSlNE
b2NzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
NDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1BV
IFByb2ZpbGUgY29kZSBoYXMgb2Jzb2xldGUgaW5saW5lLWNvbW1lbnRzIHRvIGNsYXJpZnkgdHlw
ZXMuCisgICAgICAgIEN1cnJlbnRseSB3ZSB1c2UgSlNEb2NzIHRvIHNwZWNpZnkgdHlwZXMuCisK
KyAgICAgICAgQWxzbyBhcHBsaWVkIHNvbWUgbWlub3IgcmVmYWN0b3JpbmdzLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAg
ICAgQWRkZWQgSlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLl90YWtl
UHJvcGVydGllc0Zyb21Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAgICAgQWRkZWQgSlNEb2Nz
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90
b3R5cGUuX2tlZXBPbmx5Q2hpbGQpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLl9tZXJnZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlk
Tm9kZS5wcm90b3R5cGUuX3NoYXJlZFBvcHVsYXRlKToKKyAgICAgICAgRG8gbm90IHBhc3MgcHJv
ZmlsZVZpZXcgdG8gY29uc3RydWN0b3IuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQ
cm9maWxlRGF0YUdyaWRUcmVlKToKKyAgICAgICAgQWRkZWQgSlNEb2NzLiBSZW5hbWVkIHBhcmFt
ZXRlcnMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVl
LnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgIEFkZGVkIEpTRG9jcy4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlLmV4Y2x1ZGUpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVW
aWV3LmpzOiBSZW1vdmVkIHVudXNlZCBnZXR0ZXIvc2V0dGVyLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlwZS5fZ2V0Q1BVUHJvZmlsZUNhbGxiYWNrKToKKyAg
ICAgICAgVW4tbmVzdGVkLiBBZGRlZCBKU0RvY3MuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRCb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUpOgor
ICAgICAgICBBZGRlZCBKU0RvY3MuIFR1cm5lZCB0byBtZXRob2QgZnJvbSBnZXR0ZXIuIFNpbXBs
aWZpZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9n
ZXRUb3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZSk6CisgICAgICAgIEFkZGVkIEpTRG9jcy4gVHVy
bmVkIHRvIG1ldGhvZCBmcm9tIGdldHRlci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVmlldy5wcm90b3R5cGUuX2Fzc2lnblBhcmVudHNJblByb2ZpbGUpOgorICAgICAgICBPcHRp
bWl6ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczogQWRkZWQg
SlNEb2NzLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJl
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAg
ICAgQWRkZWQgSlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsKTog
QWRkZWQgSlNEb2NzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUu
cHJvdG90eXBlLnNvcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0
YUdyaWROb2RlLnByb3RvdHlwZS5pbnNlcnRDaGlsZCk6IERpdHRvLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkKTogRGl0dG8u
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUucmVt
b3ZlQ2hpbGRyZW4pOgorICAgICAgICBBZGRlZCBKU0RvY3MuIFJlbW92ZWQgcGFyYW1ldGVyLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmZpbmRD
aGlsZCk6IEFkZGVkIEpTRG9jcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWRUcmVlKTogQWRkZWQgSlNEb2NzLiBSZW5hbWVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAgICAgQWRkZWQg
SlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuX3NoYXJlZFBvcHVsYXRl
KToKKyAgICAgICAgRG8gbm90IHBhc3MgcHJvZmlsZVZpZXcgdG8gY29uc3RydWN0b3IuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUpOgorICAgICAgICBB
ZGRlZCBKU0RvY3MuIFJlbmFtZWQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRv
cERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgIEFkZGVk
IEpTRG9jcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJl
ZS5wcm90b3R5cGUuZXhjbHVkZSk6CisgICAgICAgIERpdHRvLgorCiAyMDEzLTAxLTMwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTcGxpdCBDU1NPTVdyYXBw
ZXIgZGF0YSBhbmQgZnVuY3Rpb25zIG91dCBmcm9tIFN0eWxlUmVzb2x2ZXIgaW50byBpdHMgb3du
IGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9C
b3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcwppbmRleCBiM2Y1NzA4ODdi
ODk5NDljNTQ3YjlhOWRkNGRiNDk1ZTc4ZTk2YjhjLi41MTYzZmVlNTg3NGM0OTBlNTk1NDQxZDlj
MTZlMmY4ZGQ2NzhhYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcwpAQCAt
MzIsMTYgKzMyLDIxIEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfQorICogQHBhcmFtIHshUHJvZmlsZXJBZ2VudC5D
UFVQcm9maWxlTm9kZX0gcHJvZmlsZU5vZGUKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Ub3BE
b3duUHJvZmlsZURhdGFHcmlkVHJlZX0gb3duaW5nVHJlZQogICovCi1XZWJJbnNwZWN0b3IuQm90
dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlID0gZnVuY3Rpb24oLypQcm9maWxlVmlldyovIHByb2Zp
bGVWaWV3LCAvKlByb2ZpbGVOb2RlKi8gcHJvZmlsZU5vZGUsIC8qQm90dG9tVXBQcm9maWxlRGF0
YUdyaWRUcmVlKi8gb3duaW5nVHJlZSkKK1dlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRh
R3JpZE5vZGUgPSBmdW5jdGlvbihwcm9maWxlTm9kZSwgb3duaW5nVHJlZSkKIHsKLSAgICBXZWJJ
bnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5jYWxsKHRoaXMsIHByb2ZpbGVWaWV3LCBwcm9m
aWxlTm9kZSwgb3duaW5nVHJlZSwgdGhpcy5fd2lsbEhhdmVDaGlsZHJlbihwcm9maWxlTm9kZSkp
OworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLmNhbGwodGhpcywgcHJvZmls
ZU5vZGUsIG93bmluZ1RyZWUsIHRoaXMuX3dpbGxIYXZlQ2hpbGRyZW4ocHJvZmlsZU5vZGUpKTsK
IAogICAgIHRoaXMuX3JlbWFpbmluZ05vZGVJbmZvcyA9IFtdOwogfQogCiBXZWJJbnNwZWN0b3Iu
Qm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKLSAgICBfdGFrZVByb3Bl
cnRpZXNGcm9tUHJvZmlsZURhdGFHcmlkTm9kZTogZnVuY3Rpb24oLypQcm9maWxlRGF0YUdyaWRO
b2RlKi8gcHJvZmlsZURhdGFHcmlkTm9kZSkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFXZWJJ
bnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0gcHJvZmlsZURhdGFHcmlkTm9kZQorICAgICAq
LworICAgIF90YWtlUHJvcGVydGllc0Zyb21Qcm9maWxlRGF0YUdyaWROb2RlOiBmdW5jdGlvbihw
cm9maWxlRGF0YUdyaWROb2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fc2F2ZSgpOwogCkBAIC01
MCw4ICs1NSwxMiBAQCBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5udW1iZXJPZkNhbGxzID0gcHJvZmlsZURhdGFHcmlk
Tm9kZS5udW1iZXJPZkNhbGxzOwogICAgIH0sCiAKLSAgICAvLyBXaGVuIGZvY3VzaW5nLCB3ZSBr
ZWVwIGp1c3QgdGhlIG1lbWJlcnMgb2YgdGhlIGNhbGxzdGFjay4KLSAgICBfa2VlcE9ubHlDaGls
ZDogZnVuY3Rpb24oLypQcm9maWxlRGF0YUdyaWROb2RlKi8gY2hpbGQpCisgICAgLyoqCisgICAg
ICogV2hlbiBmb2N1c2luZywgd2Uga2VlcCBqdXN0IHRoZSBtZW1iZXJzIG9mIHRoZSBjYWxsc3Rh
Y2suCisgICAgICoKKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlk
Tm9kZX0gY2hpbGQKKyAgICAgKi8KKyAgICBfa2VlcE9ubHlDaGlsZDogZnVuY3Rpb24oY2hpbGQp
CiAgICAgewogICAgICAgICB0aGlzLl9zYXZlKCk7CiAKQEAgLTg2LDcgKzk1LDExIEBAIFdlYklu
c3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRoaXMuX3dpbGxIYXZlQ2hpbGRyZW4odGhpcy5wcm9m
aWxlTm9kZSk7CiAgICAgfSwKIAotICAgIF9tZXJnZTogZnVuY3Rpb24oLypQcm9maWxlRGF0YUdy
aWROb2RlKi8gY2hpbGQsIC8qQm9vbGVhbiovIHNob3VsZEFic29yYikKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0gY2hpbGQKKyAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IHNob3VsZEFic29yYgorICAgICAqLworICAgIF9tZXJnZTogZnVu
Y3Rpb24oY2hpbGQsIHNob3VsZEFic29yYikKICAgICB7CiAgICAgICAgIHRoaXMuc2VsZlRpbWUg
LT0gY2hpbGQuc2VsZlRpbWU7CiAKQEAgLTExNiw3ICsxMjksNyBAQCBXZWJJbnNwZWN0b3IuQm90
dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgbm90LCBhZGQgaXQgYXMgYSB0cnVlIGFuY2VzdG9y
LgogICAgICAgICAgICAgICAgIC8vIEluIGhlYXZ5IG1vZGUsIHdlIHRha2Ugb3VyIHZpc3VhbCBp
ZGVudGl0eSBmcm9tIGFuY2VzdG9yIG5vZGUuLi4KLSAgICAgICAgICAgICAgICBjaGlsZCA9IG5l
dyBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlKHRoaXMucHJvZmlsZVZp
ZXcsIGFuY2VzdG9yLCB0aGlzLnRyZWUpOworICAgICAgICAgICAgICAgIGNoaWxkID0gbmV3IFdl
Ykluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUoYW5jZXN0b3IsIHRoaXMudHJl
ZSk7CiAKICAgICAgICAgICAgICAgICBpZiAoYW5jZXN0b3IgIT09IGZvY3VzTm9kZSkgewogICAg
ICAgICAgICAgICAgICAgICAvLyBidXQgdGhlIGFjdHVhbCBzdGF0aXN0aWNzIGZyb20gdGhlICJy
b290IiBub2RlIChib3R0b20gb2YgdGhlIGNhbGxzdGFjaykuCkBAIC0xNTEsMTQgKzE2NCwxNiBA
QCBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsK
IC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVE
YXRhR3JpZFRyZWV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlld30gcHJv
ZmlsZVZpZXcKKyAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5DUFVQcm9maWxlTm9kZX0gcm9vdFBy
b2ZpbGVOb2RlCiAgKi8KLVdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUg
PSBmdW5jdGlvbigvKlByb2ZpbGVWaWV3Ki8gYVByb2ZpbGVWaWV3LCAvKlByb2ZpbGVOb2RlKi8g
YVByb2ZpbGVOb2RlKQorV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSA9
IGZ1bmN0aW9uKHByb2ZpbGVWaWV3LCByb290UHJvZmlsZU5vZGUpCiB7Ci0gICAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUuY2FsbCh0aGlzLCBhUHJvZmlsZVZpZXcsIGFQcm9maWxl
Tm9kZSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUuY2FsbCh0aGlzLCBw
cm9maWxlVmlldywgcm9vdFByb2ZpbGVOb2RlKTsKIAogICAgIC8vIEl0ZXJhdGUgZWFjaCBub2Rl
IGluIHByZS1vcmRlci4KICAgICB2YXIgcHJvZmlsZU5vZGVVSURzID0gMDsKLSAgICB2YXIgcHJv
ZmlsZU5vZGVHcm91cHMgPSBbW10sIFthUHJvZmlsZU5vZGVdXTsKKyAgICB2YXIgcHJvZmlsZU5v
ZGVHcm91cHMgPSBbW10sIFtyb290UHJvZmlsZU5vZGVdXTsKICAgICB2YXIgdmlzaXRlZFByb2Zp
bGVOb2Rlc0ZvckNhbGxVSUQgPSB7fTsKIAogICAgIHRoaXMuX3JlbWFpbmluZ05vZGVJbmZvcyA9
IFtdOwpAQCAtMjE2LDggKzIzMSwxMiBAQCBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0
YUdyaWRUcmVlID0gZnVuY3Rpb24oLypQcm9maWxlVmlldyovIGFQcm9maWxlVmlldwogfQogCiBX
ZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlLnByb3RvdHlwZSA9IHsKLSAg
ICAvLyBXaGVuIGZvY3VzaW5nLCB3ZSBrZWVwIHRoZSBlbnRpcmUgY2FsbHN0YWNrIHVwIHRvIHRo
aXMgYW5jZXN0b3IuCi0gICAgZm9jdXM6IGZ1bmN0aW9uKC8qUHJvZmlsZURhdGFHcmlkTm9kZSov
IHByb2ZpbGVEYXRhR3JpZE5vZGUpCisgICAgLyoqCisgICAgICogV2hlbiBmb2N1c2luZywgd2Ug
a2VlcCB0aGUgZW50aXJlIGNhbGxzdGFjayB1cCB0byB0aGlzIGFuY2VzdG9yLgorICAgICAqCisg
ICAgICogQHBhcmFtIHshV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGV9IHByb2ZpbGVE
YXRhR3JpZE5vZGUKKyAgICAgKi8KKyAgICBmb2N1czogZnVuY3Rpb24ocHJvZmlsZURhdGFHcmlk
Tm9kZSkKICAgICB7CiAgICAgICAgIGlmICghcHJvZmlsZURhdGFHcmlkTm9kZSkKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTI0MSw3ICsyNjAsMTAgQEAgV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJv
ZmlsZURhdGFHcmlkVHJlZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudG90YWxUaW1lID0g
cHJvZmlsZURhdGFHcmlkTm9kZS50b3RhbFRpbWU7CiAgICAgfSwKIAotICAgIGV4Y2x1ZGU6IGZ1
bmN0aW9uKC8qUHJvZmlsZURhdGFHcmlkTm9kZSovIHByb2ZpbGVEYXRhR3JpZE5vZGUpCisgICAg
LyoqCisgICAgICogQHBhcmFtIHshV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGV9IHBy
b2ZpbGVEYXRhR3JpZE5vZGUKKyAgICAgKi8KKyAgICBleGNsdWRlOiBmdW5jdGlvbihwcm9maWxl
RGF0YUdyaWROb2RlKQogICAgIHsKICAgICAgICAgaWYgKCFwcm9maWxlRGF0YUdyaWROb2RlKQog
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMKaW5kZXggZTc2YWMwNGE2ZWE4MmM5NmE0MTk3NTgx
OWIxNDc1YTFiNTgxNjA4YS4uNDZhZTU0MjM4ZDk2ZGVkNDU3ZjA0MjI3MGFkMDk4MDYxZWI1MTY0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9m
aWxlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVBy
b2ZpbGVWaWV3LmpzCkBAIC0yNiw2ICsyNiw3IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZUhlYWRlcn0gcHJvZmlsZQogICovCiBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcg
PSBmdW5jdGlvbihwcm9maWxlKQogewpAQCAtNzUsOSArNzYsMjMgQEAgV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLnJlc2V0QnV0dG9uLnZp
c2libGUgPSBmYWxzZTsKICAgICB0aGlzLnJlc2V0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fcmVzZXRDbGlja2VkLCB0aGlzKTsKIAorICAgIHRoaXMucHJvZmlsZUhlYWQg
PSAvKiogQHR5cGUgez9Qcm9maWxlckFnZW50LkNQVVByb2ZpbGVOb2RlfSAqLyBudWxsOwogICAg
IHRoaXMucHJvZmlsZSA9IHByb2ZpbGU7CiAKLSAgICBmdW5jdGlvbiBwcm9maWxlQ2FsbGJhY2so
ZXJyb3IsIHByb2ZpbGUpCisgICAgdGhpcy5fbGlua2lmaWVyID0gbmV3IFdlYkluc3BlY3Rvci5M
aW5raWZpZXIobmV3IFdlYkluc3BlY3Rvci5MaW5raWZpZXIuRGVmYXVsdEZvcm1hdHRlcigzMCkp
OworCisgICAgUHJvZmlsZXJBZ2VudC5nZXRDUFVQcm9maWxlKHRoaXMucHJvZmlsZS51aWQsIHRo
aXMuX2dldENQVVByb2ZpbGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKK30KKworV2ViSW5zcGVjdG9y
LkNQVVByb2ZpbGVWaWV3Ll9UeXBlVHJlZSA9ICJUcmVlIjsKK1dlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVmlldy5fVHlwZUhlYXZ5ID0gIkhlYXZ5IjsKKworV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVW
aWV3LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJv
cn0gZXJyb3IKKyAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZX0gcHJvZmls
ZQorICAgICAqLworICAgIF9nZXRDUFVQcm9maWxlQ2FsbGJhY2s6IGZ1bmN0aW9uKGVycm9yLCBw
cm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtODYsNyArMTAxLDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3ID0gZnVuY3Rpb24o
cHJvZmlsZSkKICAgICAgICAgICAgIC8vIFByb2ZpbGluZyB3YXMgdGVudGF0aXZlbHkgdGVybWlu
YXRlZCB3aXRoIHRoZSAiQ2xlYXIgYWxsIHByb2ZpbGVzLiIgYnV0dG9uLgogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMucHJvZmlsZS5oZWFkID0gcHJvZmlsZS5o
ZWFkOworICAgICAgICB0aGlzLnByb2ZpbGVIZWFkID0gcHJvZmlsZS5oZWFkOwogCiAgICAgICAg
IGlmIChwcm9maWxlLmlkbGVUaW1lKQogICAgICAgICAgICAgdGhpcy5faW5qZWN0SWRsZVRpbWVO
b2RlKHByb2ZpbGUpOwpAQCAtOTQsNTEgKzEwOSwzMyBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVZpZXcgPSBmdW5jdGlvbihwcm9maWxlKQogICAgICAgICB0aGlzLl9hc3NpZ25QYXJlbnRzSW5Q
cm9maWxlKCk7CiAgICAgICAgIHRoaXMuX2NoYW5nZVZpZXcoKTsKICAgICAgICAgdGhpcy5fdXBk
YXRlUGVyY2VudEJ1dHRvbigpOwotICAgIH0KLQotICAgIHRoaXMuX2xpbmtpZmllciA9IG5ldyBX
ZWJJbnNwZWN0b3IuTGlua2lmaWVyKG5ldyBXZWJJbnNwZWN0b3IuTGlua2lmaWVyLkRlZmF1bHRG
b3JtYXR0ZXIoMzApKTsKLQotICAgIFByb2ZpbGVyQWdlbnQuZ2V0Q1BVUHJvZmlsZSh0aGlzLnBy
b2ZpbGUudWlkLCBwcm9maWxlQ2FsbGJhY2suYmluZCh0aGlzKSk7Ci19Ci0KLVdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVmlldy5fVHlwZVRyZWUgPSAiVHJlZSI7Ci1XZWJJbnNwZWN0b3IuQ1BVUHJv
ZmlsZVZpZXcuX1R5cGVIZWF2eSA9ICJIZWF2eSI7CisgICAgfSwKIAotV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIFt0aGlzLnZpZXdTZWxlY3RDb21ib0JveC5lbGVtZW50LCB0aGlz
LnBlcmNlbnRCdXR0b24uZWxlbWVudCwgdGhpcy5mb2N1c0J1dHRvbi5lbGVtZW50LCB0aGlzLmV4
Y2x1ZGVCdXR0b24uZWxlbWVudCwgdGhpcy5yZXNldEJ1dHRvbi5lbGVtZW50XTsKICAgICB9LAog
Ci0gICAgZ2V0IGJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSgpCisgICAgLyoqCisgICAgICog
QHJldHVybiB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWRUcmVlfQorICAgICAqLworICAg
IF9nZXRCb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIGlmICghdGhpcy5fYm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlKSB7Ci0gICAgICAgICAg
ICBpZiAodGhpcy5wcm9maWxlLmJvdHRvbVVwSGVhZCkKLSAgICAgICAgICAgICAgICB0aGlzLl9i
b3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUgPSBuZXcgV2ViSW5zcGVjdG9yLlRvcERvd25Qcm9m
aWxlRGF0YUdyaWRUcmVlKHRoaXMsIHRoaXMucHJvZmlsZS5ib3R0b21VcEhlYWQpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaXMuX2JvdHRvbVVwUHJvZmlsZURhdGFHcmlk
VHJlZSA9IG5ldyBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlKHRoaXMs
IHRoaXMucHJvZmlsZS5oZWFkKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIXRoaXMuX2JvdHRv
bVVwUHJvZmlsZURhdGFHcmlkVHJlZSkKKyAgICAgICAgICAgIHRoaXMuX2JvdHRvbVVwUHJvZmls
ZURhdGFHcmlkVHJlZSA9IG5ldyBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRU
cmVlKHRoaXMsIHRoaXMucHJvZmlsZUhlYWQpOwogICAgICAgICByZXR1cm4gdGhpcy5fYm90dG9t
VXBQcm9maWxlRGF0YUdyaWRUcmVlOwogICAgIH0sCiAKLSAgICBnZXQgdG9wRG93blByb2ZpbGVE
YXRhR3JpZFRyZWUoKQorICAgIC8qKgorICAgICAqIEByZXR1cm4geyFXZWJJbnNwZWN0b3IuUHJv
ZmlsZURhdGFHcmlkVHJlZX0KKyAgICAgKi8KKyAgICBfZ2V0VG9wRG93blByb2ZpbGVEYXRhR3Jp
ZFRyZWU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fdG9wRG93blByb2Zp
bGVEYXRhR3JpZFRyZWUpCi0gICAgICAgICAgICB0aGlzLl90b3BEb3duUHJvZmlsZURhdGFHcmlk
VHJlZSA9IG5ldyBXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUodGhpcywg
dGhpcy5wcm9maWxlLmhlYWQpOworICAgICAgICAgICAgdGhpcy5fdG9wRG93blByb2ZpbGVEYXRh
R3JpZFRyZWUgPSBuZXcgV2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlKHRo
aXMsIHRoaXMucHJvZmlsZUhlYWQpOwogICAgICAgICByZXR1cm4gdGhpcy5fdG9wRG93blByb2Zp
bGVEYXRhR3JpZFRyZWU7CiAgICAgfSwKIAotICAgIGdldCBjdXJyZW50VHJlZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFRyZWU7Ci0gICAgfSwKLQotICAgIHNldCBjdXJy
ZW50VHJlZSh0cmVlKQotICAgIHsKLSAgICAgICAgdGhpcy5fY3VycmVudFRyZWUgPSB0cmVlOwot
ICAgICAgICB0aGlzLnJlZnJlc2goKTsKLSAgICB9LAotCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJbmRleCA9IC0xOwpA
QCAtMzg4LDEyICszODUsMTIgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICBzd2l0Y2ggKHRoaXMudmlld1NlbGVjdENvbWJvQm94LnNlbGVjdGVk
T3B0aW9uKCkudmFsdWUpIHsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZp
ZXcuX1R5cGVUcmVlOgotICAgICAgICAgICAgdGhpcy5wcm9maWxlRGF0YUdyaWRUcmVlID0gdGhp
cy50b3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZTsKKyAgICAgICAgICAgIHRoaXMucHJvZmlsZURh
dGFHcmlkVHJlZSA9IHRoaXMuX2dldFRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlKCk7CiAgICAg
ICAgICAgICB0aGlzLl9zb3J0UHJvZmlsZSgpOwogICAgICAgICAgICAgdGhpcy5fdmlld1R5cGUu
c2V0KFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5fVHlwZVRyZWUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3Ll9UeXBlSGVh
dnk6Ci0gICAgICAgICAgICB0aGlzLnByb2ZpbGVEYXRhR3JpZFRyZWUgPSB0aGlzLmJvdHRvbVVw
UHJvZmlsZURhdGFHcmlkVHJlZTsKKyAgICAgICAgICAgIHRoaXMucHJvZmlsZURhdGFHcmlkVHJl
ZSA9IHRoaXMuX2dldEJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSgpOwogICAgICAgICAgICAg
dGhpcy5fc29ydFByb2ZpbGUoKTsKICAgICAgICAgICAgIHRoaXMuX3ZpZXdUeXBlLnNldChXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcuX1R5cGVIZWF2eSk7CiAgICAgICAgIH0KQEAgLTUxNSwx
MiArNTEyLDEyIEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAK
ICAgICBfYXNzaWduUGFyZW50c0luUHJvZmlsZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dmFyIGhlYWQgPSB0aGlzLnByb2ZpbGUuaGVhZDsKKyAgICAgICAgdmFyIGhlYWQgPSB0aGlzLnBy
b2ZpbGVIZWFkOwogICAgICAgICBoZWFkLnBhcmVudCA9IG51bGw7CiAgICAgICAgIGhlYWQuaGVh
ZCA9IG51bGw7CiAgICAgICAgIHZhciBub2Rlc1RvVHJhdmVyc2UgPSBbIHsgcGFyZW50OiBoZWFk
LCBjaGlsZHJlbjogaGVhZC5jaGlsZHJlbiB9IF07CiAgICAgICAgIHdoaWxlIChub2Rlc1RvVHJh
dmVyc2UubGVuZ3RoID4gMCkgewotICAgICAgICAgICAgdmFyIHBhaXIgPSBub2Rlc1RvVHJhdmVy
c2Uuc2hpZnQoKTsKKyAgICAgICAgICAgIHZhciBwYWlyID0gbm9kZXNUb1RyYXZlcnNlLnBvcCgp
OwogICAgICAgICAgICAgdmFyIHBhcmVudCA9IHBhaXIucGFyZW50OwogICAgICAgICAgICAgdmFy
IGNoaWxkcmVuID0gcGFpci5jaGlsZHJlbjsKICAgICAgICAgICAgIHZhciBsZW5ndGggPSBjaGls
ZHJlbi5sZW5ndGg7CkBAIC01MzMsNiArNTMwLDkgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVW
aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge1Byb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZX0gcHJvZmlsZQorICAgICAqLwogICAgIF9p
bmplY3RJZGxlVGltZU5vZGU6IGZ1bmN0aW9uKHByb2ZpbGUpCiAgICAgewogICAgICAgICB2YXIg
aWRsZVRpbWUgPSBwcm9maWxlLmlkbGVUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMTg3NTQ5Yzc5YjNlMjU1YzkyZTdiYmQyZTUy
MjU4ZWNmYTA3ZTQ3NC4uYzBlZDI2MmEwYzM3NDEzYTRiZjQ2OWJkZTU5ZjY0ZTE5MWE5OWI5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCkBA
IC0xMjc1LDYgKzEyNzUsMTAgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiBjZWxsOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gY29sdW1uSWRlbnRpZmllcgorICAgICAqIEByZXR1cm4geyFFbGVtZW50fQor
ICAgICAqLwogICAgIGNyZWF0ZUNlbGw6IGZ1bmN0aW9uKGNvbHVtbklkZW50aWZpZXIpCiAgICAg
ewogICAgICAgICB2YXIgY2VsbCA9IHRoaXMuY3JlYXRlVEQoY29sdW1uSWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRh
R3JpZFRyZWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVE
YXRhR3JpZFRyZWUuanMKaW5kZXggMjg0ZjNiODdhN2Q5NmEwZDBhYjRhN2Q3ZjkzODVlMjMwNGEz
OTEyZC4uOWZkYTRhNzlmZjhlNzZiZjlmZGU0NzUwYzY2YjJmOTBmNWFiYTRkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFH
cmlkVHJlZS5qcwpAQCAtMjYsMTAgKzI2LDEyIEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGV9CisgKiBAcGFyYW0geyFQcm9maWxl
ckFnZW50LkNQVVByb2ZpbGVOb2RlfSBwcm9maWxlTm9kZQorICogQHBhcmFtIHshV2ViSW5zcGVj
dG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlfSBvd25pbmdUcmVlCisgKiBAcGFyYW0ge2Jv
b2xlYW59IGhhc0NoaWxkcmVuCiAgKi8KLVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2Rl
ID0gZnVuY3Rpb24ocHJvZmlsZVZpZXcsIHByb2ZpbGVOb2RlLCBvd25pbmdUcmVlLCBoYXNDaGls
ZHJlbikKK1dlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlID0gZnVuY3Rpb24ocHJvZmls
ZU5vZGUsIG93bmluZ1RyZWUsIGhhc0NoaWxkcmVuKQogewotICAgIHRoaXMucHJvZmlsZVZpZXcg
PSBwcm9maWxlVmlldzsKICAgICB0aGlzLnByb2ZpbGVOb2RlID0gcHJvZmlsZU5vZGU7CiAKICAg
ICBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLmNhbGwodGhpcywgbnVsbCwgaGFzQ2hpbGRyZW4p
OwpAQCAtNjIsMTcgKzY0LDE3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGF0YVsiZnVuY3Rpb24iXSA9IHRoaXMuZnVuY3Rpb25OYW1l
OwogICAgICAgICBkYXRhWyJjYWxscyJdID0gdGhpcy5udW1iZXJPZkNhbGxzOwogCi0gICAgICAg
IGlmICh0aGlzLnByb2ZpbGVWaWV3LnNob3dTZWxmVGltZUFzUGVyY2VudC5nZXQoKSkKKyAgICAg
ICAgaWYgKHRoaXMudHJlZS5wcm9maWxlVmlldy5zaG93U2VsZlRpbWVBc1BlcmNlbnQuZ2V0KCkp
CiAgICAgICAgICAgICBkYXRhWyJzZWxmIl0gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMmYl
IiwgdGhpcy5zZWxmUGVyY2VudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRhdGFbInNl
bGYiXSA9IGZvcm1hdE1pbGxpc2Vjb25kcyh0aGlzLnNlbGZUaW1lKTsKIAotICAgICAgICBpZiAo
dGhpcy5wcm9maWxlVmlldy5zaG93VG90YWxUaW1lQXNQZXJjZW50LmdldCgpKQorICAgICAgICBp
ZiAodGhpcy50cmVlLnByb2ZpbGVWaWV3LnNob3dUb3RhbFRpbWVBc1BlcmNlbnQuZ2V0KCkpCiAg
ICAgICAgICAgICBkYXRhWyJ0b3RhbCJdID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjJmJSIs
IHRoaXMudG90YWxQZXJjZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGF0YVsidG90
YWwiXSA9IGZvcm1hdE1pbGxpc2Vjb25kcyh0aGlzLnRvdGFsVGltZSk7CiAKLSAgICAgICAgaWYg
KHRoaXMucHJvZmlsZVZpZXcuc2hvd0F2ZXJhZ2VUaW1lQXNQZXJjZW50LmdldCgpKQorICAgICAg
ICBpZiAodGhpcy50cmVlLnByb2ZpbGVWaWV3LnNob3dBdmVyYWdlVGltZUFzUGVyY2VudC5nZXQo
KSkKICAgICAgICAgICAgIGRhdGFbImF2ZXJhZ2UiXSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
JS4yZiUiLCB0aGlzLmF2ZXJhZ2VQZXJjZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ZGF0YVsiYXZlcmFnZSJdID0gZm9ybWF0TWlsbGlzZWNvbmRzKHRoaXMuYXZlcmFnZVRpbWUpOwpA
QCAtODAsNiArODIsMTEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gZGF0YTsKICAgICB9LAogCisgICAgLyoqCisgICAgICog
QG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbHVtbklkZW50aWZpZXIKKyAgICAg
KiBAcmV0dXJuIHshRWxlbWVudH0KKyAgICAgKi8KICAgICBjcmVhdGVDZWxsOiBmdW5jdGlvbihj
b2x1bW5JZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgdmFyIGNlbGwgPSBXZWJJbnNwZWN0b3Iu
RGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsLmNhbGwodGhpcywgY29sdW1uSWRlbnRp
Zmllcik7CkBAIC0xMDIsNyArMTA5LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5v
ZGUucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5wcm9maWxlTm9kZS51cmwpIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FKDYyNzI1KTogcHJvZmlsZU5vZGUgc2hvdWxkIHJlZmVyZW5jZSBh
IGRlYnVnZ2VyIGxvY2F0aW9uLgogICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSB0aGlzLnBy
b2ZpbGVOb2RlLmxpbmVOdW1iZXIgPyB0aGlzLnByb2ZpbGVOb2RlLmxpbmVOdW1iZXIgLSAxIDog
MDsKLSAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhpcy5wcm9maWxlVmlldy5fbGlua2lm
aWVyLmxpbmtpZnlMb2NhdGlvbih0aGlzLnByb2ZpbGVOb2RlLnVybCwgbGluZU51bWJlciwgMCwg
InByb2ZpbGUtbm9kZS1maWxlIik7CisgICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMu
dHJlZS5wcm9maWxlVmlldy5fbGlua2lmaWVyLmxpbmtpZnlMb2NhdGlvbih0aGlzLnByb2ZpbGVO
b2RlLnVybCwgbGluZU51bWJlciwgMCwgInByb2ZpbGUtbm9kZS1maWxlIik7CiAgICAgICAgICAg
ICB1cmxFbGVtZW50LnN0eWxlLm1heFdpZHRoID0gIjc1JSI7CiAgICAgICAgICAgICBjZWxsLmlu
c2VydEJlZm9yZSh1cmxFbGVtZW50LCBjZWxsLmZpcnN0Q2hpbGQpOwogICAgICAgICB9CkBAIC0x
MTMsMTYgKzEyMCwyMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5
cGUgPSB7CiAgICAgc2VsZWN0OiBmdW5jdGlvbihzdXByZXNzU2VsZWN0ZWRFdmVudCkKICAgICB7
CiAgICAgICAgIFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLnNlbGVjdC5jYWxs
KHRoaXMsIHN1cHJlc3NTZWxlY3RlZEV2ZW50KTsKLSAgICAgICAgdGhpcy5wcm9maWxlVmlldy5f
ZGF0YUdyaWROb2RlU2VsZWN0ZWQodGhpcyk7CisgICAgICAgIHRoaXMudHJlZS5wcm9maWxlVmll
dy5fZGF0YUdyaWROb2RlU2VsZWN0ZWQodGhpcyk7CiAgICAgfSwKIAogICAgIGRlc2VsZWN0OiBm
dW5jdGlvbihzdXByZXNzRGVzZWxlY3RlZEV2ZW50KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVj
dG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuZGVzZWxlY3QuY2FsbCh0aGlzLCBzdXByZXNzRGVz
ZWxlY3RlZEV2ZW50KTsKLSAgICAgICAgdGhpcy5wcm9maWxlVmlldy5fZGF0YUdyaWROb2RlRGVz
ZWxlY3RlZCh0aGlzKTsKKyAgICAgICAgdGhpcy50cmVlLnByb2ZpbGVWaWV3Ll9kYXRhR3JpZE5v
ZGVEZXNlbGVjdGVkKHRoaXMpOwogICAgIH0sCiAKLSAgICBzb3J0OiBmdW5jdGlvbigvKkZ1bmN0
aW9uKi8gY29tcGFyYXRvciwgLypCb29sZWFuKi8gZm9yY2UpCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtmdW5jdGlvbihPYmplY3QsIE9iamVjdCl9IGNvbXBhcmF0b3IKKyAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGZvcmNlCisgICAgICovCisgICAgc29ydDogZnVuY3Rpb24oY29tcGFyYXRvciwg
Zm9yY2UpCiAgICAgewogICAgICAgICB2YXIgZ3JpZE5vZGVHcm91cHMgPSBbW3RoaXNdXTsKIApA
QCAtMTU4LDI4ICsxNjksMzggQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJv
dG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIGluc2VydENoaWxkOiBmdW5jdGlv
bigvKlByb2ZpbGVEYXRhR3JpZE5vZGUqLyBwcm9maWxlRGF0YUdyaWROb2RlLCBpbmRleCkKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0g
cHJvZmlsZURhdGFHcmlkTm9kZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAq
LworICAgIGluc2VydENoaWxkOiBmdW5jdGlvbihwcm9maWxlRGF0YUdyaWROb2RlLCBpbmRleCkK
ICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLmluc2Vy
dENoaWxkLmNhbGwodGhpcywgcHJvZmlsZURhdGFHcmlkTm9kZSwgaW5kZXgpOwogCiAgICAgICAg
IHRoaXMuY2hpbGRyZW5CeUNhbGxVSURbcHJvZmlsZURhdGFHcmlkTm9kZS5jYWxsVUlEXSA9IHBy
b2ZpbGVEYXRhR3JpZE5vZGU7CiAgICAgfSwKIAotICAgIHJlbW92ZUNoaWxkOiBmdW5jdGlvbigv
KlByb2ZpbGVEYXRhR3JpZE5vZGUqLyBwcm9maWxlRGF0YUdyaWROb2RlKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0
YUdyaWROb2RlCisgICAgICovCisgICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uKHByb2ZpbGVEYXRh
R3JpZE5vZGUpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3Rv
dHlwZS5yZW1vdmVDaGlsZC5jYWxsKHRoaXMsIHByb2ZpbGVEYXRhR3JpZE5vZGUpOwogCiAgICAg
ICAgIGRlbGV0ZSB0aGlzLmNoaWxkcmVuQnlDYWxsVUlEW3Byb2ZpbGVEYXRhR3JpZE5vZGUuY2Fs
bFVJRF07CiAgICAgfSwKIAotICAgIHJlbW92ZUNoaWxkcmVuOiBmdW5jdGlvbigvKlByb2ZpbGVE
YXRhR3JpZE5vZGUqLyBwcm9maWxlRGF0YUdyaWROb2RlKQorICAgIHJlbW92ZUNoaWxkcmVuOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3Rv
dHlwZS5yZW1vdmVDaGlsZHJlbi5jYWxsKHRoaXMpOwogCiAgICAgICAgIHRoaXMuY2hpbGRyZW5C
eUNhbGxVSUQgPSB7fTsKICAgICB9LAogCi0gICAgZmluZENoaWxkOiBmdW5jdGlvbigvKk5vZGUq
LyBub2RlKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0
YUdyaWROb2RlfSBub2RlCisgICAgICovCisgICAgZmluZENoaWxkOiBmdW5jdGlvbihub2RlKQog
ICAgIHsKICAgICAgICAgaWYgKCFub2RlKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CkBAIC0z
MDEsMTUgKzMyMiwxNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5
cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5D
UFVQcm9maWxlVmlld30gcHJvZmlsZVZpZXcKKyAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5DUFVQ
cm9maWxlTm9kZX0gcm9vdFByb2ZpbGVOb2RlCiAgKi8KLVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0
YUdyaWRUcmVlID0gZnVuY3Rpb24ocHJvZmlsZVZpZXcsIHByb2ZpbGVOb2RlKQorV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUgPSBmdW5jdGlvbihwcm9maWxlVmlldywgcm9vdFByb2Zp
bGVOb2RlKQogewogICAgIHRoaXMudHJlZSA9IHRoaXM7CiAgICAgdGhpcy5jaGlsZHJlbiA9IFtd
OwogCiAgICAgdGhpcy5wcm9maWxlVmlldyA9IHByb2ZpbGVWaWV3OwogCi0gICAgdGhpcy50b3Rh
bFRpbWUgPSBwcm9maWxlTm9kZS50b3RhbFRpbWU7CisgICAgdGhpcy50b3RhbFRpbWUgPSByb290
UHJvZmlsZU5vZGUudG90YWxUaW1lOwogICAgIHRoaXMubGFzdENvbXBhcmF0b3IgPSBudWxsOwog
CiAgICAgdGhpcy5jaGlsZHJlbkJ5Q2FsbFVJRCA9IHt9OwpAQCAtMzcwLDcgKzM5MywxMiBAQCBX
ZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZS5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlRGF0YUdyaWRUcmVlLnByb3BlcnR5Q29tcGFyYXRvcnMgPSBbe30sIHt9XTsK
IAotV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUucHJvcGVydHlDb21wYXJhdG9yID0g
ZnVuY3Rpb24oLypTdHJpbmcqLyBwcm9wZXJ0eSwgLypCb29sZWFuKi8gaXNBc2NlbmRpbmcpCisv
KioKKyAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eQorICogQHBhcmFtIHtib29sZWFufSBpc0Fz
Y2VuZGluZworICogQHJldHVybiB7ZnVuY3Rpb24oT2JqZWN0LCBPYmplY3QpfQorICovCitXZWJJ
bnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZS5wcm9wZXJ0eUNvbXBhcmF0b3IgPSBmdW5jdGlv
bihwcm9wZXJ0eSwgaXNBc2NlbmRpbmcpCiB7CiAgICAgdmFyIGNvbXBhcmF0b3IgPSBXZWJJbnNw
ZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZS5wcm9wZXJ0eUNvbXBhcmF0b3JzWyhpc0FzY2VuZGlu
ZyA/IDEgOiAwKV1bcHJvcGVydHldOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZS5qcwpp
bmRleCAzYTBhYWYxOWMxYmI0OGMxMTE2NzMzY2I3ODY0NzY4Nzc1NTY5ZTFiLi4wMjkyMzk4NzUy
ZmE1NTlkNmYyZDYxOTg2NjYzYjMyMjlmOTAyNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVG9wRG93blByb2ZpbGVEYXRhR3Jp
ZFRyZWUuanMKQEAgLTI2LDEyICsyNiwxNCBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0KKyAqIEBwYXJhbSB7IVBy
b2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZU5vZGV9IHByb2ZpbGVOb2RlCisgKiBAcGFyYW0geyFXZWJJ
bnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWV9IG93bmluZ1RyZWUKICAqLwotV2Vi
SW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWROb2RlID0gZnVuY3Rpb24oLypQcm9maWxl
VmlldyovIHByb2ZpbGVWaWV3LCAvKlByb2ZpbGVOb2RlKi8gcHJvZmlsZU5vZGUsIC8qVG9wRG93
blByb2ZpbGVEYXRhR3JpZFRyZWUqLyBvd25pbmdUcmVlKQorV2ViSW5zcGVjdG9yLlRvcERvd25Q
cm9maWxlRGF0YUdyaWROb2RlID0gZnVuY3Rpb24ocHJvZmlsZU5vZGUsIG93bmluZ1RyZWUpCiB7
Ci0gICAgdmFyIGhhc0NoaWxkcmVuID0gKHByb2ZpbGVOb2RlLmNoaWxkcmVuICYmIHByb2ZpbGVO
b2RlLmNoaWxkcmVuLmxlbmd0aCk7CisgICAgdmFyIGhhc0NoaWxkcmVuID0gISEocHJvZmlsZU5v
ZGUuY2hpbGRyZW4gJiYgcHJvZmlsZU5vZGUuY2hpbGRyZW4ubGVuZ3RoKTsKIAotICAgIFdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLmNhbGwodGhpcywgcHJvZmlsZVZpZXcsIHByb2Zp
bGVOb2RlLCBvd25pbmdUcmVlLCBoYXNDaGlsZHJlbik7CisgICAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVEYXRhR3JpZE5vZGUuY2FsbCh0aGlzLCBwcm9maWxlTm9kZSwgb3duaW5nVHJlZSwgaGFzQ2hp
bGRyZW4pOwogCiAgICAgdGhpcy5fcmVtYWluaW5nQ2hpbGRyZW4gPSBwcm9maWxlTm9kZS5jaGls
ZHJlbjsKIH0KQEAgLTQzLDcgKzQ1LDcgQEAgV2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0
YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gY2hp
bGRyZW4ubGVuZ3RoOwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5n
dGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rvci5U
b3BEb3duUHJvZmlsZURhdGFHcmlkTm9kZSh0aGlzLnByb2ZpbGVWaWV3LCBjaGlsZHJlbltpXSwg
dGhpcy50cmVlKSk7CisgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBXZWJJbnNwZWN0
b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZE5vZGUoY2hpbGRyZW5baV0sIHRoaXMudHJlZSkpOwog
CiAgICAgICAgIHRoaXMuX3JlbWFpbmluZ0NoaWxkcmVuID0gbnVsbDsKICAgICB9LApAQCAtNzMs
MTIgKzc1LDE0IEBAIFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90
b3R5cGUgPSB7CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rv
ci5Qcm9maWxlRGF0YUdyaWRUcmVlfQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVZpZXd9IHByb2ZpbGVWaWV3CisgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZU5v
ZGV9IHJvb3RQcm9maWxlTm9kZQogICovCi1XZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRh
R3JpZFRyZWUgPSBmdW5jdGlvbigvKlByb2ZpbGVWaWV3Ki8gcHJvZmlsZVZpZXcsIC8qUHJvZmls
ZU5vZGUqLyBwcm9maWxlTm9kZSkKK1dlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlk
VHJlZSA9IGZ1bmN0aW9uKHByb2ZpbGVWaWV3LCByb290UHJvZmlsZU5vZGUpCiB7Ci0gICAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUuY2FsbCh0aGlzLCBwcm9maWxlVmlldywgcHJv
ZmlsZU5vZGUpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWRUcmVlLmNhbGwodGhp
cywgcHJvZmlsZVZpZXcsIHJvb3RQcm9maWxlTm9kZSk7CiAKLSAgICB0aGlzLl9yZW1haW5pbmdD
aGlsZHJlbiA9IHByb2ZpbGVOb2RlLmNoaWxkcmVuOworICAgIHRoaXMuX3JlbWFpbmluZ0NoaWxk
cmVuID0gcm9vdFByb2ZpbGVOb2RlLmNoaWxkcmVuOwogCiAgICAgdmFyIGFueSA9IC8qKiBAdHlw
ZXsqfSAqLyh0aGlzKTsKICAgICB2YXIgbm9kZSA9IC8qKiBAdHlwZXtXZWJJbnNwZWN0b3IuUHJv
ZmlsZURhdGFHcmlkTm9kZX0gKi8oYW55KTsKQEAgLTg2LDI2ICs5MCwzMiBAQCBXZWJJbnNwZWN0
b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUgPSBmdW5jdGlvbigvKlByb2ZpbGVWaWV3Ki8g
cHJvZmlsZVZpZXcsCiB9CiAKIFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJl
ZS5wcm90b3R5cGUgPSB7Ci0gICAgZm9jdXM6IGZ1bmN0aW9uKC8qUHJvZmlsZURhdGFHcmlkTm9k
ZSovIHByb2ZpbGVEYXRhR3JpZGVOb2RlKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7IVdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0YUdyaWROb2RlCisgICAgICov
CisgICAgZm9jdXM6IGZ1bmN0aW9uKHByb2ZpbGVEYXRhR3JpZE5vZGUpCiAgICAgewotICAgICAg
ICBpZiAoIXByb2ZpbGVEYXRhR3JpZGVOb2RlKQorICAgICAgICBpZiAoIXByb2ZpbGVEYXRhR3Jp
ZE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fc2F2ZSgpOwotICAg
ICAgICBwcm9maWxlRGF0YUdyaWRlTm9kZS5zYXZlUG9zaXRpb24oKTsKKyAgICAgICAgcHJvZmls
ZURhdGFHcmlkTm9kZS5zYXZlUG9zaXRpb24oKTsKIAotICAgICAgICB0aGlzLmNoaWxkcmVuID0g
W3Byb2ZpbGVEYXRhR3JpZGVOb2RlXTsKLSAgICAgICAgdGhpcy50b3RhbFRpbWUgPSBwcm9maWxl
RGF0YUdyaWRlTm9kZS50b3RhbFRpbWU7CisgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbcHJvZmls
ZURhdGFHcmlkTm9kZV07CisgICAgICAgIHRoaXMudG90YWxUaW1lID0gcHJvZmlsZURhdGFHcmlk
Tm9kZS50b3RhbFRpbWU7CiAgICAgfSwKIAotICAgIGV4Y2x1ZGU6IGZ1bmN0aW9uKC8qUHJvZmls
ZURhdGFHcmlkTm9kZSovIHByb2ZpbGVEYXRhR3JpZGVOb2RlKQorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0YUdyaWRO
b2RlCisgICAgICovCisgICAgZXhjbHVkZTogZnVuY3Rpb24ocHJvZmlsZURhdGFHcmlkTm9kZSkK
ICAgICB7Ci0gICAgICAgIGlmICghcHJvZmlsZURhdGFHcmlkZU5vZGUpCisgICAgICAgIGlmICgh
cHJvZmlsZURhdGFHcmlkTm9kZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlz
Ll9zYXZlKCk7CiAKLSAgICAgICAgdmFyIGV4Y2x1ZGVkQ2FsbFVJRCA9IHByb2ZpbGVEYXRhR3Jp
ZGVOb2RlLmNhbGxVSUQ7CisgICAgICAgIHZhciBleGNsdWRlZENhbGxVSUQgPSBwcm9maWxlRGF0
YUdyaWROb2RlLmNhbGxVSUQ7CiAKICAgICAgICAgdmFyIGFueSA9IC8qKiBAdHlwZXsqfSAqLyh0
aGlzKTsKICAgICAgICAgdmFyIG5vZGUgPSAvKiogQHR5cGV7V2ViSW5zcGVjdG9yLlRvcERvd25Q
cm9maWxlRGF0YUdyaWROb2RlfSAqLyhhbnkpOwo=
</data>
<flag name="review"
          id="204860"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185768</attachid>
            <date>2013-01-31 06:16:38 -0800</date>
            <delta_ts>2013-02-20 20:10:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108437-20130131181321.patch</filename>
            <type>text/plain</type>
            <size>24987</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUzNjNlZjVlMmIzOGYx
YWI3ZGQ4ODU4YTM0ZGQxYzNiYmE2ZGRjNi4uMDliNGQwNDBkYzFiYmRjNzBiZWNkYzZmZGNlZDg5
NWU5YmY1ODk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY3IEBACiAyMDEzLTAxLTMxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDUFUgUHJvZmlsZV0gQXBwbHkgbWlub3IgcmVmYWN0b3JpbmdzIGFuZCBhZGQgSlNE
b2NzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
NDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1BV
IFByb2ZpbGUgY29kZSBoYXMgb2Jzb2xldGUgaW5saW5lLWNvbW1lbnRzIHRvIGNsYXJpZnkgdHlw
ZXMuCisgICAgICAgIEN1cnJlbnRseSB3ZSB1c2UgSlNEb2NzIHRvIHNwZWNpZnkgdHlwZXMuCisK
KyAgICAgICAgQWxzbyBhcHBsaWVkIHNvbWUgbWlub3IgcmVmYWN0b3JpbmdzLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAg
ICAgQWRkZWQgSlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLl90YWtl
UHJvcGVydGllc0Zyb21Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAgICAgQWRkZWQgSlNEb2Nz
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90
b3R5cGUuX2tlZXBPbmx5Q2hpbGQpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLl9tZXJnZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlk
Tm9kZS5wcm90b3R5cGUuX3NoYXJlZFBvcHVsYXRlKToKKyAgICAgICAgRG8gbm90IHBhc3MgcHJv
ZmlsZVZpZXcgdG8gY29uc3RydWN0b3IuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQ
cm9maWxlRGF0YUdyaWRUcmVlKToKKyAgICAgICAgQWRkZWQgSlNEb2NzLiBSZW5hbWVkIHBhcmFt
ZXRlcnMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVl
LnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgIEFkZGVkIEpTRG9jcy4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlLmV4Y2x1ZGUpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVW
aWV3LmpzOiBSZW1vdmVkIHVudXNlZCBnZXR0ZXIvc2V0dGVyLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlwZS5fZ2V0Q1BVUHJvZmlsZUNhbGxiYWNrKToKKyAg
ICAgICAgVW4tbmVzdGVkLiBBZGRlZCBKU0RvY3MuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRCb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUpOgor
ICAgICAgICBBZGRlZCBKU0RvY3MuIFR1cm5lZCB0byBtZXRob2QgZnJvbSBnZXR0ZXIuIFNpbXBs
aWZpZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9n
ZXRUb3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZSk6CisgICAgICAgIEFkZGVkIEpTRG9jcy4gVHVy
bmVkIHRvIG1ldGhvZCBmcm9tIGdldHRlci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVmlldy5wcm90b3R5cGUuX2Fzc2lnblBhcmVudHNJblByb2ZpbGUpOgorICAgICAgICBPcHRp
bWl6ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczogQWRkZWQg
SlNEb2NzLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJl
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAg
ICAgQWRkZWQgSlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsKTog
QWRkZWQgSlNEb2NzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUu
cHJvdG90eXBlLnNvcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0
YUdyaWROb2RlLnByb3RvdHlwZS5pbnNlcnRDaGlsZCk6IERpdHRvLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkKTogRGl0dG8u
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUucmVt
b3ZlQ2hpbGRyZW4pOgorICAgICAgICBBZGRlZCBKU0RvY3MuIFJlbW92ZWQgcGFyYW1ldGVyLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmZpbmRD
aGlsZCk6IEFkZGVkIEpTRG9jcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWRUcmVlKTogQWRkZWQgSlNEb2NzLiBSZW5hbWVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAgICAgQWRkZWQg
SlNEb2NzLiBSZW1vdmVkIHByb2ZpbGVWaWV3IHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuX3NoYXJlZFBvcHVsYXRl
KToKKyAgICAgICAgRG8gbm90IHBhc3MgcHJvZmlsZVZpZXcgdG8gY29uc3RydWN0b3IuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUpOgorICAgICAgICBB
ZGRlZCBKU0RvY3MuIFJlbmFtZWQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRv
cERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgIEFkZGVk
IEpTRG9jcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJl
ZS5wcm90b3R5cGUuZXhjbHVkZSk6CisgICAgICAgIERpdHRvLgorCisyMDEzLTAxLTMxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtOZXR3b3JrXSBDb2x1bW5zIGFyZSBtaXNhbGlnbmVkIGFzIGZpcnN0IHJvdyBnb2Vz
IG91dCBvZiBzaWdodC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzkzMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlLmpzCmluZGV4IGIz
ZjU3MDg4N2I4OTk0OWM1NDdiOWE5ZGQ0ZGI0OTVlNzhlOTZiOGMuLjZiODY0MzBlNjg3MmYxOWI3
NmZiZjEyOGE2OGU5MzY3ZTU1ZGY5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVl
LmpzCkBAIC0zMiwxNiArMzIsMjEgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGV9CisgKiBAcGFyYW0geyFQcm9maWxl
ckFnZW50LkNQVVByb2ZpbGVOb2RlfSBwcm9maWxlTm9kZQorICogQHBhcmFtIHshV2ViSW5zcGVj
dG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlfSBvd25pbmdUcmVlCiAgKi8KLVdlYkluc3Bl
Y3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUgPSBmdW5jdGlvbigvKlByb2ZpbGVWaWV3
Ki8gcHJvZmlsZVZpZXcsIC8qUHJvZmlsZU5vZGUqLyBwcm9maWxlTm9kZSwgLypCb3R0b21VcFBy
b2ZpbGVEYXRhR3JpZFRyZWUqLyBvd25pbmdUcmVlKQorV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJv
ZmlsZURhdGFHcmlkTm9kZSA9IGZ1bmN0aW9uKHByb2ZpbGVOb2RlLCBvd25pbmdUcmVlKQogewot
ICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLmNhbGwodGhpcywgcHJvZmlsZVZp
ZXcsIHByb2ZpbGVOb2RlLCBvd25pbmdUcmVlLCB0aGlzLl93aWxsSGF2ZUNoaWxkcmVuKHByb2Zp
bGVOb2RlKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUuY2FsbCh0aGlz
LCBwcm9maWxlTm9kZSwgb3duaW5nVHJlZSwgdGhpcy5fd2lsbEhhdmVDaGlsZHJlbihwcm9maWxl
Tm9kZSkpOwogCiAgICAgdGhpcy5fcmVtYWluaW5nTm9kZUluZm9zID0gW107CiB9CiAKIFdlYklu
c3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewotICAgIF90
YWtlUHJvcGVydGllc0Zyb21Qcm9maWxlRGF0YUdyaWROb2RlOiBmdW5jdGlvbigvKlByb2ZpbGVE
YXRhR3JpZE5vZGUqLyBwcm9maWxlRGF0YUdyaWROb2RlKQorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0YUdyaWROb2Rl
CisgICAgICovCisgICAgX3Rha2VQcm9wZXJ0aWVzRnJvbVByb2ZpbGVEYXRhR3JpZE5vZGU6IGZ1
bmN0aW9uKHByb2ZpbGVEYXRhR3JpZE5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9zYXZlKCk7
CiAKQEAgLTUwLDggKzU1LDExIEBAIFdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3Jp
ZE5vZGUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLm51bWJlck9mQ2FsbHMgPSBwcm9maWxl
RGF0YUdyaWROb2RlLm51bWJlck9mQ2FsbHM7CiAgICAgfSwKIAotICAgIC8vIFdoZW4gZm9jdXNp
bmcsIHdlIGtlZXAganVzdCB0aGUgbWVtYmVycyBvZiB0aGUgY2FsbHN0YWNrLgotICAgIF9rZWVw
T25seUNoaWxkOiBmdW5jdGlvbigvKlByb2ZpbGVEYXRhR3JpZE5vZGUqLyBjaGlsZCkKKyAgICAv
KioKKyAgICAgKiBXaGVuIGZvY3VzaW5nLCB3ZSBrZWVwIGp1c3QgdGhlIG1lbWJlcnMgb2YgdGhl
IGNhbGxzdGFjay4KKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlk
Tm9kZX0gY2hpbGQKKyAgICAgKi8KKyAgICBfa2VlcE9ubHlDaGlsZDogZnVuY3Rpb24oY2hpbGQp
CiAgICAgewogICAgICAgICB0aGlzLl9zYXZlKCk7CiAKQEAgLTg2LDcgKzk0LDExIEBAIFdlYklu
c3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRoaXMuX3dpbGxIYXZlQ2hpbGRyZW4odGhpcy5wcm9m
aWxlTm9kZSk7CiAgICAgfSwKIAotICAgIF9tZXJnZTogZnVuY3Rpb24oLypQcm9maWxlRGF0YUdy
aWROb2RlKi8gY2hpbGQsIC8qQm9vbGVhbiovIHNob3VsZEFic29yYikKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0gY2hpbGQKKyAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IHNob3VsZEFic29yYgorICAgICAqLworICAgIF9tZXJnZTogZnVu
Y3Rpb24oY2hpbGQsIHNob3VsZEFic29yYikKICAgICB7CiAgICAgICAgIHRoaXMuc2VsZlRpbWUg
LT0gY2hpbGQuc2VsZlRpbWU7CiAKQEAgLTExNiw3ICsxMjgsNyBAQCBXZWJJbnNwZWN0b3IuQm90
dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgbm90LCBhZGQgaXQgYXMgYSB0cnVlIGFuY2VzdG9y
LgogICAgICAgICAgICAgICAgIC8vIEluIGhlYXZ5IG1vZGUsIHdlIHRha2Ugb3VyIHZpc3VhbCBp
ZGVudGl0eSBmcm9tIGFuY2VzdG9yIG5vZGUuLi4KLSAgICAgICAgICAgICAgICBjaGlsZCA9IG5l
dyBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlKHRoaXMucHJvZmlsZVZp
ZXcsIGFuY2VzdG9yLCB0aGlzLnRyZWUpOworICAgICAgICAgICAgICAgIGNoaWxkID0gbmV3IFdl
Ykluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZE5vZGUoYW5jZXN0b3IsIHRoaXMudHJl
ZSk7CiAKICAgICAgICAgICAgICAgICBpZiAoYW5jZXN0b3IgIT09IGZvY3VzTm9kZSkgewogICAg
ICAgICAgICAgICAgICAgICAvLyBidXQgdGhlIGFjdHVhbCBzdGF0aXN0aWNzIGZyb20gdGhlICJy
b290IiBub2RlIChib3R0b20gb2YgdGhlIGNhbGxzdGFjaykuCkBAIC0xNTEsMTQgKzE2MywxNiBA
QCBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsK
IC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVE
YXRhR3JpZFRyZWV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlld30gcHJv
ZmlsZVZpZXcKKyAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5DUFVQcm9maWxlTm9kZX0gcm9vdFBy
b2ZpbGVOb2RlCiAgKi8KLVdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUg
PSBmdW5jdGlvbigvKlByb2ZpbGVWaWV3Ki8gYVByb2ZpbGVWaWV3LCAvKlByb2ZpbGVOb2RlKi8g
YVByb2ZpbGVOb2RlKQorV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSA9
IGZ1bmN0aW9uKHByb2ZpbGVWaWV3LCByb290UHJvZmlsZU5vZGUpCiB7Ci0gICAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUuY2FsbCh0aGlzLCBhUHJvZmlsZVZpZXcsIGFQcm9maWxl
Tm9kZSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUuY2FsbCh0aGlzLCBw
cm9maWxlVmlldywgcm9vdFByb2ZpbGVOb2RlKTsKIAogICAgIC8vIEl0ZXJhdGUgZWFjaCBub2Rl
IGluIHByZS1vcmRlci4KICAgICB2YXIgcHJvZmlsZU5vZGVVSURzID0gMDsKLSAgICB2YXIgcHJv
ZmlsZU5vZGVHcm91cHMgPSBbW10sIFthUHJvZmlsZU5vZGVdXTsKKyAgICB2YXIgcHJvZmlsZU5v
ZGVHcm91cHMgPSBbW10sIFtyb290UHJvZmlsZU5vZGVdXTsKICAgICB2YXIgdmlzaXRlZFByb2Zp
bGVOb2Rlc0ZvckNhbGxVSUQgPSB7fTsKIAogICAgIHRoaXMuX3JlbWFpbmluZ05vZGVJbmZvcyA9
IFtdOwpAQCAtMjE2LDggKzIzMCwxMSBAQCBXZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0
YUdyaWRUcmVlID0gZnVuY3Rpb24oLypQcm9maWxlVmlldyovIGFQcm9maWxlVmlldwogfQogCiBX
ZWJJbnNwZWN0b3IuQm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlLnByb3RvdHlwZSA9IHsKLSAg
ICAvLyBXaGVuIGZvY3VzaW5nLCB3ZSBrZWVwIHRoZSBlbnRpcmUgY2FsbHN0YWNrIHVwIHRvIHRo
aXMgYW5jZXN0b3IuCi0gICAgZm9jdXM6IGZ1bmN0aW9uKC8qUHJvZmlsZURhdGFHcmlkTm9kZSov
IHByb2ZpbGVEYXRhR3JpZE5vZGUpCisgICAgLyoqCisgICAgICogV2hlbiBmb2N1c2luZywgd2Ug
a2VlcCB0aGUgZW50aXJlIGNhbGxzdGFjayB1cCB0byB0aGlzIGFuY2VzdG9yLgorICAgICAqIEBw
YXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0YUdyaWRO
b2RlCisgICAgICovCisgICAgZm9jdXM6IGZ1bmN0aW9uKHByb2ZpbGVEYXRhR3JpZE5vZGUpCiAg
ICAgewogICAgICAgICBpZiAoIXByb2ZpbGVEYXRhR3JpZE5vZGUpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC0yNDEsNyArMjU4LDEwIEBAIFdlYkluc3BlY3Rvci5Cb3R0b21VcFByb2ZpbGVEYXRh
R3JpZFRyZWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnRvdGFsVGltZSA9IHByb2ZpbGVE
YXRhR3JpZE5vZGUudG90YWxUaW1lOwogICAgIH0sCiAKLSAgICBleGNsdWRlOiBmdW5jdGlvbigv
KlByb2ZpbGVEYXRhR3JpZE5vZGUqLyBwcm9maWxlRGF0YUdyaWROb2RlKQorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlfSBwcm9maWxlRGF0
YUdyaWROb2RlCisgICAgICovCisgICAgZXhjbHVkZTogZnVuY3Rpb24ocHJvZmlsZURhdGFHcmlk
Tm9kZSkKICAgICB7CiAgICAgICAgIGlmICghcHJvZmlsZURhdGFHcmlkTm9kZSkKICAgICAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ1BVUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NQVVByb2ZpbGVWaWV3LmpzCmluZGV4IGU3NmFjMDRhNmVhODJjOTZhNDE5NzU4MTliMTQ3NWEx
YjU4MTYwOGEuLjQ2YWU1NDIzOGQ5NmRlZDQ1N2YwNDIyNzBhZDA5ODA2MWViNTE2NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmll
dy5qcwpAQCAtMjYsNiArMjYsNyBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVI
ZWFkZXJ9IHByb2ZpbGUKICAqLwogV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3ID0gZnVuY3Rp
b24ocHJvZmlsZSkKIHsKQEAgLTc1LDkgKzc2LDIzIEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
VmlldyA9IGZ1bmN0aW9uKHByb2ZpbGUpCiAgICAgdGhpcy5yZXNldEJ1dHRvbi52aXNpYmxlID0g
ZmFsc2U7CiAgICAgdGhpcy5yZXNldEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRo
aXMuX3Jlc2V0Q2xpY2tlZCwgdGhpcyk7CiAKKyAgICB0aGlzLnByb2ZpbGVIZWFkID0gLyoqIEB0
eXBlIHs/UHJvZmlsZXJBZ2VudC5DUFVQcm9maWxlTm9kZX0gKi8gbnVsbDsKICAgICB0aGlzLnBy
b2ZpbGUgPSBwcm9maWxlOwogCi0gICAgZnVuY3Rpb24gcHJvZmlsZUNhbGxiYWNrKGVycm9yLCBw
cm9maWxlKQorICAgIHRoaXMuX2xpbmtpZmllciA9IG5ldyBXZWJJbnNwZWN0b3IuTGlua2lmaWVy
KG5ldyBXZWJJbnNwZWN0b3IuTGlua2lmaWVyLkRlZmF1bHRGb3JtYXR0ZXIoMzApKTsKKworICAg
IFByb2ZpbGVyQWdlbnQuZ2V0Q1BVUHJvZmlsZSh0aGlzLnByb2ZpbGUudWlkLCB0aGlzLl9nZXRD
UFVQcm9maWxlQ2FsbGJhY2suYmluZCh0aGlzKSk7Cit9CisKK1dlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVmlldy5fVHlwZVRyZWUgPSAiVHJlZSI7CitXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcu
X1R5cGVIZWF2eSA9ICJIZWF2eSI7CisKK1dlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90
b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9y
CisgICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkNQVVByb2ZpbGV9IHByb2ZpbGUKKyAgICAg
Ki8KKyAgICBfZ2V0Q1BVUHJvZmlsZUNhbGxiYWNrOiBmdW5jdGlvbihlcnJvciwgcHJvZmlsZSkK
ICAgICB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg2LDcg
KzEwMSw3IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldyA9IGZ1bmN0aW9uKHByb2ZpbGUp
CiAgICAgICAgICAgICAvLyBQcm9maWxpbmcgd2FzIHRlbnRhdGl2ZWx5IHRlcm1pbmF0ZWQgd2l0
aCB0aGUgIkNsZWFyIGFsbCBwcm9maWxlcy4iIGJ1dHRvbi4KICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotICAgICAgICB0aGlzLnByb2ZpbGUuaGVhZCA9IHByb2ZpbGUuaGVhZDsKKyAg
ICAgICAgdGhpcy5wcm9maWxlSGVhZCA9IHByb2ZpbGUuaGVhZDsKIAogICAgICAgICBpZiAocHJv
ZmlsZS5pZGxlVGltZSkKICAgICAgICAgICAgIHRoaXMuX2luamVjdElkbGVUaW1lTm9kZShwcm9m
aWxlKTsKQEAgLTk0LDUxICsxMDksMzMgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3ID0g
ZnVuY3Rpb24ocHJvZmlsZSkKICAgICAgICAgdGhpcy5fYXNzaWduUGFyZW50c0luUHJvZmlsZSgp
OwogICAgICAgICB0aGlzLl9jaGFuZ2VWaWV3KCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVBlcmNl
bnRCdXR0b24oKTsKLSAgICB9Ci0KLSAgICB0aGlzLl9saW5raWZpZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkxpbmtpZmllcihuZXcgV2ViSW5zcGVjdG9yLkxpbmtpZmllci5EZWZhdWx0Rm9ybWF0dGVy
KDMwKSk7Ci0KLSAgICBQcm9maWxlckFnZW50LmdldENQVVByb2ZpbGUodGhpcy5wcm9maWxlLnVp
ZCwgcHJvZmlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwotfQotCi1XZWJJbnNwZWN0b3IuQ1BVUHJv
ZmlsZVZpZXcuX1R5cGVUcmVlID0gIlRyZWUiOwotV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3
Ll9UeXBlSGVhdnkgPSAiSGVhdnkiOworICAgIH0sCiAKLVdlYkluc3BlY3Rvci5DUFVQcm9maWxl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBbdGhpcy52aWV3U2VsZWN0Q29tYm9Cb3guZWxlbWVudCwgdGhpcy5wZXJjZW50
QnV0dG9uLmVsZW1lbnQsIHRoaXMuZm9jdXNCdXR0b24uZWxlbWVudCwgdGhpcy5leGNsdWRlQnV0
dG9uLmVsZW1lbnQsIHRoaXMucmVzZXRCdXR0b24uZWxlbWVudF07CiAgICAgfSwKIAotICAgIGdl
dCBib3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUoKQorICAgIC8qKgorICAgICAqIEByZXR1cm4g
eyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZX0KKyAgICAgKi8KKyAgICBfZ2V0Qm90
dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAo
IXRoaXMuX2JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSkgewotICAgICAgICAgICAgaWYgKHRo
aXMucHJvZmlsZS5ib3R0b21VcEhlYWQpCi0gICAgICAgICAgICAgICAgdGhpcy5fYm90dG9tVXBQ
cm9maWxlRGF0YUdyaWRUcmVlID0gbmV3IFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFH
cmlkVHJlZSh0aGlzLCB0aGlzLnByb2ZpbGUuYm90dG9tVXBIZWFkKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB0aGlzLl9ib3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUgPSBu
ZXcgV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSh0aGlzLCB0aGlzLnBy
b2ZpbGUuaGVhZCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9ib3R0b21VcFByb2Zp
bGVEYXRhR3JpZFRyZWUpCisgICAgICAgICAgICB0aGlzLl9ib3R0b21VcFByb2ZpbGVEYXRhR3Jp
ZFRyZWUgPSBuZXcgV2ViSW5zcGVjdG9yLkJvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZSh0aGlz
LCB0aGlzLnByb2ZpbGVIZWFkKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX2JvdHRvbVVwUHJvZmls
ZURhdGFHcmlkVHJlZTsKICAgICB9LAogCi0gICAgZ2V0IHRvcERvd25Qcm9maWxlRGF0YUdyaWRU
cmVlKCkKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRh
R3JpZFRyZWV9CisgICAgICovCisgICAgX2dldFRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3RvcERvd25Qcm9maWxlRGF0YUdy
aWRUcmVlKQotICAgICAgICAgICAgdGhpcy5fdG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlKHRoaXMsIHRoaXMucHJv
ZmlsZS5oZWFkKTsKKyAgICAgICAgICAgIHRoaXMuX3RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVl
ID0gbmV3IFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZSh0aGlzLCB0aGlz
LnByb2ZpbGVIZWFkKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RvcERvd25Qcm9maWxlRGF0YUdy
aWRUcmVlOwogICAgIH0sCiAKLSAgICBnZXQgY3VycmVudFRyZWUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2N1cnJlbnRUcmVlOwotICAgIH0sCi0KLSAgICBzZXQgY3VycmVudFRyZWUo
dHJlZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRUcmVlID0gdHJlZTsKLSAgICAgICAg
dGhpcy5yZWZyZXNoKCk7Ci0gICAgfSwKLQogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPSAtMTsKQEAgLTM4OCwx
MiArMzg1LDEyIEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXdTZWxlY3RDb21ib0JveC5zZWxlY3RlZE9wdGlvbigp
LnZhbHVlKSB7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3Ll9UeXBl
VHJlZToKLSAgICAgICAgICAgIHRoaXMucHJvZmlsZURhdGFHcmlkVHJlZSA9IHRoaXMudG9wRG93
blByb2ZpbGVEYXRhR3JpZFRyZWU7CisgICAgICAgICAgICB0aGlzLnByb2ZpbGVEYXRhR3JpZFRy
ZWUgPSB0aGlzLl9nZXRUb3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZSgpOwogICAgICAgICAgICAg
dGhpcy5fc29ydFByb2ZpbGUoKTsKICAgICAgICAgICAgIHRoaXMuX3ZpZXdUeXBlLnNldChXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcuX1R5cGVUcmVlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5fVHlwZUhlYXZ5OgotICAg
ICAgICAgICAgdGhpcy5wcm9maWxlRGF0YUdyaWRUcmVlID0gdGhpcy5ib3R0b21VcFByb2ZpbGVE
YXRhR3JpZFRyZWU7CisgICAgICAgICAgICB0aGlzLnByb2ZpbGVEYXRhR3JpZFRyZWUgPSB0aGlz
Ll9nZXRCb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUoKTsKICAgICAgICAgICAgIHRoaXMuX3Nv
cnRQcm9maWxlKCk7CiAgICAgICAgICAgICB0aGlzLl92aWV3VHlwZS5zZXQoV2ViSW5zcGVjdG9y
LkNQVVByb2ZpbGVWaWV3Ll9UeXBlSGVhdnkpOwogICAgICAgICB9CkBAIC01MTUsMTIgKzUxMiwx
MiBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgX2Fz
c2lnblBhcmVudHNJblByb2ZpbGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBoZWFk
ID0gdGhpcy5wcm9maWxlLmhlYWQ7CisgICAgICAgIHZhciBoZWFkID0gdGhpcy5wcm9maWxlSGVh
ZDsKICAgICAgICAgaGVhZC5wYXJlbnQgPSBudWxsOwogICAgICAgICBoZWFkLmhlYWQgPSBudWxs
OwogICAgICAgICB2YXIgbm9kZXNUb1RyYXZlcnNlID0gWyB7IHBhcmVudDogaGVhZCwgY2hpbGRy
ZW46IGhlYWQuY2hpbGRyZW4gfSBdOwogICAgICAgICB3aGlsZSAobm9kZXNUb1RyYXZlcnNlLmxl
bmd0aCA+IDApIHsKLSAgICAgICAgICAgIHZhciBwYWlyID0gbm9kZXNUb1RyYXZlcnNlLnNoaWZ0
KCk7CisgICAgICAgICAgICB2YXIgcGFpciA9IG5vZGVzVG9UcmF2ZXJzZS5wb3AoKTsKICAgICAg
ICAgICAgIHZhciBwYXJlbnQgPSBwYWlyLnBhcmVudDsKICAgICAgICAgICAgIHZhciBjaGlsZHJl
biA9IHBhaXIuY2hpbGRyZW47CiAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gY2hpbGRyZW4ubGVu
Z3RoOwpAQCAtNTMzLDYgKzUzMCw5IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtQ
cm9maWxlckFnZW50LkNQVVByb2ZpbGV9IHByb2ZpbGUKKyAgICAgKi8KICAgICBfaW5qZWN0SWRs
ZVRpbWVOb2RlOiBmdW5jdGlvbihwcm9maWxlKQogICAgIHsKICAgICAgICAgdmFyIGlkbGVUaW1l
ID0gcHJvZmlsZS5pZGxlVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFHcmlkLmpzCmluZGV4IDE4NzU0OWM3OWIzZTI1NWM5MmU3YmJkMmU1MjI1OGVjZmEw
N2U0NzQuLmMwZWQyNjJhMGMzNzQxM2E0YmY0NjliZGU1OWY2NGUxOTFhOTliOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtMTI3NSw2
ICsxMjc1LDEwIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gY2VsbDsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJp
bmd9IGNvbHVtbklkZW50aWZpZXIKKyAgICAgKiBAcmV0dXJuIHshRWxlbWVudH0KKyAgICAgKi8K
ICAgICBjcmVhdGVDZWxsOiBmdW5jdGlvbihjb2x1bW5JZGVudGlmaWVyKQogICAgIHsKICAgICAg
ICAgdmFyIGNlbGwgPSB0aGlzLmNyZWF0ZVREKGNvbHVtbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVl
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRU
cmVlLmpzCmluZGV4IDI4NGYzYjg3YTdkOTZhMGQwYWI0YTdkN2Y5Mzg1ZTIzMDRhMzkxMmQuLjlm
ZGE0YTc5ZmY4ZTc2YmY5ZmRlNDc1MGM2NmIyZjkwZjVhYmE0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRhR3JpZFRyZWUu
anMKQEAgLTI2LDEwICsyNiwxMiBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlfQorICogQHBhcmFtIHshUHJvZmlsZXJBZ2VudC5D
UFVQcm9maWxlTm9kZX0gcHJvZmlsZU5vZGUKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Ub3BE
b3duUHJvZmlsZURhdGFHcmlkVHJlZX0gb3duaW5nVHJlZQorICogQHBhcmFtIHtib29sZWFufSBo
YXNDaGlsZHJlbgogICovCi1XZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZSA9IGZ1bmN0
aW9uKHByb2ZpbGVWaWV3LCBwcm9maWxlTm9kZSwgb3duaW5nVHJlZSwgaGFzQ2hpbGRyZW4pCitX
ZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZSA9IGZ1bmN0aW9uKHByb2ZpbGVOb2RlLCBv
d25pbmdUcmVlLCBoYXNDaGlsZHJlbikKIHsKLSAgICB0aGlzLnByb2ZpbGVWaWV3ID0gcHJvZmls
ZVZpZXc7CiAgICAgdGhpcy5wcm9maWxlTm9kZSA9IHByb2ZpbGVOb2RlOwogCiAgICAgV2ViSW5z
cGVjdG9yLkRhdGFHcmlkTm9kZS5jYWxsKHRoaXMsIG51bGwsIGhhc0NoaWxkcmVuKTsKQEAgLTYy
LDE3ICs2NCwxNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGRhdGFbImZ1bmN0aW9uIl0gPSB0aGlzLmZ1bmN0aW9uTmFtZTsKICAgICAg
ICAgZGF0YVsiY2FsbHMiXSA9IHRoaXMubnVtYmVyT2ZDYWxsczsKIAotICAgICAgICBpZiAodGhp
cy5wcm9maWxlVmlldy5zaG93U2VsZlRpbWVBc1BlcmNlbnQuZ2V0KCkpCisgICAgICAgIGlmICh0
aGlzLnRyZWUucHJvZmlsZVZpZXcuc2hvd1NlbGZUaW1lQXNQZXJjZW50LmdldCgpKQogICAgICAg
ICAgICAgZGF0YVsic2VsZiJdID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjJmJSIsIHRoaXMu
c2VsZlBlcmNlbnQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBkYXRhWyJzZWxmIl0gPSBm
b3JtYXRNaWxsaXNlY29uZHModGhpcy5zZWxmVGltZSk7CiAKLSAgICAgICAgaWYgKHRoaXMucHJv
ZmlsZVZpZXcuc2hvd1RvdGFsVGltZUFzUGVyY2VudC5nZXQoKSkKKyAgICAgICAgaWYgKHRoaXMu
dHJlZS5wcm9maWxlVmlldy5zaG93VG90YWxUaW1lQXNQZXJjZW50LmdldCgpKQogICAgICAgICAg
ICAgZGF0YVsidG90YWwiXSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4yZiUiLCB0aGlzLnRv
dGFsUGVyY2VudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRhdGFbInRvdGFsIl0gPSBm
b3JtYXRNaWxsaXNlY29uZHModGhpcy50b3RhbFRpbWUpOwogCi0gICAgICAgIGlmICh0aGlzLnBy
b2ZpbGVWaWV3LnNob3dBdmVyYWdlVGltZUFzUGVyY2VudC5nZXQoKSkKKyAgICAgICAgaWYgKHRo
aXMudHJlZS5wcm9maWxlVmlldy5zaG93QXZlcmFnZVRpbWVBc1BlcmNlbnQuZ2V0KCkpCiAgICAg
ICAgICAgICBkYXRhWyJhdmVyYWdlIl0gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMmYlIiwg
dGhpcy5hdmVyYWdlUGVyY2VudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRhdGFbImF2
ZXJhZ2UiXSA9IGZvcm1hdE1pbGxpc2Vjb25kcyh0aGlzLmF2ZXJhZ2VUaW1lKTsKQEAgLTgwLDYg
KzgyLDExIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBvdmVycmlk
ZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb2x1bW5JZGVudGlmaWVyCisgICAgICogQHJldHVy
biB7IUVsZW1lbnR9CisgICAgICovCiAgICAgY3JlYXRlQ2VsbDogZnVuY3Rpb24oY29sdW1uSWRl
bnRpZmllcikKICAgICB7CiAgICAgICAgIHZhciBjZWxsID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlk
Tm9kZS5wcm90b3R5cGUuY3JlYXRlQ2VsbC5jYWxsKHRoaXMsIGNvbHVtbklkZW50aWZpZXIpOwpA
QCAtMTAyLDcgKzEwOSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMucHJvZmlsZU5vZGUudXJsKSB7CiAgICAgICAgICAg
ICAvLyBGSVhNRSg2MjcyNSk6IHByb2ZpbGVOb2RlIHNob3VsZCByZWZlcmVuY2UgYSBkZWJ1Z2dl
ciBsb2NhdGlvbi4KICAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5wcm9maWxlTm9k
ZS5saW5lTnVtYmVyID8gdGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyIC0gMSA6IDA7Ci0gICAg
ICAgICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMucHJvZmlsZVZpZXcuX2xpbmtpZmllci5saW5r
aWZ5TG9jYXRpb24odGhpcy5wcm9maWxlTm9kZS51cmwsIGxpbmVOdW1iZXIsIDAsICJwcm9maWxl
LW5vZGUtZmlsZSIpOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSB0aGlzLnRyZWUucHJv
ZmlsZVZpZXcuX2xpbmtpZmllci5saW5raWZ5TG9jYXRpb24odGhpcy5wcm9maWxlTm9kZS51cmws
IGxpbmVOdW1iZXIsIDAsICJwcm9maWxlLW5vZGUtZmlsZSIpOwogICAgICAgICAgICAgdXJsRWxl
bWVudC5zdHlsZS5tYXhXaWR0aCA9ICI3NSUiOwogICAgICAgICAgICAgY2VsbC5pbnNlcnRCZWZv
cmUodXJsRWxlbWVudCwgY2VsbC5maXJzdENoaWxkKTsKICAgICAgICAgfQpAQCAtMTEzLDE2ICsx
MjAsMjAgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewog
ICAgIHNlbGVjdDogZnVuY3Rpb24oc3VwcmVzc1NlbGVjdGVkRXZlbnQpCiAgICAgewogICAgICAg
ICBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5zZWxlY3QuY2FsbCh0aGlzLCBz
dXByZXNzU2VsZWN0ZWRFdmVudCk7Ci0gICAgICAgIHRoaXMucHJvZmlsZVZpZXcuX2RhdGFHcmlk
Tm9kZVNlbGVjdGVkKHRoaXMpOworICAgICAgICB0aGlzLnRyZWUucHJvZmlsZVZpZXcuX2RhdGFH
cmlkTm9kZVNlbGVjdGVkKHRoaXMpOwogICAgIH0sCiAKICAgICBkZXNlbGVjdDogZnVuY3Rpb24o
c3VwcmVzc0Rlc2VsZWN0ZWRFdmVudCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5EYXRh
R3JpZE5vZGUucHJvdG90eXBlLmRlc2VsZWN0LmNhbGwodGhpcywgc3VwcmVzc0Rlc2VsZWN0ZWRF
dmVudCk7Ci0gICAgICAgIHRoaXMucHJvZmlsZVZpZXcuX2RhdGFHcmlkTm9kZURlc2VsZWN0ZWQo
dGhpcyk7CisgICAgICAgIHRoaXMudHJlZS5wcm9maWxlVmlldy5fZGF0YUdyaWROb2RlRGVzZWxl
Y3RlZCh0aGlzKTsKICAgICB9LAogCi0gICAgc29ydDogZnVuY3Rpb24oLypGdW5jdGlvbiovIGNv
bXBhcmF0b3IsIC8qQm9vbGVhbiovIGZvcmNlKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7ZnVu
Y3Rpb24oT2JqZWN0LCBPYmplY3QpfSBjb21wYXJhdG9yCisgICAgICogQHBhcmFtIHtib29sZWFu
fSBmb3JjZQorICAgICAqLworICAgIHNvcnQ6IGZ1bmN0aW9uKGNvbXBhcmF0b3IsIGZvcmNlKQog
ICAgIHsKICAgICAgICAgdmFyIGdyaWROb2RlR3JvdXBzID0gW1t0aGlzXV07CiAKQEAgLTE1OCwy
OCArMTY5LDM4IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9
IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBpbnNlcnRDaGlsZDogZnVuY3Rpb24oLypQcm9m
aWxlRGF0YUdyaWROb2RlKi8gcHJvZmlsZURhdGFHcmlkTm9kZSwgaW5kZXgpCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHshV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGV9IHByb2ZpbGVE
YXRhR3JpZE5vZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKi8KKyAgICBp
bnNlcnRDaGlsZDogZnVuY3Rpb24ocHJvZmlsZURhdGFHcmlkTm9kZSwgaW5kZXgpCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5pbnNlcnRDaGlsZC5j
YWxsKHRoaXMsIHByb2ZpbGVEYXRhR3JpZE5vZGUsIGluZGV4KTsKIAogICAgICAgICB0aGlzLmNo
aWxkcmVuQnlDYWxsVUlEW3Byb2ZpbGVEYXRhR3JpZE5vZGUuY2FsbFVJRF0gPSBwcm9maWxlRGF0
YUdyaWROb2RlOwogICAgIH0sCiAKLSAgICByZW1vdmVDaGlsZDogZnVuY3Rpb24oLypQcm9maWxl
RGF0YUdyaWROb2RlKi8gcHJvZmlsZURhdGFHcmlkTm9kZSkKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0gcHJvZmlsZURhdGFHcmlkTm9k
ZQorICAgICAqLworICAgIHJlbW92ZUNoaWxkOiBmdW5jdGlvbihwcm9maWxlRGF0YUdyaWROb2Rl
KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUucmVt
b3ZlQ2hpbGQuY2FsbCh0aGlzLCBwcm9maWxlRGF0YUdyaWROb2RlKTsKIAogICAgICAgICBkZWxl
dGUgdGhpcy5jaGlsZHJlbkJ5Q2FsbFVJRFtwcm9maWxlRGF0YUdyaWROb2RlLmNhbGxVSURdOwog
ICAgIH0sCiAKLSAgICByZW1vdmVDaGlsZHJlbjogZnVuY3Rpb24oLypQcm9maWxlRGF0YUdyaWRO
b2RlKi8gcHJvZmlsZURhdGFHcmlkTm9kZSkKKyAgICByZW1vdmVDaGlsZHJlbjogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUucmVt
b3ZlQ2hpbGRyZW4uY2FsbCh0aGlzKTsKIAogICAgICAgICB0aGlzLmNoaWxkcmVuQnlDYWxsVUlE
ID0ge307CiAgICAgfSwKIAotICAgIGZpbmRDaGlsZDogZnVuY3Rpb24oLypOb2RlKi8gbm9kZSkK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9k
ZX0gbm9kZQorICAgICAqLworICAgIGZpbmRDaGlsZDogZnVuY3Rpb24obm9kZSkKICAgICB7CiAg
ICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybiBudWxsOwpAQCAtMzAxLDE1ICsz
MjIsMTcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewog
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVZpZXd9IHByb2ZpbGVWaWV3CisgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZU5v
ZGV9IHJvb3RQcm9maWxlTm9kZQogICovCi1XZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJl
ZSA9IGZ1bmN0aW9uKHByb2ZpbGVWaWV3LCBwcm9maWxlTm9kZSkKK1dlYkluc3BlY3Rvci5Qcm9m
aWxlRGF0YUdyaWRUcmVlID0gZnVuY3Rpb24ocHJvZmlsZVZpZXcsIHJvb3RQcm9maWxlTm9kZSkK
IHsKICAgICB0aGlzLnRyZWUgPSB0aGlzOwogICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKIAogICAg
IHRoaXMucHJvZmlsZVZpZXcgPSBwcm9maWxlVmlldzsKIAotICAgIHRoaXMudG90YWxUaW1lID0g
cHJvZmlsZU5vZGUudG90YWxUaW1lOworICAgIHRoaXMudG90YWxUaW1lID0gcm9vdFByb2ZpbGVO
b2RlLnRvdGFsVGltZTsKICAgICB0aGlzLmxhc3RDb21wYXJhdG9yID0gbnVsbDsKIAogICAgIHRo
aXMuY2hpbGRyZW5CeUNhbGxVSUQgPSB7fTsKQEAgLTM3MCw3ICszOTMsMTIgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuUHJv
ZmlsZURhdGFHcmlkVHJlZS5wcm9wZXJ0eUNvbXBhcmF0b3JzID0gW3t9LCB7fV07CiAKLVdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWRUcmVlLnByb3BlcnR5Q29tcGFyYXRvciA9IGZ1bmN0aW9u
KC8qU3RyaW5nKi8gcHJvcGVydHksIC8qQm9vbGVhbiovIGlzQXNjZW5kaW5nKQorLyoqCisgKiBA
cGFyYW0ge3N0cmluZ30gcHJvcGVydHkKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBc2NlbmRpbmcK
KyAqIEByZXR1cm4ge2Z1bmN0aW9uKE9iamVjdCwgT2JqZWN0KX0KKyAqLworV2ViSW5zcGVjdG9y
LlByb2ZpbGVEYXRhR3JpZFRyZWUucHJvcGVydHlDb21wYXJhdG9yID0gZnVuY3Rpb24ocHJvcGVy
dHksIGlzQXNjZW5kaW5nKQogewogICAgIHZhciBjb21wYXJhdG9yID0gV2ViSW5zcGVjdG9yLlBy
b2ZpbGVEYXRhR3JpZFRyZWUucHJvcGVydHlDb21wYXJhdG9yc1soaXNBc2NlbmRpbmcgPyAxIDog
MCldW3Byb3BlcnR5XTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUuanMKaW5kZXggM2Ew
YWFmMTljMWJiNDhjMTExNjczM2NiNzg2NDc2ODc3NTU2OWUxYi4uMDI5MjM5ODc1MmZhNTU5ZDZm
MmQ2MTk4NjY2M2IzMjI5ZjkwMjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Ub3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpz
CkBAIC0yNiwxMiArMjYsMTQgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGV9CisgKiBAcGFyYW0geyFQcm9maWxlckFn
ZW50LkNQVVByb2ZpbGVOb2RlfSBwcm9maWxlTm9kZQorICogQHBhcmFtIHshV2ViSW5zcGVjdG9y
LlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlfSBvd25pbmdUcmVlCiAgKi8KLVdlYkluc3BlY3Rv
ci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkTm9kZSA9IGZ1bmN0aW9uKC8qUHJvZmlsZVZpZXcqLyBw
cm9maWxlVmlldywgLypQcm9maWxlTm9kZSovIHByb2ZpbGVOb2RlLCAvKlRvcERvd25Qcm9maWxl
RGF0YUdyaWRUcmVlKi8gb3duaW5nVHJlZSkKK1dlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURh
dGFHcmlkTm9kZSA9IGZ1bmN0aW9uKHByb2ZpbGVOb2RlLCBvd25pbmdUcmVlKQogewotICAgIHZh
ciBoYXNDaGlsZHJlbiA9IChwcm9maWxlTm9kZS5jaGlsZHJlbiAmJiBwcm9maWxlTm9kZS5jaGls
ZHJlbi5sZW5ndGgpOworICAgIHZhciBoYXNDaGlsZHJlbiA9ICEhKHByb2ZpbGVOb2RlLmNoaWxk
cmVuICYmIHByb2ZpbGVOb2RlLmNoaWxkcmVuLmxlbmd0aCk7CiAKLSAgICBXZWJJbnNwZWN0b3Iu
UHJvZmlsZURhdGFHcmlkTm9kZS5jYWxsKHRoaXMsIHByb2ZpbGVWaWV3LCBwcm9maWxlTm9kZSwg
b3duaW5nVHJlZSwgaGFzQ2hpbGRyZW4pOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWROb2RlLmNhbGwodGhpcywgcHJvZmlsZU5vZGUsIG93bmluZ1RyZWUsIGhhc0NoaWxkcmVuKTsK
IAogICAgIHRoaXMuX3JlbWFpbmluZ0NoaWxkcmVuID0gcHJvZmlsZU5vZGUuY2hpbGRyZW47CiB9
CkBAIC00Myw3ICs0NSw3IEBAIFdlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURhdGFHcmlkTm9k
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjaGlsZHJlbkxlbmd0aCA9IGNoaWxkcmVuLmxl
bmd0aDsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBXZWJJbnNwZWN0b3IuVG9wRG93blBy
b2ZpbGVEYXRhR3JpZE5vZGUodGhpcy5wcm9maWxlVmlldywgY2hpbGRyZW5baV0sIHRoaXMudHJl
ZSkpOworICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgV2ViSW5zcGVjdG9yLlRvcERv
d25Qcm9maWxlRGF0YUdyaWROb2RlKGNoaWxkcmVuW2ldLCB0aGlzLnRyZWUpKTsKIAogICAgICAg
ICB0aGlzLl9yZW1haW5pbmdDaGlsZHJlbiA9IG51bGw7CiAgICAgfSwKQEAgLTczLDEyICs3NSwx
NCBAQCBXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0g
ewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmls
ZURhdGFHcmlkVHJlZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3fSBw
cm9maWxlVmlldworICogQHBhcmFtIHtQcm9maWxlckFnZW50LkNQVVByb2ZpbGVOb2RlfSByb290
UHJvZmlsZU5vZGUKICAqLwotV2ViSW5zcGVjdG9yLlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVl
ID0gZnVuY3Rpb24oLypQcm9maWxlVmlldyovIHByb2ZpbGVWaWV3LCAvKlByb2ZpbGVOb2RlKi8g
cHJvZmlsZU5vZGUpCitXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUgPSBm
dW5jdGlvbihwcm9maWxlVmlldywgcm9vdFByb2ZpbGVOb2RlKQogewotICAgIFdlYkluc3BlY3Rv
ci5Qcm9maWxlRGF0YUdyaWRUcmVlLmNhbGwodGhpcywgcHJvZmlsZVZpZXcsIHByb2ZpbGVOb2Rl
KTsKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZS5jYWxsKHRoaXMsIHByb2Zp
bGVWaWV3LCByb290UHJvZmlsZU5vZGUpOwogCi0gICAgdGhpcy5fcmVtYWluaW5nQ2hpbGRyZW4g
PSBwcm9maWxlTm9kZS5jaGlsZHJlbjsKKyAgICB0aGlzLl9yZW1haW5pbmdDaGlsZHJlbiA9IHJv
b3RQcm9maWxlTm9kZS5jaGlsZHJlbjsKIAogICAgIHZhciBhbnkgPSAvKiogQHR5cGV7Kn0gKi8o
dGhpcyk7CiAgICAgdmFyIG5vZGUgPSAvKiogQHR5cGV7V2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRh
R3JpZE5vZGV9ICovKGFueSk7CkBAIC04NiwyNiArOTAsMzIgQEAgV2ViSW5zcGVjdG9yLlRvcERv
d25Qcm9maWxlRGF0YUdyaWRUcmVlID0gZnVuY3Rpb24oLypQcm9maWxlVmlldyovIHByb2ZpbGVW
aWV3LAogfQogCiBXZWJJbnNwZWN0b3IuVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90
eXBlID0gewotICAgIGZvY3VzOiBmdW5jdGlvbigvKlByb2ZpbGVEYXRhR3JpZE5vZGUqLyBwcm9m
aWxlRGF0YUdyaWRlTm9kZSkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3Iu
UHJvZmlsZURhdGFHcmlkTm9kZX0gcHJvZmlsZURhdGFHcmlkTm9kZQorICAgICAqLworICAgIGZv
Y3VzOiBmdW5jdGlvbihwcm9maWxlRGF0YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgaWYgKCFw
cm9maWxlRGF0YUdyaWRlTm9kZSkKKyAgICAgICAgaWYgKCFwcm9maWxlRGF0YUdyaWROb2RlKQog
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX3NhdmUoKTsKLSAgICAgICAgcHJv
ZmlsZURhdGFHcmlkZU5vZGUuc2F2ZVBvc2l0aW9uKCk7CisgICAgICAgIHByb2ZpbGVEYXRhR3Jp
ZE5vZGUuc2F2ZVBvc2l0aW9uKCk7CiAKLSAgICAgICAgdGhpcy5jaGlsZHJlbiA9IFtwcm9maWxl
RGF0YUdyaWRlTm9kZV07Ci0gICAgICAgIHRoaXMudG90YWxUaW1lID0gcHJvZmlsZURhdGFHcmlk
ZU5vZGUudG90YWxUaW1lOworICAgICAgICB0aGlzLmNoaWxkcmVuID0gW3Byb2ZpbGVEYXRhR3Jp
ZE5vZGVdOworICAgICAgICB0aGlzLnRvdGFsVGltZSA9IHByb2ZpbGVEYXRhR3JpZE5vZGUudG90
YWxUaW1lOwogICAgIH0sCiAKLSAgICBleGNsdWRlOiBmdW5jdGlvbigvKlByb2ZpbGVEYXRhR3Jp
ZE5vZGUqLyBwcm9maWxlRGF0YUdyaWRlTm9kZSkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFX
ZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZX0gcHJvZmlsZURhdGFHcmlkTm9kZQorICAg
ICAqLworICAgIGV4Y2x1ZGU6IGZ1bmN0aW9uKHByb2ZpbGVEYXRhR3JpZE5vZGUpCiAgICAgewot
ICAgICAgICBpZiAoIXByb2ZpbGVEYXRhR3JpZGVOb2RlKQorICAgICAgICBpZiAoIXByb2ZpbGVE
YXRhR3JpZE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fc2F2ZSgp
OwogCi0gICAgICAgIHZhciBleGNsdWRlZENhbGxVSUQgPSBwcm9maWxlRGF0YUdyaWRlTm9kZS5j
YWxsVUlEOworICAgICAgICB2YXIgZXhjbHVkZWRDYWxsVUlEID0gcHJvZmlsZURhdGFHcmlkTm9k
ZS5jYWxsVUlEOwogCiAgICAgICAgIHZhciBhbnkgPSAvKiogQHR5cGV7Kn0gKi8odGhpcyk7CiAg
ICAgICAgIHZhciBub2RlID0gLyoqIEB0eXBle1dlYkluc3BlY3Rvci5Ub3BEb3duUHJvZmlsZURh
dGFHcmlkTm9kZX0gKi8oYW55KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>