<?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>94484</bug_id>
          
          <creation_ts>2012-08-20 09:00:29 -0700</creation_ts>
          <short_desc>Web Inspector: TabbedPane: measure tab widths in batches.</short_desc>
          <delta_ts>2012-08-21 23:58:23 -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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>699562</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-20 09:00:29 -0700</bug_when>
    <thetext>Otherwise we do N (number of tabs) reflows while measuring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699570</commentid>
    <comment_count>1</comment_count>
      <attachid>159444</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-20 09:06:17 -0700</bug_when>
    <thetext>Created attachment 159444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700667</commentid>
    <comment_count>2</comment_count>
      <attachid>159444</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-21 05:48:39 -0700</bug_when>
    <thetext>Comment on attachment 159444
Patch

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:188
&gt; +    this._editorContainer.setCoalescingUpdate(true);

start/endBatchUpdate or enter/exitBatchUpdate

&gt; Source/WebCore/inspector/front-end/TabbedPane.js:395
&gt; +            measuringTabElement.__tab = tab;

Use map or another array?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700791</commentid>
    <comment_count>3</comment_count>
      <attachid>159695</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-21 08:28:42 -0700</bug_when>
    <thetext>Created attachment 159695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701317</commentid>
    <comment_count>4</comment_count>
      <attachid>159695</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-21 16:56:11 -0700</bug_when>
    <thetext>Comment on attachment 159695
Patch

Rejecting attachment 159695 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
to file Source/WebCore/inspector/front-end/utilities.js.rej
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/inspector/start-end-batch-update-expected.txt
patching file LayoutTests/inspector/start-end-batch-update.html
patching file LayoutTests/inspector/tabbed-pane-tabs-to-show.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Vsevolod V...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13559075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701631</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-21 23:58:23 -0700</bug_when>
    <thetext>Committed r126268: &lt;http://trac.webkit.org/changeset/126268&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159444</attachid>
            <date>2012-08-20 09:06:17 -0700</date>
            <delta_ts>2012-08-21 08:28:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94484-20120820200537.patch</filename>
            <type>text/plain</type>
            <size>11041</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRmODc1OTY2ZGU1ZTFh
