<?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>18771</bug_id>
          
          <creation_ts>2008-04-27 07:30:03 -0700</creation_ts>
          <short_desc>postMessage should dispatch an event to Window, not Document</short_desc>
          <delta_ts>2008-05-09 14:02:55 -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>DOM</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>http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-April/014570.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>collinj</cc>
    
    <cc>jwalden+bwo</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>79039</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-27 07:30:03 -0700</bug_when>
    <thetext>HTML 5&apos;s postMessage was just changed to dispatch its event to Window instead of Document. &lt;http://html5.org/tools/web-apps-tracker?from=1490&amp;to=1491&gt; contains the actual change to the spec. We should update our implementation to match the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79042</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-04-27 10:03:32 -0700</bug_when>
    <thetext>This can probably happen either before or after Bug 18725, but the patches are likely to touch some of the same lines of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79803</commentid>
    <comment_count>2</comment_count>
      <attachid>20997</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-05-07 02:19:19 -0700</bug_when>
    <thetext>Created attachment 20997
Work in progress

Here is a work-in-progress patch.  I really need to get a Mac so I can run the LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79866</commentid>
    <comment_count>3</comment_count>
      <attachid>21010</attachid>
    <who name="Collin Jackson">collinj</who>
    <bug_when>2008-05-07 23:38:10 -0700</bug_when>
    <thetext>Created attachment 21010
Patch

I ran the tests and they pass. I added a comment to cross-domain-message-event-dispatch.html explaining why postMessage events are faster than setTimeout handlers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79885</commentid>
    <comment_count>4</comment_count>
      <attachid>21010</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-05-08 08:54:45 -0700</bug_when>
    <thetext>Comment on attachment 21010
Patch

I realize this is just being moved, but the &amp; is in the wrong place.
+void EventTargetNode::dispatchWindowEvent(const AtomicString &amp;eventType, bool canBubbleArg, bool cancelableArg)


