<?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>96040</bug_id>
          
          <creation_ts>2012-09-06 16:46:26 -0700</creation_ts>
          <short_desc>Web Inspector: Allow extensions to open FilteredItemSelectorDialog</short_desc>
          <delta_ts>2014-12-01 14:34:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="johnjbarton">johnjbarton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>burg</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>713850</commentid>
    <comment_count>0</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-06 16:46:26 -0700</bug_when>
    <thetext>The FilteredItemSelectorDialog (bound to eg control + o to open files) is a nice, general purpose list selection widget. By exposing it to WebInspector extensions, the extensions can be more effective, feel more integrated with the WebInspector, and users can adapt to extensions more quickly. 

Such an extension could have many uses, eg &quot;find a CSS selector&quot;, &quot;find a JS identifier&quot;, &quot;find localized strings&quot;, &quot;find test cases on my special test server&quot;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713870</commentid>
    <comment_count>1</comment_count>
      <attachid>162620</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-06 17:06:01 -0700</bug_when>
    <thetext>Created attachment 162620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713871</commentid>
    <comment_count>2</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-06 17:07:17 -0700</bug_when>
    <thetext>Please give feedback on the concept and API first. I guess this will need to be behind some experimental flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714942</commentid>
    <comment_count>3</comment_count>
      <attachid>162620</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 13:57:06 -0700</bug_when>
    <thetext>Comment on attachment 162620
Patch

Attachment 162620 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13778738

New failing tests:
inspector/extensions/extensions-panel.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717298</commentid>
    <comment_count>4</comment_count>
      <attachid>163388</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-11 09:53:51 -0700</bug_when>
    <thetext>Created attachment 163388
rebase and fix formatting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718033</commentid>
    <comment_count>5</comment_count>
      <attachid>163388</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 01:14:02 -0700</bug_when>
    <thetext>Comment on attachment 163388
rebase and fix formatting

Attachment 163388 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13825524

New failing tests:
inspector/extensions/extensions-panel.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725358</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-21 03:09:52 -0700</bug_when>
    <thetext>Do we have use cases for this API? Did any of the extensions try to create such a UI on their panel? I wouldn&apos;t want to expose provisional extensions APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725359</commentid>
    <comment_count>7</comment_count>
      <attachid>163388</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-21 03:10:11 -0700</bug_when>
    <thetext>Comment on attachment 163388
rebase and fix formatting

Clearing r? while we are figuring out whether this is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725508</commentid>
    <comment_count>8</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-21 07:34:11 -0700</bug_when>
    <thetext>I&apos;m using it in my extension, to load files into an editor in conjunction with Resource get/setContent.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162620</attachid>
            <date>2012-09-06 17:06:01 -0700</date>
            <delta_ts>2012-09-11 09:53:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96040-20120906170541.patch</filename>
            <type>text/plain</type>
            <size>18368</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjliMWI0N2Y5Zjk2YWE2