OGYzOWVlOWQ0ZTAxZTRjODAwYTJkNTk2Zi4uZTBiYzUxZTdiODYxN2MzNGE5MDU1MjY1YjJjYjEz
MDc5ODIzYzc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA4LTIwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRhYmJlZFBhbmU6IG1lYXN1cmUgdGFiIHdpZHRocyBpbiBiYXRjaGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPdGhlcndpc2Ugd2UgZG8gTiAo
bnVtYmVyIG9mIHRhYnMpIHJlZmxvd3Mgd2hpbGUgbWVhc3VyaW5nLgorCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRv
ckNvbnRhaW5lci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIucHJvdG90eXBlLmN1cnJlbnRGaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRF
ZGl0b3JDb250YWluZXIucHJvdG90eXBlLnNldENvYWxlc2NpbmdVcGRhdGUpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UYWJiZWRQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlw
ZS5hcHBlbmRUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBl
Ll91cGRhdGVUYWJFbGVtZW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5w
cm90b3R5cGUuX3VwZGF0ZVdpZHRocyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFu
ZS5wcm90b3R5cGUuX21lYXN1cmVXaWR0aHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJl
ZFBhbmUucHJvdG90eXBlLl9pbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZFBhbmUucHJvdG90eXBlLnNldENvYWxlc2NpbmdVcGRhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRhYmJlZFBhbmVUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmVU
YWIucHJvdG90eXBlLndpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lVGFi
LnByb3RvdHlwZS5zZXRXaWR0aCk6CisKIDIwMTItMDgtMjAgIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFByb3ZpZGUgYmFja3dhcmRzIGNvbXBhdGlibGUg
bWV0aG9kIGZvciBXZWJLaXRET01XZWJLaXROYW1lZEZsb3c6Om92ZXJmbG93CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGU4
Y2FjYjE4N2QyNTVmYTA5YTZjNmUwYTQ4ZDAzY2YwNmI2YjAzNTkuLmJmMTNhNjM5NTZjMWZhM2U2
ODk1OGRhMjZmOGZlYjczM2UxZmRjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xODUsOSArMTg1LDExIEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbih3b3Jrc3BhY2VGb3JUZXN0KQogICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB0aGlzLl9leGVjdXRpb25M
aW5lQ2hhbmdlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludHNB
Y3RpdmVTdGF0ZUNoYW5nZWQsIHRoaXMuX2JyZWFrcG9pbnRzQWN0aXZlU3RhdGVDaGFuZ2VkLCB0
aGlzKTsKIAorICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5zZXRDb2FsZXNjaW5nVXBkYXRlKHRy
dWUpOwogICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29k
ZXMoKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kp
CiAgICAgICAgIHRoaXMuX2FkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKKyAgICB0
aGlzLl9lZGl0b3JDb250YWluZXIuc2V0Q29hbGVzY2luZ1VwZGF0ZShmYWxzZSk7CiAKICAgICB0
aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRl
ZCwgdGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhp
cy5fdWlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwppbmRl
eCBhZDA1NzY4MTNiMmIwMmU1ZDEwZWFlMWM1YmI0ZTg3YWMxMGIxZjc1Li5hMGU1YTA3MDM2ZDFj
OGZmODJmNzgzZTA4MGNmODM2MGYxYjQ3OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwpAQCAt
NDE2LDYgKzQxNiwxNCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3Rv
dHlwZSA9IHsKICAgICBjdXJyZW50RmlsZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX2N1cnJlbnRGaWxlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGVuYWJsZWQKKyAgICAgKi8KKyAgICBzZXRDb2FsZXNjaW5nVXBkYXRlOiBmdW5j
dGlvbihlbmFibGVkKQorICAgIHsKKyAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5zZXRDb2FsZXNj
aW5nVXBkYXRlKGVuYWJsZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmluZGV4IGEyNzlhMWUzZGZiOTY1NDA5NTgw
Y2JmM2VhMGU5ZWVmMzMxNGI1YWIuLjZmMzgwZjhkZjhjNzA1Y2NlMTAyYmRhODU1NDlmOGYzNzlm
YzQ0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJl
ZFBhbmUuanMKQEAgLTQ3LDYgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5m
b2N1cy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLl9kcm9wRG93bkJ1dHRvbiA9IHRo
aXMuX2NyZWF0ZURyb3BEb3duQnV0dG9uKCk7CisgICAgdGhpcy5fY29hbGVzY2luZ0xldmVsID0g
MDsKIH0KIAogV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUuRXZlbnRUeXBlcyA9IHsKQEAgLTEwMSw3
ICsxMDIsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICov
CiAgICAgYXBwZW5kVGFiOiBmdW5jdGlvbihpZCwgdGFiVGl0bGUsIHZpZXcsIHRhYlRvb2x0aXAs
IHVzZXJHZXN0dXJlKQogICAgIHsKLSAgICAgICAgdmFyIHRhYiA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGFiYmVkUGFuZVRhYih0aGlzLCB0aGlzLl90YWJzRWxlbWVudCwgaWQsIHRhYlRpdGxlLCB0aGlz
Ll9jbG9zZWFibGVUYWJzLCB2aWV3LCB0YWJUb29sdGlwKTsKKyAgICAgICAgdmFyIHRhYiA9IG5l
dyBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYih0aGlzLCBpZCwgdGFiVGl0bGUsIHRoaXMuX2Ns
b3NlYWJsZVRhYnMsIHZpZXcsIHRhYlRvb2x0aXApOwogICAgICAgICB0aGlzLl90YWJzQnlJZFtp
ZF0gPSB0YWI7CiAKICAgICAgICAgdGhpcy5fdGFicy5wdXNoKHRhYik7CkBAIC0yNTQsNyArMjU1
LDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlID0gewogCiAgICAgX3VwZGF0
ZVRhYkVsZW1lbnRzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuaXNTaG93
aW5nKCkpCisgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcoKSB8fCB0aGlzLl9jb2FsZXNjaW5n
TGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCF0aGlzLl90YWJzLmxl
bmd0aCkKQEAgLTI2NSw5ICsyNjYsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fbWVhc3VyZWREcm9wRG93bkJ1dHRvbldpZHRoKQog
ICAgICAgICAgICAgdGhpcy5fbWVhc3VyZURyb3BEb3duQnV0dG9uKCk7CiAKLSAgICAgICAgaWYg
KHRoaXMuX3Nocmlua2FibGVUYWJzKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlV2lkdGhzKCk7
Ci0gICAgICAgIAorICAgICAgICB0aGlzLl91cGRhdGVXaWR0aHMoKTsKICAgICAgICAgdGhpcy5f
dXBkYXRlVGFic0Ryb3BEb3duKCk7CiAgICAgfSwKIApAQCAtMzc0LDE2ICszNzMsNDQgQEAgV2Vi
SW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlID0gewogCiAgICAgX3VwZGF0ZVdpZHRoczog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIG1lYXN1cmVkV2lkdGhzID0gW107Ci0gICAg
ICAgIGZvciAodmFyIHRhYklkIGluIHRoaXMuX3RhYnMpCi0gICAgICAgICAgICBtZWFzdXJlZFdp
ZHRocy5wdXNoKHRoaXMuX3RhYnNbdGFiSWRdLm1lYXN1cmVkV2lkdGgpOwotICAgICAgICAKLSAg
ICAgICAgdmFyIG1heFdpZHRoID0gdGhpcy5fY2FsY3VsYXRlTWF4V2lkdGgobWVhc3VyZWRXaWR0
aHMsIHRoaXMuX3RvdGFsV2lkdGgoKSk7Ci0gICAgICAgIAorICAgICAgICB2YXIgbWVhc3VyZWRX
aWR0aHMgPSB0aGlzLl9tZWFzdXJlV2lkdGhzKCk7CisgICAgICAgIHZhciBtYXhXaWR0aCA9IHRo
aXMuX3Nocmlua2FibGVUYWJzID8gdGhpcy5fY2FsY3VsYXRlTWF4V2lkdGgobWVhc3VyZWRXaWR0
aHMuc2xpY2UoKSwgdGhpcy5fdG90YWxXaWR0aCgpKSA6IE51bWJlci5NQVhfVkFMVUU7CisKKyAg
ICAgICAgdmFyIGkgPSAwOworICAgICAgICBmb3IgKHZhciB0YWJJZCBpbiB0aGlzLl90YWJzKSB7
CisgICAgICAgICAgICB2YXIgdGFiID0gdGhpcy5fdGFic1t0YWJJZF07CisgICAgICAgICAgICB0
YWIuc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIG1lYXN1cmVkV2lkdGhzW2krK10pKTsKKyAg
ICAgICAgfQorICAgIH0sCisKKyAgICBfbWVhc3VyZVdpZHRoczogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgLy8gQWRkIGFsbCBlbGVtZW50cyB0byBtZWFzdXJlIGludG8gdGhpcy5fdGFic0Vs
ZW1lbnQKKyAgICAgICAgdmFyIG1lYXN1cmluZ1RhYkVsZW1lbnRzID0gW107CiAgICAgICAgIGZv
ciAodmFyIHRhYklkIGluIHRoaXMuX3RhYnMpIHsKICAgICAgICAgICAgIHZhciB0YWIgPSB0aGlz
Ll90YWJzW3RhYklkXTsKLSAgICAgICAgICAgIHRhYi53aWR0aCA9IE1hdGgubWluKHRhYi5tZWFz
dXJlZFdpZHRoLCBtYXhXaWR0aCk7CisgICAgICAgICAgICBpZiAodHlwZW9mIHRhYi5fbWVhc3Vy
ZWRXaWR0aCA9PT0gIm51bWJlciIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB2YXIgbWVhc3VyaW5nVGFiRWxlbWVudCA9IHRhYi5fY3JlYXRlVGFiRWxlbWVudCh0cnVl
KTsKKyAgICAgICAgICAgIG1lYXN1cmluZ1RhYkVsZW1lbnQuX190YWIgPSB0YWI7CisgICAgICAg
ICAgICBtZWFzdXJpbmdUYWJFbGVtZW50cy5wdXNoKG1lYXN1cmluZ1RhYkVsZW1lbnQpOworICAg
ICAgICAgICAgdGhpcy5fdGFic0VsZW1lbnQuYXBwZW5kQ2hpbGQobWVhc3VyaW5nVGFiRWxlbWVu
dCk7CiAgICAgICAgIH0KKworICAgICAgICAvLyBQZXJmb3JtIG1lYXN1cmVtZW50CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVhc3VyaW5nVGFiRWxlbWVudHMubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBtZWFzdXJpbmdUYWJFbGVtZW50c1tpXS5fX3RhYi5fbWVhc3VyZWRXaWR0aCA9
IG1lYXN1cmluZ1RhYkVsZW1lbnRzW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwor
CisgICAgICAgIC8vIE51a2UgZWxlbWVudHMgZnJvbSB0aGUgVUkKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtZWFzdXJpbmdUYWJFbGVtZW50cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
IG1lYXN1cmluZ1RhYkVsZW1lbnRzW2ldLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQobWVhc3Vy
aW5nVGFiRWxlbWVudHNbaV0pOworCisgICAgICAgIC8vIENvbWJpbmUgdGhlIHJlc3VsdHMuCisg
ICAgICAgIHZhciBtZWFzdXJlZFdpZHRocyA9IFtdOworICAgICAgICBmb3IgKHZhciB0YWJJZCBp
biB0aGlzLl90YWJzKQorICAgICAgICAgICAgbWVhc3VyZWRXaWR0aHMucHVzaCh0aGlzLl90YWJz
W3RhYklkXS5fbWVhc3VyZWRXaWR0aCk7CisKKyAgICAgICAgcmV0dXJuIG1lYXN1cmVkV2lkdGhz
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTQyOSw3ICs0NTYsNyBAQCBXZWJJbnNwZWN0b3IuVGFi
YmVkUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHRvdGFsVGFic1dpZHRoID0gMDsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzSGlzdG9yeS5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdG90YWxUYWJzV2lkdGggKz0gdGFic0hpc3RvcnlbaV0ud2lkdGg7CisgICAg
ICAgICAgICB0b3RhbFRhYnNXaWR0aCArPSB0YWJzSGlzdG9yeVtpXS53aWR0aCgpOwogICAgICAg
ICAgICAgdmFyIG1pbmltYWxSZXF1aXJlZFdpZHRoID0gdG90YWxUYWJzV2lkdGg7CiAgICAgICAg
ICAgICBpZiAoaSAhPT0gdGFic0hpc3RvcnkubGVuZ3RoIC0gMSkKICAgICAgICAgICAgICAgICBt
aW5pbWFsUmVxdWlyZWRXaWR0aCArPSBtZWFzdXJlZERyb3BEb3duQnV0dG9uV2lkdGg7CkBAIC01
MDEsNiArNTI4LDE2IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgaWYgKG9sZEluZGV4IDwgaW5kZXgpCiAgICAgICAgICAgICAtLWluZGV4OwogICAgICAg
ICB0aGlzLl90YWJzLnNwbGljZShpbmRleCwgMCwgdGFiKTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkCisgICAgICovCisgICAgc2V0Q29hbGVzY2lu
Z1VwZGF0ZTogZnVuY3Rpb24oZW5hYmxlZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NvYWxlc2Np
bmdMZXZlbCArPSBlbmFibGVkID8gMSA6IC0xOworICAgICAgICBpZiAoIXRoaXMuX2NvYWxlc2Np
bmdMZXZlbCkKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVRhYkVsZW1lbnRzKCk7CiAgICAgfQog
fQogCkBAIC01MTAsMTggKzU0NywxNiBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwogLyoqCiAgKiBAY29u
c3RydWN0b3IKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRhYmJlZFBhbmV9IHRhYmJlZFBhbmUK
LSAqIEBwYXJhbSB7RWxlbWVudH0gbWVhc3VyZUVsZW1lbnQKICAqIEBwYXJhbSB7c3RyaW5nfSBp
ZAogICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCiAgKiBAcGFyYW0ge2Jvb2xlYW59IGNsb3NlYWJs
ZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmlld30gdmlldwogICogQHBhcmFtIHtzdHJpbmc9
fSB0b29sdGlwCiAgKi8KLVdlYkluc3BlY3Rvci5UYWJiZWRQYW5lVGFiID0gZnVuY3Rpb24odGFi
YmVkUGFuZSwgbWVhc3VyZUVsZW1lbnQsIGlkLCB0aXRsZSwgY2xvc2VhYmxlLCB2aWV3LCB0b29s
dGlwKQorV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmVUYWIgPSBmdW5jdGlvbih0YWJiZWRQYW5lLCBp
ZCwgdGl0bGUsIGNsb3NlYWJsZSwgdmlldywgdG9vbHRpcCkKIHsKICAgICB0aGlzLl9jbG9zZWFi
bGUgPSBjbG9zZWFibGU7CiAgICAgdGhpcy5fdGFiYmVkUGFuZSA9IHRhYmJlZFBhbmU7Ci0gICAg
dGhpcy5fbWVhc3VyZUVsZW1lbnQgPSBtZWFzdXJlRWxlbWVudDsKICAgICB0aGlzLl9pZCA9IGlk
OwogICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAgICAgdGhpcy5fdG9vbHRpcCA9IHRvb2x0aXA7
CkBAIC01OTksMjQgKzYzNCwxNSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYi5wcm90b3R5
cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICAqLwotICAgIGdl
dCBtZWFzdXJlZFdpZHRoKCkKKyAgICB3aWR0aDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHR5cGVvZih0aGlzLl9tZWFzdXJlZFdpZHRoKSAhPT0gInVuZGVmaW5lZCIpCi0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5fbWVhc3VyZWRXaWR0aDsKLSAgICAgICAgCi0gICAgICAgIHRoaXMu
X21lYXN1cmUoKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21lYXN1cmVkV2lkdGg7CisgICAgICAg
IHJldHVybiB0aGlzLl93aWR0aDsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHJldHVybiB7
bnVtYmVyfQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aAogICAgICAqLwotICAgIGdldCB3
aWR0aCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fd2lkdGggfHwgdGhpcy5tZWFzdXJl
ZFdpZHRoOwotICAgIH0sCi0KLSAgICBzZXQgd2lkdGgod2lkdGgpCisgICAgc2V0V2lkdGg6IGZ1
bmN0aW9uKHdpZHRoKQogICAgIHsKICAgICAgICAgdGhpcy50YWJFbGVtZW50LnN0eWxlLndpZHRo
ID0gd2lkdGggKyAicHgiOwogICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOwpAQCAtNjU3LDE0
ICs2ODMsNiBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYi5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiB0YWJFbGVtZW50OwogICAgIH0sCiAKLSAgICBfbWVhc3VyZTogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdmFyIG1lYXN1cmluZ1RhYkVsZW1lbnQgPSB0aGlzLl9jcmVhdGVU
YWJFbGVtZW50KHRydWUpOwotICAgICAgICB0aGlzLl9tZWFzdXJlRWxlbWVudC5hcHBlbmRDaGls
ZChtZWFzdXJpbmdUYWJFbGVtZW50KTsKLSAgICAgICAgdGhpcy5fbWVhc3VyZWRXaWR0aCA9IG1l
YXN1cmluZ1RhYkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Ci0gICAgICAg
IHRoaXMuX21lYXN1cmVFbGVtZW50LnJlbW92ZUNoaWxkKG1lYXN1cmluZ1RhYkVsZW1lbnQpOwot
ICAgIH0sCi0KICAgICAvKioKICAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAogICAgICAqLwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGM4OGM5M2ExMmM4ZmRjZGJkNTZmM2I2ZDZkYWUzNjkzM2EzMGU4Y2QuLjlhYmEwOGFl
MGZjOGU1MDIzNTE3ZjI3OTIwYTBlMzE5N2EwY2JjNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMi0wOC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBUYWJiZWRQYW5lOiBtZWFzdXJlIHRhYiB3aWR0aHMgaW4gYmF0
Y2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
NDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvdGFiYmVkLXBhbmUtdGFicy10by1zaG93Lmh0bWw6CisKIDIwMTItMDgtMjAgICdQ
YXZlbCBGZWxkbWFuJyAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2
aWV3ZWQ6IGZpeGluZyBmbGFreSBpbnNwZWN0b3IgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbAppbmRleCBiYjZkMzJlNDA2
NDgwYjIwMTY2YWJlODc3OGRiZDcwNDliMDM2MDM5Li40ZDJiZWU3NTFiNGRlZGJkZTcyNGNhZTZh
ZTcyZGZkYmE4MGNkYzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVk
LXBhbmUtdGFicy10by1zaG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJl
ZC1wYW5lLXRhYnMtdG8tc2hvdy5odG1sCkBAIC0xMCw3ICsxMCw3IEBAIHZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gdGl0bGU7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHsgd2lkdGg6IHdpZHRoLCB0aXRsZTogdGl0bGUsIHRvU3RyaW5nOiB0
b1N0cmluZyB9OworICAgICAgICByZXR1cm4geyB3aWR0aDogZnVuY3Rpb24oKSB7IHJldHVybiB3
aWR0aDsgfSwgdGl0bGU6IHRpdGxlLCB0b1N0cmluZzogdG9TdHJpbmcgfTsKICAgICB9CiAKICAg
ICB2YXIgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159695</attachid>
            <date>2012-08-21 08:28:42 -0700</date>
            <delta_ts>2012-08-21 16:56:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94484-20120821192840.patch</filename>
            <type>text/plain</type>
            <size>20494</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg1MGFkOWI3YTE0NDUx