r=me.  (Anders gave his approval too!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80003</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-05-09 13:17:45 -0700</bug_when>
    <thetext>Fix landed in r33006?  Does this mean we are up to date with the postMessage spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80008</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-05-09 14:02:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Fix landed in r33006?

Can you not remember? Here&apos;s a hint: &lt;http://trac.webkit.org/changeset/33006&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20997</attachid>
            <date>2008-05-07 02:19:19 -0700</date>
            <delta_ts>2008-05-07 23:39:25 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>window.patch</filename>
            <type>text/plain</type>
            <size>16507</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjk0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDUtMDcgIEFkYW0gQmFydGggIDxhYmFydGgtd2Via2l0QGFk
YW1iYXJ0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzcxCisKKyAg
ICAgICAgTWFrZSBwb3N0TWVzc2FnZSBnZW5lcmF0ZSBhbiBldmVudCBvbiB0aGUgd2luZG93IGlu
c3RlYWQgb2YgdGhlCisgICAgICAgIGRvY3VtZW50LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLWV2ZW50LWRpc3BhdGNoLmh0bWwKKwor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlOjpkaXNwYXRjaFdpbmRvd0V2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnRU
YXJnZXROb2RlLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOgorCiAyMDA4LTA1LTA2ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDMyOTQ1KQor
KysgV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2
LDE1ICsxMzYsMjEgQEAgYm9vbCBFdmVudFRhcmdldE5vZGU6OmRpc3BhdGNoU3VidHJlZU1vZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLGZhbHNl
LDAsU3RyaW5nKCksU3RyaW5nKCksU3RyaW5nKCksMCksZWMsdHJ1ZSk7CiB9CiAKLXZvaWQgRXZl
bnRUYXJnZXROb2RlOjpkaXNwYXRjaFdpbmRvd0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyAmZXZl
bnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnKQordm9pZCBFdmVu
dFRhcmdldE5vZGU6OmRpc3BhdGNoV2luZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZSkKIHsK
ICAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7Ci0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgUmVmUHRyPEV2ZW50PiBldnQgPSBuZXcgRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpOworICAgIFJlZlB0cjxFdmVudD4gZXZ0KGUpOwog
ICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jID0gZG9jdW1lbnQoKTsKICAgICBldnQtPnNldFRhcmdl
dChkb2MpOwogICAgIGRvYy0+aGFuZGxlV2luZG93RXZlbnQoZXZ0LmdldCgpLCB0cnVlKTsKICAg
ICBkb2MtPmhhbmRsZVdpbmRvd0V2ZW50KGV2dC5nZXQoKSwgZmFsc2UpOworfQorCit2b2lkIEV2
ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hXaW5kb3dFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2
ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZykKK3sKKyAgICBB
U1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgUmVmUHRyPERvY3VtZW50PiBk
b2MgPSBkb2N1bWVudCgpOworICAgIGRpc3BhdGNoV2luZG93RXZlbnQobmV3IEV2ZW50KGV2ZW50
VHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnKSk7CiAgICAgCiAgICAgaWYgKGV2ZW50
VHlwZSA9PSBsb2FkRXZlbnQpIHsKICAgICAgICAgLy8gRm9yIG9ubG9hZCBldmVudHMsIHNlbmQg
YSBzZXBhcmF0ZSBsb2FkIGV2ZW50IHRvIHRoZSBlbmNsb3NpbmcgZnJhbWUgb25seS4KQEAgLTE1
NCw2ICsxNjAsNyBAQCB2b2lkIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hXaW5kb3dFdmVuCiAg
ICAgICAgIGlmIChvd25lckVsZW1lbnQpIHsKICAgICAgICAgICAgIFJlZlB0cjxFdmVudD4gb3du
ZXJFdmVudCA9IG5ldyBFdmVudChldmVudFR5cGUsIGZhbHNlLCBjYW5jZWxhYmxlQXJnKTsKICAg
ICAgICAgICAgIG93bmVyRXZlbnQtPnNldFRhcmdldChvd25lckVsZW1lbnQpOworICAgICAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgICAgICBvd25lckVsZW1lbnQtPmRpc3Bh
dGNoR2VuZXJpY0V2ZW50KG93bmVyRWxlbWVudCwgb3duZXJFdmVudC5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lv
biAzMjk0NSkKKysrIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBFdmVudExpc3RlbmVyKiBnZXRIVE1MRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAKICAgICBib29sIGRp
c3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKKyAgICB2b2lkIGRpc3BhdGNoV2luZG93RXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSk7CiAgICAgYm9vbCBkaXNwYXRjaFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIGludCBkZXRhaWwgPSAwLCBQYXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQgPSAw
KTsKICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50
Jik7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMzI5NDUpCisrKyBXZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk1LDggKzM5NSw3IEBAIHZvaWQgRE9N
V2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG8KICAgICAgICAgfQogICAgIH0KIAotICAg
IEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgZG9jdW1lbnQoKS0+ZGlzcGF0Y2hFdmVudCh0aW1lci0+
ZXZlbnQoKSwgZWMsIHRydWUpOworICAgIGRvY3VtZW50KCktPmRpc3BhdGNoV2luZG93RXZlbnQo
dGltZXItPmV2ZW50KCkpOwogfQogI2VuZGlmCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDMyOTQ1KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMDgtMDUtMDcgIEFkYW0gQmFydGggIDxhYmFydGgtd2Via2l0QGFkYW1iYXJ0aC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRl
c3RzIHRvIGxpc3RlbiBmb3IgbWVzc2FnZSBldmVudHMgb24gdGhlIHdpbmRvdyBpbnN0ZWFkIG9m
CisgICAgICAgIHRoZSBkb2N1bWVudC4gIEFsc28sIGFkZGVkIGEgdGVzdCB0aGF0IHRoZSBldmVu
dCBpcyBzZW50IHRvIHRoZQorICAgICAgICB3aW5kb3cgYW5kIG5vdCB0byB0aGUgZG9jdW1lbnQu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1l
dmVudC1kaXNwYXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2lu
Zy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvcmVzb3VyY2VzL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxldGUuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1oaXN0
b3J5LXB1dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWxvY2F0aW9uLXB1dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cG9zdE1lc3NhZ2UvZGVsaXZlcnktb3JkZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Bvc3RNZXNzYWdlL2ludmFsaWQtb3JpZ2luLXRocm93cy1leGNlcHRpb24uaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2phdmFzY3JpcHQtcGFn
ZS1zdGlsbC1zZW5kcy1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Bvc3RNZXNzYWdlL29yaWdpbi11bmFmZmVjdGVkLWJ5LWJhc2UtdGFnLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmlnaW4tdW5hZmZlY3RlZC1ieS1k
b2N1bWVudC1kb21haW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RN
ZXNzYWdlL3Jlc291cmNlcy9wb3N0LW1lc3NhZ2UtbGlzdGVuZXIuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3RhcmdldC1vcmlnaW4uaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9y
LWRlbGV0ZS10ZXN0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1oaXN0b3J5LXB1dC10ZXN0Lmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1s
b2NhdGlvbi1wdXQtdGVzdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LWV2YWwuaHRtbDoKKwogMjAwOC0wNS0wNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQtZGlzcGF0Y2gu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9z
cy1kb21haW4tbWVzc2FnZS1ldmVudC1kaXNwYXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQt
ZGlzcGF0Y2guaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiBsb2cobXNn
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rp
b24gZG9uZSgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbiAoKSB7CisgICAgbG9nKCJUZXN0IGJlZ2lucyIpOworICAgIHBvc3RNZXNzYWdl
KCJNZXNzYWdlMSIsICIqIik7CisgICAgc2V0VGltZW91dCgibG9nKCdzZXRUaW1lb3V0MScpIiwg
MCk7CisgICAgcG9zdE1lc3NhZ2UoIk1lc3NhZ2UyIiwgIioiKTsKKyAgICBzZXRUaW1lb3V0KCJs
b2coJ3NldFRpbWVvdXQyJykiLCAwKTsKKyAgICBwb3N0TWVzc2FnZSgiTWVzc2FnZTMiLCAiKiIp
OworICAgIHNldFRpbWVvdXQoZG9uZSwgMCk7CisgICAgbG9nKCJFdmVudHMgcXVldWVkIik7Cit9
CisKK2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICBs
b2coIkNhcHR1cmUgcGhhc2U6ICIgKyBlLmRhdGEpOworICAgIH0sIHRydWUpOworYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGxvZygiQnViYmxlIHBo
YXNlOiAiICsgZS5kYXRhKTsKKyAgICB9LCBmYWxzZSk7CisKK2RvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICBsb2coIkZBSUw6IENhcHR1
cmUgcGhhc2UgKGRvY3VtZW50KTogIiArIGUuZGF0YSk7CisgICAgfSwgdHJ1ZSk7Citkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgbG9n
KCJGQUlMOiBCdWJibGUgcGhhc2UgKGRvY3VtZW50KTogIiArIGUuZGF0YSk7CisgICAgfSwgZmFs
c2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InJlc3VsdCI+d2FpdGlu
Zy4uLjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2Utc2VuZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNl
bmQuaHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDcgKzIzLDcgQEAgZnVuY3Rpb24gcmVjZWl2ZXIoZSkgewogICAgIH0KIH0KIAotZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CithZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKIAogICAgIAogPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvY3Jvc3MtZG9t
YWluLW1lc3NhZ2UtcmVjZWl2ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9jcm9zcy1kb21haW4tbWVzc2FnZS1yZWNlaXZlLmh0
bWwJKHJldmlzaW9uIDMyOTQ1KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcv
cmVzb3VyY2VzL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTMsNyArMTMsNyBAQCBmdW5jdGlvbiByZWNlaXZlcihlKSB7CiAgICAgZS5zb3VyY2Uu
cG9zdE1lc3NhZ2UocmVzdWx0LCAiKiIpOyAgIAogfQogCi1kb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKK2FkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCByZWNlaXZlciwgZmFsc2UpOwogCiA8L3NjcmlwdD4KIDxib2R5PgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZGVsZXRlLmh0bWwJKHJldmlzaW9uIDMyOTQ1KQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzLDcgKzEzLDcgQEAKICAgICAgICAgICAgIGlmIChlLmRhdGEgPT0gInNldFZh
bHVlc0NvbXBsZXRlIikKICAgICAgICAgICAgICAgICBkZWxldGVUZXN0KCk7CiAgICAgICAgIH0K
LSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBm
YWxzZSk7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFs
c2UpOwogCiAgICAgICAgIGRlbGV0ZVRlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgIHsKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWhpc3Rv
cnktcHV0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtaGlzdG9yeS1wdXQuaHRtbAkocmV2aXNpb24gMzI5NDUpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1oaXN0
b3J5LXB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAgICAgICAgICAg
ICBpZiAoZS5kYXRhID09ICJzdG9yZWRPbGRWYWx1ZXNDb21wbGV0ZSIpCiAgICAgICAgICAgICAg
ICAgc2V0VGVzdCgpOwogICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOworICAgICAgICBhZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKIAogICAgICAgICBzZXRUZXN0ID0gZnVuY3Rp
b24oKQogICAgICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQu
aHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQAogICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAic3RvcmVkT2xkVmFsdWVz
Q29tcGxldGUiKQogICAgICAgICAgICAgICAgIHNldFRlc3QoKTsKICAgICAgICAgfQotICAgICAg
ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsK
KyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CiAK
ICAgICAgICAgc2V0VGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgewpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtZXZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLWV2YWwuaHRtbAkocmV2aXNpb24gMzI5NDUp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmUoYURlc2NyaXB0aW9u
LCBhLCBiKQogICAgIH0KIH0KIAotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IGZ1bmN0aW9uKCkKK2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbigpCiB7CiAg
ICAgc2hvdWxkQmUoImV2YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcpIiwgKGZ1bmN0aW9u
KCkgeyB0cnkgeyByZXR1cm4gZXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50Jyk7IH0gY2F0
Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFsRXJyb3IiKTsKIApJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9kZWxpdmVyeS1vcmRlci5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1l
c3NhZ2UvZGVsaXZlcnktb3JkZXIuaHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2RlbGl2ZXJ5LW9yZGVyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAKLWRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWN2LCBmYWxzZSk7CithZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgcmVjdiwgZmFsc2UpOwogCiBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvaW52YWxpZC1vcmln
aW4tdGhyb3dzLWV4Y2VwdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvaW52YWxpZC1vcmlnaW4tdGhyb3dzLWV4Y2VwdGlv
bi5odG1sCShyZXZpc2lvbiAzMjk0NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcG9zdE1lc3NhZ2UvaW52YWxpZC1vcmlnaW4tdGhyb3dzLWV4Y2VwdGlvbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogfQogIAotZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsKK2FkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWN2LCBmYWxzZSk7CiAKIGZ1bmN0aW9uIHRyeVBvc3RNZXNz
YWdlKG9yaWdpbikgewogICB0cnkgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9wb3N0TWVzc2FnZS9qYXZhc2NyaXB0LXBhZ2Utc3RpbGwtc2VuZHMtb3JpZ2luLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2Fn
ZS9qYXZhc2NyaXB0LXBhZ2Utc3RpbGwtc2VuZHMtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDMyOTQ1
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9qYXZhc2Ny
aXB0LXBhZ2Utc3RpbGwtc2VuZHMtb3JpZ2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE2LDcg
KzE2LDcgQEAgZnVuY3Rpb24gcmVjdihlKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKIH0KIAotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY3YsIGZhbHNlKTsKK2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWN2LCBmYWxzZSk7
CiAKIDwvc2NyaXB0PgogPGJhc2UgaHJlZj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmlnaW4tdW5h
ZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uvb3JpZ2luLXVuYWZmZWN0ZWQtYnktYmFzZS10YWcu
aHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Bvc3RNZXNzYWdlL29yaWdpbi11bmFmZmVjdGVkLWJ5LWJhc2UtdGFnLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAKLWRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWN2LCBmYWxzZSk7CithZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgcmVjdiwgZmFsc2UpOwogCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHZh
ciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uvb3JpZ2luLXVuYWZmZWN0ZWQt
YnktZG9jdW1lbnQtZG9tYWluLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmlnaW4tdW5hZmZlY3RlZC1ieS1kb2N1bWVudC1k
b21haW4uaHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Bvc3RNZXNzYWdlL29yaWdpbi11bmFmZmVjdGVkLWJ5LWRvY3VtZW50LWRvbWFpbi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwog
fQogCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjdiwgZmFsc2UpOwor
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsKIAogZnVuY3Rpb24gdGVz
dCgpIHsKICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoaWxkJyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3Rhcmdl
dC1vcmlnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Bvc3RNZXNzYWdlL3RhcmdldC1vcmlnaW4uaHRtbAkocmV2aXNpb24gMzI5NDUpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL3RhcmdldC1vcmlnaW4u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIAotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsK
K2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWN2LCBmYWxzZSk7CiAKIGZ1bmN0aW9uIHRy
eVBvc3RNZXNzYWdlKHdpbiwgb3JpZ2luKSB7CiAgICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvcmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1s
aXN0ZW5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcG9zdE1lc3NhZ2UvcmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1saXN0ZW5lci5odG1sCShyZXZp
c2lvbiAzMjk0NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3Nh
Z2UvcmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1saXN0ZW5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC04LDcgKzgsNyBAQCBmdW5jdGlvbiByZWN2KGUpIHsKICAgICB0b3AucG9zdE1lc3NhZ2UobXNn
LCAnKicpOwogfQogCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjdiwg
ZmFsc2UpOworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsKIDwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkocmV2aXNpb24gMzI5NDUpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1p
ZnJhbWUtZm9yLWRlbGV0ZS10ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBA
CiAgICAgICAgICAgICBpZiAoZS5kYXRhID09ICJkZWxldGluZ1ZhbHVlc0NvbXBsZXRlIikKICAg
ICAgICAgICAgICAgICBzZXRDaGVjaygpOwogICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOworICAgICAgICBhZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKIAogICAgICAgICB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKQogICAgICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWhpc3Rvcnkt
cHV0LXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWhpc3RvcnktcHV0LXRlc3QuaHRt
bAkocmV2aXNpb24gMzI5NDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWhpc3RvcnktcHV0LXRlc3QuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTQsNyArMTQsNyBAQAogICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAi
c2V0dGluZ1ZhbHVlc0NvbXBsZXRlIikKICAgICAgICAgICAgICAgICBzZXRDaGVjaygpOwogICAg
ICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNl
aXZlciwgZmFsc2UpOworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2
ZXIsIGZhbHNlKTsKIAogICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQogICAgICAg
ICB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9z
cy1mcmFtZS1pZnJhbWUtZm9yLWxvY2F0aW9uLXB1dC10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZy
YW1lLWZvci1sb2NhdGlvbi1wdXQtdGVzdC5odG1sCShyZXZpc2lvbiAzMjk0NSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1m
b3ItbG9jYXRpb24tcHV0LXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBA
QAogICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAic2V0dGluZ1ZhbHVlc0NvbXBsZXRlIikKICAg
ICAgICAgICAgICAgICBzZXRDaGVjaygpOwogICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOworICAgICAgICBhZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKIAogICAgICAgICB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKQogICAgICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21010</attachid>
            <date>2008-05-07 23:38:10 -0700</date>
            <delta_ts>2008-05-08 08:54:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>window.patch2.txt</filename>
            <type>text/plain</type>
            <size>17376</size>
            <attacher name="Collin Jackson">collinj</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjk3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDUtMDcgIEFkYW0gQmFydGggIDxhYmFydGgtd2Via2l0QGFk
YW1iYXJ0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzcxCisKKyAg
ICAgICAgTWFrZSBwb3N0TWVzc2FnZSBnZW5lcmF0ZSBhbiBldmVudCBvbiB0aGUgd2luZG93IGlu
c3RlYWQgb2YgdGhlCisgICAgICAgIGRvY3VtZW50LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLWV2ZW50LWRpc3BhdGNoLmh0bWwKKwor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlOjpkaXNwYXRjaFdpbmRvd0V2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnRU
YXJnZXROb2RlLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOgorCiAyMDA4LTA1LTA3ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUg
UGV0ZXJzb24KSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMzI5NzApCisr
KyBXZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYs
MTUgKzEzNiwyMSBAQCBib29sIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hTdWJ0cmVlTW9kCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsZmFsc2Us
MCxTdHJpbmcoKSxTdHJpbmcoKSxTdHJpbmcoKSwwKSxlYyx0cnVlKTsKIH0KIAotdm9pZCBFdmVu
dFRhcmdldE5vZGU6OmRpc3BhdGNoV2luZG93RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZldmVu
dFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcpCit2b2lkIEV2ZW50
VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hXaW5kb3dFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBlKQogewog
ICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBSZWZQdHI8RXZlbnQ+IGV2dCA9IG5ldyBFdmVudChldmVudFR5cGUsIGNh
bkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZyk7CisgICAgUmVmUHRyPEV2ZW50PiBldnQoZSk7CiAg
ICAgUmVmUHRyPERvY3VtZW50PiBkb2MgPSBkb2N1bWVudCgpOwogICAgIGV2dC0+c2V0VGFyZ2V0
KGRvYyk7CiAgICAgZG9jLT5oYW5kbGVXaW5kb3dFdmVudChldnQuZ2V0KCksIHRydWUpOwogICAg
IGRvYy0+aGFuZGxlV2luZG93RXZlbnQoZXZ0LmdldCgpLCBmYWxzZSk7Cit9CisKK3ZvaWQgRXZl
bnRUYXJnZXROb2RlOjpkaXNwYXRjaFdpbmRvd0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyAmZXZl
bnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnKQoreworICAgIEFT
U0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IGRv
YyA9IGRvY3VtZW50KCk7CisgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChuZXcgRXZlbnQoZXZlbnRU
eXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpKTsKICAgICAKICAgICBpZiAoZXZlbnRU
eXBlID09IGxvYWRFdmVudCkgewogICAgICAgICAvLyBGb3Igb25sb2FkIGV2ZW50cywgc2VuZCBh
IHNlcGFyYXRlIGxvYWQgZXZlbnQgdG8gdGhlIGVuY2xvc2luZyBmcmFtZSBvbmx5LgpAQCAtMTU0
LDYgKzE2MCw3IEBAIHZvaWQgRXZlbnRUYXJnZXROb2RlOjpkaXNwYXRjaFdpbmRvd0V2ZW4KICAg
ICAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICAgICAgUmVmUHRyPEV2ZW50PiBvd25l
ckV2ZW50ID0gbmV3IEV2ZW50KGV2ZW50VHlwZSwgZmFsc2UsIGNhbmNlbGFibGVBcmcpOwogICAg
ICAgICAgICAgb3duZXJFdmVudC0+c2V0VGFyZ2V0KG93bmVyRWxlbWVudCk7CisgICAgICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgICAgIG93bmVyRWxlbWVudC0+ZGlzcGF0
Y2hHZW5lcmljRXZlbnQob3duZXJFbGVtZW50LCBvd25lckV2ZW50LnJlbGVhc2UoKSwgZWMsIHRy
dWUpOwogICAgICAgICB9CiAgICAgfQpJbmRleDogV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9u
IDMyOTcwKQorKysgV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIEV2ZW50TGlzdGVuZXIqIGdldEhUTUxFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKIAogICAgIGJvb2wgZGlz
cGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOworICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dFdmVu
dChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBkaXNwYXRjaFdpbmRvd0V2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
KTsKICAgICBib29sIGRpc3BhdGNoVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgaW50IGRldGFpbCA9IDAsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCA9IDAp
OwogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
KTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAzMjk3MCkKKysrIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTUsOCArMzk1LDcgQEAgdm9pZCBET01X
aW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZChQbwogICAgICAgICB9CiAgICAgfQogCi0gICAg
RXhjZXB0aW9uQ29kZSBlYzsKLSAgICBkb2N1bWVudCgpLT5kaXNwYXRjaEV2ZW50KHRpbWVyLT5l
dmVudCgpLCBlYywgdHJ1ZSk7CisgICAgZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudCh0
aW1lci0+ZXZlbnQoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzI5NzEpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAor
MjAwOC0wNS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aC13ZWJraXRAYWRhbWJhcnRoLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVz
dHMgdG8gbGlzdGVuIGZvciBtZXNzYWdlIGV2ZW50cyBvbiB0aGUgd2luZG93IGluc3RlYWQgb2YK
KyAgICAgICAgdGhlIGRvY3VtZW50LiAgQWxzbywgYWRkZWQgYSB0ZXN0IHRoYXQgdGhlIGV2ZW50
IGlzIHNlbnQgdG8gdGhlCisgICAgICAgIHdpbmRvdyBhbmQgbm90IHRvIHRoZSBkb2N1bWVudC4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLWV2
ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQtZGlzcGF0Y2guaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2Utc2Vu
ZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9jcm9zcy1k
b21haW4tbWVzc2FnZS1yZWNlaXZlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtaGlzdG9yeS1wdXQuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2RlbGl2ZXJ5LW9yZGVy
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9pbnZhbGlk
LW9yaWdpbi10aHJvd3MtZXhjZXB0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9wb3N0TWVzc2FnZS9qYXZhc2NyaXB0LXBhZ2Utc3RpbGwtc2VuZHMtb3JpZ2luLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmlnaW4tdW5hZmZl
Y3RlZC1ieS1iYXNlLXRhZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcG9z
dE1lc3NhZ2Uvb3JpZ2luLXVuYWZmZWN0ZWQtYnktZG9jdW1lbnQtZG9tYWluLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMvcG9zdC1tZXNz
YWdlLWxpc3RlbmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVz
c2FnZS90YXJnZXQtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3It
aGlzdG9yeS1wdXQtdGVzdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItbG9jYXRpb24tcHV0LXRlc3QuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLmh0bWw6CisKIDIwMDgtMDUtMDcg
IFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAgICAgICAgIAogICAgICAgICBm
aXggbWVzc2VkIHVwIHJlc3VsdApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdp
bmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1t
ZXNzYWdlLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLWV2ZW50LWRp
c3BhdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAord2FpdGlu
Zy4uLgorVGVzdCBiZWdpbnMKK0V2ZW50cyBxdWV1ZWQKK0NhcHR1cmUgcGhhc2U6IE1lc3NhZ2Ux
CitCdWJibGUgcGhhc2U6IE1lc3NhZ2UxCitDYXB0dXJlIHBoYXNlOiBNZXNzYWdlMgorQnViYmxl
IHBoYXNlOiBNZXNzYWdlMgorQ2FwdHVyZSBwaGFzZTogTWVzc2FnZTMKK0J1YmJsZSBwaGFzZTog
TWVzc2FnZTMKK3NldFRpbWVvdXQxCitzZXRUaW1lb3V0MgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQtZGlzcGF0Y2guaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1k
b21haW4tbWVzc2FnZS1ldmVudC1kaXNwYXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtZXZlbnQtZGlz
cGF0Y2guaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24g
ZG9uZSgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbiAoKSB7CisgICAgbG9nKCJUZXN0IGJlZ2lucyIpOworCisgICAgLy8gVGhlIHNldFRp
bWVvdXQgaGFuZGxlcnMgd2lsbCBnZXQgY2FsbGVkIGFmdGVyIHRoZQorICAgIC8vIGV2ZW50IGxp
c3RlbmVycywgYmVjYXVzZSBzZXRUaW1lb3V0IGhhcyBhIG1pbmltdW0gd2FpdCB0aW1lCisgICAg
Ly8gb2YgMTBtcyB3aGlsZSBwb3N0TWVzc2FnZSBoYXMgbm8gbWluaW11bSB3YWl0IHRpbWUuCisg
ICAgcG9zdE1lc3NhZ2UoIk1lc3NhZ2UxIiwgIioiKTsKKyAgICBzZXRUaW1lb3V0KCJsb2coJ3Nl
dFRpbWVvdXQxJykiLCAwKTsKKyAgICBwb3N0TWVzc2FnZSgiTWVzc2FnZTIiLCAiKiIpOworICAg
IHNldFRpbWVvdXQoImxvZygnc2V0VGltZW91dDInKSIsIDApOworICAgIHBvc3RNZXNzYWdlKCJN
ZXNzYWdlMyIsICIqIik7CisgICAgc2V0VGltZW91dChkb25lLCAwKTsKKyAgICBsb2coIkV2ZW50
cyBxdWV1ZWQiKTsKK30KKworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChl
KSB7CisgICAgICAgIGxvZygiQ2FwdHVyZSBwaGFzZTogIiArIGUuZGF0YSk7CisgICAgfSwgdHJ1
ZSk7CithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAg
bG9nKCJCdWJibGUgcGhhc2U6ICIgKyBlLmRhdGEpOworICAgIH0sIGZhbHNlKTsKKworZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGxv
ZygiRkFJTDogQ2FwdHVyZSBwaGFzZSAoZG9jdW1lbnQpOiAiICsgZS5kYXRhKTsKKyAgICB9LCB0
cnVlKTsKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZSkg
eworICAgICAgICBsb2coIkZBSUw6IEJ1YmJsZSBwaGFzZSAoZG9jdW1lbnQpOiAiICsgZS5kYXRh
KTsKKyAgICB9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
cmVzdWx0Ij53YWl0aW5nLi4uPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9t
YWluLW1lc3NhZ2Utc2VuZC5odG1sCShyZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiByZWNlaXZlcihlKSB7CiAgICAgfQog
fQogCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNl
KTsKK2FkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOwogCiAgICAg
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291
cmNlcy9jcm9zcy1kb21haW4tbWVzc2FnZS1yZWNlaXZlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Nyb3NzLWRvbWFpbi1tZXNz
YWdlLXJlY2VpdmUuaHRtbAkocmV2aXNpb24gMzI5NzApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtcmVjZWl2ZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIHJlY2VpdmVyKGUpIHsK
ICAgICBlLnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQsICIqIik7ICAgCiB9CiAKLWRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOworYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CiAKIDwvc2NyaXB0PgogPGJvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1kZWxldGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxldGUuaHRtbAkocmV2aXNpb24gMzI5NzApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxldGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNyBAQAogICAgICAgICAgICAgaWYgKGUu
ZGF0YSA9PSAic2V0VmFsdWVzQ29tcGxldGUiKQogICAgICAgICAgICAgICAgIGRlbGV0ZVRlc3Qo
KTsKICAgICAgICAgfQotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgcmVjZWl2ZXIsIGZhbHNlKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IHJlY2VpdmVyLCBmYWxzZSk7CiAKICAgICAgICAgZGVsZXRlVGVzdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtaGlzdG9yeS1wdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1oaXN0b3J5LXB1dC5odG1sCShyZXZp
c2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLWhpc3RvcnktcHV0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcg
QEAKICAgICAgICAgICAgIGlmIChlLmRhdGEgPT0gInN0b3JlZE9sZFZhbHVlc0NvbXBsZXRlIikK
ICAgICAgICAgICAgICAgICBzZXRUZXN0KCk7CiAgICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOwogCiAgICAgICAgIHNl
dFRlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWxvY2F0aW9uLXB1dC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LWxvY2F0aW9uLXB1dC5odG1sCShyZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWxvY2F0aW9uLXB1dC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAgICAgICAgICAgICBpZiAoZS5kYXRhID09ICJz
dG9yZWRPbGRWYWx1ZXNDb21wbGV0ZSIpCiAgICAgICAgICAgICAgICAgc2V0VGVzdCgpOwogICAg
ICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNl
aXZlciwgZmFsc2UpOworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2
ZXIsIGZhbHNlKTsKIAogICAgICAgICBzZXRUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICB7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtZXZhbC5odG1sCShy
ZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLWV2
YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBzaG91bGRC
ZShhRGVzY3JpcHRpb24sIGEsIGIpCiAgICAgfQogfQogCi1kb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oKQorYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1
bmN0aW9uKCkKIHsKICAgICBzaG91bGRCZSgiZXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50
JykiLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiBldmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9j
dW1lbnQnKTsgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2Rl
bGl2ZXJ5LW9yZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9wb3N0TWVzc2FnZS9kZWxpdmVyeS1vcmRlci5odG1sCShyZXZpc2lvbiAzMjk3MCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvZGVsaXZlcnkt
b3JkZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIH0KIAotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY3YsIGZh
bHNlKTsKK2FkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWN2LCBmYWxzZSk7CiAKIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
aGlsZCcpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2Fn
ZS9pbnZhbGlkLW9yaWdpbi10aHJvd3MtZXhjZXB0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9pbnZhbGlkLW9yaWdpbi10
aHJvd3MtZXhjZXB0aW9uLmh0bWwJKHJldmlzaW9uIDMyOTcwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9pbnZhbGlkLW9yaWdpbi10aHJvd3MtZXhjZXB0
aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiB9CiAgCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjdiwgZmFs
c2UpOworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsKIAogZnVuY3Rp
b24gdHJ5UG9zdE1lc3NhZ2Uob3JpZ2luKSB7CiAgIHRyeSB7CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL2phdmFzY3JpcHQtcGFnZS1zdGlsbC1zZW5k
cy1vcmlnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Bvc3RNZXNzYWdlL2phdmFzY3JpcHQtcGFnZS1zdGlsbC1zZW5kcy1vcmlnaW4uaHRtbAko
cmV2aXNpb24gMzI5NzApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RN
ZXNzYWdlL2phdmFzY3JpcHQtcGFnZS1zdGlsbC1zZW5kcy1vcmlnaW4uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiByZWN2KGUpIHsKICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi1kb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgcmVjdiwgZmFsc2UpOworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY3YsIGZhbHNlKTsKIAogPC9zY3JpcHQ+CiA8YmFzZSBocmVmPSJodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyI+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNz
YWdlL29yaWdpbi11bmFmZmVjdGVkLWJ5LWJhc2UtdGFnLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmlnaW4tdW5hZmZlY3Rl
ZC1ieS1iYXNlLXRhZy5odG1sCShyZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uvb3JpZ2luLXVuYWZmZWN0ZWQtYnktYmFzZS10YWcu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIAotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsK
K2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWN2LCBmYWxzZSk7CiAKIGZ1bmN0aW9uIHRl
c3QoKSB7CiAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGlsZCcp
OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9vcmln
aW4tdW5hZmZlY3RlZC1ieS1kb2N1bWVudC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bvc3RNZXNzYWdlL29yaWdpbi11bmFmZmVjdGVk
LWJ5LWRvY3VtZW50LWRvbWFpbi5odG1sCShyZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uvb3JpZ2luLXVuYWZmZWN0ZWQtYnktZG9j
dW1lbnQtZG9tYWluLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CiB9CiAKLWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBy
ZWN2LCBmYWxzZSk7CithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjdiwgZmFsc2UpOwog
CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY2hpbGQnKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9z
dE1lc3NhZ2UvdGFyZ2V0LW9yaWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2UvdGFyZ2V0LW9yaWdpbi5odG1sCShyZXZpc2lv
biAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9zdE1lc3NhZ2Uv
dGFyZ2V0LW9yaWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwogfQogCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjdiwgZmFsc2UpOworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY3YsIGZhbHNlKTsK
IAogZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2Uod2luLCBvcmlnaW4pIHsKICAgICB0cnkgewpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMv
cG9zdC1tZXNzYWdlLWxpc3RlbmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMvcG9zdC1tZXNzYWdlLWxpc3Rl
bmVyLmh0bWwJKHJldmlzaW9uIDMyOTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9wb3N0TWVzc2FnZS9yZXNvdXJjZXMvcG9zdC1tZXNzYWdlLWxpc3RlbmVyLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGZ1bmN0aW9uIHJlY3YoZSkgewogICAgIHRvcC5w
b3N0TWVzc2FnZShtc2csICcqJyk7CiB9CiAKLWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWN2LCBmYWxzZSk7CithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjdiwg
ZmFsc2UpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWRlbGV0
ZS10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCShyZXZp
c2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNyw3ICs3LDcgQEAKICAgICAgICAgICAgIGlmIChlLmRhdGEgPT0gImRlbGV0aW5nVmFsdWVz
Q29tcGxldGUiKQogICAgICAgICAgICAgICAgIHNldENoZWNrKCk7CiAgICAgICAgIH0KLSAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7
CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOwog
CiAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgICAgIHsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFt
ZS1mb3ItaGlzdG9yeS1wdXQtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItaGlzdG9y
eS1wdXQtdGVzdC5odG1sCShyZXZpc2lvbiAzMjk3MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItaGlzdG9yeS1wdXQt
dGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgICAgICAgICBp
ZiAoZS5kYXRhID09ICJzZXR0aW5nVmFsdWVzQ29tcGxldGUiKQogICAgICAgICAgICAgICAgIHNl
dENoZWNrKCk7CiAgICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOwogCiAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpCiAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItbG9jYXRpb24tcHV0LXRlc3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLWxvY2F0aW9uLXB1dC10ZXN0Lmh0bWwJKHJldmlzaW9uIDMy
OTcwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
ZnJhbWUtaWZyYW1lLWZvci1sb2NhdGlvbi1wdXQtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMyw3ICsxMyw3IEBACiAgICAgICAgICAgICBpZiAoZS5kYXRhID09ICJzZXR0aW5nVmFsdWVz
Q29tcGxldGUiKQogICAgICAgICAgICAgICAgIHNldENoZWNrKCk7CiAgICAgICAgIH0KLSAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7
CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFsc2UpOwog
CiAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgICAgIHsK
</data>
<flag name="review"
          id="9194"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>