<?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>72624</bug_id>
          
          <creation_ts>2011-11-17 09:25:29 -0800</creation_ts>
          <short_desc>Seeing crash in DRT after loading-iframe-sends-notification.html land</short_desc>
          <delta_ts>2011-12-14 20:41:11 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72866</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="Dominic Mazzoni">dmazzoni</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504915</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 09:25:29 -0800</bug_when>
    <thetext>2011-11-17 08:58:39.760 DumpRenderTree[27057:903] -[WebDynamicScrollBarsView accessibilitySetShouldRepostNotifications:]: unrecognized selector sent to instance 0x113b410b0
2011-11-17 08:58:39.787 DumpRenderTree[27057:903] An uncaught exception was raised
2011-11-17 08:58:39.796 DumpRenderTree[27057:903] -[WebDynamicScrollBarsView accessibilitySetShouldRepostNotifications:]: unrecognized selector sent to instance 0x113b410b0
2011-11-17 08:58:39.866 DumpRenderTree[27057:903] *** Terminating app due to uncaught exception &apos;NSInvalidArgumentException&apos;, reason: &apos;-[WebDynamicScrollBarsView accessibilitySetShouldRepostNotifications:]: unrecognized selector sent to instance 0x113b410b0&apos;
*** Call stack at first throw:
(
	0   CoreFoundation                      0x00007fff816517b4 __exceptionPreprocess + 180
	1   libobjc.A.dylib                     0x00007fff83b58f03 objc_exception_throw + 45
	2   CoreFoundation                      0x00007fff816ab110 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0
	3   CoreFoundation                      0x00007fff8162391f ___forwarding___ + 751
	4   CoreFoundation                      0x00007fff8161fa68 _CF_forwarding_prep_0 + 232
	5   DumpRenderTree                      0x00000001000053e8 -[AccessibilityNotificationHandler initWithPlatformElement:] + 87
	6   DumpRenderTree                      0x00000001000087f0 _ZN22AccessibilityUIElement23addNotificationListenerEP13OpaqueJSValue + 72
	7   DumpRenderTree                      0x00000001000037e6 _ZL31addNotificationListenerCallbackPK15OpaqueJSContextP13OpaqueJSValueS3_mPKPKS2_PS5_ + 68
	8   JavaScriptCore                      0x000000010023aad8 _ZN3JSC18JSCallbackFunction4callEPNS_9ExecStateE + 392
)
terminate called after throwing an instance of &apos;NSException&apos;

2011-11-17 08:58:42,756 26818 worker.py:158 DEBUG worker/0 killing driver
2011-11-17 08:58:42,757 26668 printing.py:462 INFO   accessibility/loading-iframe-sends-notification.html -&gt; unexpected DumpRenderTree crash


saw it at
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/34783/steps/layout-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504944</commentid>
    <comment_count>1</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-11-17 09:59:16 -0800</bug_when>
    <thetext>Looking...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504969</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 10:28:41 -0800</bug_when>
    <thetext>Also looks like the test might fail in WK2

http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r100636%20(1840)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505229</commentid>
    <comment_count>3</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-11-17 14:35:42 -0800</bug_when>
    <thetext>The problem is that the accessibility object for the iframe element gets a role of UnknownRole, and the Mac implementation of accessibilityPlatformIncludesObject skips nodes with an unknown role. So it&apos;s impossible for the layout test to get an AccessibilityUIElement corresponding to the iframe element on Mac, it can only get the parent or child of it.

1. I think the best solution is to make an iframe element part of the accessibility tree by adding a new role IFrameRole, which could just map to GroupRole on Mac - that way it wouldn&apos;t be ignored. I don&apos;t see any harm, and there might be some benefit, because a web developer could add important attributes to the iframe element that we wouldn&apos;t want to ignore.

2. An alternative solution would be for the notification when an iframe loads to be posted on the first unignored parent. That way it&apos;d be posted on the parent of the iframe on Mac and the test could be adapted to handle either case.

3. Or, I could just move this test to platform/chromium, since this feature isn&apos;t needed on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505281</commentid>
    <comment_count>4</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-11-17 15:24:20 -0800</bug_when>
    <thetext>I added this test to platform/mac/Skipped in the meantime. Chris, does my solution #1 (create a role for iframe element so it&apos;s not ignored on Mac) sound okay?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505284</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 15:28:07 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; The problem is that the accessibility object for the iframe element gets a role of UnknownRole, and the Mac implementation of accessibilityPlatformIncludesObject skips nodes with an unknown role. So it&apos;s impossible for the layout test to get an AccessibilityUIElement corresponding to the iframe element on Mac, it can only get the parent or child of it.
&gt; 

That&apos;s because that object is an isAttachment() == true. It&apos;s attachment view is the one that returns the role.

There should be a web area for the iframe that you can get at. or a scroll area. there are other tests that use iframes that you might look at to see what they do. 

you might also check if the platform element responds to that type of selector before calling it

&gt; 1. I think the best solution is to make an iframe element part of the accessibility tree by adding a new role IFrameRole, which could just map to GroupRole on Mac - that way it wouldn&apos;t be ignored. I don&apos;t see any harm, and there might be some benefit, because a web developer could add important attributes to the iframe element that we wouldn&apos;t want to ignore.
&gt; 

that would break the attachment part.

&gt; 2. An alternative solution would be for the notification when an iframe loads to be posted on the first unignored parent. That way it&apos;d be posted on the parent of the iframe on Mac and the test could be adapted to handle either case.
&gt; 
&gt; 3. Or, I could just move this test to platform/chromium, since this feature isn&apos;t needed on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505302</commentid>
    <comment_count>6</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-11-17 15:48:19 -0800</bug_when>
    <thetext>&gt; There should be a web area for the iframe that you can get at. or a scroll area. there are other tests that use iframes that you might look at to see what they do.

The problem is that when an iframe reloads, the renderer for the scroll area and web area get deleted and recreated - so for a test, you can&apos;t add a notification listener to the iframe&apos;s web area, because when the iframe loads, the notification gets sent to the new web area, not the one you were listening to.

Should we have a global addNotificationListener that listens to notifications on any element?