NGQ4NGNiZWM3NDI0ZTg0MDA3OWRiNTc2Zi4uYTE4MmNlMzMxNDdjOTBjMTZhMTcxYWYxNmIwZWM2
ODdjNjVhNGFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA5LTA2ICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBbGxvdyBleHRlbnNpb25zIHRvIG9wZW4gRmlsdGVyZWRJdGVtU2VsZWN0b3JEaWFs
b2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5k
IHRoZSBFeHRlbnNpb25QYW5lbCB0byBhZGQgY3JlYXRlSXRlbVNlbGVjdG9yLgorICAgICAgICAK
KyAgICAgICAgVGVzdCBhZGRlZCB0byBleHRlbnNpb25zLXBhbmVsLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzOgorICAgICAgICAoZGVmaW5lQ29t
bW9uRXh0ZW5zaW9uU3ltYm9scyk6CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5JdGVt
U2VsZWN0b3JJbXBsKToKKyAgICAgICAgKGluamVjdGVkRXh0ZW5zaW9uQVBJLkl0ZW1TZWxlY3Rv
ckltcGwucHJvdG90eXBlLmFkZEl0ZW1zKToKKyAgICAgICAgQVBJIGZvciB0aGUgZXh0ZW5zaW9u
IHRvIHBvc3QgaXRlbXMgdG8gdGhlIGRpYWxvZworICAgICAgICAoaW5qZWN0ZWRFeHRlbnNpb25B
UEkuRXh0ZW5zaW9uUGFuZWxJbXBsLnByb3RvdHlwZS5jcmVhdGVJdGVtU2VsZWN0b3IpOgorICAg
ICAgICBBUEkgcGFuZWwuY3JlYXRlSXRlbVNlbGVjdG9yKCkgaXMgaG93IGV4dGVuc2lvbnMgb3Bl
biB0aGUgZGlhbG9nCisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5FeHRlbnNpb25QYW5l
bEltcGwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5ub3RpZnlJ
dGVtU2VsZWN0ZWQpOgorICAgICAgICBXaGVuIHRoZSB1c2VyIHNlbGVjdHMsIHdlIHBvc3QgdG8g
dGhlIGV4dGVuc2lvbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJv
dG90eXBlLl9vbkFkZFNlbGVjdG9ySXRlbXMpOgorICAgICAgICBUaGUgZXh0ZW5zaW9uIGNhbiBw
b3N0IGl0ZW1zIChvYmplY3RzIHdpdGggZmllbGRzIHRpdGxlLCBzdWJ0aXRsZSwga2V0LCBzdWZm
aXgpLgorICAgICAgICBUaGUgZXh0ZW5zaW9uIGNhbiBwb3N0IG11bHRpcGxlIHRpbWVzLCBhbnkg
dGltZSBhZnRlciB0aGUgZGlhbG9nIGlzIGNyZWF0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJdGVtU2VsZWN0b3IuaXRlbXNQcm94
eS5yZXF1ZXN0SXRlbXMpOgorICAgICAgICBUaGUgaXRlbXNQcm94eSBmb3J3YXJkcyBpdGVtcyBw
b3N0ZWQgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIHRoZSBkaWFsb2csIGFuZCB2aWNlIHZlcnNhCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJ
dGVtU2VsZWN0b3IuaXRlbXNQcm94eS5hZGRJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJdGVtU2VsZWN0b3IuaXRlbXNQcm94
eS5zZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJv
dG90eXBlLl9vbkNyZWF0ZUl0ZW1TZWxlY3Rvci5maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cu
d2lsbEhpZGUpOgorICAgICAgICBUbyBzaWduYWwgdGhlIGV4dGVuc2lvbiB0aGF0IHRoZSBkaWFs
b2cgaXMgY2xvc2luZywgd2Ugc2VuZCBhbiB1bmRlZmluZWQgaXRlbS4gCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJdGVtU2VsZWN0b3Ip
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlbGVjdGlvbkNvbnRlbnRQ
cm92aWRlcik6CisgICAgICAgIFRoaXMgbmV3IGNsYXNzIGhvbGRzIHRoZSBpdGVtcyBzZW50IGZy
b20gdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rp
b25Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLml0ZW1UaXRsZUF0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLml0ZW1T
dWZmaXhBdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVu
dFByb3ZpZGVyLnByb3RvdHlwZS5pdGVtU3VidGl0bGVBdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5pdGVtS2V5QXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlbGVjdGlvbkNvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUuaXRlbXNDb3VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5zZWxlY3RJdGVtKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250ZW50UHJvdmlkZXIucHJvdG90eXBl
LnJld3JpdGVRdWVyeSk6CisKIDIwMTItMDktMDYgIE5pa2hpbCBCaGFyZ2F2YSAgPG5iaGFyZ2F2
YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBleHRyYW5lb3VzIGluY2x1ZGVzIChIVE1M
RWxlbWVudCwgU1ZHRWxlbWVudCwgR2x5cGhCdWZmZXIsIENsaXBib2FyZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKaW5kZXggNGM5
N2Y2ZDJlZGE4NjNmOWM1Zjc2YzQxMmQ3YTE1YWE5NWVmMTcxYi4uODgwNzU0NmQ4OTc1NzVhZmVl
ZTRkYjhjOTZiNzg3MDgxNDE4ODgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKQEAgLTYwLDYgKzYwLDcgQEAgZnVuY3Rpb24g
ZGVmaW5lQ29tbW9uRXh0ZW5zaW9uU3ltYm9scyhhcGlQcml2YXRlKQogICAgIGFwaVByaXZhdGUu
RXZlbnRzID0gewogICAgICAgICBBdWRpdFN0YXJ0ZWQ6ICJhdWRpdC1zdGFydGVkLSIsCiAgICAg
ICAgIEJ1dHRvbkNsaWNrZWQ6ICJidXR0b24tY2xpY2tlZC0iLAorICAgICAgICBJdGVtU2VsZWN0
ZWQ6ICJpdGVtLXNlbGVjdGVkLSIsCiAgICAgICAgIENvbnNvbGVNZXNzYWdlQWRkZWQ6ICJjb25z
b2xlLW1lc3NhZ2UtYWRkZWQiLAogICAgICAgICBFbGVtZW50c1BhbmVsT2JqZWN0U2VsZWN0ZWQ6
ICJwYW5lbC1vYmplY3RTZWxlY3RlZC1lbGVtZW50cyIsCiAgICAgICAgIE5ldHdvcmtSZXF1ZXN0
RmluaXNoZWQ6ICJuZXR3b3JrLXJlcXVlc3QtZmluaXNoZWQiLApAQCAtNzksOSArODAsMTEgQEAg
ZnVuY3Rpb24gZGVmaW5lQ29tbW9uRXh0ZW5zaW9uU3ltYm9scyhhcGlQcml2YXRlKQogICAgICAg
ICBBZGRBdWRpdFJlc3VsdDogImFkZEF1ZGl0UmVzdWx0IiwKICAgICAgICAgQWRkQ29uc29sZU1l
c3NhZ2U6ICJhZGRDb25zb2xlTWVzc2FnZSIsCiAgICAgICAgIEFkZFJlcXVlc3RIZWFkZXJzOiAi
YWRkUmVxdWVzdEhlYWRlcnMiLAorICAgICAgICBBZGRTZWxlY3Rvckl0ZW1zOiAiYWRkU2VsZWN0
b3JJdGVtcyIsCiAgICAgICAgIENyZWF0ZVBhbmVsOiAiY3JlYXRlUGFuZWwiLAogICAgICAgICBD
cmVhdGVTaWRlYmFyUGFuZTogImNyZWF0ZVNpZGViYXJQYW5lIiwKICAgICAgICAgQ3JlYXRlU3Rh
dHVzQmFyQnV0dG9uOiAiY3JlYXRlU3RhdHVzQmFyQnV0dG9uIiwKKyAgICAgICAgQ3JlYXRlSXRl
bVNlbGVjdG9yOiAiY3JlYXRlSXRlbVNlbGVjdG9yIiwKICAgICAgICAgRXZhbHVhdGVPbkluc3Bl
Y3RlZFBhZ2U6ICJldmFsdWF0ZU9uSW5zcGVjdGVkUGFnZSIsCiAgICAgICAgIEdldENvbnNvbGVN
ZXNzYWdlczogImdldENvbnNvbGVNZXNzYWdlcyIsCiAgICAgICAgIEdldEhBUjogImdldEhBUiIs
CkBAIC0zOTUsNiArMzk4LDI3IEBAIGZ1bmN0aW9uIEVsZW1lbnRzUGFuZWwoKQogCiAvKioKICAq
IEBjb25zdHJ1Y3RvcgorICovCitmdW5jdGlvbiBJdGVtU2VsZWN0b3JJbXBsKGlkKSAKK3sKKyAg
ICB0aGlzLl9pZCA9IGlkOworICAgIHRoaXMub25TZWxlY3RlZEl0ZW0gPSBuZXcgRXZlbnRTaW5r
KGV2ZW50cy5JdGVtU2VsZWN0ZWQgKyBpZCk7Cit9CisKK0l0ZW1TZWxlY3RvckltcGwucHJvdG90
eXBlID0geworICAgIGFkZEl0ZW1zOiBmdW5jdGlvbihpdGVtcykgeworICAgICAgICB2YXIgcmVx
dWVzdCA9IHsKKyAgICAgICAgICAgIGNvbW1hbmQ6IGNvbW1hbmRzLkFkZFNlbGVjdG9ySXRlbXMs
CisgICAgICAgICAgICBpdGVtU2VsZWN0b3JJZDogdGhpcy5faWQsCisgICAgICAgICAgICBpdGVt
czogaXRlbXMKKyAgICAgICAgfTsKKyAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0
KHJlcXVlc3QpOworICAgICAgICAvLyBubyByZXR1cm4KKyAgICB9Cit9CisKKy8qKgorICogQGNv
bnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7RXh0ZW5zaW9uVmlld0ltcGx9CiAgKi8KIGZ1bmN0aW9u
IEV4dGVuc2lvblBhbmVsSW1wbChpZCkKQEAgLTQwNCw2ICs0MjgsMTkgQEAgZnVuY3Rpb24gRXh0
ZW5zaW9uUGFuZWxJbXBsKGlkKQogfQogCiBFeHRlbnNpb25QYW5lbEltcGwucHJvdG90eXBlID0g
eworICAgIGNyZWF0ZUl0ZW1TZWxlY3RvcjogZnVuY3Rpb24odGl0bGUpIAorICAgIHsKKyAgICAg
ICAgdmFyIGlkID0gIml0ZW1TZWxlY3Rvci0iICsgZXh0ZW5zaW9uU2VydmVyLm5leHRPYmplY3RJ
ZCgpOworICAgICAgICB2YXIgcmVxdWVzdCA9IHsKKyAgICAgICAgICAgIGNvbW1hbmQ6IGNvbW1h
bmRzLkNyZWF0ZUl0ZW1TZWxlY3RvciwKKyAgICAgICAgICAgIHBhbmVsOiB0aGlzLl9pZCwKKyAg
ICAgICAgICAgIGlkOiBpZCwKKyAgICAgICAgICAgIHRpdGxlOiB0aXRsZQorICAgICAgICB9Owor
ICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIHJl
dHVybiBuZXcgSXRlbVNlbGVjdG9ySW1wbChpZCk7CisgICAgfSwKKwogICAgIGNyZWF0ZVN0YXR1
c0JhckJ1dHRvbjogZnVuY3Rpb24oaWNvblBhdGgsIHRvb2x0aXBUZXh0LCBkaXNhYmxlZCkKICAg
ICB7CiAgICAgICAgIHZhciBpZCA9ICJidXR0b24tIiArIGV4dGVuc2lvblNlcnZlci5uZXh0T2Jq
ZWN0SWQoKTsKQEAgLTQyOSw3ICs0NjYsNyBAQCBFeHRlbnNpb25QYW5lbEltcGwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgaWQ6IHRoaXMuX2lkCiAgICAgICAgIH07CiAgICAgICAgIGV4dGVu
c2lvblNlcnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0KTsKLSAgICB9CisgICAgfSwKIH07CiAKIEV4
dGVuc2lvblBhbmVsSW1wbC5wcm90b3R5cGUuX19wcm90b19fID0gRXh0ZW5zaW9uVmlld0ltcGwu
cHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBlYzM4MTFiNjkxMjljODI2Yjg3YTYyNGRlZjczM2Nk
MjcwYmNhYjg3Li4yZTk2YmZjYjg5M2UxMmIwYWE4YTBiNmM3NTE1NmJkYTRlNzAyNTNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcwpAQCAtMjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCitpbXBvcnRT
Y3JpcHQoIkRpYWxvZy5qcyIpOworaW1wb3J0U2NyaXB0KCJGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cuanMiKTsKKwogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwpAQCAtNTAsOSArNTMsMTEg
QEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9y
ZWdpc3RlckhhbmRsZXIoY29tbWFuZHMuQWRkQXVkaXRSZXN1bHQsIHRoaXMuX29uQWRkQXVkaXRS
ZXN1bHQuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkFk
ZENvbnNvbGVNZXNzYWdlLCB0aGlzLl9vbkFkZENvbnNvbGVNZXNzYWdlLmJpbmQodGhpcykpOwog
ICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcihjb21tYW5kcy5BZGRSZXF1ZXN0SGVhZGVycywgdGhp
cy5fb25BZGRSZXF1ZXN0SGVhZGVycy5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9yZWdpc3Rlckhh
bmRsZXIoY29tbWFuZHMuQWRkU2VsZWN0b3JJdGVtcywgdGhpcy5fb25BZGRTZWxlY3Rvckl0ZW1z
LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcihjb21tYW5kcy5DcmVhdGVQ
YW5lbCwgdGhpcy5fb25DcmVhdGVQYW5lbC5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3Rl
ckhhbmRsZXIoY29tbWFuZHMuQ3JlYXRlU2lkZWJhclBhbmUsIHRoaXMuX29uQ3JlYXRlU2lkZWJh
clBhbmUuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkNy
ZWF0ZVN0YXR1c0JhckJ1dHRvbiwgdGhpcy5fb25DcmVhdGVTdGF0dXNCYXJCdXR0b24uYmluZCh0
aGlzKSk7CisgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkNyZWF0ZUl0ZW1TZWxl
Y3RvciwgdGhpcy5fb25DcmVhdGVJdGVtU2VsZWN0b3IuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlLCB0aGlzLl9v
bkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcihjb21tYW5kcy5HZXRIQVIsIHRoaXMuX29uR2V0SEFSLmJpbmQodGhpcykpOwogICAg
IHRoaXMuX3JlZ2lzdGVySGFuZGxlcihjb21tYW5kcy5HZXRDb25zb2xlTWVzc2FnZXMsIHRoaXMu
X29uR2V0Q29uc29sZU1lc3NhZ2VzLmJpbmQodGhpcykpOwpAQCAtMTAxLDYgKzEwNiwxMSBAQCBX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
cG9zdE5vdGlmaWNhdGlvbihXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLkV2ZW50cy5CdXR0b25D
bGlja2VkICsgaWRlbnRpZmllcik7CiAgICAgfSwKIAorICAgIG5vdGlmeUl0ZW1TZWxlY3RlZDog
ZnVuY3Rpb24oaWRlbnRpZmllciwgaXRlbSwgcHJvbXB0VmFsdWUpIAorICAgIHsKKyAgICAgICAg
dGhpcy5fcG9zdE5vdGlmaWNhdGlvbihXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLkV2ZW50cy5J
dGVtU2VsZWN0ZWQgKyBpZGVudGlmaWVyLCBpdGVtLCBwcm9tcHRWYWx1ZSk7CisgICAgfSwKKwog
ICAgIF9pbnNwZWN0ZWRVUkxDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAg
IHRoaXMuX3JlcXVlc3RzID0ge307CkBAIC0xODgsNiArMTk4LDI1IEBAIFdlYkluc3BlY3Rvci5F
eHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBOZXR3b3JrQWdlbnQuc2V0RXh0
cmFIVFRQSGVhZGVycyhhbGxIZWFkZXJzKTsKICAgICB9LAogCisgICAgX29uQWRkU2VsZWN0b3JJ
dGVtczogZnVuY3Rpb24obWVzc2FnZSkgCisgICAgeworICAgICAgICB2YXIgaWQgPSBtZXNzYWdl
Lml0ZW1TZWxlY3RvcklkOworICAgICAgICBpZiAodHlwZW9mIGlkICE9PSAic3RyaW5nIikKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9CQURBUkdUWVBFKCJpdGVtU2VsZWN0b3JJ
ZCIsIHR5cGVvZiBpZCwgInN0cmluZyIpOworCisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLkRp
YWxvZy5jdXJyZW50SW5zdGFuY2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBmYWlsIHNp
bGVudGx5LCB0aGUgZGlhbG9nIGNvdWxkIGV4aXQgYXN5bmNocm9ub3VzbHkKKyAgICAgICAgfQor
ICAgICAgICB2YXIgaXRlbXNQcm94eSA9IHRoaXMuX2NsaWVudE9iamVjdHNbaWRdOworICAgICAg
ICBpZiAoIWl0ZW1zUHJveHkpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9O
T1RGT1VORChtZXNzYWdlLml0ZW1TZWxlY3RvcklkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHZhciBpdGVtcyA9IG1lc3NhZ2UuaXRlbXM7IAorICAgICAgICAgICAgaXRlbXNQcm94
eS5hZGRJdGVtcyhpdGVtcyk7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLk9LKCk7
CisgICAgICAgIH0KKyAgICB9LAorCiAgICAgX29uQ3JlYXRlUGFuZWw6IGZ1bmN0aW9uKG1lc3Nh
Z2UsIHBvcnQpCiAgICAgewogICAgICAgICB2YXIgaWQgPSBtZXNzYWdlLmlkOwpAQCAtMjEwLDYg
KzIzOSw1MyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbChtZXNzYWdlLmlkKTsKICAgICB9LAogCisgICAg
X29uQ3JlYXRlSXRlbVNlbGVjdG9yOiBmdW5jdGlvbihtZXNzYWdlLCBwb3J0KQorICAgIHsKKyAg
ICAgICAgdmFyIHBhbmVsID0gdGhpcy5fY2xpZW50T2JqZWN0c1ttZXNzYWdlLnBhbmVsXTsKKyAg
ICAgICAgaWYgKCFwYW5lbCB8fCAhKHBhbmVsIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkV4dGVu
c2lvblBhbmVsKSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RGT1VORCht
ZXNzYWdlLnBhbmVsKTsKKyAgICAgICAgICAgIAorICAgICAgICB2YXIgaWQgPSBtZXNzYWdlLmlk
OworCisgICAgICAgIGlmIChpZCBpbiB0aGlzLl9jbGllbnRPYmplY3RzIHx8IGlkIGluIFdlYklu
c3BlY3Rvci5wYW5lbHMpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfRVhJU1RT
KGlkKTsKKworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkRpYWxvZy5jdXJyZW50SW5zdGFuY2Uo
KSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkRpYWxvZy5oaWRlKCk7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgZXh0ZW5zaW9uU2VydmVyID0gdGhpczsKKyAgICAgICAgdmFyIGl0ZW1z
UHJveHkgPSB7CisgICAgICAgICAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjazsK
KyAgICAgICAgICAgICAgICBpZiAodGhpcy5faXRlbXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5hZGRJdGVtcyh0aGlzLl9pdGVtcyk7CisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9pdGVtczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgYWRkSXRlbXM6IGZ1bmN0aW9uKGl0ZW1zKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGlmICh0aGlzLmNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGxiYWNr
KGl0ZW1zKTsKKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9pdGVtcyA9ICh0aGlzLl9pdGVtcyB8fCBbXSksIHRoaXMuX2l0ZW1zLmNvbmNhdChpdGVtcyk7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VsZWN0SXRlbTogZnVuY3Rpb24oaXRlbSwg
cHJvbXB0VmFsdWUpIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGV4dGVuc2lvblNl
cnZlci5ub3RpZnlJdGVtU2VsZWN0ZWQoaWQsIGl0ZW0sIHByb21wdFZhbHVlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgdGhpcy5fY2xpZW50T2JqZWN0c1tpZF0gPSBpdGVt
c1Byb3h5OworICAgICAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlbGVjdGlvbkNvbnRlbnRQcm92aWRlcihwYW5lbCwgaXRlbXNQcm94eSk7CisgICAgICAgIHZh
ciBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZyhkZWxlZ2F0ZSk7CisgICAgICAgIGZpbHRlcmVkSXRlbVNlbGVj
dGlvbkRpYWxvZy53aWxsSGlkZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZXh0ZW5zaW9u
U2VydmVyLm5vdGlmeUl0ZW1TZWxlY3RlZChpZCk7CisgICAgICAgIH0KKyAgICAgICAgV2ViSW5z
cGVjdG9yLkRpYWxvZy5zaG93KHBhbmVsLmVsZW1lbnQsIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRp
YWxvZyk7CisgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuT0soKTsKKyAgICB9LAorCiAgICAg
X29uQ3JlYXRlU3RhdHVzQmFyQnV0dG9uOiBmdW5jdGlvbihtZXNzYWdlLCBwb3J0KQogICAgIHsK
ICAgICAgICAgdmFyIHBhbmVsID0gdGhpcy5fY2xpZW50T2JqZWN0c1ttZXNzYWdlLnBhbmVsXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKaW5kZXggZTA4NmRhZGFmZGZlODM3MDU4
NTIwZjY4ODk3MzVjNDI1MGJlZGZmMC4uMWNmZDU3YTIxODk0NmEwODg3NjlhMzM5NWE4ZWM4Y2Fi
YjljYTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKQEAgLTczMSwzICs3
MzEsMTA2IEBAIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuc2hvdyA9IGZ1bmN0aW9u
KHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlciwgcmVsCiAgICAgdmFyIGZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nKG5ldyBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nKHBhbmVsLCB1aVNvdXJjZUNv
ZGVQcm92aWRlcikpOwogICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyhyZWxhdGl2ZVRvRWxl
bWVudCwgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKTsKIH0KKworCisvKioKKyAqIEBjb25z
dHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250
ZW50UHJvdmlkZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5QYW5lbH0gcGFuZWwKKyAqIEBw
YXJhbSB7T2JqZWN0fSBpdGVtc1Byb3ZpZGVyCisgKi8KKworV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlbGVjdGlvbkNvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHBhbmVsLCBpdGVtc1Byb3ZpZGVy
KSAKK3sKKyAgICBXZWJJbnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLmNh
bGwodGhpcyk7CisgICAgdGhpcy5fcGFuZWwgPSBwYW5lbDsKKyAgICB0aGlzLl9pdGVtc1Byb3Zp
ZGVyID0gaXRlbXNQcm92aWRlcjsKKyAgICB0aGlzLl9pdGVtcyA9IFtdOworfQorCitXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUluZGV4CisgICAgICogQHJldHVybiB7
c3RyaW5nfQorICAgICAqLworICAgIGl0ZW1UaXRsZUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNbaXRlbUluZGV4XS50aXRsZTsKKyAgICB9
LAorICAgIAorICAgIC8qCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRleAorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVtU3VmZml4QXQ6IGZ1bmN0aW9uKGl0
ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1tpdGVtSW5kZXhdLnN1
ZmZpeDsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUluZGV4
CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIGl0ZW1TdWJ0aXRsZUF0OiBm
dW5jdGlvbihpdGVtSW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNbaXRl
bUluZGV4XS5zdWJ0aXRsZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1i
ZXJ9IGl0ZW1JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpdGVt
S2V5QXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9p
dGVtc1tpdGVtSW5kZXhdLmtleTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7
bnVtYmVyfQorICAgICAqLworICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyKX0gY2FsbGJh
Y2sKKyAgICAgKi8KKyAgICByZXF1ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsK
KyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IGl0ZW1zCisg
ICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjaHVua0luZGV4X29wdAorICAgICAgICAgKiBAcGFy
YW0ge251bWJlcn0gdG90YWxDaHVua3Nfb3B0CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlv
biBpdGVtc0NhbGxiYWNrKGl0ZW1zLCBjaHVua0luZGV4X29wdCwgdG90YWxDaHVua3Nfb3B0KQor
ICAgICAgICB7CisgICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9pdGVtcy5sZW5ndGg7Cisg
ICAgICAgICAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9pdGVtcy5wdXNoKGl0ZW0pOworICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKGluZGV4LCBpdGVtcy5sZW5ndGgsIGNodW5rSW5kZXhfb3B0LCB0
b3RhbENodW5rc19vcHQpCisgICAgICAgIH0KKyAgICAgICAgdGhpcy5faXRlbXNQcm92aWRlci5y
ZXF1ZXN0SXRlbXMoaXRlbXNDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1JbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBwcm9tcHRWYWx1ZQorICAgICAqLworICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRl
eCwgcHJvbXB0VmFsdWUpCisgICAgeworICAgICAgICB0aGlzLl9pdGVtc1Byb3ZpZGVyLnNlbGVj
dEl0ZW0odGhpcy5faXRlbXNbaXRlbUluZGV4XSwgcHJvbXB0VmFsdWUpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHtzdHJp
bmd9CisgICAgICovCisgICAgcmV3cml0ZVF1ZXJ5OiBmdW5jdGlvbihxdWVyeSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBxdWVyeTsKKyAgICB9Cit9OworCitXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTdiZDBmMDlmYzYyZTRlM2UwYzQ1MWIxNDZlYWIzMDhj
OGZiMzc5NC4uMjMzOTY3YjRkMDNlNDhhZjgwYWUzZTE3MWJjZjA4YzI3MWEzZDkxOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTA2ICBKb2huIEouIEJhcnRvbiAgPGpvaG5qYmFydG9u
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyBleHRlbnNpb25z
IHRvIG9wZW4gRmlsdGVyZWRJdGVtU2VsZWN0b3JEaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNhc2UgZXh0ZW5zaW9uX3Rlc3RJdGVtU2Vs
ZWN0b3IgdG8gdGVzdCBwYW5lbC5jcmVhdGVJdGVtU2VsZWN0b3IoKQorCisgICAgICAgICogaW5z
cGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sOgorCiAyMDEyLTA5
LTA2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTI3NzEyKTogSXQgYnJva2UgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRo
Lmh0bWwgb24gSlNDIHBsYXRmb3JtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLWV4cGVjdGVkLnR4dAppbmRleCBj
MGVmNjVkYjFjNGY3NDFlZmExYWUwNWJmYjJhMzA3MDFlYzZlNTRjLi4wNDc0ZTY1OWM5ZDI4ZGI4
ZTQwNGJjYWUyMTljZjFkZTk2YjcxZWMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLWV4cGVjdGVkLnR4dApA
QCAtNiw2ICs2LDcgQEAgUnVubmluZyB0ZXN0cy4uLgogUlVOTklORyBURVNUOiBleHRlbnNpb25f
dGVzdENyZWF0ZVBhbmVsCiBQYW5lbCBjcmVhdGVkCiB7CisgICAgY3JlYXRlSXRlbVNlbGVjdG9y
IDogPGZ1bmN0aW9uPgogICAgIGNyZWF0ZVN0YXR1c0JhckJ1dHRvbiA6IDxmdW5jdGlvbj4KICAg
ICBvbkhpZGRlbiA6IHsKICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CkBAIC0yMyw2
ICsyNCwxMiBAQCBQYW5lbCBjcmVhdGVkCiB9CiBQYW5lbCBzaG93bgogRXh0ZW5zaW9uIHBhbmVs
IHNpemUgY29ycmVjdAorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEl0ZW1TZWxlY3Rvcgor
SXRlbVNlbGVjdG9yIGhhcyAgMiBpdGVtcworc2VsZWN0ZWQgeyJrZXkiOiJrZXkyIiwidGl0bGUi
OiJ0aXRsZTIiLCJzdWZmaXgiOiIoMikiLCJzdWJ0aXRsZSI6InN1YnRpdGxlMiJ9Citwcm9tcHQg
dGkKK3NlbGVjdGVkIHVuZGVmaW5lZAorcHJvbXB0IHVuZGVmaW5lZAogUlVOTklORyBURVNUOiBl
eHRlbnNpb25fdGVzdFNlYXJjaAogUGFuZWwgaGlkZGVuCiBQYW5lbCBzZWFyY2hlZDoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFuZWwu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFuZWwu
aHRtbAppbmRleCBiMjI0MGRjOGY3YjBlNmQ2YTI1MGY2ZjExMmIzZDliODQ4MDVlYWNhLi45NDMy
MTRkNjI4ZjA1NzVhZDBkYTQyYzI2MTNlNTE3ZTU3YTM4ZmNkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sCkBAIC01
MSw2ICs1MSwyMSBAQCBmdW5jdGlvbiBpbml0aWFsaXplX2V4dGVuc2lvbnNQYW5lbFRlc3QoKQog
ICAgICAgICBjbGljay5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVlKTsKICAgICAg
ICAgeHBhdGhSZXN1bHQuc2luZ2xlTm9kZVZhbHVlLmRpc3BhdGNoRXZlbnQoY2xpY2spOwogICAg
IH0KKworICAgIEluc3BlY3RvclRlc3Quc2VsZWN0SXRlbSA9IGZ1bmN0aW9uKCkgCisgICAgewor
ICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5EaWFsb2cuY3VycmVudEluc3RhbmNlKCkpIHsKKyAg
ICAgICAgICAgIG91dHB1dCgiTm8gRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSIpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBXZWJJbnNwZWN0b3IuRGlhbG9nLmN1
cnJlbnRJbnN0YW5jZSgpLl9kZWxlZ2F0ZS5lbGVtZW50OworICAgICAgICAgICAgZWxlbWVudC5x
dWVyeVNlbGVjdG9yKCJpbnB1dCIpLnZhbHVlID0gInRpIjsKKyAgICAgICAgICAgIHZhciBpdGVt
cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLml0ZW0iKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJJdGVtU2VsZWN0b3IgaGFzICAiICsgaXRlbXMubGVuZ3RoICsg
IiBpdGVtcyIpOworICAgICAgICAgICAgdmFyIGNsaWNrID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQo
Ik1vdXNlRXZlbnQiKTsKKyAgICAgICAgICAgIGNsaWNrLmluaXRNb3VzZUV2ZW50KCJjbGljayIs
IHRydWUsIHRydWUpOworICAgICAgICAgICAgaXRlbXNbMV0uZGlzcGF0Y2hFdmVudChjbGljayk7
CisgICAgICAgIH0KKyAgICB9CiB9CiAKIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0Q3JlYXRlUGFu
ZWwobmV4dFRlc3QpCkBAIC0xNTgsNiArMTczLDMyIEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0
U3RhdHVzQmFyQnV0dG9ucyhuZXh0VGVzdCkKICAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmNyZWF0
ZSgiQnV0dG9ucyBQYW5lbCIsIGJhc2VQYXRoICsgImV4dGVuc2lvbi1wYW5lbC5wbmciLCBiYXNl
UGF0aCArICJub24tZXhpc3RlbnQuaHRtbCIsIG9uUGFuZWxDcmVhdGVkKTsKIH0KIAorZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RJdGVtU2VsZWN0b3IobmV4dFRlc3QpCit7CisgICAgY29uc29sZS5s
b2coImJlZ2luIHRlc3RJdGVtU2VsZWN0b3IiKTsKKyAgICBmdW5jdGlvbiBvblBhbmVsQ3JlYXRl
ZChwYW5lbCkgCisgICAgeworICAgICAgICB2YXIgaXRlbVNlbGVjdG9yID0gcGFuZWwuY3JlYXRl
SXRlbVNlbGVjdG9yKCJUZXN0SXRlbVNlbGVjdG9yIik7CisgICAgICAgIGZ1bmN0aW9uIG9uU2Vs
ZWN0ZWRGaWxlKGl0ZW0sIHByb21wdFZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBvdXRw
dXQoInNlbGVjdGVkICIgKyBKU09OLnN0cmluZ2lmeShpdGVtKSk7CisgICAgICAgICAgICBvdXRw
dXQoInByb21wdCAiICsgcHJvbXB0VmFsdWUpOworICAgICAgICAgICAgaWYgKCFpdGVtKSAgLy8g
c2lnbmFsIHRoYXQgdGhlIGRpYWxvZyBjbG9zZWQKKyAgICAgICAgICAgICAgICBuZXh0VGVzdCgp
OworICAgICAgICB9CisgICAgICAgIGl0ZW1TZWxlY3Rvci5vblNlbGVjdGVkSXRlbS5hZGRMaXN0
ZW5lcihvblNlbGVjdGVkRmlsZSk7CisgICAgICAgIHZhciB0ZXN0SXRlbXMgPSBbCisgICAgICAg
ICAgICB7a2V5OiAna2V5MScsIHRpdGxlOiAndGl0bGUxJywgc3VmZml4OiAnKDEpJywgc3VidGl0
bGU6ICdzdWJ0aXRsZTEnfSwKKyAgICAgICAgICAgIHtrZXk6ICdrZXkyJywgdGl0bGU6ICd0aXRs
ZTInLCBzdWZmaXg6ICcoMiknLCBzdWJ0aXRsZTogJ3N1YnRpdGxlMid9LAorICAgICAgICBdOwor
ICAgICAgICBpdGVtU2VsZWN0b3IuYWRkSXRlbXModGVzdEl0ZW1zKTsKKworICAgICAgICBldmFs
dWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3Quc2VsZWN0SXRlbSgpOyIpOworICAgIH0KKwor
ICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW14vXSokLywg
Ii8iKTsKKyAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmNyZWF0ZSgiVGVzdCBQYW5lbCIsIGJhc2VQ
YXRoICsgImV4dGVuc2lvbi1wYW5lbC5wbmciLCBiYXNlUGF0aCArICJub24tZXhpc3RlbnQuaHRt
bCIsIG9uUGFuZWxDcmVhdGVkKTsKK30KIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163388</attachid>
            <date>2012-09-11 09:53:51 -0700</date>
            <delta_ts>2012-09-21 03:10:11 -0700</delta_ts>
            <desc>rebase and fix formatting</desc>
            <filename>bug-96040-20120911095326.patch</filename>
            <type>text/plain</type>
            <size>18055</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE4MDM1ZmVmZDk2MWVi
