<?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>127065</bug_id>
          
          <creation_ts>2014-01-15 14:27:10 -0800</creation_ts>
          <short_desc>AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons</short_desc>
          <delta_ts>2015-11-18 03:12:52 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="James Craig">jcraig</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968469</commentid>
    <comment_count>0</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-01-15 14:27:10 -0800</bug_when>
    <thetext>AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons

e.g. the CC button needs an aria-owns pointer to the CC track selection menu element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968470</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-15 14:28:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/15828906&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968471</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-15 14:28:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/15828899&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139915</commentid>
    <comment_count>3</comment_count>
      <attachid>264923</attachid>
    <who name="Aaron Chu">aaron_chu</who>
    <bug_when>2015-11-06 02:20:40 -0800</bug_when>
    <thetext>Created attachment 264923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139917</commentid>
    <comment_count>4</comment_count>
      <attachid>264924</attachid>
    <who name="Aaron Chu">aaron_chu</who>
    <bug_when>2015-11-06 02:25:43 -0800</bug_when>
    <thetext>Created attachment 264924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139918</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-06 02:27:44 -0800</bug_when>
    <thetext>Attachment 264924 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139921</commentid>
    <comment_count>6</comment_count>
      <attachid>264927</attachid>
    <who name="Aaron Chu">aaron_chu</who>
    <bug_when>2015-11-06 02:38:32 -0800</bug_when>
    <thetext>Created attachment 264927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139971</commentid>
    <comment_count>7</comment_count>
      <attachid>264927</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-06 08:43:46 -0800</bug_when>
    <thetext>Comment on attachment 264927
Patch

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

&gt; Source/WebCore/Modules/mediacontrols/mediaControlsApple.js:1650
&gt; +        this.captionMenu.setAttribute(&apos;id&apos;, &apos;webkitMediaAudioTrackMenu&apos;);

Why the webkitMedia prefix here? I don’t think it has any value. If there’s a real issue with ID conflicts, then the prefix is not sufficient, and we need to solve the problem of ID conflicts. If there’s not, and the ID is scoped to the media controls shadow tree then the ID should just be &apos;audioTrackMenu&apos;.

&gt; Source/WebCore/Modules/mediacontrols/mediaControlsBase.js:1137
&gt; +        this.captionMenu.setAttribute(&apos;id&apos;, &apos;webkitMediaAudioTrackMenu&apos;);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140173</commentid>
    <comment_count>8</comment_count>
      <attachid>264997</attachid>
    <who name="Aaron Chu">aaron_chu</who>
    <bug_when>2015-11-07 01:43:19 -0800</bug_when>
    <thetext>Created attachment 264997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140174</commentid>
    <comment_count>9</comment_count>
      <attachid>264997</attachid>
    <who name="Aaron Chu">aaron_chu</who>
    <bug_when>2015-11-07 01:44:11 -0800</bug_when>
    <thetext>Comment on attachment 264997
Patch