Either that, or I can just do option #2 and send the notification on the first unignored parent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505337</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 16:22:31 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; There should be a web area for the iframe that you can get at. or a scroll area. there are other tests that use iframes that you might look at to see what they do.
&gt; 
&gt; The problem is that when an iframe reloads, the renderer for the scroll area and web area get deleted and recreated - so for a test, you can&apos;t add a notification listener to the iframe&apos;s web area, because when the iframe loads, the notification gets sent to the new web area, not the one you were listening to.
&gt; 
&gt; Should we have a global addNotificationListener that listens to notifications on any element?
&gt; 

I think we should do this. I think part of this might be in place. if you look at accessibilityController there&apos;s some stuff to do notifications there.

&gt; Either that, or I can just do option #2 and send the notification on the first unignored parent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521407</commentid>
    <comment_count>8</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-12-14 16:06:11 -0800</bug_when>
    <thetext>&gt; &gt; Should we have a global addNotificationListener that listens to notifications on any element?

&gt; I think we should do this. I think part of this might be in place.
&gt; if you look at accessibilityController there&apos;s some stuff to do notifications there.

Now that the global addNotificationListener has landed, I&apos;ve simplified this patch and rewritten the test to use it. Now the test is cross-platform with identical expectations on all platforms that support the needed test methods. Tested on Mac (DRT and WKTR) and Chromium. Will upload shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521428</commentid>
    <comment_count>9</comment_count>
      <attachid>119318</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-12-14 16:16:46 -0800</bug_when>
    <thetext>Created attachment 119318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521436</commentid>
    <comment_count>10</comment_count>
      <attachid>119318</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-14 16:23:43 -0800</bug_when>
    <thetext>Comment on attachment 119318
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +

bug title should be first. the description of what&apos;s happening should be after the reviewed by</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521451</commentid>
    <comment_count>11</comment_count>
      <attachid>119326</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-12-14 16:37:00 -0800</bug_when>
    <thetext>Created attachment 119326
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521617</commentid>
    <comment_count>12</comment_count>
      <attachid>119326</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 20:41:07 -0800</bug_when>
    <thetext>Comment on attachment 119326
Patch for landing

Clearing flags on attachment: 119326

Committed r102877: &lt;http://trac.webkit.org/changeset/102877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521618</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 20:41:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119318</attachid>
            <date>2011-12-14 16:16:46 -0800</date>
            <delta_ts>2011-12-14 16:36:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72624-20111214161644.patch</filename>
            <type>text/plain</type>
            <size>13296</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjg0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE0ICBEb21pbmlj