NzRmOWE5ZDVlZjVlYTFlM2E3YzJkYzcyNy4uYzNlM2ZhZDYxMmJhNDM1YTQ2YjY3M2U2OWE1M2Ni
ZWQyYjQzNWZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA5LTA2ICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBbGxvdyBleHRlbnNpb25zIHRvIG9wZW4gRmlsdGVyZWRJdGVtU2VsZWN0b3JEaWFs
b2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5k
IHRoZSBFeHRlbnNpb25QYW5lbCB0byBhZGQgY3JlYXRlSXRlbVNlbGVjdG9yLgorICAgICAgICAK
KyAgICAgICAgVGVzdCBhZGRlZCB0byBleHRlbnNpb25zLXBhbmVsLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzOgorICAgICAgICAoZGVmaW5lQ29t
bW9uRXh0ZW5zaW9uU3ltYm9scyk6CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5JdGVt
U2VsZWN0b3JJbXBsKToKKyAgICAgICAgKGluamVjdGVkRXh0ZW5zaW9uQVBJLkl0ZW1TZWxlY3Rv
ckltcGwucHJvdG90eXBlLmFkZEl0ZW1zKToKKyAgICAgICAgICAgQVBJIGZvciB0aGUgZXh0ZW5z
aW9uIHRvIHBvc3QgaXRlbXMgdG8gdGhlIGRpYWxvZworICAgICAgICAoaW5qZWN0ZWRFeHRlbnNp
b25BUEkuRXh0ZW5zaW9uUGFuZWxJbXBsLnByb3RvdHlwZS5jcmVhdGVJdGVtU2VsZWN0b3IpOgor
ICAgICAgICAgICBBUEkgcGFuZWwuY3JlYXRlSXRlbVNlbGVjdG9yKCkgaXMgaG93IGV4dGVuc2lv
bnMgb3BlbiB0aGUgZGlhbG9nCisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5FeHRlbnNp
b25QYW5lbEltcGwucHJvdG90eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5u
b3RpZnlJdGVtU2VsZWN0ZWQpOgorICAgICAgICAgICBXaGVuIHRoZSB1c2VyIHNlbGVjdHMsIHdl
IHBvc3QgdG8gdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlLl9vbkFkZFNlbGVjdG9ySXRlbXMpOgorICAgICAgICAgICBUaGUgZXh0
ZW5zaW9uIGNhbiBwb3N0IGl0ZW1zIChvYmplY3RzIHdpdGggZmllbGRzIHRpdGxlLCBzdWJ0aXRs
ZSwga2V0LCBzdWZmaXgpLgorICAgICAgICAgICBUaGUgZXh0ZW5zaW9uIGNhbiBwb3N0IG11bHRp
cGxlIHRpbWVzLCBhbnkgdGltZSBhZnRlciB0aGUgZGlhbG9nIGlzIGNyZWF0ZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJdGVtU2Vs
ZWN0b3IuaXRlbXNQcm94eS5yZXF1ZXN0SXRlbXMpOgorICAgICAgICBUaGUgaXRlbXNQcm94eSBm
b3J3YXJkcyBpdGVtcyBwb3N0ZWQgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIHRoZSBkaWFsb2csIGFu
ZCB2aWNlIHZlcnNhCisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3Rv
dHlwZS5fb25DcmVhdGVJdGVtU2VsZWN0b3IuaXRlbXNQcm94eS5hZGRJdGVtcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25DcmVhdGVJdGVtU2Vs
ZWN0b3IuaXRlbXNQcm94eS5zZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRl
bnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkNyZWF0ZUl0ZW1TZWxlY3Rvci5maWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cud2lsbEhpZGUpOgorICAgICAgICAgICBUbyBzaWduYWwgdGhlIGV4dGVu
c2lvbiB0aGF0IHRoZSBkaWFsb2cgaXMgY2xvc2luZywgd2Ugc2VuZCBhbiB1bmRlZmluZWQgaXRl
bS4gCisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25D
cmVhdGVJdGVtU2VsZWN0b3IpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlbGVjdGlvbkNvbnRlbnRQcm92aWRlcik6CisgICAgICAgICAgIFRoaXMgbmV3IGNsYXNzIGhv
bGRzIHRoZSBpdGVtcyBzZW50IGZyb20gdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLml0ZW1UaXRs
ZUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250ZW50UHJv
dmlkZXIucHJvdG90eXBlLml0ZW1TdWZmaXhBdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5pdGVtU3VidGl0bGVBdCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZS5pdGVtS2V5QXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
bGVjdGlvbkNvbnRlbnRQcm92aWRlci5wcm90b3R5cGUuaXRlbXNDb3VudCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5z
ZWxlY3RJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250
ZW50UHJvdmlkZXIucHJvdG90eXBlLnJld3JpdGVRdWVyeSk6CisKIDIwMTItMDktMTEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMjgxNzUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCmluZGV4IDRjOTdmNmQyZWRhODYzZjljNWY3NmM0
MTJkN2ExNWFhOTVlZjE3MWIuLmE4YjcxNDg3NGQ0NzlkNDI0NjRmYjhmYTc3ZDUyMzk5Njk0ZGI0
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uQVBJLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uQVBJLmpzCkBAIC02MCw2ICs2MCw3IEBAIGZ1bmN0aW9uIGRlZmluZUNvbW1vbkV4dGVuc2lv
blN5bWJvbHMoYXBpUHJpdmF0ZSkKICAgICBhcGlQcml2YXRlLkV2ZW50cyA9IHsKICAgICAgICAg
QXVkaXRTdGFydGVkOiAiYXVkaXQtc3RhcnRlZC0iLAogICAgICAgICBCdXR0b25DbGlja2VkOiAi
YnV0dG9uLWNsaWNrZWQtIiwKKyAgICAgICAgSXRlbVNlbGVjdGVkOiAiaXRlbS1zZWxlY3RlZC0i
LAogICAgICAgICBDb25zb2xlTWVzc2FnZUFkZGVkOiAiY29uc29sZS1tZXNzYWdlLWFkZGVkIiwK
ICAgICAgICAgRWxlbWVudHNQYW5lbE9iamVjdFNlbGVjdGVkOiAicGFuZWwtb2JqZWN0U2VsZWN0
ZWQtZWxlbWVudHMiLAogICAgICAgICBOZXR3b3JrUmVxdWVzdEZpbmlzaGVkOiAibmV0d29yay1y
ZXF1ZXN0LWZpbmlzaGVkIiwKQEAgLTc5LDkgKzgwLDExIEBAIGZ1bmN0aW9uIGRlZmluZUNvbW1v
bkV4dGVuc2lvblN5bWJvbHMoYXBpUHJpdmF0ZSkKICAgICAgICAgQWRkQXVkaXRSZXN1bHQ6ICJh
ZGRBdWRpdFJlc3VsdCIsCiAgICAgICAgIEFkZENvbnNvbGVNZXNzYWdlOiAiYWRkQ29uc29sZU1l
c3NhZ2UiLAogICAgICAgICBBZGRSZXF1ZXN0SGVhZGVyczogImFkZFJlcXVlc3RIZWFkZXJzIiwK
KyAgICAgICAgQWRkU2VsZWN0b3JJdGVtczogImFkZFNlbGVjdG9ySXRlbXMiLAogICAgICAgICBD
cmVhdGVQYW5lbDogImNyZWF0ZVBhbmVsIiwKICAgICAgICAgQ3JlYXRlU2lkZWJhclBhbmU6ICJj
cmVhdGVTaWRlYmFyUGFuZSIsCiAgICAgICAgIENyZWF0ZVN0YXR1c0JhckJ1dHRvbjogImNyZWF0
ZVN0YXR1c0JhckJ1dHRvbiIsCisgICAgICAgIENyZWF0ZUl0ZW1TZWxlY3RvcjogImNyZWF0ZUl0
ZW1TZWxlY3RvciIsCiAgICAgICAgIEV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlOiAiZXZhbHVhdGVP
bkluc3BlY3RlZFBhZ2UiLAogICAgICAgICBHZXRDb25zb2xlTWVzc2FnZXM6ICJnZXRDb25zb2xl
TWVzc2FnZXMiLAogICAgICAgICBHZXRIQVI6ICJnZXRIQVIiLApAQCAtMzk1LDYgKzM5OCwyOCBA
QCBmdW5jdGlvbiBFbGVtZW50c1BhbmVsKCkKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqLwor
ZnVuY3Rpb24gSXRlbVNlbGVjdG9ySW1wbChpZCkgCit7CisgICAgdGhpcy5faWQgPSBpZDsKKyAg
ICB0aGlzLm9uU2VsZWN0ZWRJdGVtID0gbmV3IEV2ZW50U2luayhldmVudHMuSXRlbVNlbGVjdGVk
ICsgaWQpOworfQorCitJdGVtU2VsZWN0b3JJbXBsLnByb3RvdHlwZSA9Cit7CisgICAgYWRkSXRl
bXM6IGZ1bmN0aW9uKGl0ZW1zKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSB7CisgICAg
ICAgICAgICBjb21tYW5kOiBjb21tYW5kcy5BZGRTZWxlY3Rvckl0ZW1zLAorICAgICAgICAgICAg
aXRlbVNlbGVjdG9ySWQ6IHRoaXMuX2lkLAorICAgICAgICAgICAgaXRlbXM6IGl0ZW1zCisgICAg
ICAgIH07CisgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0KTsKKyAg
ICB9Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7RXh0ZW5zaW9uVmll
d0ltcGx9CiAgKi8KIGZ1bmN0aW9uIEV4dGVuc2lvblBhbmVsSW1wbChpZCkKQEAgLTQwNCw2ICs0
MjksMTkgQEAgZnVuY3Rpb24gRXh0ZW5zaW9uUGFuZWxJbXBsKGlkKQogfQogCiBFeHRlbnNpb25Q
YW5lbEltcGwucHJvdG90eXBlID0geworICAgIGNyZWF0ZUl0ZW1TZWxlY3RvcjogZnVuY3Rpb24o
dGl0bGUpIAorICAgIHsKKyAgICAgICAgdmFyIGlkID0gIml0ZW1TZWxlY3Rvci0iICsgZXh0ZW5z
aW9uU2VydmVyLm5leHRPYmplY3RJZCgpOworICAgICAgICB2YXIgcmVxdWVzdCA9IHsKKyAgICAg
ICAgICAgIGNvbW1hbmQ6IGNvbW1hbmRzLkNyZWF0ZUl0ZW1TZWxlY3RvciwKKyAgICAgICAgICAg
IHBhbmVsOiB0aGlzLl9pZCwKKyAgICAgICAgICAgIGlkOiBpZCwKKyAgICAgICAgICAgIHRpdGxl
OiB0aXRsZQorICAgICAgICB9OworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3Qo
cmVxdWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgSXRlbVNlbGVjdG9ySW1wbChpZCk7CisgICAg
fSwKKwogICAgIGNyZWF0ZVN0YXR1c0JhckJ1dHRvbjogZnVuY3Rpb24oaWNvblBhdGgsIHRvb2x0
aXBUZXh0LCBkaXNhYmxlZCkKICAgICB7CiAgICAgICAgIHZhciBpZCA9ICJidXR0b24tIiArIGV4
dGVuc2lvblNlcnZlci5uZXh0T2JqZWN0SWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggZWMzODExYjY5MTI5
YzgyNmI4N2E2MjRkZWY3MzNjZDI3MGJjYWI4Ny4uNDQ0MjA4ODUxZTRmOWNjMzA5NjhhZDZjMmM0
YmFjMjQ2ZjM0NGE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTI4LDYgKzI4LDkgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAoraW1wb3J0U2NyaXB0KCJEaWFsb2cuanMiKTsKK2ltcG9ydFNjcmlwdCgiRmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIik7CisKIC8qKgogICogQGNvbnN0cnVjdG9yCiAg
Ki8KQEAgLTUwLDkgKzUzLDExIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkFkZEF1ZGl0UmVzdWx0
LCB0aGlzLl9vbkFkZEF1ZGl0UmVzdWx0LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcihjb21tYW5kcy5BZGRDb25zb2xlTWVzc2FnZSwgdGhpcy5fb25BZGRDb25zb2xlTWVz
c2FnZS5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoY29tbWFuZHMuQWRk
UmVxdWVzdEhlYWRlcnMsIHRoaXMuX29uQWRkUmVxdWVzdEhlYWRlcnMuYmluZCh0aGlzKSk7Cisg
ICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkFkZFNlbGVjdG9ySXRlbXMsIHRoaXMu
X29uQWRkU2VsZWN0b3JJdGVtcy5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRs
ZXIoY29tbWFuZHMuQ3JlYXRlUGFuZWwsIHRoaXMuX29uQ3JlYXRlUGFuZWwuYmluZCh0aGlzKSk7
CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKGNvbW1hbmRzLkNyZWF0ZVNpZGViYXJQYW5lLCB0
aGlzLl9vbkNyZWF0ZVNpZGViYXJQYW5lLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVy
SGFuZGxlcihjb21tYW5kcy5DcmVhdGVTdGF0dXNCYXJCdXR0b24sIHRoaXMuX29uQ3JlYXRlU3Rh
dHVzQmFyQnV0dG9uLmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcihjb21t
YW5kcy5DcmVhdGVJdGVtU2VsZWN0b3IsIHRoaXMuX29uQ3JlYXRlSXRlbVNlbGVjdG9yLmJpbmQo
dGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcihjb21tYW5kcy5FdmFsdWF0ZU9uSW5z
cGVjdGVkUGFnZSwgdGhpcy5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFnZS5iaW5kKHRoaXMpKTsK
ICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoY29tbWFuZHMuR2V0SEFSLCB0aGlzLl9vbkdldEhB
Ui5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoY29tbWFuZHMuR2V0Q29u
c29sZU1lc3NhZ2VzLCB0aGlzLl9vbkdldENvbnNvbGVNZXNzYWdlcy5iaW5kKHRoaXMpKTsKQEAg
LTEwMSw2ICsxMDYsMTEgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oV2ViSW5zcGVjdG9yLmV4dGVuc2lv
bkFQSS5FdmVudHMuQnV0dG9uQ2xpY2tlZCArIGlkZW50aWZpZXIpOwogICAgIH0sCiAKKyAgICBu
b3RpZnlJdGVtU2VsZWN0ZWQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIGl0ZW0sIHByb21wdFZhbHVl
KSAKKyAgICB7CisgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oV2ViSW5zcGVjdG9yLmV4
dGVuc2lvbkFQSS5FdmVudHMuSXRlbVNlbGVjdGVkICsgaWRlbnRpZmllciwgaXRlbSwgcHJvbXB0
VmFsdWUpOworICAgIH0sCisKICAgICBfaW5zcGVjdGVkVVJMQ2hhbmdlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICB0aGlzLl9yZXF1ZXN0cyA9IHt9OwpAQCAtMTg4LDYgKzE5OCwy
NCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
TmV0d29ya0FnZW50LnNldEV4dHJhSFRUUEhlYWRlcnMoYWxsSGVhZGVycyk7CiAgICAgfSwKIAor
ICAgIF9vbkFkZFNlbGVjdG9ySXRlbXM6IGZ1bmN0aW9uKG1lc3NhZ2UpIAorICAgIHsKKyAgICAg
ICAgdmFyIGlkID0gbWVzc2FnZS5pdGVtU2VsZWN0b3JJZDsKKyAgICAgICAgaWYgKHR5cGVvZiBp
ZCAhPT0gInN0cmluZyIpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfQkFEQVJH
VFlQRSgiaXRlbVNlbGVjdG9ySWQiLCB0eXBlb2YgaWQsICJzdHJpbmciKTsKKworICAgICAgICBp
ZiAoIVdlYkluc3BlY3Rvci5EaWFsb2cuY3VycmVudEluc3RhbmNlKCkpCisgICAgICAgICAgICBy
ZXR1cm47IC8vIGZhaWwgc2lsZW50bHksIHRoZSBkaWFsb2cgY291bGQgZXhpdCBhc3luY2hyb25v
dXNseQorCisgICAgICAgIHZhciBpdGVtc1Byb3h5ID0gdGhpcy5fY2xpZW50T2JqZWN0c1tpZF07
CisgICAgICAgIGlmICghaXRlbXNQcm94eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0
dXMuRV9OT1RGT1VORChtZXNzYWdlLml0ZW1TZWxlY3RvcklkKTsKKworICAgICAgICB2YXIgaXRl
bXMgPSBtZXNzYWdlLml0ZW1zOyAKKyAgICAgICAgaXRlbXNQcm94eS5hZGRJdGVtcyhpdGVtcyk7
CisgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuT0soKTsKKyAgICB9LAorCiAgICAgX29uQ3Jl
YXRlUGFuZWw6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCiAgICAgewogICAgICAgICB2YXIgaWQg
PSBtZXNzYWdlLmlkOwpAQCAtMjEwLDYgKzIzOCw1MyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbChtZXNz
YWdlLmlkKTsKICAgICB9LAogCisgICAgX29uQ3JlYXRlSXRlbVNlbGVjdG9yOiBmdW5jdGlvbiht
ZXNzYWdlLCBwb3J0KQorICAgIHsKKyAgICAgICAgdmFyIHBhbmVsID0gdGhpcy5fY2xpZW50T2Jq
ZWN0c1ttZXNzYWdlLnBhbmVsXTsKKyAgICAgICAgaWYgKCFwYW5lbCB8fCAhKHBhbmVsIGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsKSkKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9zdGF0dXMuRV9OT1RGT1VORChtZXNzYWdlLnBhbmVsKTsKKyAgICAgICAgICAgIAorICAg
ICAgICB2YXIgaWQgPSBtZXNzYWdlLmlkOworCisgICAgICAgIGlmIChpZCBpbiB0aGlzLl9jbGll
bnRPYmplY3RzIHx8IGlkIGluIFdlYkluc3BlY3Rvci5wYW5lbHMpCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fc3RhdHVzLkVfRVhJU1RTKGlkKTsKKworICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LkRpYWxvZy5jdXJyZW50SW5zdGFuY2UoKSkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5EaWFs
b2cuaGlkZSgpOworCisgICAgICAgIHZhciBleHRlbnNpb25TZXJ2ZXIgPSB0aGlzOworICAgICAg
ICB2YXIgaXRlbXNQcm94eSA9IHsKKyAgICAgICAgICAgIHJlcXVlc3RJdGVtczogZnVuY3Rpb24o
Y2FsbGJhY2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjayA9
IGNhbGxiYWNrOworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pdGVtcykgeworICAgICAgICAg
ICAgICAgICAgICB0aGlzLmFkZEl0ZW1zKHRoaXMuX2l0ZW1zKTsKKyAgICAgICAgICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2l0ZW1zOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBhZGRJdGVtczogZnVuY3Rpb24oaXRlbXMpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIHRo
aXMuY2FsbGJhY2soaXRlbXMpOworICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2l0ZW1zID0gKHRoaXMuX2l0ZW1zIHx8IFtdKSwgdGhpcy5faXRlbXMuY29u
Y2F0KGl0ZW1zKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZWxlY3RJdGVtOiBmdW5j
dGlvbihpdGVtLCBwcm9tcHRWYWx1ZSkgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ZXh0ZW5zaW9uU2VydmVyLm5vdGlmeUl0ZW1TZWxlY3RlZChpZCwgaXRlbSwgcHJvbXB0VmFsdWUp
OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICB0aGlzLl9jbGllbnRPYmplY3Rz
W2lkXSA9IGl0ZW1zUHJveHk7CisgICAgICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyKHBhbmVsLCBpdGVtc1Byb3h5KTsK
KyAgICAgICAgdmFyIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0
b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKGRlbGVnYXRlKTsKKyAgICAgICAgZmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nLndpbGxIaWRlID0gZnVuY3Rpb24oKQorICAgICAgICB7Cisg
ICAgICAgICAgICBleHRlbnNpb25TZXJ2ZXIubm90aWZ5SXRlbVNlbGVjdGVkKGlkKTsKKyAgICAg
ICAgfQorICAgICAgICBXZWJJbnNwZWN0b3IuRGlhbG9nLnNob3cocGFuZWwuZWxlbWVudCwgZmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5P
SygpOworICAgIH0sCisKICAgICBfb25DcmVhdGVTdGF0dXNCYXJCdXR0b246IGZ1bmN0aW9uKG1l
c3NhZ2UsIHBvcnQpCiAgICAgewogICAgICAgICB2YXIgcGFuZWwgPSB0aGlzLl9jbGllbnRPYmpl
Y3RzW21lc3NhZ2UucGFuZWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwppbmRl
eCBlMDg2ZGFkYWZkZmU4MzcwNTg1MjBmNjg4OTczNWM0MjUwYmVkZmYwLi5mMjcwZWJiNjA2M2Qy
NjZkMjQ2OGRjZjBmMTkyNGJhYzNkYWRmZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRp
YWxvZy5qcwpAQCAtNzMxLDMgKzczMSwxMDcgQEAgV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURp
YWxvZy5zaG93ID0gZnVuY3Rpb24ocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyLCByZWwKICAg
ICB2YXIgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0
ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cobmV3IFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFs
b2cocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyKSk7CiAgICAgV2ViSW5zcGVjdG9yLkRpYWxv
Zy5zaG93KHJlbGF0aXZlVG9FbGVtZW50LCBmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cpOwog
fQorCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9y
LlNlbGVjdGlvbkRpYWxvZ0NvbnRlbnRQcm92aWRlcn0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlBhbmVsfSBwYW5lbAorICogQHBhcmFtIHtPYmplY3R9IGl0ZW1zUHJvdmlkZXIKKyAqLworCitX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24o
cGFuZWwsIGl0ZW1zUHJvdmlkZXIpIAoreworICAgIFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFs
b2dDb250ZW50UHJvdmlkZXIuY2FsbCh0aGlzKTsKKyAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOwor
ICAgIHRoaXMuX2l0ZW1zUHJvdmlkZXIgPSBpdGVtc1Byb3ZpZGVyOworICAgIHRoaXMuX2l0ZW1z
ID0gW107Cit9CisKK1dlYkluc3BlY3Rvci5FeHRlbnNpb25TZWxlY3Rpb25Db250ZW50UHJvdmlk
ZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtSW5k
ZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgaXRlbVRpdGxlQXQ6IGZ1
bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1tpdGVt
SW5kZXhdLnRpdGxlOworICAgIH0sCisgICAgCisgICAgLyoKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gaXRlbUluZGV4CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIGl0ZW1T
dWZmaXhBdDogZnVuY3Rpb24oaXRlbUluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2l0ZW1zW2l0ZW1JbmRleF0uc3VmZml4OworICAgIH0sCisKKyAgICAvKgorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBpdGVtSW5kZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisg
ICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGl0ZW1JbmRleCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9pdGVtc1tpdGVtSW5kZXhdLnN1YnRpdGxlOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUluZGV4CisgICAgICogQHJldHVybiB7c3RyaW5n
fQorICAgICAqLworICAgIGl0ZW1LZXlBdDogZnVuY3Rpb24oaXRlbUluZGV4KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2l0ZW1JbmRleF0ua2V5OworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCisgICAgaXRlbXNDb3VudDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmxlbmd0aDsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIG51bWJlciwgbnVt
YmVyLCBudW1iZXIpfSBjYWxsYmFjaworICAgICAqLworICAgIHJlcXVlc3RJdGVtczogZnVuY3Rp
b24oY2FsbGJhY2spCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtBcnJh
eS48T2JqZWN0Pn0gaXRlbXMKKyAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGNodW5rSW5kZXhf
b3B0CisgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b3RhbENodW5rc19vcHQKKyAgICAgICAg
ICovCisgICAgICAgIGZ1bmN0aW9uIGl0ZW1zQ2FsbGJhY2soaXRlbXMsIGNodW5rSW5kZXhfb3B0
LCB0b3RhbENodW5rc19vcHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBpbmRleCA9IHRo
aXMuX2l0ZW1zLmxlbmd0aDsKKyAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXRl
bSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9pdGVtcy5wdXNoKGl0ZW0p
OworICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKGluZGV4
LCBpdGVtcy5sZW5ndGgsIGNodW5rSW5kZXhfb3B0LCB0b3RhbENodW5rc19vcHQpCisgICAgICAg
IH0KKyAgICAgICAgdGhpcy5faXRlbXNQcm92aWRlci5yZXF1ZXN0SXRlbXMoaXRlbXNDYWxsYmFj
ay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9
IGl0ZW1JbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9tcHRWYWx1ZQorICAgICAqLwor
ICAgIHNlbGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwgcHJvbXB0VmFsdWUpCisgICAgewor
ICAgICAgICB0aGlzLl9pdGVtc1Byb3ZpZGVyLnNlbGVjdEl0ZW0odGhpcy5faXRlbXNbaXRlbUlu
ZGV4XSwgcHJvbXB0VmFsdWUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgcmV3cml0
ZVF1ZXJ5OiBmdW5jdGlvbihxdWVyeSkKKyAgICB7CisgICAgICAgIHJldHVybiBxdWVyeTsKKyAg
ICB9Cit9OworCitXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VsZWN0aW9uQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVu
dFByb3ZpZGVyLnByb3RvdHlwZTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NzA1MjA5MDdkZjIxNGZlMWVhZmRmNDlhMGYwMzQ1NDM0ZWQ4MjQyNi4uZmRkZGVmN2NlZTRhYzA4
MTY2NWE1YzlkMTg0NTFiYTk0NWMyMmM0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5
LTA2ICBKb2huIEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBBbGxvdyBleHRlbnNpb25zIHRvIG9wZW4gRmlsdGVyZWRJdGVtU2Vs
ZWN0b3JEaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk2MDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGNhc2UgZXh0ZW5zaW9uX3Rlc3RJdGVtU2VsZWN0b3IgdG8gdGVzdCBwYW5lbC5jcmVh
dGVJdGVtU2VsZWN0b3IoKQorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1wYW5lbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1wYW5lbC5odG1sOgorCiAyMDEyLTA5LTExICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIFVucmV2aWV3ZWQgZ2FyZGVu
aW5nLCBza2lwIG5ldyBmYWlsaW5nIHRlc3RzIHRvIHBhaW50IHRoZSBib3QgZ3JlZW4uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtcGFuZWwtZXhwZWN0ZWQudHh0CmluZGV4IGMwZWY2NWRiMWM0Zjc0MWVmYTFhZTA1YmZiMmEz
MDcwMWVjNmU1NGMuLjA0NzRlNjU5YzlkMjhkYjhlNDA0YmNhZTIxOWNmMWRlOTZiNzFlYzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFu
ZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcGFuZWwtZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBSdW5uaW5nIHRlc3Rz
Li4uCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0Q3JlYXRlUGFuZWwKIFBhbmVsIGNyZWF0
ZWQKIHsKKyAgICBjcmVhdGVJdGVtU2VsZWN0b3IgOiA8ZnVuY3Rpb24+CiAgICAgY3JlYXRlU3Rh
dHVzQmFyQnV0dG9uIDogPGZ1bmN0aW9uPgogICAgIG9uSGlkZGVuIDogewogICAgICAgICBhZGRM
aXN0ZW5lciA6IDxmdW5jdGlvbj4KQEAgLTIzLDYgKzI0LDEyIEBAIFBhbmVsIGNyZWF0ZWQKIH0K
IFBhbmVsIHNob3duCiBFeHRlbnNpb24gcGFuZWwgc2l6ZSBjb3JyZWN0CitSVU5OSU5HIFRFU1Q6
IGV4dGVuc2lvbl90ZXN0SXRlbVNlbGVjdG9yCitJdGVtU2VsZWN0b3IgaGFzICAyIGl0ZW1zCitz
ZWxlY3RlZCB7ImtleSI6ImtleTIiLCJ0aXRsZSI6InRpdGxlMiIsInN1ZmZpeCI6IigyKSIsInN1
YnRpdGxlIjoic3VidGl0bGUyIn0KK3Byb21wdCB0aQorc2VsZWN0ZWQgdW5kZWZpbmVkCitwcm9t
cHQgdW5kZWZpbmVkCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0U2VhcmNoCiBQYW5lbCBo
aWRkZW4KIFBhbmVsIHNlYXJjaGVkOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sCmluZGV4IGIyMjQwZGM4ZjdiMGU2ZDZh
MjUwZjZmMTEyYjNkOWI4NDgwNWVhY2EuLjk0MzIxNGQ2MjhmMDU3NWFkMGRhNDJjMjYxM2U1MTdl
NTdhMzhmY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXBhbmVsLmh0bWwKQEAgLTUxLDYgKzUxLDIxIEBAIGZ1bmN0aW9uIGluaXRp
YWxpemVfZXh0ZW5zaW9uc1BhbmVsVGVzdCgpCiAgICAgICAgIGNsaWNrLmluaXRNb3VzZUV2ZW50
KCJjbGljayIsIHRydWUsIHRydWUpOwogICAgICAgICB4cGF0aFJlc3VsdC5zaW5nbGVOb2RlVmFs
dWUuZGlzcGF0Y2hFdmVudChjbGljayk7CiAgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZWxl
Y3RJdGVtID0gZnVuY3Rpb24oKSAKKyAgICB7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLkRp
YWxvZy5jdXJyZW50SW5zdGFuY2UoKSkgeworICAgICAgICAgICAgb3V0cHV0KCJObyBEaWFsb2cu
Y3VycmVudEluc3RhbmNlIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgZWxl
bWVudCA9IFdlYkluc3BlY3Rvci5EaWFsb2cuY3VycmVudEluc3RhbmNlKCkuX2RlbGVnYXRlLmVs
ZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikudmFsdWUg
PSAidGkiOworICAgICAgICAgICAgdmFyIGl0ZW1zID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIuaXRlbSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkl0ZW1TZWxl
Y3RvciBoYXMgICIgKyBpdGVtcy5sZW5ndGggKyAiIGl0ZW1zIik7CisgICAgICAgICAgICB2YXIg
Y2xpY2sgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgICAgICAgICAg
Y2xpY2suaW5pdE1vdXNlRXZlbnQoImNsaWNrIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICBp
dGVtc1sxXS5kaXNwYXRjaEV2ZW50KGNsaWNrKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbChuZXh0VGVzdCkKQEAgLTE1OCw2ICsxNzMs
MzIgQEAgZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTdGF0dXNCYXJCdXR0b25zKG5leHRUZXN0KQog
ICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJCdXR0b25zIFBhbmVsIiwgYmFzZVBhdGgg
KyAiZXh0ZW5zaW9uLXBhbmVsLnBuZyIsIGJhc2VQYXRoICsgIm5vbi1leGlzdGVudC5odG1sIiwg
b25QYW5lbENyZWF0ZWQpOwogfQogCitmdW5jdGlvbiBleHRlbnNpb25fdGVzdEl0ZW1TZWxlY3Rv
cihuZXh0VGVzdCkKK3sKKyAgICBjb25zb2xlLmxvZygiYmVnaW4gdGVzdEl0ZW1TZWxlY3RvciIp
OworICAgIGZ1bmN0aW9uIG9uUGFuZWxDcmVhdGVkKHBhbmVsKSAKKyAgICB7CisgICAgICAgIHZh
ciBpdGVtU2VsZWN0b3IgPSBwYW5lbC5jcmVhdGVJdGVtU2VsZWN0b3IoIlRlc3RJdGVtU2VsZWN0
b3IiKTsKKyAgICAgICAgZnVuY3Rpb24gb25TZWxlY3RlZEZpbGUoaXRlbSwgcHJvbXB0VmFsdWUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG91dHB1dCgic2VsZWN0ZWQgIiArIEpTT04uc3RyaW5n
aWZ5KGl0ZW0pKTsKKyAgICAgICAgICAgIG91dHB1dCgicHJvbXB0ICIgKyBwcm9tcHRWYWx1ZSk7
CisgICAgICAgICAgICBpZiAoIWl0ZW0pICAvLyBzaWduYWwgdGhhdCB0aGUgZGlhbG9nIGNsb3Nl
ZAorICAgICAgICAgICAgICAgIG5leHRUZXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgaXRlbVNl
bGVjdG9yLm9uU2VsZWN0ZWRJdGVtLmFkZExpc3RlbmVyKG9uU2VsZWN0ZWRGaWxlKTsKKyAgICAg
ICAgdmFyIHRlc3RJdGVtcyA9IFsKKyAgICAgICAgICAgIHtrZXk6ICdrZXkxJywgdGl0bGU6ICd0
aXRsZTEnLCBzdWZmaXg6ICcoMSknLCBzdWJ0aXRsZTogJ3N1YnRpdGxlMSd9LAorICAgICAgICAg
ICAge2tleTogJ2tleTInLCB0aXRsZTogJ3RpdGxlMicsIHN1ZmZpeDogJygyKScsIHN1YnRpdGxl
OiAnc3VidGl0bGUyJ30sCisgICAgICAgIF07CisgICAgICAgIGl0ZW1TZWxlY3Rvci5hZGRJdGVt
cyh0ZXN0SXRlbXMpOworCisgICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVz
dC5zZWxlY3RJdGVtKCk7Iik7CisgICAgfQorCisgICAgdmFyIGJhc2VQYXRoID0gbG9jYXRpb24u
cGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOworICAgIHdlYkluc3BlY3Rvci5wYW5l
bHMuY3JlYXRlKCJUZXN0IFBhbmVsIiwgYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXBhbmVsLnBuZyIs
IGJhc2VQYXRoICsgIm5vbi1leGlzdGVudC5odG1sIiwgb25QYW5lbENyZWF0ZWQpOworfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cg==
</data>
<flag name="commit-queue"
          id="175024"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>