ZDU0NDE5NzBlMTBkNmJlOGQwNTQ1OTkyNS4uNTQwNzI5YmQxZGQyMTYzYWM5NTE2ZDQwMDJjZTJh
MTI2OGUxNjQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTIxICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRhYmJlZFBhbmU6IG1lYXN1cmUgdGFiIHdpZHRocyBpbiBiYXRjaGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEludHJvZHVjZXMgZ2xvYmFs
IGJhdGNoIHVwZGF0ZSBzY2hlbWEKKyAgICAgICAgLSBNaWdyYXRlcyBUb29sYmFyIGFuZCBUYWJi
ZWRQYW5lIHRvIHRoZSBuZXcgc2NoZW1hCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5hcHBlbmRUYWIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLl91cGRhdGVUYWJFbGVtZW50cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuX2lubmVyVXBkYXRlVGFiRWxl
bWVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLl91cGRh
dGVXaWR0aHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLl9t
ZWFzdXJlV2lkdGhzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lVGFiKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lVGFiLnByb3RvdHlwZS53aWR0aCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYi5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Ub29sYmFyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Ub29sYmFyLnByb3RvdHlwZS5f
dXBkYXRlRHJvcGRvd25CdXR0b25BbmRIaWRlRHJvcGRvd24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRvb2xiYXIucHJvdG90eXBlLl9pbm5lclVwZGF0ZURyb3Bkb3duQnV0dG9uQW5kSGlkZURy
b3Bkb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3Iuc3RhcnRCYXRjaFVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuaW52b2tlT25jZUFmdGVyQmF0Y2hVcGRhdGUuZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5pbnZva2VPbmNlQWZ0ZXJCYXRjaFVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGls
aXRpZXMuanM6CisKIDIwMTItMDgtMjAgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtWOF0gTW92ZSBTdHJpbmcgcmVsYXRlZCBjb2RlIGluIFY4QmluZGlu
ZyB0byBhIHNlcGFyYXRlIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggZThjYWNiMTg3ZDI1NWZhMDlhNmM2ZTBhNDhk
MDNjZjA2YjZiMDM1OS4uMzMzN2JhZTk0NmMzODNjNTczZWExYmRjYzg3MGY1MzUxNTcwY2EzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKQEAgLTE4NSw5ICsxODUsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1
bmN0aW9uKHdvcmtzcGFjZUZvclRlc3QpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRXhlY3V0
aW9uTGluZUNoYW5nZWQsIHRoaXMuX2V4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB0aGlzKTsKICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50c0FjdGl2ZVN0YXRlQ2hhbmdlZCwgdGhpcy5f
YnJlYWtwb2ludHNBY3RpdmVTdGF0ZUNoYW5nZWQsIHRoaXMpOwogCisgICAgV2ViSW5zcGVjdG9y
LnN0YXJ0QmF0Y2hVcGRhdGUoKTsKICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3dvcmtz
cGFjZS51aVNvdXJjZUNvZGVzKCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNv
ZGVzLmxlbmd0aDsgKytpKQogICAgICAgICB0aGlzLl9hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VD
b2Rlc1tpXSk7CisgICAgV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBkYXRlKCk7CiAKICAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
dmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRlZCwg
dGhpcyk7CiAgICAgdGhpcy5fd29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcy5f
dWlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmluZGV4IGEyNzlhMWUzZGZiOTY1NDA5NTgwY2Jm
M2VhMGU5ZWVmMzMxNGI1YWIuLjNlOGU4YWIxOWExMGNlZDZlZGQ1NTE3N2I1NzY2OGVhZjg0ZTM0
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVk
UGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBh
bmUuanMKQEAgLTEwMSw3ICsxMDEsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgICovCiAgICAgYXBwZW5kVGFiOiBmdW5jdGlvbihpZCwgdGFiVGl0bGUsIHZp
ZXcsIHRhYlRvb2x0aXAsIHVzZXJHZXN0dXJlKQogICAgIHsKLSAgICAgICAgdmFyIHRhYiA9IG5l
dyBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYih0aGlzLCB0aGlzLl90YWJzRWxlbWVudCwgaWQs
IHRhYlRpdGxlLCB0aGlzLl9jbG9zZWFibGVUYWJzLCB2aWV3LCB0YWJUb29sdGlwKTsKKyAgICAg
ICAgdmFyIHRhYiA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYih0aGlzLCBpZCwgdGFi
VGl0bGUsIHRoaXMuX2Nsb3NlYWJsZVRhYnMsIHZpZXcsIHRhYlRvb2x0aXApOwogICAgICAgICB0
aGlzLl90YWJzQnlJZFtpZF0gPSB0YWI7CiAKICAgICAgICAgdGhpcy5fdGFicy5wdXNoKHRhYik7
CkBAIC0yNTQsNiArMjU0LDExIEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9
IHsKIAogICAgIF91cGRhdGVUYWJFbGVtZW50czogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLmludm9rZU9uY2VBZnRlckJhdGNoVXBkYXRlKHRoaXMsIHRoaXMuX2lubmVy
VXBkYXRlVGFiRWxlbWVudHMpOworICAgIH0sCisKKyAgICBfaW5uZXJVcGRhdGVUYWJFbGVtZW50
czogZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjUsOSArMjcwLDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJl
ZFBhbmUucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMuX21lYXN1cmVkRHJvcERvd25C
dXR0b25XaWR0aCkKICAgICAgICAgICAgIHRoaXMuX21lYXN1cmVEcm9wRG93bkJ1dHRvbigpOwog
Ci0gICAgICAgIGlmICh0aGlzLl9zaHJpbmthYmxlVGFicykKLSAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVdpZHRocygpOwotICAgICAgICAKKyAgICAgICAgdGhpcy5fdXBkYXRlV2lkdGhzKCk7CiAg
ICAgICAgIHRoaXMuX3VwZGF0ZVRhYnNEcm9wRG93bigpOwogICAgIH0sCiAKQEAgLTM3NCwxNiAr
Mzc3LDQ0IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF91
cGRhdGVXaWR0aHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBtZWFzdXJlZFdpZHRo
cyA9IFtdOwotICAgICAgICBmb3IgKHZhciB0YWJJZCBpbiB0aGlzLl90YWJzKQotICAgICAgICAg
ICAgbWVhc3VyZWRXaWR0aHMucHVzaCh0aGlzLl90YWJzW3RhYklkXS5tZWFzdXJlZFdpZHRoKTsK
LSAgICAgICAgCi0gICAgICAgIHZhciBtYXhXaWR0aCA9IHRoaXMuX2NhbGN1bGF0ZU1heFdpZHRo
KG1lYXN1cmVkV2lkdGhzLCB0aGlzLl90b3RhbFdpZHRoKCkpOwotICAgICAgICAKKyAgICAgICAg
dmFyIG1lYXN1cmVkV2lkdGhzID0gdGhpcy5fbWVhc3VyZVdpZHRocygpOworICAgICAgICB2YXIg
bWF4V2lkdGggPSB0aGlzLl9zaHJpbmthYmxlVGFicyA/IHRoaXMuX2NhbGN1bGF0ZU1heFdpZHRo
KG1lYXN1cmVkV2lkdGhzLnNsaWNlKCksIHRoaXMuX3RvdGFsV2lkdGgoKSkgOiBOdW1iZXIuTUFY
X1ZBTFVFOworCisgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgZm9yICh2YXIgdGFiSWQgaW4g
dGhpcy5fdGFicykgeworICAgICAgICAgICAgdmFyIHRhYiA9IHRoaXMuX3RhYnNbdGFiSWRdOwor
ICAgICAgICAgICAgdGFiLnNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBtZWFzdXJlZFdpZHRo
c1tpKytdKSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX21lYXN1cmVXaWR0aHM6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIC8vIEFkZCBhbGwgZWxlbWVudHMgdG8gbWVhc3VyZSBpbnRv
IHRoaXMuX3RhYnNFbGVtZW50CisgICAgICAgIHZhciBtZWFzdXJpbmdUYWJFbGVtZW50cyA9IFtd
OwogICAgICAgICBmb3IgKHZhciB0YWJJZCBpbiB0aGlzLl90YWJzKSB7CiAgICAgICAgICAgICB2
YXIgdGFiID0gdGhpcy5fdGFic1t0YWJJZF07Ci0gICAgICAgICAgICB0YWIud2lkdGggPSBNYXRo
Lm1pbih0YWIubWVhc3VyZWRXaWR0aCwgbWF4V2lkdGgpOworICAgICAgICAgICAgaWYgKHR5cGVv
ZiB0YWIuX21lYXN1cmVkV2lkdGggPT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgdmFyIG1lYXN1cmluZ1RhYkVsZW1lbnQgPSB0YWIuX2NyZWF0ZVRh
YkVsZW1lbnQodHJ1ZSk7CisgICAgICAgICAgICBtZWFzdXJpbmdUYWJFbGVtZW50Ll9fdGFiID0g
dGFiOworICAgICAgICAgICAgbWVhc3VyaW5nVGFiRWxlbWVudHMucHVzaChtZWFzdXJpbmdUYWJF
bGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX3RhYnNFbGVtZW50LmFwcGVuZENoaWxkKG1lYXN1
cmluZ1RhYkVsZW1lbnQpOwogICAgICAgICB9CisKKyAgICAgICAgLy8gUGVyZm9ybSBtZWFzdXJl
bWVudAorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lYXN1cmluZ1RhYkVsZW1lbnRzLmxl
bmd0aDsgKytpKQorICAgICAgICAgICAgbWVhc3VyaW5nVGFiRWxlbWVudHNbaV0uX190YWIuX21l
YXN1cmVkV2lkdGggPSBtZWFzdXJpbmdUYWJFbGVtZW50c1tpXS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aDsKKworICAgICAgICAvLyBOdWtlIGVsZW1lbnRzIGZyb20gdGhlIFVJCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVhc3VyaW5nVGFiRWxlbWVudHMubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICBtZWFzdXJpbmdUYWJFbGVtZW50c1tpXS5wYXJlbnRFbGVtZW50LnJlbW92
ZUNoaWxkKG1lYXN1cmluZ1RhYkVsZW1lbnRzW2ldKTsKKworICAgICAgICAvLyBDb21iaW5lIHRo
ZSByZXN1bHRzLgorICAgICAgICB2YXIgbWVhc3VyZWRXaWR0aHMgPSBbXTsKKyAgICAgICAgZm9y
ICh2YXIgdGFiSWQgaW4gdGhpcy5fdGFicykKKyAgICAgICAgICAgIG1lYXN1cmVkV2lkdGhzLnB1
c2godGhpcy5fdGFic1t0YWJJZF0uX21lYXN1cmVkV2lkdGgpOworCisgICAgICAgIHJldHVybiBt
ZWFzdXJlZFdpZHRoczsKICAgICB9LAogCiAgICAgLyoqCkBAIC00MjksNyArNDYwLDcgQEAgV2Vi
SW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciB0b3RhbFRh
YnNXaWR0aCA9IDA7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFic0hpc3RvcnkubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIHRvdGFsVGFic1dpZHRoICs9IHRhYnNIaXN0b3J5W2ld
LndpZHRoOworICAgICAgICAgICAgdG90YWxUYWJzV2lkdGggKz0gdGFic0hpc3RvcnlbaV0ud2lk
dGgoKTsKICAgICAgICAgICAgIHZhciBtaW5pbWFsUmVxdWlyZWRXaWR0aCA9IHRvdGFsVGFic1dp
ZHRoOwogICAgICAgICAgICAgaWYgKGkgIT09IHRhYnNIaXN0b3J5Lmxlbmd0aCAtIDEpCiAgICAg
ICAgICAgICAgICAgbWluaW1hbFJlcXVpcmVkV2lkdGggKz0gbWVhc3VyZWREcm9wRG93bkJ1dHRv
bldpZHRoOwpAQCAtNTEwLDE4ICs1NDEsMTYgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKIC8qKgogICog
QGNvbnN0cnVjdG9yCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UYWJiZWRQYW5lfSB0YWJiZWRQ
YW5lCi0gKiBAcGFyYW0ge0VsZW1lbnR9IG1lYXN1cmVFbGVtZW50CiAgKiBAcGFyYW0ge3N0cmlu
Z30gaWQKICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQogICogQHBhcmFtIHtib29sZWFufSBjbG9z
ZWFibGUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKICAqIEBwYXJhbSB7c3Ry
aW5nPX0gdG9vbHRpcAogICovCi1XZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYiA9IGZ1bmN0aW9u
KHRhYmJlZFBhbmUsIG1lYXN1cmVFbGVtZW50LCBpZCwgdGl0bGUsIGNsb3NlYWJsZSwgdmlldywg
dG9vbHRpcCkKK1dlYkluc3BlY3Rvci5UYWJiZWRQYW5lVGFiID0gZnVuY3Rpb24odGFiYmVkUGFu
ZSwgaWQsIHRpdGxlLCBjbG9zZWFibGUsIHZpZXcsIHRvb2x0aXApCiB7CiAgICAgdGhpcy5fY2xv
c2VhYmxlID0gY2xvc2VhYmxlOwogICAgIHRoaXMuX3RhYmJlZFBhbmUgPSB0YWJiZWRQYW5lOwot
ICAgIHRoaXMuX21lYXN1cmVFbGVtZW50ID0gbWVhc3VyZUVsZW1lbnQ7CiAgICAgdGhpcy5faWQg
PSBpZDsKICAgICB0aGlzLl90aXRsZSA9IHRpdGxlOwogICAgIHRoaXMuX3Rvb2x0aXAgPSB0b29s
dGlwOwpAQCAtNTk5LDI0ICs2MjgsMTUgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmVUYWIucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEByZXR1cm4ge251bWJlcn0KICAgICAgKi8KLSAg
ICBnZXQgbWVhc3VyZWRXaWR0aCgpCisgICAgd2lkdGg6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIGlmICh0eXBlb2YodGhpcy5fbWVhc3VyZWRXaWR0aCkgIT09ICJ1bmRlZmluZWQiKQotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX21lYXN1cmVkV2lkdGg7Ci0gICAgICAgIAotICAgICAgICB0
aGlzLl9tZWFzdXJlKCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tZWFzdXJlZFdpZHRoOworICAg
ICAgICByZXR1cm4gdGhpcy5fd2lkdGg7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEByZXR1
cm4ge251bWJlcn0KKyAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGgKICAgICAgKi8KLSAgICBn
ZXQgd2lkdGgoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoIHx8IHRoaXMubWVh
c3VyZWRXaWR0aDsKLSAgICB9LAotCi0gICAgc2V0IHdpZHRoKHdpZHRoKQorICAgIHNldFdpZHRo
OiBmdW5jdGlvbih3aWR0aCkKICAgICB7CiAgICAgICAgIHRoaXMudGFiRWxlbWVudC5zdHlsZS53
aWR0aCA9IHdpZHRoICsgInB4IjsKICAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKQEAgLTY1
NywxNCArNjc3LDYgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmVUYWIucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gdGFiRWxlbWVudDsKICAgICB9LAogCi0gICAgX21lYXN1cmU6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBtZWFzdXJpbmdUYWJFbGVtZW50ID0gdGhpcy5fY3Jl
YXRlVGFiRWxlbWVudCh0cnVlKTsKLSAgICAgICAgdGhpcy5fbWVhc3VyZUVsZW1lbnQuYXBwZW5k
Q2hpbGQobWVhc3VyaW5nVGFiRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX21lYXN1cmVkV2lkdGgg
PSBtZWFzdXJpbmdUYWJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwotICAg
ICAgICB0aGlzLl9tZWFzdXJlRWxlbWVudC5yZW1vdmVDaGlsZChtZWFzdXJpbmdUYWJFbGVtZW50
KTsKLSAgICB9LAotCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKICAgICAg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJh
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcwppbmRl
eCA5YTVlNGEyNThjNGYwYWEwZTEwOTNjNDZiYWU0NGYzNzg4MWNhZjEyLi45Yjg5OTVjMzg2NTZh
MjY1YzRmOWU5ZWM4NzBjZjAxNTRjZmU4YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xiYXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Ub29sYmFyLmpzCkBAIC00MiwyMCArNDIsOSBAQCBXZWJJbnNwZWN0b3Iu
VG9vbGJhciA9IGZ1bmN0aW9uKCkKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9z
ZS1idXR0b24tbGVmdCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fb25DbG9zZSwg
dHJ1ZSk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWJ1dHRvbi1yaWdodCIp
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fb25DbG9zZSwgdHJ1ZSk7Ci0gICAgdGhp
cy5fY29hbGVzY2luZ0xldmVsID0gMDsKIH0KIAogV2ViSW5zcGVjdG9yLlRvb2xiYXIucHJvdG90
eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlZAotICAgICAq
LwotICAgIHNldENvYWxlc2NpbmdVcGRhdGU6IGZ1bmN0aW9uKGVuYWJsZWQpCi0gICAgewotICAg
ICAgICB0aGlzLl9jb2FsZXNjaW5nTGV2ZWwgKz0gZW5hYmxlZCA/IDEgOiAtMTsKLSAgICAgICAg
aWYgKCF0aGlzLl9jb2FsZXNjaW5nTGV2ZWwpCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVEcm9w
ZG93bkJ1dHRvbkFuZEhpZGVEcm9wZG93bigpOwotICAgIH0sCi0KICAgICByZXNpemU6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZURyb3Bkb3duQnV0dG9uQW5kSGlkZURy
b3Bkb3duKCk7CkBAIC0xNzksOCArMTY4LDExIEBAIFdlYkluc3BlY3Rvci5Ub29sYmFyLnByb3Rv
dHlwZSA9IHsKIAogICAgIF91cGRhdGVEcm9wZG93bkJ1dHRvbkFuZEhpZGVEcm9wZG93bjogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2NvYWxlc2NpbmdMZXZlbCkKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmludm9rZU9uY2VBZnRlckJhdGNo
VXBkYXRlKHRoaXMsIHRoaXMuX2lubmVyVXBkYXRlRHJvcGRvd25CdXR0b25BbmRIaWRlRHJvcGRv
d24pOworICAgIH0sCisKKyAgICBfaW5uZXJVcGRhdGVEcm9wZG93bkJ1dHRvbkFuZEhpZGVEcm9w
ZG93bjogZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgdGhpcy5fc2V0RHJvcGRvd25WaXNpYmxl
KGZhbHNlKTsKIAogICAgICAgICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0b29sYmFyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRp
bHMuanMKaW5kZXggNDRjZWI0MWQ5ZGE5ZDhiZjBmMjQ4NThjMjhhYmQ0NDdkN2FjODgyNC4uOWFm
NTA3MGUxNjNiZGQ1YzM2ODVlZTc1YzQ1YzA0ZDFjZjVlM2Q1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcwpAQCAtMTEwOSw2ICsxMTA5LDUxIEBA
IFdlYkluc3BlY3Rvci5wb3B1bGF0ZUhyZWZDb250ZXh0TWVudSA9IGZ1bmN0aW9uKGNvbnRleHRN
ZW51LCBjb250ZXh0Tm9kZSwgZXZlbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1dlYkluc3Bl
Y3Rvci5fY29hbGVzY2luZ0xldmVsID0gMDsKKworV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRh
dGUgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCFXZWJJbnNwZWN0b3IuX2NvYWxlc2NpbmdMZXZl
bCkKKyAgICAgICAgV2ViSW5zcGVjdG9yLl9wb3N0VXBkYXRlSGFuZGxlcnMgPSBuZXcgTWFwKCk7
CisgICAgV2ViSW5zcGVjdG9yLl9jb2FsZXNjaW5nTGV2ZWwrKzsKK30KKworV2ViSW5zcGVjdG9y
LmVuZEJhdGNoVXBkYXRlID0gZnVuY3Rpb24oKQoreworICAgIGlmICgtLVdlYkluc3BlY3Rvci5f
Y29hbGVzY2luZ0xldmVsKQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgaGFuZGxlcnMgPSBX
ZWJJbnNwZWN0b3IuX3Bvc3RVcGRhdGVIYW5kbGVyczsKKyAgICBkZWxldGUgV2ViSW5zcGVjdG9y
Ll9wb3N0VXBkYXRlSGFuZGxlcnM7CisKKyAgICB2YXIga2V5cyA9IGhhbmRsZXJzLmtleXMoKTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFy
IG9iamVjdCA9IGtleXNbaV07CisgICAgICAgIHZhciBtZXRob2RzID0gaGFuZGxlcnMuZ2V0KG9i
amVjdCkua2V5cygpOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG1ldGhvZHMubGVuZ3Ro
OyArK2opCisgICAgICAgICAgICBtZXRob2RzW2pdLmNhbGwob2JqZWN0KTsKKyAgICB9Cit9CisK
Ky8qKgorICogQHBhcmFtIHtPYmplY3R9IG9iamVjdAorICogQHBhcmFtIHtmdW5jdGlvbigpfSBt
ZXRob2QKKyAqLworV2ViSW5zcGVjdG9yLmludm9rZU9uY2VBZnRlckJhdGNoVXBkYXRlID0gZnVu
Y3Rpb24ob2JqZWN0LCBtZXRob2QpCit7CisgICAgaWYgKCFXZWJJbnNwZWN0b3IuX2NvYWxlc2Np
bmdMZXZlbCkgeworICAgICAgICBtZXRob2QuY2FsbChvYmplY3QpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIHZhciBtZXRob2RzID0gV2ViSW5zcGVjdG9yLl9wb3N0VXBkYXRl
SGFuZGxlcnMuZ2V0KG9iamVjdCk7CisgICAgaWYgKCFtZXRob2RzKSB7CisgICAgICAgIG1ldGhv
ZHMgPSBuZXcgTWFwKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5fcG9zdFVwZGF0ZUhhbmRsZXJz
LnB1dChvYmplY3QsIG1ldGhvZHMpOworICAgIH0KKyAgICBtZXRob2RzLnB1dChtZXRob2QpOwor
fQorCiA7KGZ1bmN0aW9uKCkgewogCiBmdW5jdGlvbiB3aW5kb3dMb2FkZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA5MWVlNTRm
MDNhNDQzN2FmMzFkY2RiOTdjOTYxMDhmYzNlYTZlN2FjLi5jOTZlZTY1NGUyMDVmYWJkZTQyYjhj
YzRkMDM2MzE4YWJhM2NmODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNTIyLDExICs1MjIsMTEgQEAgV2ViSW5zcGVjdG9yLl9k
b0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rv
ci5faW5zdGFsbERvY2tUb1JpZ2h0KCk7CiAKICAgICB0aGlzLnRvb2xiYXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlRvb2xiYXIoKTsKLSAgICB0aGlzLnRvb2xiYXIuc2V0Q29hbGVzY2luZ1VwZGF0ZSh0
cnVlKTsKKyAgICBXZWJJbnNwZWN0b3Iuc3RhcnRCYXRjaFVwZGF0ZSgpOwogICAgIHZhciBwYW5l
bERlc2NyaXB0b3JzID0gdGhpcy5fcGFuZWxEZXNjcmlwdG9ycygpOwogICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcGFuZWxEZXNjcmlwdG9ycy5sZW5ndGg7ICsraSkKICAgICAgICAgV2ViSW5zcGVj
dG9yLmluc3BlY3RvclZpZXcuYWRkUGFuZWwocGFuZWxEZXNjcmlwdG9yc1tpXSk7Ci0gICAgdGhp
cy50b29sYmFyLnNldENvYWxlc2NpbmdVcGRhdGUoZmFsc2UpOworICAgIFdlYkluc3BlY3Rvci5l
bmRCYXRjaFVwZGF0ZShmYWxzZSk7CiAKICAgICB0aGlzLmFkZE1haW5FdmVudExpc3RlbmVycyhk
b2N1bWVudCk7CiAgICAgV2ViSW5zcGVjdG9yLnJlZ2lzdGVyTGlua2lmaWVyUGx1Z2luKHRoaXMu
X3Byb2ZpbGVzTGlua2lmaWVyLmJpbmQodGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwppbmRleCBmMjE1Y2UxNTcwOTI3OTk2OGE1NGJi
ZDZjYmM5ZjU4MTMzNzM2NzQzLi5hNjc1MGEyYThkZTMxZTkzZGVkNDAxZTQzMWIzOGJmZjNjZmMx
YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxp
dGllcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGll
cy5qcwpAQCAtNjkwLDQyICs2OTAsNTcgQEAgTWFwLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IG9iamVjdElkZW50aWZpZXIgPSArK01hcC5fbGFzdE9iamVjdElkZW50aWZpZXI7CiAgICAgICAg
ICAgICBrZXkuX19pZGVudGlmaWVyID0gb2JqZWN0SWRlbnRpZmllcjsKICAgICAgICAgfQotICAg
ICAgICB0aGlzLl9tYXBbb2JqZWN0SWRlbnRpZmllcl0gPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5f
bWFwW29iamVjdElkZW50aWZpZXJdID0gW2tleSwgdmFsdWVdOwogICAgIH0sCiAgICAgCiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtPYmplY3R9IGtleQotICAgICAqIEByZXR1cm4ge09iamVjdH0g
dmFsdWUKICAgICAgKi8KICAgICByZW1vdmU6IGZ1bmN0aW9uKGtleSkKICAgICB7CiAgICAgICAg
IHZhciByZXN1bHQgPSB0aGlzLl9tYXBba2V5Ll9faWRlbnRpZmllcl07CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9tYXBba2V5Ll9faWRlbnRpZmllcl07Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgIHJldHVybiByZXN1bHQgPyByZXN1bHRbMV0gOiB1bmRlZmluZWQ7CiAgICAgfSwKLSAg
ICAKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5LjxPYmplY3Q+fQorICAgICAqLwor
ICAgIGtleXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9saXN0KDAp
OworICAgIH0sCisKICAgICB2YWx1ZXM6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9saXN0KDEpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gaW5kZXgKKyAgICAgKi8KKyAgICBfbGlzdDogZnVuY3Rpb24oaW5kZXgpCisgICAgewogICAg
ICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIGZvciAodmFyIG9iamVjdElkZW50aWZpZXIg
aW4gdGhpcy5fbWFwKQotICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5fbWFwW29iamVjdElk
ZW50aWZpZXJdKTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuX21hcFtvYmplY3RJZGVu
dGlmaWVyXVtpbmRleF0pOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCi0gICAgCisK
ICAgICAvKioKICAgICAgKiBAcGFyYW0ge09iamVjdH0ga2V5CiAgICAgICovCiAgICAgZ2V0OiBm
dW5jdGlvbihrZXkpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbWFwW2tleS5fX2lkZW50
aWZpZXJdOworICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9tYXBba2V5Ll9faWRlbnRpZmllcl07
CisgICAgICAgIHJldHVybiBlbnRyeSA/IGVudHJ5WzFdIDogdW5kZWZpbmVkOwogICAgIH0sCiAg
ICAgCiAgICAgY2xlYXI6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX21hcCA9IHt9
OwogICAgIH0KLX07Ci0KK30KIAogLyoqCiAgKiBAY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZWNhNzk4
YmZlOWFjYmY5NjMwNzk0MWRhMmE1M2ZiMDE2MGJmYzgwLi42ZjNhMzJlMTllMzg4ZTBiZTNkOWM4
ZTYzMDMyNzQwZDRmOGQzZjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMjEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogVGFiYmVkUGFuZTogbWVhc3VyZSB0YWIgd2lkdGhzIGluIGJhdGNoZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ4NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3N0YXJ0
LWVuZC1iYXRjaC11cGRhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3Ivc3RhcnQtZW5kLWJhdGNoLXVwZGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvdGFiYmVkLXBhbmUtdGFicy10by1zaG93Lmh0bWw6CisKIDIwMTItMDgtMjEgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHJhbmdlLWhpdC10ZXN0
LXdpdGgtcGFkZGluZy5odG1sIGJ5IHJlbW92aW5nIHVubmVjZXNzYXJ5IHBhcnQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RhcnQtZW5kLWJhdGNoLXVwZGF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RhcnQtZW5kLWJhdGNoLXVwZGF0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA4ODVkMzE4NGRkN2NlYzRlM2JhMjViZWY1NzljZTNjMDE5
YjU1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdGFydC1lbmQt
YmF0Y2gtdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUZXN0cyBXZWJJbnNw
ZWN0b3Iuc3RhcnQvZW5kQmF0Y2hVcGRhdGUKKworCitSdW5uaW5nOiB0ZXN0Tm9CYXRjaE1vZGUK
K2R1bW15LnVwZGF0ZQorZHVtbXkuaW5uZXJVcGRhdGUKKworUnVubmluZzogdGVzdEJhdGNoTW9k
ZQorV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRhdGUKK2R1bW15LnVwZGF0ZQorZHVtbXkudXBk
YXRlCitkdW1teS51cGRhdGUKK1dlYkluc3BlY3Rvci5lbmRCYXRjaFVwZGF0ZQorZHVtbXkuaW5u
ZXJVcGRhdGUKKworUnVubmluZzogdGVzdE5lc3RlZEJhdGNoTW9kZQorV2ViSW5zcGVjdG9yLnN0
YXJ0QmF0Y2hVcGRhdGUKK1dlYkluc3BlY3Rvci5zdGFydEJhdGNoVXBkYXRlCitkdW1teS51cGRh
dGUKK2R1bW15LnVwZGF0ZQorZHVtbXkudXBkYXRlCitXZWJJbnNwZWN0b3IuZW5kQmF0Y2hVcGRh
dGUKK1dlYkluc3BlY3Rvci5lbmRCYXRjaFVwZGF0ZQorZHVtbXkuaW5uZXJVcGRhdGUKKworUnVu
bmluZzogdGVzdE11bHRpcGxlT2JqZWN0cworV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRhdGUK
K2R1bW15MS51cGRhdGUKK2R1bW15Mi51cGRhdGUKK1dlYkluc3BlY3Rvci5lbmRCYXRjaFVwZGF0
ZQorZHVtbXkxLmlubmVyVXBkYXRlCitkdW1teTIuaW5uZXJVcGRhdGUKKworUnVubmluZzogdGVz
dE11bHRpcGxlTWV0aG9kcworV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRhdGUKK2R1bW15LnVw
ZGF0ZQorZHVtbXkudXBkYXRlMgorV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBkYXRlCitkdW1teS5p
bm5lclVwZGF0ZQorZHVtbXkuaW5uZXJVcGRhdGUyCisKK1J1bm5pbmc6IHRlc3RNaXhPYmplY3Rz
QW5kTWV0aG9kcworV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRhdGUKK2R1bW15MS51cGRhdGUK
K2R1bW15MS51cGRhdGUyCitkdW1teTIudXBkYXRlMgorV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBk
YXRlCitkdW1teTEuaW5uZXJVcGRhdGUKK2R1bW15MS5pbm5lclVwZGF0ZTIKK2R1bW15Mi5pbm5l
clVwZGF0ZTIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0YXJ0LWVuZC1i
YXRjaC11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdGFydC1lbmQtYmF0Y2gt
dXBkYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU1YTgyYzc3ZmQxNzFkY2Q3M2I5MDQ4ZmIxYTdhZjlm
ZmNlYjkzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdGFydC1l
bmQtYmF0Y2gtdXBkYXRlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKK3sKKyAgICBmdW5jdGlvbiBEdW1teShuYW1lKQorICAgIHsKKyAgICAgICAgdGhp
cy5fbmFtZSA9IG5hbWUgfHwgImR1bW15IjsKKyAgICB9CisKKyAgICBEdW1teS5wcm90b3R5cGUg
PSB7CisgICAgICAgIHVwZGF0ZTogZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0aGlzLl9uYW1lICsgIi51cGRhdGUiKTsKKyAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5pbnZva2VPbmNlQWZ0ZXJCYXRjaFVwZGF0ZSh0aGlzLCB0aGlzLl9p
bm5lclVwZGF0ZSk7CisgICAgICAgIH0sCisKKyAgICAgICAgdXBkYXRlMjogZnVuY3Rpb24oKQor
ICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0aGlzLl9uYW1l
ICsgIi51cGRhdGUyIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuaW52b2tlT25jZUFmdGVy
QmF0Y2hVcGRhdGUodGhpcywgdGhpcy5faW5uZXJVcGRhdGUyKTsKKyAgICAgICAgfSwKKworICAg
ICAgICBfaW5uZXJVcGRhdGU6IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQodGhpcy5fbmFtZSArICIuaW5uZXJVcGRhdGUiKTsKKyAgICAg
ICAgfSwKKworICAgICAgICBfaW5uZXJVcGRhdGUyOiBmdW5jdGlvbigpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRoaXMuX25hbWUgKyAiLmlubmVyVXBk
YXRlMiIpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRCYXRjaFVwZGF0
ZSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2ViSW5zcGVjdG9y
LnN0YXJ0QmF0Y2hVcGRhdGUiKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnN0YXJ0QmF0Y2hVcGRh
dGUoKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZW5kQmF0Y2hVcGRhdGUobmV4dCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuZW5kQmF0
Y2hVcGRhdGUiKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBkYXRlKCk7CisgICAg
ICAgIGlmIChuZXh0KQorICAgICAgICAgICAgbmV4dCgpOworICAgIH0KKyAgICAKKyAgICBJbnNw
ZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRlc3ROb0JhdGNoTW9k
ZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgZHVtbXkgPSBuZXcgRHVtbXkoKTsK
KyAgICAgICAgICAgIGR1bW15LnVwZGF0ZSgpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RCYXRjaE1vZGUobmV4dCkKKyAgICAgICAgewor
ICAgICAgICAgICAgdmFyIGR1bW15ID0gbmV3IER1bW15KCk7CisgICAgICAgICAgICBzdGFydEJh
dGNoVXBkYXRlKCk7CisgICAgICAgICAgICBkdW1teS51cGRhdGUoKTsKKyAgICAgICAgICAgIGR1
bW15LnVwZGF0ZSgpOworICAgICAgICAgICAgZHVtbXkudXBkYXRlKCk7CisgICAgICAgICAgICBl
bmRCYXRjaFVwZGF0ZShuZXh0KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0
TmVzdGVkQmF0Y2hNb2RlKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBkdW1teSA9
IG5ldyBEdW1teSgpOworICAgICAgICAgICAgc3RhcnRCYXRjaFVwZGF0ZSgpOworICAgICAgICAg
ICAgc3RhcnRCYXRjaFVwZGF0ZSgpOworICAgICAgICAgICAgZHVtbXkudXBkYXRlKCk7CisgICAg
ICAgICAgICBkdW1teS51cGRhdGUoKTsKKyAgICAgICAgICAgIGR1bW15LnVwZGF0ZSgpOworICAg
ICAgICAgICAgZW5kQmF0Y2hVcGRhdGUoKTsKKyAgICAgICAgICAgIGVuZEJhdGNoVXBkYXRlKG5l
eHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZU9iamVjdHMo
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGR1bW15MSA9IG5ldyBEdW1teSgiZHVt
bXkxIik7CisgICAgICAgICAgICB2YXIgZHVtbXkyID0gbmV3IER1bW15KCJkdW1teTIiKTsKKyAg
ICAgICAgICAgIHN0YXJ0QmF0Y2hVcGRhdGUoKTsKKyAgICAgICAgICAgIGR1bW15MS51cGRhdGUo
KTsKKyAgICAgICAgICAgIGR1bW15Mi51cGRhdGUoKTsKKyAgICAgICAgICAgIGVuZEJhdGNoVXBk
YXRlKG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZU1l
dGhvZHMobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGR1bW15ID0gbmV3IER1bW15
KCk7CisgICAgICAgICAgICBzdGFydEJhdGNoVXBkYXRlKCk7CisgICAgICAgICAgICBkdW1teS51
cGRhdGUoKTsKKyAgICAgICAgICAgIGR1bW15LnVwZGF0ZTIoKTsKKyAgICAgICAgICAgIGVuZEJh
dGNoVXBkYXRlKG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RNaXhP
YmplY3RzQW5kTWV0aG9kcyhuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgZHVtbXkx
ID0gbmV3IER1bW15KCJkdW1teTEiKTsKKyAgICAgICAgICAgIHZhciBkdW1teTIgPSBuZXcgRHVt
bXkoImR1bW15MiIpOworICAgICAgICAgICAgc3RhcnRCYXRjaFVwZGF0ZSgpOworICAgICAgICAg
ICAgZHVtbXkxLnVwZGF0ZSgpOworICAgICAgICAgICAgZHVtbXkxLnVwZGF0ZTIoKTsKKyAgICAg
ICAgICAgIGR1bW15Mi51cGRhdGUyKCk7CisgICAgICAgICAgICBlbmRCYXRjaFVwZGF0ZShuZXh0
KTsKKyAgICAgICAgfQorICAgIF0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIFdlYkluc3BlY3Rvci5zdGFydC9lbmRCYXRjaFVw
ZGF0ZTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbAppbmRleCBiYjZkMzJlNDA2NDgwYjIwMTY2
YWJlODc3OGRiZDcwNDliMDM2MDM5Li40ZDJiZWU3NTFiNGRlZGJkZTcyNGNhZTZhZTcyZGZkYmE4
MGNkYzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBhbmUtdGFi
cy10by1zaG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRh
YnMtdG8tc2hvdy5odG1sCkBAIC0xMCw3ICsxMCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gdGl0bGU7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHsgd2lkdGg6IHdpZHRoLCB0aXRsZTogdGl0bGUsIHRvU3RyaW5nOiB0b1N0cmluZyB9
OworICAgICAgICByZXR1cm4geyB3aWR0aDogZnVuY3Rpb24oKSB7IHJldHVybiB3aWR0aDsgfSwg
dGl0bGU6IHRpdGxlLCB0b1N0cmluZzogdG9TdHJpbmcgfTsKICAgICB9CiAKICAgICB2YXIgZHJv
cERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTA7Cg==
</data>
<flag name="review"
          id="170083"
          type_id="1"
          status="+"
          setter="vsevik"
    />
    <flag name="commit-queue"
          id="170100"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>