IE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIFdoZW4gYW4gaWZyYW1l
IGZpbmlzaGVzIGxvYWRpbmcsIHNlbmQgYW4gYWNjZXNzaWJpbGl0eSBub3RpZmljYXRpb24KKyAg
ICAgICAgb24gdGhlIHJlbmRlcmVyLCByYXRoZXIgdGhhbiBvbiBhIHBhcmVudCBub2RlLiBUaGUg
b25seSByZWFzb24gaXQgd2FzCisgICAgICAgIGJlaW5nIHBvc3RlZCBvbiBhIHBhcmVudCBiZWZv
cmUgd2FzIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHdheSB0byBkZXRlY3QKKyAgICAgICAgdGhhdCBp
biBhIHRlc3QuIFRoaXMgaXMgc2ltcGxlciBhbmQgbm93IGNvdmVyZWQgYnkgdGhlIHRlc3QuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYyNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZXMgZXhp
c3RpbmcgdGVzdDoKKyAgICAgICAgYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1u
b3RpZmljYXRpb24uaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKToKKwogMjAxMS0xMi0xNCAgQWRyaWVu
bmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVmYWN0
b3IgdGlsZSBkcmF3aW5nIHRvIGJlIG1vcmUgZGF0YS1kcml2ZW4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkocmV2aXNpb24gMTAyNjU3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4MCwxNiArMjI4MCw4IEBAIHZvaWQgRG9jdW1l
bnQ6OmltcGxpY2l0Q2xvc2UoKQogICAgICAgICAgICAgYXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90
aWZpY2F0aW9uKHJlbmRlck9iamVjdCwgQVhPYmplY3RDYWNoZTo6QVhMb2FkQ29tcGxldGUsIHRy
dWUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIEFYTG9hZENvbXBsZXRlIGNhbiBv
bmx5IGJlIHBvc3RlZCBvbiB0aGUgdG9wIGRvY3VtZW50LCBzbyBpZiBpdCdzIGEgZG9jdW1lbnQK
LSAgICAgICAgICAgIC8vIGluIGFuIGlmcmFtZSB0aGF0IGp1c3QgZmluaXNoZWQgbG9hZGluZywg
cG9zdCBhIG5vdGlmaWNhdGlvbiBvbiB0aGUgaWZyYW1lCi0gICAgICAgICAgICAvLyBlbGVtZW50
IGluc3RlYWQuCi0gICAgICAgICAgICBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3ID0gZnJhbWUoKS0+
dmlldygpOwotICAgICAgICAgICAgaWYgKHNjcm9sbFZpZXcgJiYgc2Nyb2xsVmlldy0+aXNGcmFt
ZVZpZXcoKSkgewotICAgICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIg
PSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihzY3JvbGxWaWV3KS0+ZnJhbWUoKS0+b3duZXJFbGVt
ZW50KCk7Ci0gICAgICAgICAgICAgICAgaWYgKG93bmVyICYmIG93bmVyLT5yZW5kZXJlcigpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4SUZyYW1lID0gYXhP
YmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShvd25lci0+cmVuZGVyZXIoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihheElGcmFtZSwgYXhJ
RnJhbWUtPmRvY3VtZW50KCksIEFYT2JqZWN0Q2FjaGU6OkFYTGF5b3V0Q29tcGxldGUsIHRydWUp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGluIGFu
IGlmcmFtZSB0aGF0IGp1c3QgZmluaXNoZWQgbG9hZGluZywgcG9zdCBBWExheW91dENvbXBsZXRl
IGluc3RlYWQuCisgICAgICAgICAgICBheE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24o
cmVuZGVyT2JqZWN0LCBBWE9iamVjdENhY2hlOjpBWExheW91dENvbXBsZXRlLCB0cnVlKTsKICAg
ICAgICAgfQogICAgIH0KICNlbmRpZgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAyODQwKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEt
MTItMTQgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV3cml0ZSB0ZXN0IHRvIHVzZSBhIGdsb2JhbCBhZGROb3RpZmljYXRpb25MaXN0ZW5lciwgd2hp
Y2ggbWFrZXMgaXQKKyAgICAgICAgbW9yZSByb2J1c3QgYW5kIGNyb3NzLXBsYXRmb3JtLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRp
b24uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRp
bmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1NraXBwZWQ6CisKIDIwMTEtMTItMTQgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFJlZmFjdG9yIHRpbGUgZHJhd2luZyB0byBiZSBt
b3JlIGRhdGEtZHJpdmVuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2xvYWRpbmct
aWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9s
b2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDIwIEBACitCZWZvcmUKKworCitBZnRlcgorCitFbmQgb2YgdGVzdAorCitU
aGlzIHRlc3RzIHRoYXQgd2hlbiBhbiBpZnJhbWUgZmluaXNoZXMgbG9hZGluZywgaXQgc2VuZHMg
YSBub3RpZmljYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZp
bmRCeUFjY2Vzc2libGVUaXRsZVN1YnN0cmluZyhyb290LCAnSW5uZXJCdXR0b24nKSAhPSBudWxs
IGlzIGZhbHNlCitHb3Qgbm90aWZpY2F0aW9uIG9uIGlmcmFtZS4KK1BBU1MgZmluZEJ5QWNjZXNz
aWJsZVRpdGxlU3Vic3RyaW5nKHJvb3QsICdJbm5lckJ1dHRvbicpICE9IG51bGwgaXMgdHJ1ZQor
UEFTUyBnb3RJZnJhbWVOb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmlj
YXRpb24uaHRtbAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2OSArMSw5NCBAQAogPGh0bWw+CiA8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBz
cmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8cD5CZWZvcmU8L3A+CisKKzxpZnJhbWUgaWQ9ImlmcmFtZSIgdGl0bGU9
IklubmVyRnJhbWUiPjwvaWZyYW1lPgorCis8cD5BZnRlcjwvcD4KKworPHA+RW5kIG9mIHRlc3Q8
L3A+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFuIGlm
cmFtZSBmaW5pc2hlcyBsb2FkaW5nLCBpdCBzZW5kcyBhIG5vdGlmaWNhdGlvbi4iKTsKIAotICA8
c2NyaXB0PgogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAorICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIC8vIFJlY3Vyc2l2ZWx5IHNlYXJjaCB0aGUgZW50aXJlIGFj
Y2Vzc2liaWxpdHkgdHJlZSBzdGFydGluZyBhdCB0aGUgZ2l2ZW4KKyAgICAvLyBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50IChpbmNsdXNpdmUpIGFuZCByZXR1cm4gdGhlIGVsZW1lbnQgd2hvc2UgdGl0
bGUKKyAgICAvLyBjb250YWlucyB0aGUgZ2l2ZW4gc3RyaW5nLiBUaGlzIG1ha2VzIGl0IHBvc3Np
YmxlIHRvIGZpbmQgYSBub2RlIGV2ZW4KKyAgICAvLyB3aGVuIHRoZXJlIGFyZSBwbGF0Zm9ybSBk
aWZmZXJlbmNlcyBpbiB0aGUgdHJlZSwgaS5lLiBkdWUgdG8gZGlmZmVyZW50CisgICAgLy8gbm9k
ZXMgYmVpbmcgaWdub3JlZC4KKyAgICBmdW5jdGlvbiBmaW5kQnlBY2Nlc3NpYmxlVGl0bGVTdWJz
dHJpbmcoc3RhcnRFbGVtZW50LCB0aXRsZVN1YnN0cmluZykKKyAgICB7CisgICAgICAgIGlmIChz
dGFydEVsZW1lbnQudGl0bGUuaW5kZXhPZih0aXRsZVN1YnN0cmluZykgPj0gMCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGFydEVsZW1lbnQ7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBz
dGFydEVsZW1lbnQuY2hpbGRyZW5Db3VudDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZm91bmQg
PSBmaW5kQnlBY2Nlc3NpYmxlVGl0bGVTdWJzdHJpbmcoc3RhcnRFbGVtZW50LmNoaWxkQXRJbmRl
eChpKSwgdGl0bGVTdWJzdHJpbmcpOworICAgICAgICAgICAgaWYgKGZvdW5kKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmb3VuZDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKwogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHsKLSAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFuIGlmcmFtZSBmaW5pc2hlcyBsb2FkaW5nLCBpdCBz
ZW5kcyBhIGxheW91dCBjb21wbGV0ZSBub3RpZmljYXRpb24uIik7CisgICAgICAgIHdpbmRvdy5n
b3RJZnJhbWVOb3RpZmljYXRpb24gPSBmYWxzZTsKIAogICAgICAgICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAvLyBJbml0aWFsbHksIHRoZSBpZnJh
bWUncyB3ZWJhcmVhIGlzIGVtcHR5LgogICAgICAgICAgICAgd2luZG93LnJvb3QgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudDsKLSAgICAgICAgICAgIHdpbmRvdy5ib2R5ID0g
cm9vdC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgICAgICB3aW5kb3cuaWZyYW1lID0gYm9keS5j
aGlsZEF0SW5kZXgoMSkuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgd2luZG93LnNjcm9s
bGFyZWEgPSBpZnJhbWUuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgd2luZG93LnN1Yndl
YmFyZWEgPSBzY3JvbGxhcmVhLmNoaWxkQXRJbmRleCgwKTsKLSAgICAgICAgICAgIHNob3VsZEJl
RmFsc2UoInN1YndlYmFyZWEuY2hpbGRyZW5Db3VudCA+IDAiKTsKLQotICAgICAgICAgICAgaWZy
YW1lLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uIChub3RpZmljYXRpb24pIHsKLSAg
ICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBnZXQgYSBMYXlvdXRDb21wbGV0ZSBu
b3RpZmljYXRpb24gYW5kIHRoYXQKLSAgICAgICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBhZnRl
ciB0aGUgbm90aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB0aGUgaWZyYW1lJ3MKLSAgICAgICAgICAg
ICAgICAvLyB3ZWJhcmVhIGhhcyBjb250ZW50LgotICAgICAgICAgICAgICAgIGRlYnVnKCdHb3Qg
bm90aWZpY2F0aW9uIG9uIGlmcmFtZTogJyArIG5vdGlmaWNhdGlvbik7Ci0gICAgICAgICAgICAg
ICAgd2luZG93Lm5ld1Njcm9sbGFyZWEgPSBpZnJhbWUuY2hpbGRBdEluZGV4KDApOwotICAgICAg
ICAgICAgICAgIHdpbmRvdy5uZXdTdWJ3ZWJhcmVhID0gbmV3U2Nyb2xsYXJlYS5jaGlsZEF0SW5k
ZXgoMCk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJuZXdTdWJ3ZWJhcmVhLmNoaWxk
cmVuQ291bnQgPiAwIik7CisKKyAgICAgICAgICAgIC8vIEluaXRpYWxseSwgdGhlIGlmcmFtZSBz
aG91bGQgbm90IGJlIGxvYWRlZCwgc28gd2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gZmluZCB0aGlz
IGJ1dHRvbi4KKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImZpbmRCeUFjY2Vzc2libGVUaXRs
ZVN1YnN0cmluZyhyb290LCAnSW5uZXJCdXR0b24nKSAhPSBudWxsIik7CisKKyAgICAgICAgICAg
IHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihm
dW5jdGlvbiAodGFyZ2V0LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgICAgICAgICAvLyBJZ25v
cmUgdGhpcyBub3RpZmljYXRpb24gaWYgaXQncyBub3Qgb24gdGhlIGlmcmFtZS4KKyAgICAgICAg
ICAgICAgICBpZiAodGFyZ2V0LmRlc2NyaXB0aW9uLmluZGV4T2YoIklubmVyRnJhbWUiKSA9PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgZGVidWco
IkdvdCBub3RpZmljYXRpb24gb24gaWZyYW1lLiIpOworICAgICAgICAgICAgICAgIGdvdElmcmFt
ZU5vdGlmaWNhdGlvbiA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRo
ZSBidXR0b24gd2l0aGluIHRoZSBpZnJhbWUgaXMgbm93IHJlYWNoYWJsZSBmcm9tIHRoZSByb290
LgorICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZmluZEJ5QWNjZXNzaWJsZVRpdGxlU3Vi
c3RyaW5nKHJvb3QsICdJbm5lckJ1dHRvbicpICE9IG51bGwiKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CiAKICAgICAgICAgd2luZG93LmlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaWZyYW1lIik7CiAgICAgICAgIGlmcmFtZUVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJw
YXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImdvdElm
cmFtZU5vdGlmaWNhdGlvbiIpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisKKyAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0sIDEwKTsKICAgICAgICAgfSwgZmFsc2UpOwogCiAg
ICAgICAgIC8vIExvYWQgY29udGVudCBpbnRvIHRoZSBpZnJhbWUuIFRoaXMgd2lsbCB0cmlnZ2Vy
IHRoZSBldmVudAogICAgICAgICAvLyBoYW5kbGVyIGFib3ZlLCB3aGljaCB3aWxsIGNoZWNrIHRo
YXQgdGhlIGFjY2Vzc2liaWxpdHkgdHJlZQogICAgICAgICAvLyB3YXMgdXBkYXRlZCB3aXRoIG5l
dyBjb250ZW50LgotICAgICAgICB3aW5kb3cuaWZyYW1lRWxlbWVudC5zcmMgPSAiZGF0YTp0ZXh0
L2h0bWwsPGJvZHk+PGJ1dHRvbj5DbGljayBtZTwvYnV0dG9uPjwvYm9keT4iOwotCisgICAgICAg
IHdpbmRvdy5pZnJhbWVFbGVtZW50LnNyYyA9ICJkYXRhOnRleHQvaHRtbCw8Ym9keT48YnV0dG9u
PklubmVyQnV0dG9uPC9idXR0b24+PC9ib2R5PiI7CiAgICAgfQogCiAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgc2V0VGltZW91dChydW5U
ZXN0LCAxMCk7CiAgICAgfSwgZmFsc2UpOwogCi0gIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci0KLTxwPkJlZm9yZTwvcD4KLQotPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KLQotPHA+
QWZ0ZXI8L3A+Ci0KLTxwPkVuZCBvZiB0ZXN0PC9wPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9zY3JpcHQ+CiAKKzxzY3JpcHQgc3JjPSIu
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0z
ODA5LDcgKzM4MDksNiBAQCBCVUdXSzczMTMzIExJTlVYIDogaW5zcGVjdG9yL2VsZW1lbnRzL3Jl
CiBCVUdXSzcyNzI4IExFT1BBUkQgQ1BVLUNHIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5pbWFn
ZURhdGEucHV0LnVuY2hhbmdlZC5odG1sID0gVEVYVAogQlVHV0s3MjcyOCBMRU9QQVJEIENQVS1D
RyA6IGZhc3QvY2FudmFzL2NhbnZhcy1hbHBoYUltYWdlRGF0YS1iZWhhdmlvci5odG1sID0gVEVY
VAogCi1CVUdXSzcyNzQ3IFdJTiA6IGFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMt
bm90aWZpY2F0aW9uLmh0bWwgPSBQQVNTIFRJTUVPVVQKIEJVR1dLNzI5OTAgV0lOIDogYWNjZXNz
aWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sID0gUEFTUyBUSU1FT1VU
CiBCVUdXSzcyNzYxIDogYWNjZXNzaWJpbGl0eS9hbm9ueW1vdXMtcmVuZGVyLWJsb2NrLWluLWNv
bnRpbnVhdGlvbi1jYXVzZXMtY3Jhc2guaHRtbCA9IFBBU1MgVElNRU9VVAogCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNl
bmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3Rp
ZmljYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDI2NTcpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlm
aWNhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotQmVm
b3JlCi0KLQotQWZ0ZXIKLQotRW5kIG9mIHRlc3QKLQotVGhpcyB0ZXN0cyB0aGF0IHdoZW4gYW4g
aWZyYW1lIGZpbmlzaGVzIGxvYWRpbmcsIGl0IHNlbmRzIGEgbGF5b3V0IGNvbXBsZXRlIG5vdGlm
aWNhdGlvbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc3Vid2ViYXJl
YS5jaGlsZHJlbkNvdW50ID4gMCBpcyBmYWxzZQotR290IG5vdGlmaWNhdGlvbiBvbiBpZnJhbWU6
IExheW91dENvbXBsZXRlCi1QQVNTIG5ld1N1YndlYmFyZWEuY2hpbGRyZW5Db3VudCA+IDAgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShy
ZXZpc2lvbiAxMDI2NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtNDIyLDYgKzQyMiw3IEBAIGFjY2Vzc2liaWxpdHkvbGFiZWwtZm9yLWNv
bnRyb2wtaGl0dGVzdC4KIGFjY2Vzc2liaWxpdHkvbGFuZ3VhZ2UtYXR0cmlidXRlLmh0bWwKIGFj
Y2Vzc2liaWxpdHkvbGVnZW5kLmh0bWwKIGFjY2Vzc2liaWxpdHkvbGlzdHMuaHRtbAorYWNjZXNz
aWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbAogYWNjZXNzaWJp
bGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sCiBhY2Nlc3NpYmlsaXR5L25v
dGlmaWNhdGlvbi1saXN0ZW5lcnMuaHRtbAogYWNjZXNzaWJpbGl0eS9vbmNsaWNrLWhhbmRsZXJz
Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2xvYWRp
bmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2Vu
ZHMtbm90aWZpY2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90
aWZpY2F0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi1C
ZWZvcmUKLQotCi1BZnRlcgotCi1FbmQgb2YgdGVzdAotCi1UaGlzIHRlc3RzIHRoYXQgd2hlbiBh
biBpZnJhbWUgZmluaXNoZXMgbG9hZGluZywgaXQgc2VuZHMgYSBsYXlvdXQgY29tcGxldGUgbm90
aWZpY2F0aW9uLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzdWJ3ZWJh
cmVhLmNoaWxkcmVuQ291bnQgPiAwIGlzIGZhbHNlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDEwMjY1NykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC05Myw5ICs5Myw2IEBAIGZh
c3QvZXZlbnRzL21vdXNlb3Zlci1idXR0b24uaHRtbAogIyBTa2lwcGVkIHVudGlsIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzkyMyBpcyByZXNvbHZlZC4KIHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24tb24tc2Nyb2xsLmh0bWwK
IAotIyBTa2lwcGVkIHVudGlsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjYyNCBpcyByZXNvbHZlZC4KLWFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMt
bm90aWZpY2F0aW9uLmh0bWwKLQogIyBGYWlscyBvbiBNYWMgZm9yIHNvbWUgcmVhc29uOyBiZWlu
ZyBpbnZlc3RpZ2F0ZXMuCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQyODcKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY29va2llLmh0bWwKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZpc2lvbiAxMDI2NTcpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNjA5LDYgKzYwOSw5IEBAIGFj
Y2Vzc2liaWxpdHkvdGgtYXMtdGl0bGUtdWkuaHRtbAogYWNjZXNzaWJpbGl0eS90cmFuc2Zvcm1l
ZC1lbGVtZW50Lmh0bWwKIGFjY2Vzc2liaWxpdHkvdmlzaWJsZS1lbGVtZW50cy5odG1sCiAKKyMg
TmVlZCB0byBpbXBsZW1lbnQgZ2xvYmFsIGFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIGluIFdpbmRv
d3MgRFJUCithY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi5o
dG1sCisKICMgTm8gc3VwcG9ydCBmb3IgcHJpbnQtdG8tcGRmIGluIFdpbmRvd3MgRFJUCiBwcmlu
dGluZy9jb21wb3NpdGluZy1sYXllci1wcmludGluZy5odG1sCiBwcmludGluZy9tZWRpYS1xdWVy
aWVzLXByaW50Lmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119326</attachid>
            <date>2011-12-14 16:37:00 -0800</date>
            <delta_ts>2011-12-14 20:41:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-72624-20111214163657.patch</filename>
            <type>text/plain</type>
            <size>13458</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjg0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTE0ICBEb21pbmlj
