<?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>98912</bug_id>
          
          <creation_ts>2012-10-10 08:35:28 -0700</creation_ts>
          <short_desc>Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).</short_desc>
          <delta_ts>2012-10-12 02:38:46 -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>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>738977</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-10 08:35:28 -0700</bug_when>
    <thetext>This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738980</commentid>
    <comment_count>1</comment_count>
      <attachid>168004</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-10 08:37:33 -0700</bug_when>
    <thetext>Created attachment 168004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740756</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-12 02:38:46 -0700</bug_when>
    <thetext>Committed r131165: &lt;http://trac.webkit.org/changeset/131165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168004</attachid>
            <date>2012-10-10 08:37:33 -0700</date>
            <delta_ts>2012-10-11 04:48:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98912-20121010193631.patch</filename>
            <type>text/plain</type>
            <size>29377</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkY2YzZTY0N2UxY2M4
YjdhNDg3ZTBlZjFjNGQ0ZjNhOGI2YzUxYi4uODE1YjRjZDcyOGQ3NTM3MmYzYzk5YWY3NGYwYWE5
MzBlMzg0NGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEwLTEwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEV4dHJhY3QgZG9tYWluIHNwZWNpZmljIGVkaXRpbmcgaGFuZGxpbmcgbG9naWMgZnJvbSBV
SVNvdXJjZUNvZGUgZGVzY2VuZGFudHMgKHN0ZXAgMSkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODkxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgdGhhdCBpbnRy
b2R1Y2VzIFN0eWxlRmlsZSBhbmQgU2NyaXB0RmlsZSBhbmQgZXh0cmFjdHMgZG9tYWluIHNwZWNp
ZmljIGVkaXRpbmcgaGFuZGxpbmcgbG9naWMuCisgICAgICAgIFN0eWxlRmlsZSBhbmQgU2NyaXB0
RmlsZSBzaG91bGQgbGlzdGVuIGZvciB0aGUgVUlTb3VyY2VDb2RlIGV2ZW50cyBhbmQgcHJvY2Vz
cyB0aGVtLCB0aGlzIHdpbGwgYmUgZG9uZSBpbiB0aGUgbmV4dCBwYXRjaC4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUuX3VwZGF0ZUJy
ZWFrcG9pbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJj
ZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGlu
Zy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90
eXBlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9oYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2Jp
bmRVSVNvdXJjZUNvZGVUb1NjcmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdEZp
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdEZpbGUucHJvdG90eXBlLmhhc0RpdmVy
Z2VkRnJvbVZNKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGaWxlLnByb3RvdHlwZS5p
c0RpdmVyZ2luZ0Zyb21WTSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0RmlsZS5wcm90
b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0Rmls
ZS5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTY3JpcHRGaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlw
dEZpbGUucHJvdG90eXBlLndvcmtpbmdDb3B5Q29tbWl0dGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdEZpbGUucHJvdG90eXBlLndvcmtpbmdDb3B5Q2hhbmdlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRGaWxlLnByb3RvdHlwZS5maXJlSGFz
RGl2ZXJnZWRGcm9tVk1DaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNj
cmlwdEZpbGUucHJvdG90eXBlLmhhc0RpdmVyZ2VkRnJvbVZNKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdEZpbGUucHJvdG90eXBlLmlzRGl2ZXJnaW5nRnJvbVZNKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlLl9hZGRTY3JpcHRT
bmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdEZpbGUucHJvdG90eXBlLmhhc0RpdmVyZ2Vk
RnJvbVZNKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZS5wcm90b3R5
cGUuc2V0SGFzRGl2ZXJnZWRGcm9tVk0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRT
Y3JpcHRGaWxlLnByb3RvdHlwZS5pc0RpdmVyZ2luZ0Zyb21WTSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU25pcHBldFNjcmlwdEZpbGUucHJvdG90eXBlLnNldElzRGl2ZXJnaW5nRnJvbVZNKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZS5wcm90b3R5cGUud29ya2lu
Z0NvcHlDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRGaWxl
LnByb3RvdHlwZS53b3JraW5nQ29weUNoYW5nZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX3JldmVhbEV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVTb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
dHlsZXNTb3VyY2VNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJj
ZU1hcHBpbmcucHJvdG90eXBlLl91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5fYWRkVUlTb3Vy
Y2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZUZpbGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlN0eWxlRmlsZS5wcm90b3R5cGUud29ya2luZ0NvcHlDb21taXR0ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS5wcm90b3R5cGUud29ya2luZ0NvcHlDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZUZpbGUucHJvdG90eXBlLl9jYWxsT3JTZXRU
aW1lb3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZUZpbGUucHJvdG90eXBlLl9jb21t
aXRJbmNyZW1lbnRhbEVkaXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS5wcm90
b3R5cGUuX2NsZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlLnByb3RvdHlwZS5zY3JpcHRGaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUucHJvdG90eXBlLnNldFNjcmlwdEZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZS5wcm90b3R5cGUuc3R5bGVGaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnNldFN0eWxlRmlsZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5zZXRXb3JraW5nQ29weSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5jb21taXRXb3JraW5nQ29weSk6CisK
IDIwMTItMTAtMTAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KIAogICAgICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5h
Z2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFu
YWdlci5qcwppbmRleCAxYzdiNDY4YTZhZGUwOTQ2YTRkMGUxNTI4MzZjZmYxOTBlNzEyM2RhLi4x
NmYzNGU5MTQ1MDgxNjI0ZTI1MWU1ZTAzN2UyZmVjNTRkMmM0NjBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMK
QEAgLTYzLDExICs2Myw2IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3Bv
aW50U3RvcmFnZUlkID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHJldHVybiB1aVNvdXJj
ZUNvZGUuZm9ybWF0dGVkKCkgPyAiZGVvYmZ1c2NhdGVkOiIgKyB1aVNvdXJjZUNvZGUudXJsIDog
dWlTb3VyY2VDb2RlLnVybDsKIH0KIAotV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLmhh
c0RpdmVyZ2VkRnJvbVZNID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlKQotewotICAgIHJldHVybiB1
aVNvdXJjZUNvZGUuaXNEaXJ0eSgpIHx8IHVpU291cmNlQ29kZS5oYXNEaXZlcmdlZEZyb21WTTsK
LX0KLQogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29k
ZQpAQCAtNDM4LDcgKzQzMyw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVh
a3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY29uZGl0aW9uID0gY29uZGl0aW9u
OwogICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlci5fc3RvcmFnZS5fdXBkYXRlQnJlYWtw
b2ludCh0aGlzKTsKIAotICAgICAgICBpZiAodGhpcy5fZW5hYmxlZCAmJiAhV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnRNYW5hZ2VyLmhhc0RpdmVyZ2VkRnJvbVZNKHRoaXMuX3ByaW1hcnlVSUxvY2F0
aW9uLnVpU291cmNlQ29kZSkpIHsKKyAgICAgICAgdmFyIHNjcmlwdEZpbGUgPSB0aGlzLl9wcmlt
YXJ5VUlMb2NhdGlvbi51aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpOworICAgICAgICBpZiAodGhp
cy5fZW5hYmxlZCAmJiAhKHNjcmlwdEZpbGUgJiYgc2NyaXB0RmlsZS5oYXNEaXZlcmdlZEZyb21W
TSgpKSkgewogICAgICAgICAgICAgdGhpcy5fc2V0SW5EZWJ1Z2dlcigpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKaW5kZXggNTQzM2E3YTUxYzQ3ZGNjNmMzMmYy
YTg4MmMyM2U0NThhNGIyNjk4OS4uMzVmOTE4ZTBlZGYwN2UxYjlhYmFmNTRiMjZiMzNmMGZjYjNh
NDU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZh
U2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SmF2YVNjcmlwdFNvdXJjZS5qcwpAQCAtNDAsNDkgKzQwLDYgQEAgV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2UgPSBmdW5jdGlvbih1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSkK
ICAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwodGhpcywgdXJsLCBjb250ZW50UHJv
dmlkZXIsIGlzRWRpdGFibGUpOwogfQogCi1XZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5F
dmVudHMgPSB7Ci0gICAgSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkOiAiSGFzRGl2ZXJnZWRGcm9t
Vk1DaGFuZ2VkIgotfQotCiBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUg
PSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sK
LSAgICAgKi8KLSAgICB3b3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24oY2FsbGJhY2spCi0g
ICAgewotICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgotICAg
ICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gaW5uZXJDYWxsYmFjayhlcnJvcikKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIHRoaXMuaGFzRGl2ZXJn
ZWRGcm9tVk0gPSB0cnVlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLmhhc0RpdmVyZ2VkRnJvbVZNOwotICAgICAgICAgICAgdGhpcy5maXJlSGFzRGl2ZXJn
ZWRGcm9tVk1DaGFuZ2VkKCk7Ci0KLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKLSAgICAg
ICAgfQotICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkxvY2F0aW9ufSAqLyB0aGlzLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDAs
IDApOwotICAgICAgICBpZiAoIXJhd0xvY2F0aW9uKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhu
dWxsKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB2YXIgc2NyaXB0
ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQocmF3TG9jYXRpb24uc2Ny
aXB0SWQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRTY3JpcHRTb3Vy
Y2Uoc2NyaXB0LnNjcmlwdElkLCB0aGlzLndvcmtpbmdDb3B5KCksIGlubmVyQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgdGhpcy5maXJlSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkKCk7Ci0gICAg
fSwKLQotICAgIGZpcmVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQ6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuaXNEaXZlcmdpbmdGcm9tVk0gPSB0cnVlOwotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5FdmVu
dHMuSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgZGVsZXRlIHRoaXMu
aXNEaXZlcmdpbmdGcm9tVk07Ci0gICAgfSwKLQogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZS5wcm90b3R5cGUKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXggNTYz
NjdmOGUzZTY4NzhlZDU5MDhiNGM0Y2VkOTIxOWEwZWM2YWJhZi4uYTg2YTczZGM1NTgwNWVjYjkw
ZGJiYjJhNTZiNzQ2M2IzMDc3OGEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTU2LDcg
KzU2LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2VVSVNvdXJjZUNvZGVG
b3JTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCiAgICAgICAgICAg
ICB1aVNvdXJjZUNvZGUgPSB0aGlzLl9nZXRPckNyZWF0ZVRlbXBvcmFyeVVJU291cmNlQ29kZShz
Y3JpcHQpOwotICAgICAgICBlbHNlIGlmICh1aVNvdXJjZUNvZGUuaXNEaXJ0eSgpIHx8IHVpU291
cmNlQ29kZS5oYXNEaXZlcmdlZEZyb21WTSkgeworICAgICAgICBlbHNlIGlmICh1aVNvdXJjZUNv
ZGUuc2NyaXB0RmlsZSgpICYmIHVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRG
cm9tVk0oKSkgewogICAgICAgICAgICAgdmFyIHRlbXBvcmFyeVVJU291cmNlQ29kZSA9IHRoaXMu
X2dldE9yQ3JlYXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHNjcmlwdCk7CiAgICAgICAgICAgICB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGUuZGl2ZXJnZWRWZXJzaW9uID0gdWlTb3VyY2VDb2RlOwogICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlID0gdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwpAQCAtNzMsNyAr
NzMsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRz
Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgc2NyaXB0c1tpXS5zZXRTb3VyY2VNYXBwaW5nKHRo
aXMpOwotICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5pc0RpcnR5KCkgJiYgIXVpU291cmNlQ29k
ZS5oYXNEaXZlcmdlZEZyb21WTSkKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5zY3JpcHRGaWxl
KCkgJiYgIXVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSkKICAg
ICAgICAgICAgIHRoaXMuX2RlbGV0ZVRlbXBvcmFyeVVJU291cmNlQ29kZUZvclNjcmlwdHMoc2Ny
aXB0cyk7CiAgICAgfSwKIApAQCAtMTQ4LDkgKzE0OCwxMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHNjcmlwdHNbaV0uc2V0
U291cmNlTWFwcGluZyh0aGlzKTsKICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlw
dCA9IHNjcmlwdHNbMF0uaXNDb250ZW50U2NyaXB0OwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0
U291cmNlTWFwcGluZyh0aGlzKTsKLSAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUuaXNUZW1wb3Jh
cnkpCi0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZS5FdmVudHMuSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkLCB0aGlz
Ll9oYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQsIHRoaXMpOwotCisgICAgICAgIGlmICghdWlTb3Vy
Y2VDb2RlLmlzVGVtcG9yYXJ5KSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0RmlsZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRGaWxlKHVpU291cmNlQ29kZSk7CisgICAgICAgICAg
ICB1aVNvdXJjZUNvZGUuc2V0U2NyaXB0RmlsZShzY3JpcHRGaWxlKTsKKyAgICAgICAgICAgIHNj
cmlwdEZpbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0RmlsZS5FdmVudHMu
SGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkLCB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQs
IHRoaXMpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjQzLDMgKzI0NSwxMTEg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX3NjcmlwdHMgPSBbXTsKICAgICB9LAogfQorCisvKioKKyAqIEBpbnRlcmZhY2UK
KyAqLworV2ViSW5zcGVjdG9yLlNjcmlwdEZpbGUgPSBmdW5jdGlvbigpCit7Cit9CisKK1dlYklu
c3BlY3Rvci5TY3JpcHRGaWxlLkV2ZW50cyA9IHsKKyAgICBIYXNEaXZlcmdlZEZyb21WTUNoYW5n
ZWQ6ICJIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQiLAorfQorCitXZWJJbnNwZWN0b3IuU2NyaXB0
RmlsZS5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAg
ICAgKi8KKyAgICBoYXNEaXZlcmdlZEZyb21WTTogZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsg
fSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNE
aXZlcmdpbmdGcm9tVk06IGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRUeXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlv
bihXZWJJbnNwZWN0b3IuRXZlbnQpfSBsaXN0ZW5lcgorICAgICAqIEBwYXJhbSB7T2JqZWN0PX0g
dGhpc09iamVjdAorICAgICAqLworICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKGV2ZW50
VHlwZSwgbGlzdGVuZXIsIHRoaXNPYmplY3QpIHsgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBldmVudFR5cGUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rv
ci5FdmVudCl9IGxpc3RlbmVyCisgICAgICogQHBhcmFtIHtPYmplY3Q9fSB0aGlzT2JqZWN0Cisg
ICAgICovCisgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlLCBsaXN0
ZW5lciwgdGhpc09iamVjdCkgeyB9Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1w
bGVtZW50cyB7V2ViSW5zcGVjdG9yLlNjcmlwdEZpbGV9CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLk9iamVjdH0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3Vy
Y2VDb2RlCisgKi8KK1dlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdEZpbGUgPSBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCit7CisgICAgV2ViSW5zcGVjdG9yLlNjcmlwdEZpbGUuY2FsbCh0aGlzKTsK
KyAgICB0aGlzLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Cit9CisKK1dlYkluc3BlY3Rv
ci5SZXNvdXJjZVNjcmlwdEZpbGUucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCisgICAgICovCisgICAgd29ya2luZ0NvcHlD
b21taXR0ZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAg
ICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24g
aW5uZXJDYWxsYmFjayhlcnJvcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgICAgIHRoaXMuX2hhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faGFzRGl2ZXJnZWRGcm9tVk07
CisgICAgICAgICAgICB0aGlzLmZpcmVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQoKTsKKworICAg
ICAgICAgICAgY2FsbGJhY2soZXJyb3IpOworICAgICAgICB9CisgICAgICAgIHZhciByYXdMb2Nh
dGlvbiA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuTG9jYXRpb259ICov
IHRoaXMuX3VpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigwLCAwKTsKKyAgICAg
ICAgaWYgKCFyYXdMb2NhdGlvbikgeworICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKHJhd0xvY2F0aW9uLnNjcmlwdElkKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0U2NyaXB0U291cmNlKHNjcmlwdC5z
Y3JpcHRJZCwgdGhpcy5fdWlTb3VyY2VDb2RlLndvcmtpbmdDb3B5KCksIGlubmVyQ2FsbGJhY2su
YmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5maXJlSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkKCk7Cisg
ICAgfSwKKworICAgIGZpcmVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2lzRGl2ZXJnaW5nRnJvbVZNID0gdHJ1ZTsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdEZpbGUuRXZlbnRz
Lkhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZCwgdGhpcy5fdWlTb3VyY2VDb2RlKTsKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX2lzRGl2ZXJnaW5nRnJvbVZNOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGhhc0RpdmVyZ2VkRnJvbVZNOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlLmlzRGlydHko
KSB8fCB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBpc0RpdmVyZ2luZ0Zyb21WTTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lzRGl2ZXJnaW5nRnJvbVZNOworICAg
IH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBw
ZXRNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25p
cHBldE1vZGVsLmpzCmluZGV4IDlmYzEzYzBlN2U0NzYzOGMwYTRjMGUxN2E0OWIxNDE4NGZmYzA1
ZTMuLjdmZDRmN2VjZTY0NTI4ODc1ZWE3ZDYzMzEyOTZlNTdmODhlNDQ1MDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1v
ZGVsLmpzCkBAIC04Myw3ICs4Myw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwu
cHJvdG90eXBlID0gewogICAgIF9hZGRTY3JpcHRTbmlwcGV0OiBmdW5jdGlvbihzbmlwcGV0KQog
ICAgIHsKICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZShzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0
b3IuU25pcHBldENvbnRlbnRQcm92aWRlcihzbmlwcGV0KSwgdGhpcyk7Ci0gICAgICAgIHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKKyAgICAgICAgdmFy
IHNjcmlwdEZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRGaWxlKHRoaXMsIHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2Uu
c2V0U2NyaXB0RmlsZShzY3JpcHRGaWxlKTsKICAgICAgICAgdGhpcy5fc25pcHBldElkRm9ySmF2
YVNjcmlwdFNvdXJjZS5wdXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIHNuaXBwZXQuaWQpOwog
ICAgICAgICBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMuX3Nu
aXBwZXRTY3JpcHRNYXBwaW5nKTsgCiAgICAgICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291
cmNlRm9yU25pcHBldElkW3NuaXBwZXQuaWRdID0gc25pcHBldEphdmFTY3JpcHRTb3VyY2U7CkBA
IC0zMDksNyArMzEwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNv
ZGUuZ2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKSk7CiAgICAgICAgIHRoaXMuX3VpU291cmNl
Q29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZTsKICAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLnB1dChzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSwgc2NyaXB0KTsKLSAgICAgICAgZGVsZXRlIHNuaXBwZXRKYXZhU2NyaXB0U291
cmNlLmhhc0RpdmVyZ2VkRnJvbVZNOworICAgICAgICBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5z
Y3JpcHRGaWxlKCkuc2V0SGFzRGl2ZXJnZWRGcm9tVk0oZmFsc2UpOwogICAgICAgICBzY3JpcHQu
c2V0U291cmNlTWFwcGluZyh0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGluZyk7CiAgICAgfSwKIApA
QCAtMzY1LDEzICszNjYsMTMgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGlmICghc2NyaXB0KQogICAgICAgICAgICAgcmV0dXJuIG51bGw7
CiAKLSAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuaXNEaXZlcmdpbmdGcm9tVk0gPSB0
cnVlOwotICAgICAgICBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5oYXNEaXZlcmdlZEZyb21WTSA9
IHRydWU7CisgICAgICAgIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnNjcmlwdEZpbGUoKS5zZXRJ
c0RpdmVyZ2luZ0Zyb21WTSh0cnVlKTsKKyAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2Uu
c2NyaXB0RmlsZSgpLnNldEhhc0RpdmVyZ2VkRnJvbVZNKHRydWUpOwogICAgICAgICBkZWxldGUg
dGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKICAgICAgICAg
dGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLnJlbW92ZShzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZSk7CiAgICAgICAgIGRlbGV0ZSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5fZXZhbHVhdGlvbklu
ZGV4OwogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2Rl
Rm9yU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIGRlbGV0ZSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZS5pc0RpdmVyZ2luZ0Zyb21WTTsKKyAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2Uuc2Ny
aXB0RmlsZSgpLnNldElzRGl2ZXJnaW5nRnJvbVZNKGZhbHNlKTsKICAgICAgICAgcmV0dXJuIHVp
U291cmNlQ29kZTsKICAgICB9LAogCkBAIC00MzMsMjEgKzQzNCw3MiBAQCBXZWJJbnNwZWN0b3Iu
U25pcHBldEphdmFTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzbmlwcGV0TmFtZSwgY29udGVudFBy
b3ZpZGVyLCBzYwogfQogCiBXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2UucHJv
dG90eXBlID0geworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uu
cHJvdG90eXBlCit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7V2Vi
SW5zcGVjdG9yLlNjcmlwdEZpbGV9CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0K
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbH0gc2NyaXB0U25pcHBl
dE1vZGVsCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0g
c25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAqLworV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRG
aWxlID0gZnVuY3Rpb24oc2NyaXB0U25pcHBldE1vZGVsLCBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuU2NyaXB0RmlsZS5jYWxsKHRoaXMpOworICAgIHRoaXMu
X3NjcmlwdFNuaXBwZXRNb2RlbCA9IHNjcmlwdFNuaXBwZXRNb2RlbDsKKyAgICB0aGlzLl9zbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOworICAgIHRoaXMu
X2hhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKK30KKworV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3Jp
cHRGaWxlLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQor
ICAgICAqLworICAgIGhhc0RpdmVyZ2VkRnJvbVZNOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5faGFzRGl2ZXJnZWRGcm9tVk07CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzRGl2ZXJnZWRGcm9tVk0KKyAgICAgKi8KKyAgICBzZXRI
YXNEaXZlcmdlZEZyb21WTTogZnVuY3Rpb24oaGFzRGl2ZXJnZWRGcm9tVk0pCisgICAgeworICAg
ICAgICB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSA9IGhhc0RpdmVyZ2VkRnJvbVZNOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGlzRGl2
ZXJnaW5nRnJvbVZNOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faXNE
aXZlcmdpbmdGcm9tVk07CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gaXNEaXZlcmdpbmdGcm9tVk0KKyAgICAgKi8KKyAgICBzZXRJc0RpdmVyZ2luZ0Zyb21WTTog
ZnVuY3Rpb24oaXNEaXZlcmdpbmdGcm9tVk0pCisgICAgeworICAgICAgICB0aGlzLl9pc0RpdmVy
Z2luZ0Zyb21WTSA9IGlzRGl2ZXJnaW5nRnJvbVZNOworICAgIH0sCisKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjawogICAgICAqLwogICAgIHdvcmtp
bmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7ICAKLSAgICAgICAgdGhp
cy5fc2NyaXB0U25pcHBldE1vZGVsLl9zZXRTY3JpcHRTbmlwcGV0Q29udGVudCh0aGlzLCB0aGlz
LndvcmtpbmdDb3B5KCkpOworICAgICAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuX3NldFNj
cmlwdFNuaXBwZXRDb250ZW50KHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlLCB0aGlzLl9z
bmlwcGV0SmF2YVNjcmlwdFNvdXJjZS53b3JraW5nQ29weSgpKTsKICAgICAgICAgY2FsbGJhY2so
bnVsbCk7CiAgICAgfSwKIAogICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oKQotICAg
IHsgIAotICAgICAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuX3NjcmlwdFNuaXBwZXRFZGl0
ZWQodGhpcyk7CisgICAgeworICAgICAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuX3Njcmlw
dFNuaXBwZXRFZGl0ZWQodGhpcy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgIH0sCiAK
LSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZQor
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKIH0KIAogLyoqCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CmluZGV4IGEzMzI0ZDYyNjVhMDEyOGJhZjAyZDdiNzk3MGUwZmM4MTM1NjRiMTYuLjJiZTlmMzgz
ZjdhN2U0OGVlNmM5ZWZkNTBjM2Q2ZDBlMWM3MTY5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC01MDYsNyArNTA2LDcg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSB1aUxvY2F0aW9uLnVpU291cmNlQ29kZTsKICAgICAgICAgLy8gU29tZSBz
Y3JpcHRzIChhbm9ueW1vdXMgYW5kIHNuaXBwZXRzIGV2YWx1YXRpb25zKSBhcmUgbm90IGFkZGVk
IHRvIGZpbGVzIHNlbGVjdCBieSBkZWZhdWx0LgogICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmlz
VGVtcG9yYXJ5KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudFVJU291cmNlQ29kZSAm
JiB0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlLmlzRGl2ZXJnaW5nRnJvbVZNKQorICAgICAgICAg
ICAgaWYgKHRoaXMuX2N1cnJlbnRVSVNvdXJjZUNvZGUgJiYgdGhpcy5fY3VycmVudFVJU291cmNl
Q29kZS5zY3JpcHRGaWxlKCkgJiYgdGhpcy5fY3VycmVudFVJU291cmNlQ29kZS5zY3JpcHRGaWxl
KCkuaXNEaXZlcmdpbmdGcm9tVk0oKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7
CiAgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmZvcm1hdHRlZCgpICE9PSB0aGlzLl90b2dn
bGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlU291cmNlLmpzCmluZGV4IDM3YjAzNGY4MDExNTI1NjZjMTcw
MThhYWQ4ZjQwZmFlMGZlOWI5ZGYuLjkyMzFhMjYwZDJkY2EzYTczZGZjNGNlZmIxODkxYzkxYjM3
OTJhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZVNvdXJjZS5qcwpAQCAtMzYsNTAgKzM2LDYgQEAgV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlID0g
ZnVuY3Rpb24oY29udGVudFByb3ZpZGVyKQogICAgIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
Y2FsbCh0aGlzLCBjb250ZW50UHJvdmlkZXIuY29udGVudFVSTCgpLCBjb250ZW50UHJvdmlkZXIs
IHRydWUpOwogfQogCi1XZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBkYXRlVGltZW91dCA9IDIw
MDsKLQogV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjawotICAgICAqLwotICAgIHdv
cmtpbmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihjYWxsYmFjaykKLSAgICB7ICAKLSAgICAgICAg
dGhpcy5fY29tbWl0SW5jcmVtZW50YWxFZGl0KHRydWUsIGNhbGxiYWNrKTsKLSAgICB9LAotCi0g
ICAgd29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9j
YWxsT3JTZXRUaW1lb3V0KHRoaXMuX2NvbW1pdEluY3JlbWVudGFsRWRpdC5iaW5kKHRoaXMsIGZh
bHNlLCBmdW5jdGlvbigpIHt9KSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCi0gICAgICovCi0gICAgX2NhbGxPclNldFRpbWVv
dXQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEV4dGVuc2lv
bnMgdGVzdHMgb3ZlcnJpZGUgdXBkYXRlVGltZW91dCBiZWNhdXNlIGV4dGVuc2lvbnMgZG9uJ3Qg
aGF2ZSBhbnkgY29udHJvbCBvdmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9tYWluIHNwZWNpZmlj
IGJpbmRpbmdzLiAgIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnVwZGF0
ZVRpbWVvdXQgPj0gMCkKLSAgICAgICAgICAgIHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXIg
PSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBkYXRlVGlt
ZW91dCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOwotICAgIH0s
Ci0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCi0gICAgICog
QHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKLSAgICAgKi8KLSAgICBfY29tbWl0
SW5jcmVtZW50YWxFZGl0OiBmdW5jdGlvbihtYWpvckNoYW5nZSwgY2FsbGJhY2spCi0gICAgewot
ICAgICAgICB0aGlzLl9jbGVhckluY3JlbWVudGFsVXBkYXRlVGltZXIoKTsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLnN0eWxlQ29udGVudEJpbmRpbmcuc2V0U3R5bGVDb250ZW50KHRoaXMsIHRoaXMu
d29ya2luZ0NvcHkoKSwgbWFqb3JDaGFuZ2UsIGNhbGxiYWNrKTsKLSAgICB9LAotCi0gICAgX2Ns
ZWFySW5jcmVtZW50YWxVcGRhdGVUaW1lcjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGltZXIpCi0gICAgICAgICAgICBjbGVhclRpbWVvdXQo
dGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcik7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9pbmNy
ZW1lbnRhbFVwZGF0ZVRpbWVyOwotICAgIH0sCi0KICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKaW5kZXggZjY0ZGM0
YjQwNTJhNzlhZDQxMjdjNTRkYzk4ODMxNjhiMTQyZDhlZC4uNmJhMzAxOTRiZjIxOGIxYTJjODU2
YzlhODljNDZhYTU3OGRmZmU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcwpAQCAtNzAsNyArNzAsNyBA
QCBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9
ICovIGV2ZW50LmRhdGE7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLnVybCB8fCB0aGlzLl91
aVNvdXJjZUNvZGVGb3JVUkxbdWlTb3VyY2VDb2RlLnVybF0pCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmICh1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKSAhPT0gV2ViSW5zcGVjdG9y
LnJlc291cmNlVHlwZXMuU3R5bGVTaGVldCkKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5jb250
ZW50VHlwZSgpICE9PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0KQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCiAgICAgICAgIHRoaXMuX2FkZFVJU291cmNl
Q29kZSh1aVNvdXJjZUNvZGUpOwpAQCAtODMsNiArODMsOCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVz
U291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JVUkxbdWlTb3VyY2VDb2RlLnVybF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIHVp
U291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOworICAgICAgICB2YXIgc3R5bGVGaWxl
ID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZUZpbGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdWlT
b3VyY2VDb2RlLnNldFN0eWxlRmlsZShzdHlsZUZpbGUpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzTW9kZWwuc2V0U291cmNlTWFwcGluZyh1aVNvdXJjZUNvZGUudXJsLCB0aGlzKTsKICAgICB9
LAogCkBAIC05NSw2ICs5Nyw2MiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZy5w
cm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICovCitXZWJJbnNwZWN0b3IuU3R5bGVG
aWxlID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlKQoreworICAgIHRoaXMuX3VpU291cmNlQ29kZSA9
IHVpU291cmNlQ29kZTsKK30KKworV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS51cGRhdGVUaW1lb3V0
ID0gMjAwOworCitXZWJJbnNwZWN0b3IuU3R5bGVGaWxlLnByb3RvdHlwZSA9IHsKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjaworICAgICAqLworICAg
IHdvcmtpbmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7ICAKKyAgICAg
ICAgdGhpcy5fY29tbWl0SW5jcmVtZW50YWxFZGl0KHRydWUsIGNhbGxiYWNrKTsKKyAgICB9LAor
CisgICAgd29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlz
Ll9jYWxsT3JTZXRUaW1lb3V0KHRoaXMuX2NvbW1pdEluY3JlbWVudGFsRWRpdC5iaW5kKHRoaXMs
IGZhbHNlLCBmdW5jdGlvbigpIHt9KSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCisgICAgICovCisgICAgX2NhbGxPclNldFRp
bWVvdXQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEV4dGVu
c2lvbnMgdGVzdHMgb3ZlcnJpZGUgdXBkYXRlVGltZW91dCBiZWNhdXNlIGV4dGVuc2lvbnMgZG9u
J3QgaGF2ZSBhbnkgY29udHJvbCBvdmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9tYWluIHNwZWNp
ZmljIGJpbmRpbmdzLiAgIAorICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnVw
ZGF0ZVRpbWVvdXQgPj0gMCkKKyAgICAgICAgICAgIHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGlt
ZXIgPSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBkYXRl
VGltZW91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAg
IH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBfY29t
bWl0SW5jcmVtZW50YWxFZGl0OiBmdW5jdGlvbihtYWpvckNoYW5nZSwgY2FsbGJhY2spCisgICAg
eworICAgICAgICB0aGlzLl9jbGVhckluY3JlbWVudGFsVXBkYXRlVGltZXIoKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnN0eWxlQ29udGVudEJpbmRpbmcuc2V0U3R5bGVDb250ZW50KHRoaXMuX3Vp
U291cmNlQ29kZSwgdGhpcy5fdWlTb3VyY2VDb2RlLndvcmtpbmdDb3B5KCksIG1ham9yQ2hhbmdl
LCBjYWxsYmFjayk7CisgICAgfSwKKworICAgIF9jbGVhckluY3JlbWVudGFsVXBkYXRlVGltZXI6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9pbmNyZW1lbnRhbFVwZGF0ZVRp
bWVyKQorICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2luY3JlbWVudGFsVXBkYXRlVGlt
ZXIpOworICAgICAgICBkZWxldGUgdGhpcy5faW5jcmVtZW50YWxVcGRhdGVUaW1lcjsKKyAgICB9
LAorfQorCisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsfSBjc3NNb2RlbAogICovCiBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50Qmlu
ZGluZyA9IGZ1bmN0aW9uKGNzc01vZGVsKQpAQCAtMTA1LDE0ICsxNjMsMTQgQEAgV2ViSW5zcGVj
dG9yLlN0eWxlQ29udGVudEJpbmRpbmcgPSBmdW5jdGlvbihjc3NNb2RlbCkKIAogV2ViSW5zcGVj
dG9yLlN0eWxlQ29udGVudEJpbmRpbmcucHJvdG90eXBlID0gewogICAgIC8qKgotICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlN0eWxlU291cmNlfSBzdHlsZVNvdXJjZQorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IGNvbnRlbnQKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCiAg
ICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gdXNlckNhbGxiYWNrCiAgICAgICovCi0g
ICAgc2V0U3R5bGVDb250ZW50OiBmdW5jdGlvbihzdHlsZVNvdXJjZSwgY29udGVudCwgbWFqb3JD
aGFuZ2UsIHVzZXJDYWxsYmFjaykKKyAgICBzZXRTdHlsZUNvbnRlbnQ6IGZ1bmN0aW9uKHVpU291
cmNlQ29kZSwgY29udGVudCwgbWFqb3JDaGFuZ2UsIHVzZXJDYWxsYmFjaykKICAgICB7Ci0gICAg
ICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChzdHlsZVNvdXJj
ZS51cmwpOworICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JV
UkwodWlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAgIHRoaXMuX2Nzc01vZGVsLnJlc291cmNlQmlu
ZGluZygpLnJlcXVlc3RTdHlsZVNoZWV0SWRGb3JSZXNvdXJjZShyZXNvdXJjZSwgY2FsbGJhY2su
YmluZCh0aGlzKSk7CiAKICAgICAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IGQ5YTk3Mzc5MmM1YjkwMDY2M2Ex
YjM4MDU4N2FhYjY0YWVhOGVkMzAuLjc4MThkZmRjZWE5M2YwNjE5MGI0MGExYTVhYzFlZmQ4NTM3
YTY4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCkBAIC0xMTgsNiArMTE4LDM4IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtXZWJJ
bnNwZWN0b3IuU2NyaXB0RmlsZX0KKyAgICAgKi8KKyAgICBzY3JpcHRGaWxlOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0RmlsZTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0RmlsZX0gc2NyaXB0RmlsZQor
ICAgICAqLworICAgIHNldFNjcmlwdEZpbGU6IGZ1bmN0aW9uKHNjcmlwdEZpbGUpCisgICAgewor
ICAgICAgICB0aGlzLl9zY3JpcHRGaWxlID0gc2NyaXB0RmlsZTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlN0eWxlRmlsZX0KKyAgICAgKi8KKyAgICBz
dHlsZUZpbGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zdHlsZUZp
bGU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlN0eWxl
RmlsZX0gc3R5bGVGaWxlCisgICAgICovCisgICAgc2V0U3R5bGVGaWxlOiBmdW5jdGlvbihzdHls
ZUZpbGUpCisgICAgeworICAgICAgICB0aGlzLl9zdHlsZUZpbGUgPSBzdHlsZUZpbGU7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0
cmluZyl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNh
bGxiYWNrKQpAQCAtMjc4LDE1ICszMTAsMTMgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fd29ya2luZ0NvcHk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3dvcmtpbmdDb3B5ID0gbmV3V29ya2luZ0NvcHk7
Ci0gICAgICAgIHRoaXMud29ya2luZ0NvcHlDaGFuZ2VkKCk7CisgICAgICAgIGlmICh0aGlzLnNj
cmlwdEZpbGUoKSkKKyAgICAgICAgICAgIHRoaXMuc2NyaXB0RmlsZSgpLndvcmtpbmdDb3B5Q2hh
bmdlZCgpOworICAgICAgICBlbHNlIGlmICh0aGlzLnN0eWxlRmlsZSgpKQorICAgICAgICAgICAg
dGhpcy5zdHlsZUZpbGUoKS53b3JraW5nQ29weUNoYW5nZWQoKTsKICAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuV29y
a2luZ0NvcHlDaGFuZ2VkLCB7b2xkV29ya2luZ0NvcHk6IG9sZFdvcmtpbmdDb3B5LCB3b3JraW5n
Q29weTogbmV3V29ya2luZ0NvcHl9KTsKICAgICB9LAogCi0gICAgd29ya2luZ0NvcHlDaGFuZ2Vk
OiBmdW5jdGlvbigpCi0gICAgeyAgCi0gICAgICAgIC8vIE92ZXJyaWRkZW4uCi0gICAgfSwKLQog
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCiAgICAg
ICovCkBAIC0yOTgsMTkgKzMyOCwxNCBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBuZXdDb250ZW50ID0gdGhpcy5fd29y
a2luZ0NvcHk7Ci0gICAgICAgIHRoaXMud29ya2luZ0NvcHlDb21taXR0ZWQoY2FsbGJhY2spOwor
ICAgICAgICBpZiAodGhpcy5zY3JpcHRGaWxlKCkpCisgICAgICAgICAgICB0aGlzLnNjcmlwdEZp
bGUoKS53b3JraW5nQ29weUNvbW1pdHRlZChjYWxsYmFjayk7CisgICAgICAgIGVsc2UgaWYgKHRo
aXMuc3R5bGVGaWxlKCkpCisgICAgICAgICAgICB0aGlzLnN0eWxlRmlsZSgpLndvcmtpbmdDb3B5
Q29tbWl0dGVkKGNhbGxiYWNrKTsKICAgICAgICAgdGhpcy5hZGRSZXZpc2lvbihuZXdDb250ZW50
KTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0g
Y2FsbGJhY2sKLSAgICAgKi8KLSAgICB3b3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24oY2Fs
bGJhY2spCi0gICAgeyAgCi0gICAgICAgIC8vIE92ZXJyaWRkZW4uCi0gICAgfSwKLQotICAgIC8q
KgogICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgICovCiAgICAgaXNEaXJ0eTogZnVuY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDE3OTY1NjFkOTFjMGI0NmM2MWFlM2VjYzhjMzVlNzczOWQxN2Q3OTcuLjM1
ZmZlZmU2OTRjNDVlNDhmZDg5NjY0NDZiOTExZTY2MTc4MzQ2OWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
NSBAQAogMjAxMi0xMC0xMCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0IGRvbWFpbiBzcGVjaWZpYyBlZGl0aW5n
IGhhbmRsaW5nIGxvZ2ljIGZyb20gVUlTb3VyY2VDb2RlIGRlc2NlbmRhbnRzIChzdGVwIDEpLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5MTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlc291cmNlcy5odG1sOgorCisyMDEyLTEwLTEwICBWc2V2b2xvZCBWbGFz
b3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFVucmV2aWV3ZWQgaW5zcGVjdG9y
IHRlc3QgZml4LgogCiAgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291
cmNlcy1zZWFyY2gtbWF0Y2gtaW5kZXguaHRtbDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9saXZlLWVkaXQuaHRtbAppbmRleCA3Y2M0MzU4NGQ2ZGMxZjZjODA5YmFlZGNhZDQz
NmY4ZWZlN2FlNTI2Li42YzU4MGVlZWY2NTlkNjU3ZmNjYzViOWExNGVhMDBkMjhjNGQ5MmQyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sCkBAIC00
MiwxMiArNDIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlk
U2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5wcm90b3R5cGUsICJfZGlkRWRpdENvbnRlbnQiLCBkaWRFZGl0U2NyaXB0U291cmNl
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShzb3VyY2VG
cmFtZSwgIixcIkknbSBnb29kXCIiLCAiXCJJJ20gZ29vZFwiIik7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoKQotICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNvdXJjZUZyYW1lQ29udGVudHMo
cGFuZWwudmlzaWJsZVZpZXcpOwogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtcmVzb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLXJlc291cmNlcy5odG1sCmluZGV4IDdkYTY3MzM2NmJmMzliYWZjMmZlOThlMDNlMjI2
M2YyM2M3ODA5YTAuLjZhYTUxNmJjOGY2MzNmYjdmY2VhMWQ5ZWQyNWVhZjk3ZmE1ZGIzZDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVz
b3VyY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1yZXNvdXJjZXMuaHRtbApAQCAtODAsMTUgKzgwLDE1IEBAIGZ1bmN0aW9uIGV4dGVuc2lv
bl90ZXN0R2V0UmVzb3VyY2VDb250ZW50KG5leHRUZXN0KQogICAgIH0pOwogfQogCi0vLyBFeHRl
bnNpb25zIHRlc3RzIG92ZXJyaWRlIFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZS51cGRhdGVUaW1l
b3V0IGJlY2F1c2Ugb3RoZXJ3aXNlIGV4dGVuc2lvbnMgZG9uJ3QgaGF2ZSBhbnkgY29udHJvbCBv
dmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9tYWluIHNwZWNpZmljIGJpbmRpbmdzLgorLy8gRXh0
ZW5zaW9ucyB0ZXN0cyBvdmVycmlkZSBXZWJJbnNwZWN0b3IuU3R5bGVGaWxlLnVwZGF0ZVRpbWVv
dXQgYmVjYXVzZSBvdGhlcndpc2UgZXh0ZW5zaW9ucyBkb24ndCBoYXZlIGFueSBjb250cm9sIG92
ZXIgYXBwbHlpbmcgY2hhbmdlcyB0byBkb21haW4gc3BlY2lmaWMgYmluZGluZ3MuCiBmdW5jdGlv
biBleHRlbnNpb25fc2V0RmFrZVN0eWxlU2hlZXRVcGRhdGVUaW1lb3V0KGNhbGxiYWNrKQogewot
ICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLm9sZFN0eWxlU2hlZXRVcGRhdGVU
aW1lb3V0ID0gV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnVwZGF0ZVRpbWVvdXQ7IFdlYkluc3Bl
Y3Rvci5TdHlsZVNvdXJjZS51cGRhdGVUaW1lb3V0ID0gLTE7IHJlcGx5KCk7IiwgY2FsbGJhY2sp
OworICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLm9sZFN0eWxlU2hlZXRVcGRh
dGVUaW1lb3V0ID0gV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS51cGRhdGVUaW1lb3V0OyBXZWJJbnNw
ZWN0b3IuU3R5bGVGaWxlLnVwZGF0ZVRpbWVvdXQgPSAtMTsgcmVwbHkoKTsiLCBjYWxsYmFjayk7
CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl9yZXNldFN0eWxlU2hlZXRVcGRhdGVUaW1lb3V0KGNh
bGxiYWNrKQogewotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLlN0eWxlU291
cmNlLnVwZGF0ZVRpbWVvdXQgPSBXZWJJbnNwZWN0b3Iub2xkU3R5bGVTaGVldFVwZGF0ZVRpbWVv
dXQ7IGRlbGV0ZSBXZWJJbnNwZWN0b3Iub2xkU3R5bGVTaGVldFVwZGF0ZVRpbWVvdXQ7IHJlcGx5
KCk7IiwgY2FsbGJhY2spOworICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLlN0
eWxlRmlsZS51cGRhdGVUaW1lb3V0ID0gV2ViSW5zcGVjdG9yLm9sZFN0eWxlU2hlZXRVcGRhdGVU
aW1lb3V0OyBkZWxldGUgV2ViSW5zcGVjdG9yLm9sZFN0eWxlU2hlZXRVcGRhdGVUaW1lb3V0OyBy
ZXBseSgpOyIsIGNhbGxiYWNrKTsKIH0KIAogZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTZXRSZXNv
dXJjZUNvbnRlbnQobmV4dFRlc3QpCg==
</data>
<flag name="review"
          id="180864"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>