&gt;Subversion Revision: 192096
&gt;diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
&gt;index 44a67820f2c573fd8b4e4bdac3989e194ed5cde5..f3732e9f8ce141cb064789472c70e1f7290c8f3c 100644
&gt;--- a/Source/WebCore/ChangeLog
&gt;+++ b/Source/WebCore/ChangeLog
&gt;@@ -1,3 +1,19 @@
&gt;+2015-11-07  Aaron Chu  &lt;arona.chu@gmail.com&gt;
&gt;+
&gt;+        The Closed Captions button is the only control that has a popup menu. This patch Updates createControls() 
&gt;+        so that when it creates the Closed Captions button, it adds the aria-owns attribute references an id on
&gt;+        the Audio Track Menu, which is also added with this patch.
&gt;+
&gt;+        AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons
&gt;+        https://bugs.webkit.org/show_bug.cgi?id=127065
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        Test: media/accessibility-closed-captions-has-aria-owns.html
&gt;+
&gt;+        * Modules/mediacontrols/mediaControlsApple.js:
&gt;+        (Controller.prototype.createControls):
&gt;+        (Controller.prototype.buildCaptionMenu):
&gt;+        * Modules/mediacontrols/mediaControlsBase.js:
&gt;+        (Controller.prototype.createControls):
&gt;+        (Controller.prototype.buildCaptionMenu):
&gt;+
&gt; 2015-11-05  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
&gt; 
&gt;         [GStreamer] Use RunLoop::Timer instead of GMainLoopSource in video sink
&gt;diff --git a/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js b/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js
&gt;index 7734d1f3a2b8d9c4b25644277d87d97046395a14..b759104f545ce6e27c7b9ca6232d75472f275839 100644
&gt;--- a/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js
&gt;+++ b/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js
&gt;@@ -468,6 +468,7 @@ Controller.prototype = {
&gt;         captionButton.setAttribute(&apos;pseudo&apos;, &apos;-webkit-media-controls-toggle-closed-captions-button&apos;);
&gt;         captionButton.setAttribute(&apos;aria-label&apos;, this.UIString(&apos;Captions&apos;));
&gt;         captionButton.setAttribute(&apos;aria-haspopup&apos;, &apos;true&apos;);
&gt;+        captionButton.setAttribute(&apos;aria-owns&apos;, &apos;audioTrackMenu&apos;);
&gt;         this.listenFor(captionButton, &apos;click&apos;, this.handleCaptionButtonClicked);
&gt; 
&gt;         var fullscreenButton = this.controls.fullscreenButton = document.createElement(&apos;button&apos;);
&gt;@@ -1646,6 +1647,7 @@ Controller.prototype = {
&gt; 
&gt;         this.captionMenu = document.createElement(&apos;div&apos;);
&gt;         this.captionMenu.setAttribute(&apos;pseudo&apos;, &apos;-webkit-media-controls-closed-captions-container&apos;);
&gt;+        this.captionMenu.setAttribute(&apos;id&apos;, &apos;audioTrackMenu&apos;);
&gt;         this.base.appendChild(this.captionMenu);
&gt;         this.captionMenuItems = [];
&gt; 
&gt;diff --git a/Source/WebCore/Modules/mediacontrols/mediaControlsBase.js b/Source/WebCore/Modules/mediacontrols/mediaControlsBase.js
&gt;index 2124d47cfa3826ade6a648f133adf9795fd8b2a5..7c7e2883b2f30667e500eec1e2fd13a1c34c92b6 100644
&gt;--- a/Source/WebCore/Modules/mediacontrols/mediaControlsBase.js
&gt;+++ b/Source/WebCore/Modules/mediacontrols/mediaControlsBase.js
&gt;@@ -396,6 +396,7 @@ Controller.prototype = {
&gt;         captionButton.setAttribute(&apos;pseudo&apos;, &apos;-webkit-media-controls-toggle-closed-captions-button&apos;);
&gt;         captionButton.setAttribute(&apos;aria-label&apos;, this.UIString(&apos;Captions&apos;));
&gt;         captionButton.setAttribute(&apos;aria-haspopup&apos;, &apos;true&apos;);
&gt;+        captionButton.setAttribute(&apos;aria-owns&apos;, &apos;audioTrackMenu&apos;);
&gt;         this.listenFor(captionButton, &apos;click&apos;, this.handleCaptionButtonClicked);
&gt; 
&gt;         var fullscreenButton = this.controls.fullscreenButton = document.createElement(&apos;button&apos;);
&gt;@@ -1133,6 +1134,7 @@ Controller.prototype = {
&gt; 
&gt;         this.captionMenu = document.createElement(&apos;div&apos;);
&gt;         this.captionMenu.setAttribute(&apos;pseudo&apos;, &apos;-webkit-media-controls-closed-captions-container&apos;);
&gt;+        this.captionMenu.setAttribute(&apos;id&apos;, &apos;audioTrackMenu&apos;);
&gt;         this.base.appendChild(this.captionMenu);
&gt;         this.captionMenuItems = [];
&gt; 
&gt;diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
&gt;index ad086dedccf99d5110bca8163cf532b0ecbd042f..c906bfaaeaa3268d16a4c6a5db5ad260219bd463 100644
&gt;--- a/LayoutTests/ChangeLog
&gt;+++ b/LayoutTests/ChangeLog
&gt;@@ -1,3 +1,13 @@
&gt;+2015-11-07  Aaron Chu  &lt;arona.chu@gmail.com&gt;
&gt;+
&gt;+        AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons
&gt;+        https://bugs.webkit.org/show_bug.cgi?id=127065
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        * media/accessibility-closed-captions-has-aria-owns-expected.txt: Added.
&gt;+        * media/accessibility-closed-captions-has-aria-owns.html: Added.
&gt;+
&gt; 2015-11-05  Sukolsak Sakshuwong  &lt;sukolsak@gmail.com&gt;
&gt; 
&gt;         Layout Test js/intl-collator.html is crashing on win 7 debug
&gt;diff --git a/LayoutTests/media/accessibility-closed-captions-has-aria-owns-expected.txt b/LayoutTests/media/accessibility-closed-captions-has-aria-owns-expected.txt
&gt;new file mode 100644
&gt;index 0000000000000000000000000000000000000000..da1ca78d61679aba2e01fd4173d0ce65a7499d76
&gt;--- /dev/null
&gt;+++ b/LayoutTests/media/accessibility-closed-captions-has-aria-owns-expected.txt
&gt;@@ -0,0 +1,28 @@
&gt;+Bug 127065: AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons
&gt;+
&gt;+Does the `aria-owns` on the CC button exist?
&gt;+
&gt;+PASS captionsButtonARIAOwnsValue is not null
&gt;+
&gt;+
&gt;+
&gt;+Did the Audio Track menu show up after the CC button is clicked?
&gt;+
&gt;+PASS captionsTrackMenuHTMLElement is not null
&gt;+
&gt;+
&gt;+
&gt;+Does the `id` of the menu exist?
&gt;+
&gt;+PASS closedCaptionsTrackMenuIdValue is not null
&gt;+
&gt;+
&gt;+
&gt;+Is the `aria-own` on the CC button equal to the `id` on the menu?
&gt;+
&gt;+PASS captionsButtonARIAOwnsValue is closedCaptionsTrackMenuIdValue
&gt;+PASS successfullyParsed is true
&gt;+
&gt;+TEST COMPLETE
&gt;+
&gt;+
&gt;diff --git a/LayoutTests/media/accessibility-closed-captions-has-aria-owns.html b/LayoutTests/media/accessibility-closed-captions-has-aria-owns.html
&gt;new file mode 100644
&gt;index 0000000000000000000000000000000000000000..a7f6ddfc8b9db46740c348e01e65008ec802bb60
&gt;--- /dev/null
&gt;+++ b/LayoutTests/media/accessibility-closed-captions-has-aria-owns.html
&gt;@@ -0,0 +1,91 @@
&gt;+&lt;!DOCTYPE html&gt;
&gt;+&lt;html&gt;
&gt;+&lt;head&gt;
&gt;+    &lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt;+    &lt;script src=&quot;media-file.js&quot;&gt;&lt;/script&gt;
&gt;+    &lt;script src=&quot;video-test.js&quot;&gt;&lt;/script&gt;
&gt;+    &lt;script src=&quot;media-controls.js&quot;&gt;&lt;/script&gt;
&gt;+&lt;/head&gt;
&gt;+&lt;body&gt;
&gt;+    &lt;p&gt; Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=127065&quot;&gt;127065&lt;/a&gt;: AX: Shadow DOM video player controls menus need aria-owns on the trigger buttons&lt;/p&gt;
&gt;+    &lt;p id=&quot;console&quot;&gt;&lt;/p&gt;
&gt;+    &lt;video id=&quot;video&quot; controls width=&quot;500&quot;&gt;
&gt;+        &lt;source src=&quot;../media/content/counting.mp4&quot; type=&quot;video/mp4&quot;&gt;
&gt;+        &lt;track src=&quot;track/captions-webvtt/captions.vtt&quot; label=&quot;English captions&quot; kind=&quot;captions&quot; srclang=&quot;en-us&quot; default&gt;
&gt;+    &lt;/video&gt;
&gt;+
&gt;+    &lt;script&gt;
&gt;+        var captionsButtonHTMLElement;
&gt;+        var captionsButtonARIAOwnsValue;
&gt;+        var captionsTrackMenuHTMLElement;
&gt;+        var closedCaptionsTrackMenuIdValue;
&gt;+        var video;
&gt;+
&gt;+        if(!window.testRunner || !window.internals) {
&gt;+           failTest();
&gt;+        }
&gt;+
&gt;+        testRunner.dumpAsText();
&gt;+
&gt;+        start();
&gt;+
&gt;+        function start() 
&gt;+        {
&gt;+
&gt;+            video = document.getElementById(&apos;video&apos;);
&gt;+            
&gt;+            captionsButtonHTMLElement = mediaControlsElement(internals.shadowRoot(video).firstChild, &apos;-webkit-media-controls-toggle-closed-captions-button&apos;);
&gt;+
&gt;+            checkForCCButtonARIAOwns();
&gt;+
&gt;+            captionsButtonHTMLElement.click();
&gt;+
&gt;+            ensureMenuExist();
&gt;+
&gt;+            checkForCCTrackMenuId();
&gt;+
&gt;+            confirmAriaOwnsRelationship();
&gt;+            
&gt;+            testRunner.notifyDone();
&gt;+        }
&gt;+
&gt;+        function log(message)
&gt;+        {
&gt;+            document.getElementById(&quot;console&quot;).appendChild(document.createTextNode(message + &apos;\n\n&apos;));
&gt;+        }
&gt;+
&gt;+        function checkForCCButtonARIAOwns() 
&gt;+        {
&gt;+            captionsButtonARIAOwnsValue = captionsButtonHTMLElement.getAttribute(&apos;aria-owns&apos;);
&gt;+            log(&apos;Does the `aria-owns` on the CC button exist?&apos;);
&gt;+            shouldNotBe(&apos;captionsButtonARIAOwnsValue&apos;, &apos;null&apos;);
&gt;+            log(&apos;\n&apos;);
&gt;+        }
&gt;+
&gt;+        function ensureMenuExist()
&gt;+        {
&gt;+            captionsTrackMenuHTMLElement = mediaControlsElement(internals.shadowRoot(video).firstChild, &apos;-webkit-media-controls-closed-captions-container&apos;);
&gt;+            log(&apos;Did the Audio Track menu show up after the CC button is clicked?&apos;);
&gt;+            shouldNotBe(&apos;captionsTrackMenuHTMLElement&apos;,&apos;null&apos;);
&gt;+            log(&apos;\n&apos;);
&gt;+        }
&gt;+
&gt;+        function checkForCCTrackMenuId() 
&gt;+        {
&gt;+            closedCaptionsTrackMenuIdValue = captionsTrackMenuHTMLElement.getAttribute(&apos;id&apos;);
&gt;+            log(&apos;Does the `id` of the menu exist?&apos;);
&gt;+            shouldNotBe(&apos;closedCaptionsTrackMenuIdValue&apos;, &apos;null&apos;);
&gt;+            log(&apos;\n&apos;);
&gt;+        }
&gt;+
&gt;+        function confirmAriaOwnsRelationship()
&gt;+        {
&gt;+            log(&apos;Is the `aria-own` on the CC button equal to the `id` on the menu?&apos;);
&gt;+            shouldBe(&apos;captionsButtonARIAOwnsValue&apos;, &apos;closedCaptionsTrackMenuIdValue&apos;);
&gt;+        }
&gt;+
&gt;+    &lt;/script&gt;
&gt;+
&gt;+    &lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt;+&lt;/body&gt;
&gt;+&lt;/html&gt;
&gt;\ No newline at end of file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142788</commentid>
    <comment_count>10</comment_count>
      <attachid>264997</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2015-11-18 02:22:55 -0800</bug_when>
    <thetext>Comment on attachment 264997
Patch

CQ+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142800</commentid>
    <comment_count>11</comment_count>
      <attachid>264997</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-18 03:12:47 -0800</bug_when>
    <thetext>Comment on attachment 264997
Patch

Clearing flags on attachment: 264997

Committed r192570: &lt;http://trac.webkit.org/changeset/192570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142801</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-18 03:12:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264923</attachid>
            <date>2015-11-06 02:20:40 -0800</date>
            <delta_ts>2015-11-06 02:38:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127065-20151106021941.patch</filename>
            <type>text/plain</type>
            <size>5524</size>
            <attacher name="Aaron Chu">aaron_chu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQwODZkZWRjY2Y5OWQ1MTEwYmNh
ODE2M2NmNTMyYjBlY2JkMDQyZi4uOWQzN2I1OThkZmM2NmMwMTYyMGRkMDBhMzIxNjM4NjdlM2Yx
YWQxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTExLTA2ICBBYXJvbiBDaHUgIDxhcm9u
YS5jaHVAZ21haWwuY29tPgorCisgICAgICAgIEFYOiBTaGFkb3cgRE9NIHZpZGVvIHBsYXllciBj
b250cm9scyBtZW51cyBuZWVkIGFyaWEtb3ducyBvbiB0aGUgdHJpZ2dlciBidXR0b25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcwNjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL2FjY2Vz
c2liaWxpdHktY2xvc2VkLWNhcHRpb25zLWhhcy1hcmlhLW93bnMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJp
YS1vd25zLmh0bWw6IEFkZGVkLgorCiAyMDE1LTExLTA1ICBTdWtvbHNhayBTYWtzaHV3b25nICA8
c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGpzL2ludGwtY29sbGF0
b3IuaHRtbCBpcyBjcmFzaGluZyBvbiB3aW4gNyBkZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9u
cy1oYXMtYXJpYS1vd25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTFjYTc4ZDYxNjc5YWJh
MmUwMWZkNDE3M2QwY2U2NWE3NDk5ZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyOCBAQAorQnVnIDEyNzA2NTogQVg6IFNoYWRvdyBET00gdmlkZW8g
cGxheWVyIGNvbnRyb2xzIG1lbnVzIG5lZWQgYXJpYS1vd25zIG9uIHRoZSB0cmlnZ2VyIGJ1dHRv
bnMKKworRG9lcyB0aGUgYGFyaWEtb3duc2Agb24gdGhlIENDIGJ1dHRvbiBleGlzdD8KKworUEFT
UyBjYXB0aW9uc0J1dHRvbkFSSUFPd25zVmFsdWUgaXMgbm90IG51bGwKKworCisKK0RpZCB0aGUg
QXVkaW8gVHJhY2sgbWVudSBzaG93IHVwIGFmdGVyIHRoZSBDQyBidXR0b24gaXMgY2xpY2tlZD8K
KworUEFTUyBjYXB0aW9uc1RyYWNrTWVudUhUTUxFbGVtZW50IGlzIG5vdCBudWxsCisKKworCitE
b2VzIHRoZSBgaWRgIG9mIHRoZSBtZW51IGV4aXN0PworCitQQVNTIGNsb3NlZENhcHRpb25zVHJh
Y2tNZW51SWRWYWx1ZSBpcyBub3QgbnVsbAorCisKKworSXMgdGhlIGBhcmlhLW93bmAgb24gdGhl
IENDIGJ1dHRvbiBlcXVhbCB0byB0aGUgYGlkYCBvbiB0aGUgbWVudT8KKworUEFTUyBjYXB0aW9u
c0J1dHRvbkFSSUFPd25zVmFsdWUgaXMgY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1o
YXMtYXJpYS1vd25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3Nl
ZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5YTg3ZTI2ZGRiZDQ5
NGNkNjliNDhlZmIzMmJjYzAxZmNkZDQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL2FjY2Vzc2liaWxpdHktY2xvc2VkLWNhcHRpb25zLWhhcy1hcmlhLW93bnMuaHRtbApA
QCAtMCwwICsxLDkyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYS1jb250cm9scy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIAorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHA+IEJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDY1Ij4xMjcwNjU8L2E+OiBBWDogU2hhZG93IERPTSB2aWRl
byBwbGF5ZXIgY29udHJvbHMgbWVudXMgbmVlZCBhcmlhLW93bnMgb24gdGhlIHRyaWdnZXIgYnV0
dG9uczwvcD4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHZpZGVvIGlk
PSJ2aWRlbyIgY29udHJvbHMgd2lkdGg9IjUwMCI+CisgICAgICAgICAgICA8c291cmNlIHNyYz0i
Li4vbWVkaWEvY29udGVudC9jb3VudGluZy5tcDQiIHR5cGU9InZpZGVvL21wNCI+CisgICAgICAg
ICAgICA8dHJhY2sgc3JjPSJ0cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMudnR0IiBsYWJl
bD0iRW5nbGlzaCBjYXB0aW9ucyIga2luZD0iY2FwdGlvbnMiIHNyY2xhbmc9ImVuLXVzIiBkZWZh
dWx0PgorICAgICAgICA8L3ZpZGVvPgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2
YXIgY2FwdGlvbnNCdXR0b25IVE1MRWxlbWVudDsKKyAgICAgICAgICAgIHZhciBjYXB0aW9uc0J1
dHRvbkFSSUFPd25zVmFsdWU7CisgICAgICAgICAgICB2YXIgY2FwdGlvbnNUcmFja01lbnVIVE1M
RWxlbWVudDsKKyAgICAgICAgICAgIHZhciBjbG9zZWRDYXB0aW9uc1RyYWNrTWVudUlkVmFsdWU7
CisgICAgICAgICAgICB2YXIgdmlkZW87CisKKyAgICAgICAgICAgIGlmKCF3aW5kb3cudGVzdFJ1
bm5lciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgZmFpbFRlc3QoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisK
KyAgICAgICAgICAgIHN0YXJ0KCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgCisg
ICAgICAgICAgICB7CisKKyAgICAgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd2aWRlbycpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNhcHRp
b25zQnV0dG9uSFRNTEVsZW1lbnQgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChpbnRlcm5hbHMuc2hh
ZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZCwgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xl
LWNsb3NlZC1jYXB0aW9ucy1idXR0b24nKTsKKworICAgICAgICAgICAgICAgIGNoZWNrRm9yQ0NC
dXR0b25BUklBT3ducygpOworCisgICAgICAgICAgICAgICAgY2FwdGlvbnNCdXR0b25IVE1MRWxl
bWVudC5jbGljaygpOworCisgICAgICAgICAgICAgICAgZW5zdXJlTWVudUV4aXN0KCk7CisKKyAg
ICAgICAgICAgICAgICBjaGVja0ZvckNDVHJhY2tNZW51SWQoKTsKKworICAgICAgICAgICAgICAg
IGNvbmZpcm1BcmlhT3duc1JlbGF0aW9uc2hpcCgpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG5cbicpKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JDQ0J1dHRvbkFSSUFPd25zKCkgCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgY2FwdGlvbnNCdXR0b25BUklBT3duc1ZhbHVlID0gY2Fw
dGlvbnNCdXR0b25IVE1MRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtb3ducycpOworICAgICAg
ICAgICAgICAgIGxvZygnRG9lcyB0aGUgYGFyaWEtb3duc2Agb24gdGhlIENDIGJ1dHRvbiBleGlz
dD8nKTsKKyAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgnY2FwdGlvbnNCdXR0b25BUklBT3du
c1ZhbHVlJywgJ251bGwnKTsKKyAgICAgICAgICAgICAgICBsb2coJ1xuJyk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVuc3VyZU1lbnVFeGlzdCgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgY2FwdGlvbnNUcmFja01lbnVIVE1MRWxlbWVudCA9IG1lZGlh
Q29udHJvbHNFbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KHZpZGVvKS5maXJzdENoaWxkLCAn
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyJyk7CisgICAg
ICAgICAgICAgICAgbG9nKCdEaWQgdGhlIEF1ZGlvIFRyYWNrIG1lbnUgc2hvdyB1cCBhZnRlciB0
aGUgQ0MgYnV0dG9uIGlzIGNsaWNrZWQ/Jyk7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90QmUo
J2NhcHRpb25zVHJhY2tNZW51SFRNTEVsZW1lbnQnLCdudWxsJyk7CisgICAgICAgICAgICAgICAg
bG9nKCdcbicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0Zv
ckNDVHJhY2tNZW51SWQoKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjbG9zZWRD
YXB0aW9uc1RyYWNrTWVudUlkVmFsdWUgPSBjYXB0aW9uc1RyYWNrTWVudUhUTUxFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgnaWQnKTsKKyAgICAgICAgICAgICAgICBsb2coJ0RvZXMgdGhlIGBpZGAgb2Yg
dGhlIG1lbnUgZXhpc3Q/Jyk7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90QmUoJ2Nsb3NlZENh
cHRpb25zVHJhY2tNZW51SWRWYWx1ZScsICdudWxsJyk7CisgICAgICAgICAgICAgICAgbG9nKCdc
bicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjb25maXJtQXJpYU93
bnNSZWxhdGlvbnNoaXAoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxvZygnSXMg
dGhlIGBhcmlhLW93bmAgb24gdGhlIENDIGJ1dHRvbiBlcXVhbCB0byB0aGUgYGlkYCBvbiB0aGUg
bWVudT8nKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnY2FwdGlvbnNCdXR0b25BUklBT3du
c1ZhbHVlJywgJ2Nsb3NlZENhcHRpb25zVHJhY2tNZW51SWRWYWx1ZScpOworICAgICAgICAgICAg
fQorCisgICAgICAgIDwvc2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264924</attachid>
            <date>2015-11-06 02:25:43 -0800</date>
            <delta_ts>2015-11-06 02:38:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127065-20151106022444.patch</filename>
            <type>text/plain</type>
            <size>3877</size>
            <attacher name="Aaron Chu">aaron_chu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRhNjc4MjBmMmM1NzNm
ZDhiNGU0YmRhYzM5ODllMTk0ZWQ1Y2RlNS4uOTcyYjE5MjljOWY2N2FhY2Y1MWE2YTZiMTk0NDNk
YTBiNDQwNjI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTExLTA2ICBBYXJv
biBDaHUgIDxhcm9uYS5jaHVAZ21haWwuY29tPgorCisgICAgICAgIEFYOiBTaGFkb3cgRE9NIHZp
ZGVvIHBsYXllciBjb250cm9scyBtZW51cyBuZWVkIGFyaWEtb3ducyBvbiB0aGUgdHJpZ2dlciBi
dXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjcwNjUKKworICAgICAgICBUaGUgQ2xvc2VkIENhcHRpb25zIGJ1dHRvbiBpcyB0aGUgb25seSBj
b250cm9sIHRoYXQgaGFzIGEgcG9wdXAgbWVudS4gVGhpcyBwYXRjaCBVcGRhdGVzIGNyZWF0ZUNv
bnRyb2xzKCkgCisgICAgICAgIHNvIHRoYXQgd2hlbiBpdCBjcmVhdGVzIHRoZSBDbG9zZWQgQ2Fw
dGlvbnMgYnV0dG9uLCBpdCBhZGRzIHRoZSBhcmlhLW93bnMgYXR0cmlidXRlIHJlZmVyZW5jZXMg
YW4gaWQgb24KKwl0aGUgQXVkaW8gVHJhY2sgTWVudSwgd2hpY2ggaXMgYWxzbyBhZGRlZCB3aXRo
IHRoaXMgcGF0Y2guCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEt
b3ducy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9s
c0FwcGxlLmpzOgorICAgICAgICAoQ29udHJvbGxlci5wcm90b3R5cGUuY3JlYXRlQ29udHJvbHMp
OgorICAgICAgICAoQ29udHJvbGxlci5wcm90b3R5cGUuYnVpbGRDYXB0aW9uTWVudSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzOgorICAgICAg
ICAoQ29udHJvbGxlci5wcm90b3R5cGUuY3JlYXRlQ29udHJvbHMpOgorICAgICAgICAoQ29udHJv
bGxlci5wcm90b3R5cGUuYnVpbGRDYXB0aW9uTWVudSk6CisKIDIwMTUtMTEtMDUgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJd
IFVzZSBSdW5Mb29wOjpUaW1lciBpbnN0ZWFkIG9mIEdNYWluTG9vcFNvdXJjZSBpbiB2aWRlbyBz
aW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVk
aWFDb250cm9sc0FwcGxlLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L21lZGlhQ29udHJvbHNBcHBsZS5qcwppbmRleCA3NzM0ZDFmM2EyYjhkOWM0YjI1NjQ0Mjc3ZDg3
ZDk3MDQ2Mzk1YTE0Li5kNGI3MjhmMDY2OWIzZmZhNDIzZDQwY2ExZjI0ZTM3NmY4NTJjMDVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250
cm9sc0FwcGxlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9t
ZWRpYUNvbnRyb2xzQXBwbGUuanMKQEAgLTQ2OCw2ICs0NjgsNyBAQCBDb250cm9sbGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3BzZXVkbycsICct
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uJyk7CiAg
ICAgICAgIGNhcHRpb25CdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5VSVN0
cmluZygnQ2FwdGlvbnMnKSk7CiAgICAgICAgIGNhcHRpb25CdXR0b24uc2V0QXR0cmlidXRlKCdh
cmlhLWhhc3BvcHVwJywgJ3RydWUnKTsKKyAgICAgICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1
dGUoJ2FyaWEtb3ducycsICd3ZWJraXRNZWRpYUF1ZGlvVHJhY2tNZW51Jyk7CiAgICAgICAgIHRo
aXMubGlzdGVuRm9yKGNhcHRpb25CdXR0b24sICdjbGljaycsIHRoaXMuaGFuZGxlQ2FwdGlvbkJ1
dHRvbkNsaWNrZWQpOwogCiAgICAgICAgIHZhciBmdWxsc2NyZWVuQnV0dG9uID0gdGhpcy5jb250
cm9scy5mdWxsc2NyZWVuQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7
CkBAIC0xNjQ2LDYgKzE2NDcsNyBAQCBDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICB0aGlzLmNhcHRpb25NZW51ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAg
ICAgIHRoaXMuY2FwdGlvbk1lbnUuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRp
YS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyJyk7CisgICAgICAgIHRoaXMuY2Fw
dGlvbk1lbnUuc2V0QXR0cmlidXRlKCdpZCcsICd3ZWJraXRNZWRpYUF1ZGlvVHJhY2tNZW51Jyk7
CiAgICAgICAgIHRoaXMuYmFzZS5hcHBlbmRDaGlsZCh0aGlzLmNhcHRpb25NZW51KTsKICAgICAg
ICAgdGhpcy5jYXB0aW9uTWVudUl0ZW1zID0gW107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcwppbmRleCAy
MTI0ZDQ3Y2ZhMzgyNmFkZTZhNjQ4ZjEzM2FkZjk3OTVmZDhiMmE1Li41NjliNDE2Yzk4NjRjNjM2
YzZjMGQ5MDYwMmQ4ZDM4ZWRiZDU3OGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCkBAIC0zOTYsNiAr
Mzk2LDcgQEAgQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNhcHRpb25CdXR0b24u
c2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xv
c2VkLWNhcHRpb25zLWJ1dHRvbicpOwogICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0
ZSgnYXJpYS1sYWJlbCcsIHRoaXMuVUlTdHJpbmcoJ0NhcHRpb25zJykpOwogICAgICAgICBjYXB0
aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1oYXNwb3B1cCcsICd0cnVlJyk7CisgICAgICAg
IGNhcHRpb25CdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLW93bnMnLCAnd2Via2l0TWVkaWFBdWRp
b1RyYWNrTWVudScpOwogICAgICAgICB0aGlzLmxpc3RlbkZvcihjYXB0aW9uQnV0dG9uLCAnY2xp
Y2snLCB0aGlzLmhhbmRsZUNhcHRpb25CdXR0b25DbGlja2VkKTsKIAogICAgICAgICB2YXIgZnVs
bHNjcmVlbkJ1dHRvbiA9IHRoaXMuY29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwpAQCAtMTEzMyw2ICsxMTM0LDcgQEAgQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5jYXB0aW9uTWVudSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICB0aGlzLmNhcHRpb25NZW51LnNldEF0dHJpYnV0
ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRh
aW5lcicpOworICAgICAgICB0aGlzLmNhcHRpb25NZW51LnNldEF0dHJpYnV0ZSgnaWQnLCAnd2Vi
a2l0TWVkaWFBdWRpb1RyYWNrTWVudScpOwogICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQo
dGhpcy5jYXB0aW9uTWVudSk7CiAgICAgICAgIHRoaXMuY2FwdGlvbk1lbnVJdGVtcyA9IFtdOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264927</attachid>
            <date>2015-11-06 02:38:32 -0800</date>
            <delta_ts>2015-11-07 01:43:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127065-20151106023732.patch</filename>
            <type>text/plain</type>
            <size>9380</size>
            <attacher name="Aaron Chu">aaron_chu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRhNjc4MjBmMmM1NzNm
ZDhiNGU0YmRhYzM5ODllMTk0ZWQ1Y2RlNS4uYTUyNDM1ZDkwODk4YzQ2ZmRhMDE5ODE0N2Y1YTBj
NzVlOGFhY2M0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTExLTA2ICBBYXJv
biBDaHUgIDxhcm9uYS5jaHVAZ21haWwuY29tPgorCisgICAgICAgIEFYOiBTaGFkb3cgRE9NIHZp
ZGVvIHBsYXllciBjb250cm9scyBtZW51cyBuZWVkIGFyaWEtb3ducyBvbiB0aGUgdHJpZ2dlciBi
dXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjcwNjUKKworICAgICAgICBUaGUgQ2xvc2VkIENhcHRpb25zIGJ1dHRvbiBpcyB0aGUgb25seSBj
b250cm9sIHRoYXQgaGFzIGEgcG9wdXAgbWVudS4gVGhpcyBwYXRjaCBVcGRhdGVzIGNyZWF0ZUNv
bnRyb2xzKCkgCisgICAgICAgIHNvIHRoYXQgd2hlbiBpdCBjcmVhdGVzIHRoZSBDbG9zZWQgQ2Fw
dGlvbnMgYnV0dG9uLCBpdCBhZGRzIHRoZSBhcmlhLW93bnMgYXR0cmlidXRlIHJlZmVyZW5jZXMg
YW4gaWQgb24KKyAgICAgICAgdGhlIEF1ZGlvIFRyYWNrIE1lbnUsIHdoaWNoIGlzIGFsc28gYWRk
ZWQgd2l0aCB0aGlzIHBhdGNoLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IG1lZGlhL2FjY2Vzc2liaWxpdHktY2xvc2VkLWNhcHRpb25zLWhh
cy1hcmlhLW93bnMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlh
Q29udHJvbHNBcHBsZS5qczoKKyAgICAgICAgKENvbnRyb2xsZXIucHJvdG90eXBlLmNyZWF0ZUNv
bnRyb2xzKToKKyAgICAgICAgKENvbnRyb2xsZXIucHJvdG90eXBlLmJ1aWxkQ2FwdGlvbk1lbnUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qczoK
KyAgICAgICAgKENvbnRyb2xsZXIucHJvdG90eXBlLmNyZWF0ZUNvbnRyb2xzKToKKyAgICAgICAg
KENvbnRyb2xsZXIucHJvdG90eXBlLmJ1aWxkQ2FwdGlvbk1lbnUpOgorCiAyMDE1LTExLTA1ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0
cmVhbWVyXSBVc2UgUnVuTG9vcDo6VGltZXIgaW5zdGVhZCBvZiBHTWFpbkxvb3BTb3VyY2UgaW4g
dmlkZW8gc2luawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL21lZGlhQ29udHJvbHNBcHBsZS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9tZWRpYUNvbnRyb2xzQXBwbGUuanMKaW5kZXggNzczNGQxZjNhMmI4ZDljNGIyNTY0
NDI3N2Q4N2Q5NzA0NjM5NWExNC4uZDRiNzI4ZjA2NjliM2ZmYTQyM2Q0MGNhMWYyNGUzNzZmODUy
YzA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21l
ZGlhQ29udHJvbHNBcHBsZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvbWVkaWFDb250cm9sc0FwcGxlLmpzCkBAIC00NjgsNiArNDY4LDcgQEAgQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNhcHRpb25CdXR0b24uc2V0QXR0cmlidXRlKCdwc2V1
ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRv
bicpOwogICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRo
aXMuVUlTdHJpbmcoJ0NhcHRpb25zJykpOwogICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJp
YnV0ZSgnYXJpYS1oYXNwb3B1cCcsICd0cnVlJyk7CisgICAgICAgIGNhcHRpb25CdXR0b24uc2V0
QXR0cmlidXRlKCdhcmlhLW93bnMnLCAnd2Via2l0TWVkaWFBdWRpb1RyYWNrTWVudScpOwogICAg
ICAgICB0aGlzLmxpc3RlbkZvcihjYXB0aW9uQnV0dG9uLCAnY2xpY2snLCB0aGlzLmhhbmRsZUNh
cHRpb25CdXR0b25DbGlja2VkKTsKIAogICAgICAgICB2YXIgZnVsbHNjcmVlbkJ1dHRvbiA9IHRo
aXMuY29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1
dHRvbicpOwpAQCAtMTY0Niw2ICsxNjQ3LDcgQEAgQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgdGhpcy5jYXB0aW9uTWVudSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgICB0aGlzLmNhcHRpb25NZW51LnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcicpOworICAgICAgICB0
aGlzLmNhcHRpb25NZW51LnNldEF0dHJpYnV0ZSgnaWQnLCAnd2Via2l0TWVkaWFBdWRpb1RyYWNr
TWVudScpOwogICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jYXB0aW9uTWVudSk7
CiAgICAgICAgIHRoaXMuY2FwdGlvbk1lbnVJdGVtcyA9IFtdOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMK
aW5kZXggMjEyNGQ0N2NmYTM4MjZhZGU2YTY0OGYxMzNhZGY5Nzk1ZmQ4YjJhNS4uNTY5YjQxNmM5
ODY0YzYzNmM2YzBkOTA2MDJkOGQzOGVkYmQ1NzhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcwpAQCAt
Mzk2LDYgKzM5Niw3IEBAIENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICBjYXB0aW9u
QnV0dG9uLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9n
Z2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24nKTsKICAgICAgICAgY2FwdGlvbkJ1dHRvbi5zZXRB
dHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLlVJU3RyaW5nKCdDYXB0aW9ucycpKTsKICAgICAg
ICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnLCAndHJ1ZScpOwor
ICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1vd25zJywgJ3dlYmtpdE1l
ZGlhQXVkaW9UcmFja01lbnUnKTsKICAgICAgICAgdGhpcy5saXN0ZW5Gb3IoY2FwdGlvbkJ1dHRv
biwgJ2NsaWNrJywgdGhpcy5oYW5kbGVDYXB0aW9uQnV0dG9uQ2xpY2tlZCk7CiAKICAgICAgICAg
dmFyIGZ1bGxzY3JlZW5CdXR0b24gPSB0aGlzLmNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKQEAgLTExMzMsNiArMTEzNCw3IEBAIENv
bnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgdGhpcy5jYXB0aW9uTWVudS5zZXRB
dHRyaWJ1dGUoJ3BzZXVkbycsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9u
cy1jb250YWluZXInKTsKKyAgICAgICAgdGhpcy5jYXB0aW9uTWVudS5zZXRBdHRyaWJ1dGUoJ2lk
JywgJ3dlYmtpdE1lZGlhQXVkaW9UcmFja01lbnUnKTsKICAgICAgICAgdGhpcy5iYXNlLmFwcGVu
ZENoaWxkKHRoaXMuY2FwdGlvbk1lbnUpOwogICAgICAgICB0aGlzLmNhcHRpb25NZW51SXRlbXMg
PSBbXTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGFkMDg2ZGVkY2NmOTlkNTExMGJjYTgxNjNjZjUzMmIwZWNiZDA0MmYu
LjlkMzdiNTk4ZGZjNjZjMDE2MjBkZDAwYTMyMTYzODY3ZTNmMWFkMWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNS0xMS0wNiAgQWFyb24gQ2h1ICA8YXJvbmEuY2h1QGdtYWlsLmNvbT4KKwor
ICAgICAgICBBWDogU2hhZG93IERPTSB2aWRlbyBwbGF5ZXIgY29udHJvbHMgbWVudXMgbmVlZCBh
cmlhLW93bnMgb24gdGhlIHRyaWdnZXIgYnV0dG9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0
aW9ucy1oYXMtYXJpYS1vd25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
YWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy5odG1sOiBBZGRlZC4K
KwogMjAxNS0xMS0wNSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4K
IAogICAgICAgICBMYXlvdXQgVGVzdCBqcy9pbnRsLWNvbGxhdG9yLmh0bWwgaXMgY3Jhc2hpbmcg
b24gd2luIDcgZGVidWcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2FjY2Vzc2liaWxp
dHktY2xvc2VkLWNhcHRpb25zLWhhcy1hcmlhLW93bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGExY2E3OGQ2MTY3OWFiYTJlMDFmZDQxNzNkMGNlNjVhNzQ5
OWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2FjY2Vzc2liaWxpdHkt
Y2xvc2VkLWNhcHRpb25zLWhhcy1hcmlhLW93bnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjgg
QEAKK0J1ZyAxMjcwNjU6IEFYOiBTaGFkb3cgRE9NIHZpZGVvIHBsYXllciBjb250cm9scyBtZW51
cyBuZWVkIGFyaWEtb3ducyBvbiB0aGUgdHJpZ2dlciBidXR0b25zCisKK0RvZXMgdGhlIGBhcmlh
LW93bnNgIG9uIHRoZSBDQyBidXR0b24gZXhpc3Q/CisKK1BBU1MgY2FwdGlvbnNCdXR0b25BUklB
T3duc1ZhbHVlIGlzIG5vdCBudWxsCisKKworCitEaWQgdGhlIEF1ZGlvIFRyYWNrIG1lbnUgc2hv
dyB1cCBhZnRlciB0aGUgQ0MgYnV0dG9uIGlzIGNsaWNrZWQ/CisKK1BBU1MgY2FwdGlvbnNUcmFj
a01lbnVIVE1MRWxlbWVudCBpcyBub3QgbnVsbAorCisKKworRG9lcyB0aGUgYGlkYCBvZiB0aGUg
bWVudSBleGlzdD8KKworUEFTUyBjbG9zZWRDYXB0aW9uc1RyYWNrTWVudUlkVmFsdWUgaXMgbm90
IG51bGwKKworCisKK0lzIHRoZSBgYXJpYS1vd25gIG9uIHRoZSBDQyBidXR0b24gZXF1YWwgdG8g
dGhlIGBpZGAgb24gdGhlIG1lbnU/CisKK1BBU1MgY2FwdGlvbnNCdXR0b25BUklBT3duc1ZhbHVl
IGlzIGNsb3NlZENhcHRpb25zVHJhY2tNZW51SWRWYWx1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvYWNjZXNzaWJpbGl0eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEt
b3ducy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWE4N2UyNmRkYmQ0OTRjZDY5YjQ4ZWZiMzJiY2MwMWZj
ZGQ0NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hY2Nlc3NpYmlsaXR5
LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWEtY29udHJvbHMuanMi
Pjwvc2NyaXB0PgorICAgICAgICAKKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxw
PiBCdWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NzA2NSI+MTI3MDY1PC9hPjogQVg6IFNoYWRvdyBET00gdmlkZW8gcGxheWVyIGNvbnRyb2xzIG1l
bnVzIG5lZWQgYXJpYS1vd25zIG9uIHRoZSB0cmlnZ2VyIGJ1dHRvbnM8L3A+CisgICAgICAgIDxw
IGlkPSJjb25zb2xlIj48L3A+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGNvbnRyb2xzIHdp
ZHRoPSI1MDAiPgorICAgICAgICAgICAgPHNvdXJjZSBzcmM9Ii4uL21lZGlhL2NvbnRlbnQvY291
bnRpbmcubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgorICAgICAgICAgICAgPHRyYWNrIHNyYz0idHJh
Y2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLnZ0dCIgbGFiZWw9IkVuZ2xpc2ggY2FwdGlvbnMi
IGtpbmQ9ImNhcHRpb25zIiBzcmNsYW5nPSJlbi11cyIgZGVmYXVsdD4KKyAgICAgICAgPC92aWRl
bz4KKworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIGNhcHRpb25zQnV0dG9uSFRN
TEVsZW1lbnQ7CisgICAgICAgICAgICB2YXIgY2FwdGlvbnNCdXR0b25BUklBT3duc1ZhbHVlOwor
ICAgICAgICAgICAgdmFyIGNhcHRpb25zVHJhY2tNZW51SFRNTEVsZW1lbnQ7CisgICAgICAgICAg
ICB2YXIgY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlOworICAgICAgICAgICAgdmFyIHZp
ZGVvOworCisgICAgICAgICAgICBpZighd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgICAgIGZhaWxUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICBzdGFydCgp
OworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpIAorICAgICAgICAgICAgeworCisgICAg
ICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlkZW8nKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYXB0aW9uc0J1dHRvbkhUTUxFbGVtZW50
ID0gbWVkaWFDb250cm9sc0VsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0
Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uJyk7CisKKyAgICAgICAgICAgICAgICBjaGVja0ZvckNDQnV0dG9uQVJJQU93bnMoKTsKKwor
ICAgICAgICAgICAgICAgIGNhcHRpb25zQnV0dG9uSFRNTEVsZW1lbnQuY2xpY2soKTsKKworICAg
ICAgICAgICAgICAgIGVuc3VyZU1lbnVFeGlzdCgpOworCisgICAgICAgICAgICAgICAgY2hlY2tG
b3JDQ1RyYWNrTWVudUlkKCk7CisKKyAgICAgICAgICAgICAgICBjb25maXJtQXJpYU93bnNSZWxh
dGlvbnNoaXAoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSht
ZXNzYWdlICsgJ1xuXG4nKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGNoZWNrRm9yQ0NCdXR0b25BUklBT3ducygpIAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGNhcHRpb25zQnV0dG9uQVJJQU93bnNWYWx1ZSA9IGNhcHRpb25zQnV0dG9uSFRNTEVsZW1l
bnQuZ2V0QXR0cmlidXRlKCdhcmlhLW93bnMnKTsKKyAgICAgICAgICAgICAgICBsb2coJ0RvZXMg
dGhlIGBhcmlhLW93bnNgIG9uIHRoZSBDQyBidXR0b24gZXhpc3Q/Jyk7CisgICAgICAgICAgICAg
ICAgc2hvdWxkTm90QmUoJ2NhcHRpb25zQnV0dG9uQVJJQU93bnNWYWx1ZScsICdudWxsJyk7Cisg
ICAgICAgICAgICAgICAgbG9nKCdcbicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBlbnN1cmVNZW51RXhpc3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGNhcHRpb25zVHJhY2tNZW51SFRNTEVsZW1lbnQgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChpbnRl
cm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZCwgJy13ZWJraXQtbWVkaWEtY29udHJv
bHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcicpOworICAgICAgICAgICAgICAgIGxvZygnRGlk
IHRoZSBBdWRpbyBUcmFjayBtZW51IHNob3cgdXAgYWZ0ZXIgdGhlIENDIGJ1dHRvbiBpcyBjbGlj
a2VkPycpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdEJlKCdjYXB0aW9uc1RyYWNrTWVudUhU
TUxFbGVtZW50JywnbnVsbCcpOworICAgICAgICAgICAgICAgIGxvZygnXG4nKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JDQ1RyYWNrTWVudUlkKCkgCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZh
bHVlID0gY2FwdGlvbnNUcmFja01lbnVIVE1MRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJyk7Cisg
ICAgICAgICAgICAgICAgbG9nKCdEb2VzIHRoZSBgaWRgIG9mIHRoZSBtZW51IGV4aXN0PycpOwor
ICAgICAgICAgICAgICAgIHNob3VsZE5vdEJlKCdjbG9zZWRDYXB0aW9uc1RyYWNrTWVudUlkVmFs
dWUnLCAnbnVsbCcpOworICAgICAgICAgICAgICAgIGxvZygnXG4nKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gY29uZmlybUFyaWFPd25zUmVsYXRpb25zaGlwKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsb2coJ0lzIHRoZSBgYXJpYS1vd25gIG9uIHRo
ZSBDQyBidXR0b24gZXF1YWwgdG8gdGhlIGBpZGAgb24gdGhlIG1lbnU/Jyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ2NhcHRpb25zQnV0dG9uQVJJQU93bnNWYWx1ZScsICdjbG9zZWRDYXB0
aW9uc1RyYWNrTWVudUlkVmFsdWUnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8L3Njcmlw
dD4KKworICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264997</attachid>
            <date>2015-11-07 01:43:19 -0800</date>
            <delta_ts>2015-11-18 03:12:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127065-20151107014318.patch</filename>
            <type>text/plain</type>
            <size>8775</size>
            <attacher name="Aaron Chu">aaron_chu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRhNjc4MjBmMmM1NzNm
ZDhiNGU0YmRhYzM5ODllMTk0ZWQ1Y2RlNS4uZjM3MzJlOWY4Y2UxNDFjYjA2NDc4OTQ3MmM3MGUx
ZjcyOTBjOGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTExLTA3ICBBYXJv
biBDaHUgIDxhcm9uYS5jaHVAZ21haWwuY29tPgorCisgICAgICAgIEFYOiBTaGFkb3cgRE9NIHZp
ZGVvIHBsYXllciBjb250cm9scyBtZW51cyBuZWVkIGFyaWEtb3ducyBvbiB0aGUgdHJpZ2dlciBi
dXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjcwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0OiBtZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLmh0
bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQXBwbGUu
anM6CisgICAgICAgIChDb250cm9sbGVyLnByb3RvdHlwZS5jcmVhdGVDb250cm9scyk6CisgICAg
ICAgIChDb250cm9sbGVyLnByb3RvdHlwZS5idWlsZENhcHRpb25NZW51KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanM6CisgICAgICAgIChDb250
cm9sbGVyLnByb3RvdHlwZS5jcmVhdGVDb250cm9scyk6CisgICAgICAgIChDb250cm9sbGVyLnBy
b3RvdHlwZS5idWlsZENhcHRpb25NZW51KToKKwogMjAxNS0xMS0wNSAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVXNlIFJ1
bkxvb3A6OlRpbWVyIGluc3RlYWQgb2YgR01haW5Mb29wU291cmNlIGluIHZpZGVvIHNpbmsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRy
b2xzQXBwbGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFD
b250cm9sc0FwcGxlLmpzCmluZGV4IDc3MzRkMWYzYTJiOGQ5YzRiMjU2NDQyNzdkODdkOTcwNDYz
OTVhMTQuLmI3NTkxMDRmNTQ1Y2U2ZTI3YzdiOWNhNjIzMmQ3NTQ3MmYyNzU4MzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQXBw
bGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29u
dHJvbHNBcHBsZS5qcwpAQCAtNDY4LDYgKzQ2OCw3IEBAIENvbnRyb2xsZXIucHJvdG90eXBlID0g
ewogICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQt
bWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24nKTsKICAgICAgICAg
Y2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLlVJU3RyaW5nKCdD
YXB0aW9ucycpKTsKICAgICAgICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGFz
cG9wdXAnLCAndHJ1ZScpOworICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJp
YS1vd25zJywgJ2F1ZGlvVHJhY2tNZW51Jyk7CiAgICAgICAgIHRoaXMubGlzdGVuRm9yKGNhcHRp
b25CdXR0b24sICdjbGljaycsIHRoaXMuaGFuZGxlQ2FwdGlvbkJ1dHRvbkNsaWNrZWQpOwogCiAg
ICAgICAgIHZhciBmdWxsc2NyZWVuQnV0dG9uID0gdGhpcy5jb250cm9scy5mdWxsc2NyZWVuQnV0
dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CkBAIC0xNjQ2LDYgKzE2NDcs
NyBAQCBDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLmNhcHRpb25NZW51
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHRoaXMuY2FwdGlvbk1l
bnUuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQt
Y2FwdGlvbnMtY29udGFpbmVyJyk7CisgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUuc2V0QXR0cmli
dXRlKCdpZCcsICdhdWRpb1RyYWNrTWVudScpOwogICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hp
bGQodGhpcy5jYXB0aW9uTWVudSk7CiAgICAgICAgIHRoaXMuY2FwdGlvbk1lbnVJdGVtcyA9IFtd
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVk
aWFDb250cm9sc0Jhc2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
bWVkaWFDb250cm9sc0Jhc2UuanMKaW5kZXggMjEyNGQ0N2NmYTM4MjZhZGU2YTY0OGYxMzNhZGY5
Nzk1ZmQ4YjJhNS4uN2M3ZTI4ODNiMmYzMDY2N2U1MDBlZWMxZTJmZDEzYTFjMzRjOTJiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJv
bHNCYXNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRp
YUNvbnRyb2xzQmFzZS5qcwpAQCAtMzk2LDYgKzM5Niw3IEBAIENvbnRyb2xsZXIucHJvdG90eXBl
ID0gewogICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24nKTsKICAgICAg
ICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLlVJU3RyaW5n
KCdDYXB0aW9ucycpKTsKICAgICAgICAgY2FwdGlvbkJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEt
aGFzcG9wdXAnLCAndHJ1ZScpOworICAgICAgICBjYXB0aW9uQnV0dG9uLnNldEF0dHJpYnV0ZSgn
YXJpYS1vd25zJywgJ2F1ZGlvVHJhY2tNZW51Jyk7CiAgICAgICAgIHRoaXMubGlzdGVuRm9yKGNh
cHRpb25CdXR0b24sICdjbGljaycsIHRoaXMuaGFuZGxlQ2FwdGlvbkJ1dHRvbkNsaWNrZWQpOwog
CiAgICAgICAgIHZhciBmdWxsc2NyZWVuQnV0dG9uID0gdGhpcy5jb250cm9scy5mdWxsc2NyZWVu
QnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CkBAIC0xMTMzLDYgKzEx
MzQsNyBAQCBDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLmNhcHRpb25N
ZW51ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHRoaXMuY2FwdGlv
bk1lbnUuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9z
ZWQtY2FwdGlvbnMtY29udGFpbmVyJyk7CisgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUuc2V0QXR0
cmlidXRlKCdpZCcsICdhdWRpb1RyYWNrTWVudScpOwogICAgICAgICB0aGlzLmJhc2UuYXBwZW5k
Q2hpbGQodGhpcy5jYXB0aW9uTWVudSk7CiAgICAgICAgIHRoaXMuY2FwdGlvbk1lbnVJdGVtcyA9
IFtdOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYWQwODZkZWRjY2Y5OWQ1MTEwYmNhODE2M2NmNTMyYjBlY2JkMDQyZi4u
YzkwNmJmYWFlYWEzMjY4ZDE2YTRjNmE1ZGI1YWQyNjAyMTliZDQ2MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE1LTExLTA3ICBBYXJvbiBDaHUgIDxhcm9uYS5jaHVAZ21haWwuY29tPgorCisg
ICAgICAgIEFYOiBTaGFkb3cgRE9NIHZpZGVvIHBsYXllciBjb250cm9scyBtZW51cyBuZWVkIGFy
aWEtb3ducyBvbiB0aGUgdHJpZ2dlciBidXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL2FjY2Vzc2liaWxpdHktY2xvc2VkLWNhcHRp
b25zLWhhcy1hcmlhLW93bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9h
Y2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLmh0bWw6IEFkZGVkLgor
CiAyMDE1LTExLTA1ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgog
CiAgICAgICAgIExheW91dCBUZXN0IGpzL2ludGwtY29sbGF0b3IuaHRtbCBpcyBjcmFzaGluZyBv
biB3aW4gNyBkZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYWNjZXNzaWJpbGl0
eS1jbG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYTFjYTc4ZDYxNjc5YWJhMmUwMWZkNDE3M2QwY2U2NWE3NDk5
ZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYWNjZXNzaWJpbGl0eS1j
bG9zZWQtY2FwdGlvbnMtaGFzLWFyaWEtb3ducy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBA
QAorQnVnIDEyNzA2NTogQVg6IFNoYWRvdyBET00gdmlkZW8gcGxheWVyIGNvbnRyb2xzIG1lbnVz
IG5lZWQgYXJpYS1vd25zIG9uIHRoZSB0cmlnZ2VyIGJ1dHRvbnMKKworRG9lcyB0aGUgYGFyaWEt
b3duc2Agb24gdGhlIENDIGJ1dHRvbiBleGlzdD8KKworUEFTUyBjYXB0aW9uc0J1dHRvbkFSSUFP
d25zVmFsdWUgaXMgbm90IG51bGwKKworCisKK0RpZCB0aGUgQXVkaW8gVHJhY2sgbWVudSBzaG93
IHVwIGFmdGVyIHRoZSBDQyBidXR0b24gaXMgY2xpY2tlZD8KKworUEFTUyBjYXB0aW9uc1RyYWNr
TWVudUhUTUxFbGVtZW50IGlzIG5vdCBudWxsCisKKworCitEb2VzIHRoZSBgaWRgIG9mIHRoZSBt
ZW51IGV4aXN0PworCitQQVNTIGNsb3NlZENhcHRpb25zVHJhY2tNZW51SWRWYWx1ZSBpcyBub3Qg
bnVsbAorCisKKworSXMgdGhlIGBhcmlhLW93bmAgb24gdGhlIENDIGJ1dHRvbiBlcXVhbCB0byB0
aGUgYGlkYCBvbiB0aGUgbWVudT8KKworUEFTUyBjYXB0aW9uc0J1dHRvbkFSSUFPd25zVmFsdWUg
aXMgY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1vd25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9hY2Nlc3NpYmlsaXR5LWNsb3NlZC1jYXB0aW9ucy1oYXMtYXJpYS1v
d25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdmNmRkZmM4YjlkYjQ2NzQwYzM0OGUwMWU2NTAwOGVjODAy
YmI2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2FjY2Vzc2liaWxpdHkt
Y2xvc2VkLWNhcHRpb25zLWhhcy1hcmlhLW93bnMuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0ibWVkaWEtY29udHJvbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisgICAgPHA+IEJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3MDY1Ij4xMjcwNjU8L2E+OiBBWDogU2hhZG93IERPTSB2aWRlbyBwbGF5
ZXIgY29udHJvbHMgbWVudXMgbmVlZCBhcmlhLW93bnMgb24gdGhlIHRyaWdnZXIgYnV0dG9uczwv
cD4KKyAgICA8cCBpZD0iY29uc29sZSI+PC9wPgorICAgIDx2aWRlbyBpZD0idmlkZW8iIGNvbnRy
b2xzIHdpZHRoPSI1MDAiPgorICAgICAgICA8c291cmNlIHNyYz0iLi4vbWVkaWEvY29udGVudC9j
b3VudGluZy5tcDQiIHR5cGU9InZpZGVvL21wNCI+CisgICAgICAgIDx0cmFjayBzcmM9InRyYWNr
L2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy52dHQiIGxhYmVsPSJFbmdsaXNoIGNhcHRpb25zIiBr
aW5kPSJjYXB0aW9ucyIgc3JjbGFuZz0iZW4tdXMiIGRlZmF1bHQ+CisgICAgPC92aWRlbz4KKwor
ICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjYXB0aW9uc0J1dHRvbkhUTUxFbGVtZW50OworICAg
ICAgICB2YXIgY2FwdGlvbnNCdXR0b25BUklBT3duc1ZhbHVlOworICAgICAgICB2YXIgY2FwdGlv
bnNUcmFja01lbnVIVE1MRWxlbWVudDsKKyAgICAgICAgdmFyIGNsb3NlZENhcHRpb25zVHJhY2tN
ZW51SWRWYWx1ZTsKKyAgICAgICAgdmFyIHZpZGVvOworCisgICAgICAgIGlmKCF3aW5kb3cudGVz
dFJ1bm5lciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAgICAgICBmYWlsVGVzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAg
c3RhcnQoKTsKKworICAgICAgICBmdW5jdGlvbiBzdGFydCgpIAorICAgICAgICB7CisKKyAgICAg
ICAgICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvJyk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGNhcHRpb25zQnV0dG9uSFRNTEVsZW1lbnQgPSBtZWRpYUNvbnRy
b2xzRWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24nKTsKKworICAg
ICAgICAgICAgY2hlY2tGb3JDQ0J1dHRvbkFSSUFPd25zKCk7CisKKyAgICAgICAgICAgIGNhcHRp
b25zQnV0dG9uSFRNTEVsZW1lbnQuY2xpY2soKTsKKworICAgICAgICAgICAgZW5zdXJlTWVudUV4
aXN0KCk7CisKKyAgICAgICAgICAgIGNoZWNrRm9yQ0NUcmFja01lbnVJZCgpOworCisgICAgICAg
ICAgICBjb25maXJtQXJpYU93bnNSZWxhdGlvbnNoaXAoKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBsb2cobWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSht
ZXNzYWdlICsgJ1xuXG4nKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0Zv
ckNDQnV0dG9uQVJJQU93bnMoKSAKKyAgICAgICAgeworICAgICAgICAgICAgY2FwdGlvbnNCdXR0
b25BUklBT3duc1ZhbHVlID0gY2FwdGlvbnNCdXR0b25IVE1MRWxlbWVudC5nZXRBdHRyaWJ1dGUo
J2FyaWEtb3ducycpOworICAgICAgICAgICAgbG9nKCdEb2VzIHRoZSBgYXJpYS1vd25zYCBvbiB0
aGUgQ0MgYnV0dG9uIGV4aXN0PycpOworICAgICAgICAgICAgc2hvdWxkTm90QmUoJ2NhcHRpb25z
QnV0dG9uQVJJQU93bnNWYWx1ZScsICdudWxsJyk7CisgICAgICAgICAgICBsb2coJ1xuJyk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBlbnN1cmVNZW51RXhpc3QoKQorICAgICAgICB7
CisgICAgICAgICAgICBjYXB0aW9uc1RyYWNrTWVudUhUTUxFbGVtZW50ID0gbWVkaWFDb250cm9s
c0VsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQsICctd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXInKTsKKyAgICAgICAgICAg
IGxvZygnRGlkIHRoZSBBdWRpbyBUcmFjayBtZW51IHNob3cgdXAgYWZ0ZXIgdGhlIENDIGJ1dHRv
biBpcyBjbGlja2VkPycpOworICAgICAgICAgICAgc2hvdWxkTm90QmUoJ2NhcHRpb25zVHJhY2tN
ZW51SFRNTEVsZW1lbnQnLCdudWxsJyk7CisgICAgICAgICAgICBsb2coJ1xuJyk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvckNDVHJhY2tNZW51SWQoKSAKKyAgICAgICAg
eworICAgICAgICAgICAgY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlID0gY2FwdGlvbnNU
cmFja01lbnVIVE1MRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJyk7CisgICAgICAgICAgICBsb2co
J0RvZXMgdGhlIGBpZGAgb2YgdGhlIG1lbnUgZXhpc3Q/Jyk7CisgICAgICAgICAgICBzaG91bGRO
b3RCZSgnY2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlJywgJ251bGwnKTsKKyAgICAgICAg
ICAgIGxvZygnXG4nKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNvbmZpcm1Bcmlh
T3duc1JlbGF0aW9uc2hpcCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZygnSXMgdGhlIGBh
cmlhLW93bmAgb24gdGhlIENDIGJ1dHRvbiBlcXVhbCB0byB0aGUgYGlkYCBvbiB0aGUgbWVudT8n
KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdjYXB0aW9uc0J1dHRvbkFSSUFPd25zVmFsdWUnLCAn
Y2xvc2VkQ2FwdGlvbnNUcmFja01lbnVJZFZhbHVlJyk7CisgICAgICAgIH0KKworICAgIDwvc2Ny
aXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>