IE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIFNlZWluZyBjcmFzaCBp
biBEUlQgYWZ0ZXIgbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgbGFuZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MjQKKwor
ICAgICAgICBXaGVuIGFuIGlmcmFtZSBmaW5pc2hlcyBsb2FkaW5nLCBzZW5kIGFuIGFjY2Vzc2li
aWxpdHkgbm90aWZpY2F0aW9uCisgICAgICAgIG9uIHRoZSByZW5kZXJlciwgcmF0aGVyIHRoYW4g
b24gYSBwYXJlbnQgbm9kZS4gVGhlIG9ubHkgcmVhc29uIGl0IHdhcworICAgICAgICBiZWluZyBw
b3N0ZWQgb24gYSBwYXJlbnQgYmVmb3JlIHdhcyBiZWNhdXNlIHRoZXJlIHdhcyBubyB3YXkgdG8g
ZGV0ZWN0CisgICAgICAgIHRoYXQgaW4gYSB0ZXN0LiBUaGlzIGlzIHNpbXBsZXIgYW5kIG5vdyBj
b3ZlcmVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNo
LgorCisgICAgICAgIFVwZGF0ZXMgZXhpc3RpbmcgdGVzdDoKKyAgICAgICAgYWNjZXNzaWJpbGl0
eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbAorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3Nl
KToKKwogMjAxMS0xMi0xNCAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gUmVmYWN0b3IgdGlsZSBkcmF3aW5nIHRvIGJlIG1vcmUgZGF0YS1k
cml2ZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTAyNjU3KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4MCwx
NiArMjI4MCw4IEBAIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0Q2xvc2UoKQogICAgICAgICAgICAg
YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJlbmRlck9iamVjdCwgQVhPYmplY3RD
YWNoZTo6QVhMb2FkQ29tcGxldGUsIHRydWUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IC8vIEFYTG9hZENvbXBsZXRlIGNhbiBvbmx5IGJlIHBvc3RlZCBvbiB0aGUgdG9wIGRvY3VtZW50
LCBzbyBpZiBpdCdzIGEgZG9jdW1lbnQKLSAgICAgICAgICAgIC8vIGluIGFuIGlmcmFtZSB0aGF0
IGp1c3QgZmluaXNoZWQgbG9hZGluZywgcG9zdCBhIG5vdGlmaWNhdGlvbiBvbiB0aGUgaWZyYW1l
Ci0gICAgICAgICAgICAvLyBlbGVtZW50IGluc3RlYWQuCi0gICAgICAgICAgICBTY3JvbGxWaWV3
KiBzY3JvbGxWaWV3ID0gZnJhbWUoKS0+dmlldygpOwotICAgICAgICAgICAgaWYgKHNjcm9sbFZp
ZXcgJiYgc2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgICAgIEhUTUxG
cmFtZU93bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihzY3JvbGxW
aWV3KS0+ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7Ci0gICAgICAgICAgICAgICAgaWYgKG93bmVy
ICYmIG93bmVyLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGF4SUZyYW1lID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShvd25lci0+
cmVuZGVyZXIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5v
dGlmaWNhdGlvbihheElGcmFtZSwgYXhJRnJhbWUtPmRvY3VtZW50KCksIEFYT2JqZWN0Q2FjaGU6
OkFYTGF5b3V0Q29tcGxldGUsIHRydWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIC8vIGluIGFuIGlmcmFtZSB0aGF0IGp1c3QgZmluaXNoZWQgbG9hZGlu
ZywgcG9zdCBBWExheW91dENvbXBsZXRlIGluc3RlYWQuCisgICAgICAgICAgICBheE9iamVjdENh
Y2hlKCktPnBvc3ROb3RpZmljYXRpb24ocmVuZGVyT2JqZWN0LCBBWE9iamVjdENhY2hlOjpBWExh
eW91dENvbXBsZXRlLCB0cnVlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTAyODQwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTItMTQgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25p
QGdvb2dsZS5jb20+CisKKyAgICAgICAgU2VlaW5nIGNyYXNoIGluIERSVCBhZnRlciBsb2FkaW5n
LWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbCBsYW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYyNAorCisgICAgICAgIFJld3JpdGUgdGVz
dCB0byB1c2UgYSBnbG9iYWwgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIsIHdoaWNoIG1ha2VzIGl0
CisgICAgICAgIG1vcmUgcm9idXN0IGFuZCBjcm9zcy1wbGF0Zm9ybS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbG9hZGlu
Zy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1l
LXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2xvYWRp
bmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6CisKIDIwMTEtMTItMTQgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFJlZmFjdG9yIHRpbGUgZHJhd2luZyB0byBiZSBtb3JlIGRhdGEt
ZHJpdmVuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNl
bmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlm
cmFtZS1zZW5kcy1ub3RpZmljYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDIwIEBACitCZWZvcmUKKworCitBZnRlcgorCitFbmQgb2YgdGVzdAorCitUaGlzIHRlc3Rz
IHRoYXQgd2hlbiBhbiBpZnJhbWUgZmluaXNoZXMgbG9hZGluZywgaXQgc2VuZHMgYSBub3RpZmlj
YXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZpbmRCeUFjY2Vz
c2libGVUaXRsZVN1YnN0cmluZyhyb290LCAnSW5uZXJCdXR0b24nKSAhPSBudWxsIGlzIGZhbHNl
CitHb3Qgbm90aWZpY2F0aW9uIG9uIGlmcmFtZS4KK1BBU1MgZmluZEJ5QWNjZXNzaWJsZVRpdGxl
U3Vic3RyaW5nKHJvb3QsICdJbm5lckJ1dHRvbicpICE9IG51bGwgaXMgdHJ1ZQorUEFTUyBnb3RJ
ZnJhbWVOb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbG9h
ZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRt
bAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5n
LWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2OSAr
MSw5NCBAQAogPGh0bWw+CiA8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCis8cD5CZWZvcmU8L3A+CisKKzxpZnJhbWUgaWQ9ImlmcmFtZSIgdGl0bGU9IklubmVyRnJh
bWUiPjwvaWZyYW1lPgorCis8cD5BZnRlcjwvcD4KKworPHA+RW5kIG9mIHRlc3Q8L3A+CisKKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFuIGlmcmFtZSBmaW5p
c2hlcyBsb2FkaW5nLCBpdCBzZW5kcyBhIG5vdGlmaWNhdGlvbi4iKTsKIAotICA8c2NyaXB0Pgog
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAorICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIC8vIFJlY3Vyc2l2ZWx5IHNlYXJjaCB0aGUgZW50aXJlIGFjY2Vzc2liaWxp
dHkgdHJlZSBzdGFydGluZyBhdCB0aGUgZ2l2ZW4KKyAgICAvLyBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IChpbmNsdXNpdmUpIGFuZCByZXR1cm4gdGhlIGVsZW1lbnQgd2hvc2UgdGl0bGUKKyAgICAv
LyBjb250YWlucyB0aGUgZ2l2ZW4gc3RyaW5nLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZp
bmQgYSBub2RlIGV2ZW4KKyAgICAvLyB3aGVuIHRoZXJlIGFyZSBwbGF0Zm9ybSBkaWZmZXJlbmNl
cyBpbiB0aGUgdHJlZSwgaS5lLiBkdWUgdG8gZGlmZmVyZW50CisgICAgLy8gbm9kZXMgYmVpbmcg
aWdub3JlZC4KKyAgICBmdW5jdGlvbiBmaW5kQnlBY2Nlc3NpYmxlVGl0bGVTdWJzdHJpbmcoc3Rh
cnRFbGVtZW50LCB0aXRsZVN1YnN0cmluZykKKyAgICB7CisgICAgICAgIGlmIChzdGFydEVsZW1l
bnQudGl0bGUuaW5kZXhPZih0aXRsZVN1YnN0cmluZykgPj0gMCkKKyAgICAgICAgICAgIHJldHVy
biBzdGFydEVsZW1lbnQ7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFydEVsZW1l
bnQuY2hpbGRyZW5Db3VudDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZm91bmQgPSBmaW5kQnlB
Y2Nlc3NpYmxlVGl0bGVTdWJzdHJpbmcoc3RhcnRFbGVtZW50LmNoaWxkQXRJbmRleChpKSwgdGl0
bGVTdWJzdHJpbmcpOworICAgICAgICAgICAgaWYgKGZvdW5kKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmb3VuZDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKwog
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHsKLSAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMg
dGVzdHMgdGhhdCB3aGVuIGFuIGlmcmFtZSBmaW5pc2hlcyBsb2FkaW5nLCBpdCBzZW5kcyBhIGxh
eW91dCBjb21wbGV0ZSBub3RpZmljYXRpb24uIik7CisgICAgICAgIHdpbmRvdy5nb3RJZnJhbWVO
b3RpZmljYXRpb24gPSBmYWxzZTsKIAogICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICAvLyBJbml0aWFsbHksIHRoZSBpZnJhbWUncyB3ZWJh
cmVhIGlzIGVtcHR5LgogICAgICAgICAgICAgd2luZG93LnJvb3QgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5yb290RWxlbWVudDsKLSAgICAgICAgICAgIHdpbmRvdy5ib2R5ID0gcm9vdC5jaGls
ZEF0SW5kZXgoMCk7Ci0gICAgICAgICAgICB3aW5kb3cuaWZyYW1lID0gYm9keS5jaGlsZEF0SW5k
ZXgoMSkuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgd2luZG93LnNjcm9sbGFyZWEgPSBp
ZnJhbWUuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgd2luZG93LnN1YndlYmFyZWEgPSBz
Y3JvbGxhcmVhLmNoaWxkQXRJbmRleCgwKTsKLSAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInN1
YndlYmFyZWEuY2hpbGRyZW5Db3VudCA+IDAiKTsKLQotICAgICAgICAgICAgaWZyYW1lLmFkZE5v
dGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uIChub3RpZmljYXRpb24pIHsKLSAgICAgICAgICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBnZXQgYSBMYXlvdXRDb21wbGV0ZSBub3RpZmljYXRp
b24gYW5kIHRoYXQKLSAgICAgICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbm90
aWZpY2F0aW9uIGlzIHJlY2VpdmVkLCB0aGUgaWZyYW1lJ3MKLSAgICAgICAgICAgICAgICAvLyB3
ZWJhcmVhIGhhcyBjb250ZW50LgotICAgICAgICAgICAgICAgIGRlYnVnKCdHb3Qgbm90aWZpY2F0
aW9uIG9uIGlmcmFtZTogJyArIG5vdGlmaWNhdGlvbik7Ci0gICAgICAgICAgICAgICAgd2luZG93
Lm5ld1Njcm9sbGFyZWEgPSBpZnJhbWUuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgICAg
IHdpbmRvdy5uZXdTdWJ3ZWJhcmVhID0gbmV3U2Nyb2xsYXJlYS5jaGlsZEF0SW5kZXgoMCk7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJuZXdTdWJ3ZWJhcmVhLmNoaWxkcmVuQ291bnQg
PiAwIik7CisKKyAgICAgICAgICAgIC8vIEluaXRpYWxseSwgdGhlIGlmcmFtZSBzaG91bGQgbm90
IGJlIGxvYWRlZCwgc28gd2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gZmluZCB0aGlzIGJ1dHRvbi4K
KyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImZpbmRCeUFjY2Vzc2libGVUaXRsZVN1YnN0cmlu
Zyhyb290LCAnSW5uZXJCdXR0b24nKSAhPSBudWxsIik7CisKKyAgICAgICAgICAgIHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbiAo
dGFyZ2V0LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgICAgICAgICAvLyBJZ25vcmUgdGhpcyBu
b3RpZmljYXRpb24gaWYgaXQncyBub3Qgb24gdGhlIGlmcmFtZS4KKyAgICAgICAgICAgICAgICBp
ZiAodGFyZ2V0LmRlc2NyaXB0aW9uLmluZGV4T2YoIklubmVyRnJhbWUiKSA9PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgZGVidWcoIkdvdCBub3Rp
ZmljYXRpb24gb24gaWZyYW1lLiIpOworICAgICAgICAgICAgICAgIGdvdElmcmFtZU5vdGlmaWNh
dGlvbiA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBidXR0b24g
d2l0aGluIHRoZSBpZnJhbWUgaXMgbm93IHJlYWNoYWJsZSBmcm9tIHRoZSByb290LgorICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZmluZEJ5QWNjZXNzaWJsZVRpdGxlU3Vic3RyaW5nKHJv
b3QsICdJbm5lckJ1dHRvbicpICE9IG51bGwiKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
CiAKICAgICAgICAgd2luZG93LmlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaWZyYW1lIik7CiAgICAgICAgIGlmcmFtZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNU
IENPTVBMRVRFPC9zcGFuPicpOwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImdvdElmcmFtZU5vdGlm
aWNhdGlvbiIpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICAgICAgICAgIH0sIDEwKTsKICAgICAgICAgfSwgZmFsc2UpOwogCiAgICAgICAgIC8v
IExvYWQgY29udGVudCBpbnRvIHRoZSBpZnJhbWUuIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBldmVu
dAogICAgICAgICAvLyBoYW5kbGVyIGFib3ZlLCB3aGljaCB3aWxsIGNoZWNrIHRoYXQgdGhlIGFj
Y2Vzc2liaWxpdHkgdHJlZQogICAgICAgICAvLyB3YXMgdXBkYXRlZCB3aXRoIG5ldyBjb250ZW50
LgotICAgICAgICB3aW5kb3cuaWZyYW1lRWxlbWVudC5zcmMgPSAiZGF0YTp0ZXh0L2h0bWwsPGJv
ZHk+PGJ1dHRvbj5DbGljayBtZTwvYnV0dG9uPjwvYm9keT4iOwotCisgICAgICAgIHdpbmRvdy5p
ZnJhbWVFbGVtZW50LnNyYyA9ICJkYXRhOnRleHQvaHRtbCw8Ym9keT48YnV0dG9uPklubmVyQnV0
dG9uPC9idXR0b24+PC9ib2R5PiI7CiAgICAgfQogCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgc2V0VGltZW91dChydW5UZXN0LCAxMCk7
CiAgICAgfSwgZmFsc2UpOwogCi0gIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwPkJl
Zm9yZTwvcD4KLQotPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KLQotPHA+QWZ0ZXI8L3A+
Ci0KLTxwPkVuZCBvZiB0ZXN0PC9wPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9zY3JpcHQ+CiAKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zODA5LDcgKzM4
MDksNiBAQCBCVUdXSzczMTMzIExJTlVYIDogaW5zcGVjdG9yL2VsZW1lbnRzL3JlCiBCVUdXSzcy
NzI4IExFT1BBUkQgQ1BVLUNHIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5pbWFnZURhdGEucHV0
LnVuY2hhbmdlZC5odG1sID0gVEVYVAogQlVHV0s3MjcyOCBMRU9QQVJEIENQVS1DRyA6IGZhc3Qv
Y2FudmFzL2NhbnZhcy1hbHBoYUltYWdlRGF0YS1iZWhhdmlvci5odG1sID0gVEVYVAogCi1CVUdX
SzcyNzQ3IFdJTiA6IGFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0
aW9uLmh0bWwgPSBQQVNTIFRJTUVPVVQKIEJVR1dLNzI5OTAgV0lOIDogYWNjZXNzaWJpbGl0eS9s
b2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sID0gUEFTUyBUSU1FT1VUCiBCVUdXSzcy
NzYxIDogYWNjZXNzaWJpbGl0eS9hbm9ueW1vdXMtcmVuZGVyLWJsb2NrLWluLWNvbnRpbnVhdGlv
bi1jYXVzZXMtY3Jhc2guaHRtbCA9IFBBU1MgVElNRU9VVAogCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlm
aWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDI2NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotQmVmb3JlCi0KLQot
QWZ0ZXIKLQotRW5kIG9mIHRlc3QKLQotVGhpcyB0ZXN0cyB0aGF0IHdoZW4gYW4gaWZyYW1lIGZp
bmlzaGVzIGxvYWRpbmcsIGl0IHNlbmRzIGEgbGF5b3V0IGNvbXBsZXRlIG5vdGlmaWNhdGlvbi4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc3Vid2ViYXJlYS5jaGlsZHJl
bkNvdW50ID4gMCBpcyBmYWxzZQotR290IG5vdGlmaWNhdGlvbiBvbiBpZnJhbWU6IExheW91dENv
bXBsZXRlCi1QQVNTIG5ld1N1YndlYmFyZWEuY2hpbGRyZW5Db3VudCA+IDAgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiAx
MDI2NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtNDIyLDYgKzQyMiw3IEBAIGFjY2Vzc2liaWxpdHkvbGFiZWwtZm9yLWNvbnRyb2wtaGl0
dGVzdC4KIGFjY2Vzc2liaWxpdHkvbGFuZ3VhZ2UtYXR0cmlidXRlLmh0bWwKIGFjY2Vzc2liaWxp
dHkvbGVnZW5kLmh0bWwKIGFjY2Vzc2liaWxpdHkvbGlzdHMuaHRtbAorYWNjZXNzaWJpbGl0eS9s
b2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbAogYWNjZXNzaWJpbGl0eS9sb2Fk
aW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sCiBhY2Nlc3NpYmlsaXR5L25vdGlmaWNhdGlv
bi1saXN0ZW5lcnMuaHRtbAogYWNjZXNzaWJpbGl0eS9vbmNsaWNrLWhhbmRsZXJzLmh0bWwKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1l
LXNlbmRzLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZp
Y2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAyNjU3KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9u
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi1CZWZvcmUKLQot
Ci1BZnRlcgotCi1FbmQgb2YgdGVzdAotCi1UaGlzIHRlc3RzIHRoYXQgd2hlbiBhbiBpZnJhbWUg
ZmluaXNoZXMgbG9hZGluZywgaXQgc2VuZHMgYSBsYXlvdXQgY29tcGxldGUgbm90aWZpY2F0aW9u
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzdWJ3ZWJhcmVhLmNoaWxk
cmVuQ291bnQgPiAwIGlzIGZhbHNlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDEwMjY1NykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC05Myw5ICs5Myw2IEBAIGZhc3QvZXZlbnRz
L21vdXNlb3Zlci1idXR0b24uaHRtbAogIyBTa2lwcGVkIHVudGlsIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzkyMyBpcyByZXNvbHZlZC4KIHBsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24tb24tc2Nyb2xsLmh0bWwKIAotIyBTa2lw
cGVkIHVudGlsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYyNCBp
cyByZXNvbHZlZC4KLWFjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0
aW9uLmh0bWwKLQogIyBGYWlscyBvbiBNYWMgZm9yIHNvbWUgcmVhc29uOyBiZWluZyBpbnZlc3Rp
Z2F0ZXMuCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQy
ODcKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY29va2llLmh0bWwKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCShyZXZpc2lvbiAxMDI2NTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNjA5LDYgKzYwOSw5IEBAIGFjY2Vzc2liaWxp
dHkvdGgtYXMtdGl0bGUtdWkuaHRtbAogYWNjZXNzaWJpbGl0eS90cmFuc2Zvcm1lZC1lbGVtZW50
Lmh0bWwKIGFjY2Vzc2liaWxpdHkvdmlzaWJsZS1lbGVtZW50cy5odG1sCiAKKyMgTmVlZCB0byBp
bXBsZW1lbnQgZ2xvYmFsIGFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIGluIFdpbmRvd3MgRFJUCith
Y2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi5odG1sCisKICMg
Tm8gc3VwcG9ydCBmb3IgcHJpbnQtdG8tcGRmIGluIFdpbmRvd3MgRFJUCiBwcmludGluZy9jb21w
b3NpdGluZy1sYXllci1wcmludGluZy5odG1sCiBwcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50
Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>