<?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>97958</bug_id>
          
          <creation_ts>2012-09-28 18:19:07 -0700</creation_ts>
          <short_desc>[chromium] Support zooming focused node for mobile devices</short_desc>
          <delta_ts>2012-10-05 14:40:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>98556</dependson>
          <blocked>91648</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>johnme</cc>
    
    <cc>olilan</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yusufo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>731111</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-09-28 18:19:07 -0700</bug_when>
    <thetext>[chromium] Support zooming focused node for mobile devices</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731112</commentid>
    <comment_count>1</comment_count>
      <attachid>166341</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-09-28 18:20:28 -0700</bug_when>
    <thetext>Created attachment 166341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731115</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 18:24:58 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731803</commentid>
    <comment_count>3</comment_count>
      <attachid>166341</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 10:51:54 -0700</bug_when>
    <thetext>Comment on attachment 166341
Patch

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

Can we test this patch?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2640
&gt; +    IntRect boxrect = focusedNode-&gt;document()-&gt;view()-&gt;contentsToWindow(pixelSnappedIntRect(focusedNode-&gt;Node::boundingBox()));

Rather than having a comment explaining what this variable represents, we prefer to put that information into the name: boxrect -&gt; textboxRect

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2656
&gt; +    IntRect docBox = boxrect;

docBox -&gt; ? textboxRectInDocumentCoordinates?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2659
&gt; +    IntRect docCaret = caret;

docCaret -&gt; ? carentInDocumentCoordinates?

Should we have a function on document()-&gt;view() called windowToContents?  It seems strange to manually do this work here.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2699
&gt; +    if (needAnimation)
&gt; +        startPageScaleAnimation(newOffset, false, newScale, scrollAndScaleAnimationDurationInSeconds);

We don&apos;t actually need to do anything if needAnimation is false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731945</commentid>
    <comment_count>4</comment_count>
      <attachid>166341</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-10-01 13:51:26 -0700</bug_when>
    <thetext>Comment on attachment 166341
Patch

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

Yusuf has offered to write unit tests for this code, he&apos;ll be following up.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2699
&gt;&gt; +        startPageScaleAnimation(newOffset, false, newScale, scrollAndScaleAnimationDurationInSeconds);
&gt; 
&gt; We don&apos;t actually need to do anything if needAnimation is false?

Correct.  It means we&apos;ve decided the textbox is already onscreen and legible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731957</commentid>
    <comment_count>5</comment_count>
      <attachid>166341</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 13:59:41 -0700</bug_when>
    <thetext>Comment on attachment 166341
Patch

Marking r- pending unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735012</commentid>
    <comment_count>6</comment_count>
      <attachid>167173</attachid>
    <who name="">yusufo</who>
    <bug_when>2012-10-04 14:28:31 -0700</bug_when>
    <thetext>Created attachment 167173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735109</commentid>
    <comment_count>7</comment_count>
      <attachid>167198</attachid>
    <who name="">yusufo</who>
    <bug_when>2012-10-04 16:26:55 -0700</bug_when>
    <thetext>Created attachment 167198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735122</commentid>
    <comment_count>8</comment_count>
      <attachid>167198</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-10-04 16:45:48 -0700</bug_when>
    <thetext>Comment on attachment 167198
Patch

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

LGTM, minor nit:

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2658
&gt; +    IntRect carentInDocumentCoordinates = caret;

Spelling: no &quot;n&quot; in &quot;caret&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735133</commentid>
    <comment_count>9</comment_count>
      <attachid>167206</attachid>
    <who name="">yusufo</who>
    <bug_when>2012-10-04 16:53:46 -0700</bug_when>
    <thetext>Created attachment 167206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735281</commentid>
    <comment_count>10</comment_count>
      <attachid>167206</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 20:51:57 -0700</bug_when>
    <thetext>Comment on attachment 167206
Patch

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

New failing tests:
WebFrameTest.DivScrollIntoEditableTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735755</commentid>
    <comment_count>11</comment_count>
      <attachid>167349</attachid>
    <who name="">yusufo</who>
    <bug_when>2012-10-05 10:43:45 -0700</bug_when>
    <thetext>Created attachment 167349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735756</commentid>
    <comment_count>12</comment_count>
    <who name="">yusufo</who>
    <bug_when>2012-10-05 10:45:13 -0700</bug_when>
    <thetext>Looks like I had misnamed one of the variables while making the name changes Adam requested on the previous patch. The test should be passing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735912</commentid>
    <comment_count>13</comment_count>
      <attachid>167349</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-05 13:24:17 -0700</bug_when>
    <thetext>Comment on attachment 167349
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735919</commentid>
    <comment_count>14</comment_count>
      <attachid>167349</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 13:30:50 -0700</bug_when>
    <thetext>Comment on attachment 167349
Patch

Clearing flags on attachment: 167349

Committed r130545: &lt;http://trac.webkit.org/changeset/130545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735921</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 13:30:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735948</commentid>
    <comment_count>16</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-05 14:14:23 -0700</bug_when>
    <thetext>Fixed Chromium Windows build in http://trac.webkit.org/changeset/130550. The change introduced a warning:

6&gt;tests\WebFrameTest.cpp(507): warning C4305: &apos;initializing&apos; : truncation from &apos;double&apos; to &apos;float&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735959</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 14:31:36 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 98556</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735974</commentid>
    <comment_count>18</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-05 14:40:51 -0700</bug_when>
    <thetext>The failing unit test was disabled in http://trac.webkit.org/changeset/130552.

Re-enabling it is tracked by:
https://bugs.webkit.org/show_bug.cgi?id=98558</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166341</attachid>
            <date>2012-09-28 18:20:28 -0700</date>
            <delta_ts>2012-10-04 14:28:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97958-20120928181944.patch</filename>
            <type>text/plain</type>
            <size>9478</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDIwMzk5YWE4YWQwNDU3NTE1NmVkOTlkMjFlOTQ1YTM2MDFlMGNmMjYuLjllOWNlNzMyODc5ZGQ4
ODBlYTlhYWU5NmJlOGZiMmIzMTJhNTljNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMjggIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBTdXBwb3J0IHpvb21pbmcgZm9jdXNlZCBu
b2RlIGZvciBtb2JpbGUgZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc5NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHVuZm9ya3MgdGhlIEFuZHJvaWQgdmVyc2lvbiBvZiBzY3JvbGxG
b2N1c2VkTm9kZUludG9SZWN0KCkuCisgICAgICAgIEkgYWRkZWQgYSBuZXcgc2V0dGluZyBhdXRv
Wm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUgdG8gdHVybgorICAgICAgICBpdCBvbiwgc2lu
Y2Ugbm90IGFsbCBwbGF0Zm9ybXMgd2l0aCBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpIHdhbnQgdGhp
cy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OldlYlNl
dHRpbmdzSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0QXV0b1pv
b21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjphdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdp
YmxlU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzY3JvbGxGb2N1c2VkTm9kZUludG9SZWN0KToKKwogMjAxMi0wOS0y
OCAgWXVzdWYgT3p1eXNhbCAgPHl1c3Vmb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1
bV1BZGQgRG91YmxlVGFwIGdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCmluZGV4IDVmZjIwNmIwYTU3ZTQwZTI3ZWQyNTE1ZDBjMTIwODQ1OTJhZTk5
NzIuLjcwMTM2N2UxNmI3ODIwZmFjODdlMzI5Mzc4NTliMzdkOTkxYjMzYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtNzQsNiArNzQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1
dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29va2llRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNpdmVG
b250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04p
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CmluZGV4IDRjYzNlZjcyN2FhNThkMDc0NDgwYjEzNjk0MThjZmU1ZmIwYmE5M2UuLjc4YTQwMjRi
YjBjMzJiNTdkNGU5ZThlODAwMjdkN2EzMWMyYTZlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNiArNTQsNyBAQCBXZWJTZXR0
aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX3Zp
ZXdwb3J0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IoZmFsc2UpCiAgICAgLCBtX2dlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVk
KHRydWUpCisgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShmYWxzZSkK
ICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNpemUoMjU2LCAyNTYpKQogICAgICwgbV9tYXhV
bnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1MTIpKQogewpAQCAtMTQwLDYgKzE0MSwxMSBA
QCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseURlZgogICAgIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IgPSBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcjsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEF1dG9ab29tRm9jdXNlZE5vZGVU
b0xlZ2libGVTY2FsZShib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSkKK3sK
KyAgICBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSA9IGF1dG9ab29tRm9jdXNl
ZE5vZGVUb0xlZ2libGVTY2FsZTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFRleHRB
dXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5k
ZXggZTllMDFiZmNkNzQ2ZTE1MDYxYTczMjdmYWViNTI1MjhmOTc1MzZiYi4uZDNkZGZjOTMzZjhk
OWM3OGQ0YjM1YTQ5YTNjY2UwZWNmY2NlZTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRBcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxl
U2NhbGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJzaXZlRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29k
ZSA9IFVTQ1JJUFRfQ09NTU9OKTsKQEAgLTE2MCw2ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzaG93UGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BhaW50UmVjdHM7IH0KICAg
ICBib29sIHJlbmRlclZTeW5jRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNF
bmFibGVkOyB9CiAgICAgYm9vbCBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNv
bXBvc2l0b3I7IH0KKyAgICBib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlOyB9CiAg
ICAgYm9vbCBnZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCgpIHsgcmV0dXJuIG1fZ2VzdHVyZVRh
cEhpZ2hsaWdodEVuYWJsZWQ7IH0KICAgICBXZWJTaXplIGRlZmF1bHRUaWxlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVmYXVsdFRpbGVTaXplOyB9CiAgICAgV2ViU2l6ZSBtYXhVbnRpbGVkTGF5
ZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhVbnRpbGVkTGF5ZXJTaXplOyB9CkBAIC0xNzMs
NiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdmlld3BvcnRFbmFibGVkOwogICAgIGJv
b2wgbV9hcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKICAgICBib29s
IG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7CisgICAgYm9vbCBtX2F1dG9ab29tRm9jdXNl
ZE5vZGVUb0xlZ2libGVTY2FsZTsKICAgICBXZWJTaXplIG1fZGVmYXVsdFRpbGVTaXplOwogICAg
IFdlYlNpemUgbV9tYXhVbnRpbGVkTGF5ZXJTaXplOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA5MmQzNWZlZGRiYWJjYjRiZGE3NTNlNTM0MmM5
YzhmNTM2M2RjMWJhLi44ZGJmOWIxOGJiNzIzNDA0MTI2ZTgzYTMzMDFiMTgyMThhODVkMTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMDAsNiAr
MjAwLDEwIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVS
YXRpbyA9IDEuMjsKIAogLy8gQ29uc3RhbnRzIGZvciB6b29taW5nIGluIG9uIGEgZm9jdXNlZCB0
ZXh0IGZpZWxkLgogc3RhdGljIGNvbnN0IGRvdWJsZSBzY3JvbGxBbmRTY2FsZUFuaW1hdGlvbkR1
cmF0aW9uSW5TZWNvbmRzID0gMC4yOworc3RhdGljIGNvbnN0IGludCBtaW5SZWFkYWJsZUNhcmV0
SGVpZ2h0ID0gMTg7CitzdGF0aWMgY29uc3QgZmxvYXQgbWluU2NhbGVDaGFuZ2VUb1RyaWdnZXJa
b29tID0gMS4wNWY7CitzdGF0aWMgY29uc3QgZmxvYXQgbGVmdEJveFJhdGlvID0gMC4zZjsKK3N0
YXRpYyBjb25zdCBpbnQgY2FyZXRQYWRkaW5nID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0yNjIxLDggKzI2MjUsNzkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsRm9jdXNlZE5v
ZGVJbnRvUmVjdChjb25zdCBXZWJSZWN0JiByZWN0KQogICAgIE5vZGUqIGZvY3VzZWROb2RlID0g
Zm9jdXNlZFdlYkNvcmVOb2RlKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSB8
fCAhZm9jdXNlZE5vZGUgfHwgIWZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBFbGVtZW50KiBlbGVtZW50Tm9kZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihmb2N1c2VkTm9kZSk7Ci0gICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsRWxlbWVudFRvUmVjdChl
bGVtZW50Tm9kZSwgSW50UmVjdChyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWln
aHQpKTsKKworICAgIGlmICghbV93ZWJTZXR0aW5ncy0+YXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVn
aWJsZVNjYWxlKCkpIHsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudE5vZGUgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4oZm9jdXNlZE5vZGUpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zY3JvbGxF
bGVtZW50VG9SZWN0KGVsZW1lbnROb2RlLCBJbnRSZWN0KHJlY3QueCwgcmVjdC55LCByZWN0Lndp
ZHRoLCByZWN0LmhlaWdodCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxF
KEdFU1RVUkVfRVZFTlRTKQorICAgIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKworICAgIC8vICdib3hyZWN0JyBpcyB0aGUg
Zm9ybSB0ZXh0Ym94IHJlY3QsIGFuZCAnY2FyZXQnIGlzIHJlY3QgZW5jb21wYXNzaW5nIHRoZQor
ICAgIC8vIGJsaW5raW5nIGN1cnNvci4KKyAgICBJbnRSZWN0IGJveHJlY3QgPSBmb2N1c2VkTm9k
ZS0+ZG9jdW1lbnQoKS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHBpeGVsU25hcHBlZEludFJl
Y3QoZm9jdXNlZE5vZGUtPk5vZGU6OmJvdW5kaW5nQm94KCkpKTsKKyAgICBXZWJSZWN0IGNhcmV0
LCBlbmQ7CisgICAgc2VsZWN0aW9uQm91bmRzKGNhcmV0LCBlbmQpOworCisgICAgLy8gUGljayBh
IHNjYWxlIHdoaWNoIGlzIHJlYXNvbmFibHkgcmVhZGFibGUuIFRoaXMgaXMgdGhlIHNjYWxlIGF0
IHdoaWNoCisgICAgLy8gdGhlIGNhcmV0IGhlaWdodCB3aWxsIGJlY29tZSBtaW5SZWFkYWJsZUNh
cmV0SGVpZ2h0IChhZGp1c3RlZCBmb3IgZHBpCisgICAgLy8gYW5kIGZvbnQgc2NhbGUgZmFjdG9y
KS4KKyAgICBmbG9hdCB0YXJnZXRTY2FsZSA9IGRldmljZVNjYWxlRmFjdG9yKCk7CisjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKKyAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+c2V0dGluZ3Mo
KSkKKyAgICAgICAgdGFyZ2V0U2NhbGUgKj0gcGFnZSgpLT5zZXR0aW5ncygpLT50ZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcigpOworI2VuZGlmCisgICAgY29uc3QgZmxvYXQgbmV3U2NhbGUg
PSBjbGFtcFBhZ2VTY2FsZUZhY3RvclRvTGltaXRzKHBhZ2VTY2FsZUZhY3RvcigpICogbWluUmVh
ZGFibGVDYXJldEhlaWdodCAqIHRhcmdldFNjYWxlIC8gY2FyZXQuaGVpZ2h0KTsKKyAgICBjb25z
dCBmbG9hdCBkZWx0YVNjYWxlID0gbmV3U2NhbGUgLyBwYWdlU2NhbGVGYWN0b3IoKTsKKworICAg
IC8vIENvbnZlcnQgdGhlIHJlY3RzIHRvIGFic29sdXRlIHNwYWNlIGluIHRoZSBuZXcgc2NhbGUu
CisgICAgSW50UmVjdCBkb2NCb3ggPSBib3hyZWN0OworICAgIGRvY0JveC5tb3ZlKG1haW5GcmFt
ZSgpLT5zY3JvbGxPZmZzZXQoKSk7CisgICAgZG9jQm94LnNjYWxlKGRlbHRhU2NhbGUpOworICAg
IEludFJlY3QgZG9jQ2FyZXQgPSBjYXJldDsKKyAgICBkb2NDYXJldC5tb3ZlKG1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKSk7CisgICAgZG9jQ2FyZXQuc2NhbGUoZGVsdGFTY2FsZSk7CisKKyAg
ICBJbnRQb2ludCBuZXdPZmZzZXQ7CisgICAgaWYgKGRvY0JveC53aWR0aCgpIDw9IG1fc2l6ZS53
aWR0aCkgeworICAgICAgICAvLyBGaWVsZCBpcyBuYXJyb3dlciB0aGFuIHNjcmVlbi4gVHJ5IHRv
IGxlYXZlIHBhZGRpbmcgb24gbGVmdCBzbyBmaWVsZCdzCisgICAgICAgIC8vIGxhYmVsIGlzIHZp
c2libGUsIGJ1dCBpdCdzIG1vcmUgaW1wb3J0YW50IHRvIGVuc3VyZSBlbnRpcmUgZmllbGQgaXMK
KyAgICAgICAgLy8gb25zY3JlZW4uCisgICAgICAgIGludCBpZGVhbExlZnRQYWRkaW5nID0gbV9z
aXplLndpZHRoICogbGVmdEJveFJhdGlvOworICAgICAgICBpbnQgbWF4TGVmdFBhZGRpbmdLZWVw
aW5nQm94T25zY3JlZW4gPSBtX3NpemUud2lkdGggLSBkb2NCb3gud2lkdGgoKTsKKyAgICAgICAg
bmV3T2Zmc2V0LnNldFgoZG9jQm94LngoKSAtIG1pbjxpbnQ+KGlkZWFsTGVmdFBhZGRpbmcsIG1h
eExlZnRQYWRkaW5nS2VlcGluZ0JveE9uc2NyZWVuKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gRmllbGQgaXMgd2lkZXIgdGhhbiBzY3JlZW4uIFRyeSB0byBsZWZ0LWFsaWduIGZpZWxkLCB1
bmxlc3MgY2FyZXQgd291bGQKKyAgICAgICAgLy8gYmUgb2Zmc2NyZWVuLCBpbiB3aGljaCBjYXNl
IHJpZ2h0LWFsaWduIHRoZSBjYXJldC4KKyAgICAgICAgbmV3T2Zmc2V0LnNldFgobWF4PGludD4o
ZG9jQm94LngoKSwgZG9jQ2FyZXQueCgpICsgZG9jQ2FyZXQud2lkdGgoKSArIGNhcmV0UGFkZGlu
ZyAtIG1fc2l6ZS53aWR0aCkpOworICAgIH0KKyAgICBpZiAoZG9jQm94LmhlaWdodCgpIDw9IG1f
c2l6ZS5oZWlnaHQpIHsKKyAgICAgICAgLy8gRmllbGQgaXMgc2hvcnRlciB0aGFuIHNjcmVlbi4g
VmVydGljYWxseSBjZW50ZXIgaXQuCisgICAgICAgIG5ld09mZnNldC5zZXRZKGRvY0JveC55KCkg
LSAobV9zaXplLmhlaWdodCAtIGRvY0JveC5oZWlnaHQoKSkgLyAyKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBGaWVsZCBpcyB0YWxsZXIgdGhhbiBzY3JlZW4uIFRyeSB0byB0b3AgYWxpZ24g
ZmllbGQsIHVubGVzcyBjYXJldCB3b3VsZAorICAgICAgICAvLyBiZSBvZmZzY3JlZW4sIGluIHdo
aWNoIGNhc2UgYm90dG9tLWFsaWduIHRoZSBjYXJldC4KKyAgICAgICAgbmV3T2Zmc2V0LnNldFko
bWF4PGludD4oZG9jQm94LnkoKSwgZG9jQ2FyZXQueSgpICsgZG9jQ2FyZXQuaGVpZ2h0KCkgKyBj
YXJldFBhZGRpbmcgLSBtX3NpemUuaGVpZ2h0KSk7CisgICAgfQorCisgICAgYm9vbCBuZWVkQW5p
bWF0aW9uID0gZmFsc2U7CisgICAgLy8gSWYgd2UgYXJlIGF0IGxlc3MgdGhhbiB0aGUgdGFyZ2V0
IHpvb20gbGV2ZWwsIHpvb20gaW4uCisgICAgaWYgKGRlbHRhU2NhbGUgPiBtaW5TY2FsZUNoYW5n
ZVRvVHJpZ2dlclpvb20pCisgICAgICAgIG5lZWRBbmltYXRpb24gPSB0cnVlOworICAgIC8vIElm
IHRoZSBjYXJldCBpcyBvZmZzY3JlZW4sIHRoZW4gYW5pbWF0ZS4KKyAgICBJbnRSZWN0IHNpemVS
ZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7CisgICAgaWYgKCFzaXplUmVj
dC5jb250YWlucyhjYXJldCkpCisgICAgICAgIG5lZWRBbmltYXRpb24gPSB0cnVlOworICAgIC8v
IElmIHRoZSBib3ggaXMgcGFydGlhbGx5IG9mZnNjcmVlbiBhbmQgaXQncyBwb3NzaWJsZSB0byBi
cmluZyBpdCBmdWxseQorICAgIC8vIG9uc2NyZWVuLCB0aGVuIGFuaW1hdGUuCisgICAgaWYgKHNp
emVSZWN0LmNvbnRhaW5zKGRvY0JveC53aWR0aCgpLCBkb2NCb3guaGVpZ2h0KCkpICYmICFzaXpl
UmVjdC5jb250YWlucyhib3hyZWN0KSkKKyAgICAgICAgbmVlZEFuaW1hdGlvbiA9IHRydWU7CisK
KyAgICBpZiAobmVlZEFuaW1hdGlvbikKKyAgICAgICAgc3RhcnRQYWdlU2NhbGVBbmltYXRpb24o
bmV3T2Zmc2V0LCBmYWxzZSwgbmV3U2NhbGUsIHNjcm9sbEFuZFNjYWxlQW5pbWF0aW9uRHVyYXRp
b25JblNlY29uZHMpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmFkdmFuY2VGb2N1
cyhib29sIHJldmVyc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167173</attachid>
            <date>2012-10-04 14:28:31 -0700</date>
            <delta_ts>2012-10-04 16:26:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97958-20121004142740.patch</filename>
            <type>text/plain</type>
            <size>15377</size>
            <attacher>yusufo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGRiMDUwYzI4YTJmY2E2YTdlOThlZjBkYTYwZjdhOWIxYTg3MTRhNGMuLjg4ZWE1ZjQ1YWViZTZm
OWY0YWNlMjUwZjExY2M4OGZjNDA1N2MyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTItMTAtMDQgIFl1c3VmIE96dXlzYWwgIDx5dXN1Zm9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFN1cHBvcnQgem9vbWluZyBmb2N1c2VkIG5vZGUg
Zm9yIG1vYmlsZSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzk1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgdW5mb3JrcyB0aGUgQW5kcm9pZCB2ZXJzaW9uIG9mIHNjcm9sbEZvY3Vz
ZWROb2RlSW50b1JlY3QoKS5BIG5ldyBzZXR0aW5nCisgICAgICAgIGF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZSB3YXMgYWRkZWQgdG8gdHVybiBpdCBvbiwgc2luY2Ugbm90IGFsbAor
ICAgICAgICBwbGF0Zm9ybXMgd2l0aCBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpIHdhbnQgdGhpcy4K
KworICAgICAgICBUZXN0OiBXZWJGcmFtZVRlc3QuRGl2U2Nyb2xsSW50b0VkaXRhYmxlVGVzdAor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGlu
Z3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBdXRvWm9vbUZv
Y3VzZWROb2RlVG9MZWdpYmxlU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OmF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVT
Y2FsZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QpOgorICAgICAgICAqIHRlc3Rz
L1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pv
b21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTAyICBTYWRydWwg
SGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIE1ha2Ugc3VyZSB0aGUgdG91Y2gtcG9pbnRzIGluIHRoZSB0b3VjaC1ldmVudHMgaGF2ZSB0
aGUgY29ycmVjdCBzdGF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0
aW5ncy5oCmluZGV4IDVmZjIwNmIwYTU3ZTQwZTI3ZWQyNTE1ZDBjMTIwODQ1OTJhZTk5NzIuLmJm
ODcxZTMzNmU3NDU5MThhMDc5OTAxNGE3NzI0OTc4ZGJiMDg0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1
dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb29raWVFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDRjYzNlZjcyN2FhNThkMDc0NDgwYjEzNjk0
MThjZmU1ZmIwYmE5M2UuLjc4YTQwMjRiYjBjMzJiNTdkNGU5ZThlODAwMjdkN2EzMWMyYTZlNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApA
QCAtNTQsNiArNTQsNyBAQCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5n
cyogc2V0dGluZ3MpCiAgICAgLCBtX3ZpZXdwb3J0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXBw
bHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpCiAgICAgLCBtX2dl
c3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKHRydWUpCisgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNpemUo
MjU2LCAyNTYpKQogICAgICwgbV9tYXhVbnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1MTIp
KQogewpAQCAtMTQwLDYgKzE0MSwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlE
ZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBhcHBseURlZgogICAgIG1f
YXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgPSBhcHBseURlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6
OnNldEF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShib29sIGF1dG9ab29tRm9jdXNl
ZE5vZGVUb0xlZ2libGVTY2FsZSkKK3sKKyAgICBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2li
bGVTY2FsZSA9IGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKK30KKwogdm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7
CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggZTllMDFiZmNkNzQ2ZTE1MDYxYTczMjdmYWViNTI1
MjhmOTc1MzZiYi4uZDNkZGZjOTMzZjhkOWM3OGQ0YjM1YTQ5YTNjY2UwZWNmY2NlZTM3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTY2LDYg
KzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBcHBseURlZmF1bHREZXZpY2VT
Y2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1
dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRv
Wm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVF
bmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzaXZlRm9udEZhbWlseShjb25z
dCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKQEAgLTE2MCw2ICsx
NjEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG93UGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvd1BhaW50UmVjdHM7IH0KICAgICBib29sIHJlbmRlclZTeW5jRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNFbmFibGVkOyB9CiAgICAgYm9vbCBhcHBseURlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZWZh
dWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7IH0KKyAgICBib29sIGF1dG9ab29tRm9j
dXNlZE5vZGVUb0xlZ2libGVTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1pvb21Gb2N1c2Vk
Tm9kZVRvTGVnaWJsZVNjYWxlOyB9CiAgICAgYm9vbCBnZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxl
ZCgpIHsgcmV0dXJuIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7IH0KICAgICBXZWJTaXpl
IGRlZmF1bHRUaWxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFRpbGVTaXplOyB9CiAg
ICAgV2ViU2l6ZSBtYXhVbnRpbGVkTGF5ZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhVbnRp
bGVkTGF5ZXJTaXplOyB9CkBAIC0xNzMsNiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
dmlld3BvcnRFbmFibGVkOwogICAgIGJvb2wgbV9hcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcjsKICAgICBib29sIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7Cisg
ICAgYm9vbCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKICAgICBXZWJTaXpl
IG1fZGVmYXVsdFRpbGVTaXplOwogICAgIFdlYlNpemUgbV9tYXhVbnRpbGVkTGF5ZXJTaXplOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAzMTZi
MTY1MWMwMWU0N2EwZTNhYjUwOWYzOGY1MzVkNjZlNzBmYzc3Li4xOGRjYTMzMjEwNzAxZTRlN2Qx
Njk5ZjE1MmFkNzgxNTE3MGU4NTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCkBAIC0yMDAsNiArMjAwLDEwIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBkb3Vi
bGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CiAKIC8vIENvbnN0YW50cyBmb3Ig
em9vbWluZyBpbiBvbiBhIGZvY3VzZWQgdGV4dCBmaWVsZC4KIHN0YXRpYyBjb25zdCBkb3VibGUg
c2Nyb2xsQW5kU2NhbGVBbmltYXRpb25EdXJhdGlvbkluU2Vjb25kcyA9IDAuMjsKK3N0YXRpYyBj
b25zdCBpbnQgbWluUmVhZGFibGVDYXJldEhlaWdodCA9IDE4Oworc3RhdGljIGNvbnN0IGZsb2F0
IG1pblNjYWxlQ2hhbmdlVG9UcmlnZ2VyWm9vbSA9IDEuMDVmOworc3RhdGljIGNvbnN0IGZsb2F0
IGxlZnRCb3hSYXRpbyA9IDAuM2Y7CitzdGF0aWMgY29uc3QgaW50IGNhcmV0UGFkZGluZyA9IDEw
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMjYyMSw4ICsyNjI1LDc4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QoY29uc3QgV2ViUmVjdCYgcmVjdCkK
ICAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IGZvY3VzZWRXZWJDb3JlTm9kZSgpOwogICAgIGlmICgh
ZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkgfHwgIWZvY3VzZWROb2RlIHx8ICFmb2N1c2VkTm9kZS0+
aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgRWxlbWVudCogZWxlbWVudE5v
ZGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZm9jdXNlZE5vZGUpOwotICAgIGZyYW1lLT52aWV3
KCktPnNjcm9sbEVsZW1lbnRUb1JlY3QoZWxlbWVudE5vZGUsIEludFJlY3QocmVjdC54LCByZWN0
LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KSk7CisKKyAgICBpZiAoIW1fd2ViU2V0dGluZ3Mt
PmF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSgpKSB7CisgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnROb2RlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGZvY3VzZWROb2RlKTsKKyAgICAg
ICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsRWxlbWVudFRvUmVjdChlbGVtZW50Tm9kZSwgSW50UmVj
dChyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBmb2N1c2VkTm9k
ZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisK
KyAgICAvLyAnY2FyZXQnIGlzIHJlY3QgZW5jb21wYXNzaW5nIHRoZSBibGlua2luZyBjdXJzb3Iu
CisgICAgSW50UmVjdCB0ZXh0Ym94UmVjdCA9IGZvY3VzZWROb2RlLT5kb2N1bWVudCgpLT52aWV3
KCktPmNvbnRlbnRzVG9XaW5kb3cocGl4ZWxTbmFwcGVkSW50UmVjdChmb2N1c2VkTm9kZS0+Tm9k
ZTo6Ym91bmRpbmdCb3goKSkpOworICAgIFdlYlJlY3QgY2FyZXQsIGVuZDsKKyAgICBzZWxlY3Rp
b25Cb3VuZHMoY2FyZXQsIGVuZCk7CisKKyAgICAvLyBQaWNrIGEgc2NhbGUgd2hpY2ggaXMgcmVh
c29uYWJseSByZWFkYWJsZS4gVGhpcyBpcyB0aGUgc2NhbGUgYXQgd2hpY2gKKyAgICAvLyB0aGUg
Y2FyZXQgaGVpZ2h0IHdpbGwgYmVjb21lIG1pblJlYWRhYmxlQ2FyZXRIZWlnaHQgKGFkanVzdGVk
IGZvciBkcGkKKyAgICAvLyBhbmQgZm9udCBzY2FsZSBmYWN0b3IpLgorICAgIGZsb2F0IHRhcmdl
dFNjYWxlID0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQorICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5zZXR0aW5ncygpKQorICAgICAgICB0YXJnZXRT
Y2FsZSAqPSBwYWdlKCktPnNldHRpbmdzKCktPnRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KCk7CisjZW5kaWYKKyAgICBjb25zdCBmbG9hdCBuZXdTY2FsZSA9IGNsYW1wUGFnZVNjYWxlRmFj
dG9yVG9MaW1pdHMocGFnZVNjYWxlRmFjdG9yKCkgKiBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0ICog
dGFyZ2V0U2NhbGUgLyBjYXJldC5oZWlnaHQpOworICAgIGNvbnN0IGZsb2F0IGRlbHRhU2NhbGUg
PSBuZXdTY2FsZSAvIHBhZ2VTY2FsZUZhY3RvcigpOworCisgICAgLy8gQ29udmVydCB0aGUgcmVj
dHMgdG8gYWJzb2x1dGUgc3BhY2UgaW4gdGhlIG5ldyBzY2FsZS4KKyAgICBJbnRSZWN0IHRleHRi
b3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzID0gdGV4dGJveFJlY3Q7CisgICAgdGV4dGJveFJl
Y3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMubW92ZShtYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkp
OworICAgIHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnNjYWxlKGRlbHRhU2NhbGUp
OworICAgIEludFJlY3QgY2FyZW50SW5Eb2N1bWVudENvb3JkaW5hdGVzID0gY2FyZXQ7CisgICAg
dGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMubW92ZShtYWluRnJhbWUoKS0+c2Nyb2xs
T2Zmc2V0KCkpOworICAgIHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnNjYWxlKGRl
bHRhU2NhbGUpOworCisgICAgSW50UG9pbnQgbmV3T2Zmc2V0OworICAgIGlmICh0ZXh0Ym94UmVj
dEluRG9jdW1lbnRDb29yZGluYXRlcy53aWR0aCgpIDw9IG1fc2l6ZS53aWR0aCkgeworICAgICAg
ICAvLyBGaWVsZCBpcyBuYXJyb3dlciB0aGFuIHNjcmVlbi4gVHJ5IHRvIGxlYXZlIHBhZGRpbmcg
b24gbGVmdCBzbyBmaWVsZCdzCisgICAgICAgIC8vIGxhYmVsIGlzIHZpc2libGUsIGJ1dCBpdCdz
IG1vcmUgaW1wb3J0YW50IHRvIGVuc3VyZSBlbnRpcmUgZmllbGQgaXMKKyAgICAgICAgLy8gb25z
Y3JlZW4uCisgICAgICAgIGludCBpZGVhbExlZnRQYWRkaW5nID0gbV9zaXplLndpZHRoICogbGVm
dEJveFJhdGlvOworICAgICAgICBpbnQgbWF4TGVmdFBhZGRpbmdLZWVwaW5nQm94T25zY3JlZW4g
PSBtX3NpemUud2lkdGggLSB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy53aWR0aCgp
OworICAgICAgICBuZXdPZmZzZXQuc2V0WCh0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRl
cy54KCkgLSBtaW48aW50PihpZGVhbExlZnRQYWRkaW5nLCBtYXhMZWZ0UGFkZGluZ0tlZXBpbmdC
b3hPbnNjcmVlbikpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZpZWxkIGlzIHdpZGVyIHRo
YW4gc2NyZWVuLiBUcnkgdG8gbGVmdC1hbGlnbiBmaWVsZCwgdW5sZXNzIGNhcmV0IHdvdWxkCisg
ICAgICAgIC8vIGJlIG9mZnNjcmVlbiwgaW4gd2hpY2ggY2FzZSByaWdodC1hbGlnbiB0aGUgY2Fy
ZXQuCisgICAgICAgIG5ld09mZnNldC5zZXRYKG1heDxpbnQ+KHRleHRib3hSZWN0SW5Eb2N1bWVu
dENvb3JkaW5hdGVzLngoKSwgY2FyZW50SW5Eb2N1bWVudENvb3JkaW5hdGVzLngoKSArIGNhcmVu
dEluRG9jdW1lbnRDb29yZGluYXRlcy53aWR0aCgpICsgY2FyZXRQYWRkaW5nIC0gbV9zaXplLndp
ZHRoKSk7CisgICAgfQorICAgIGlmICh0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy5o
ZWlnaHQoKSA8PSBtX3NpemUuaGVpZ2h0KSB7CisgICAgICAgIC8vIEZpZWxkIGlzIHNob3J0ZXIg
dGhhbiBzY3JlZW4uIFZlcnRpY2FsbHkgY2VudGVyIGl0LgorICAgICAgICBuZXdPZmZzZXQuc2V0
WSh0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy55KCkgLSAobV9zaXplLmhlaWdodCAt
IHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLmhlaWdodCgpKSAvIDIpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIEZpZWxkIGlzIHRhbGxlciB0aGFuIHNjcmVlbi4gVHJ5IHRvIHRv
cCBhbGlnbiBmaWVsZCwgdW5sZXNzIGNhcmV0IHdvdWxkCisgICAgICAgIC8vIGJlIG9mZnNjcmVl
biwgaW4gd2hpY2ggY2FzZSBib3R0b20tYWxpZ24gdGhlIGNhcmV0LgorICAgICAgICBuZXdPZmZz
ZXQuc2V0WShtYXg8aW50Pih0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy55KCksIGNh
cmVudEluRG9jdW1lbnRDb29yZGluYXRlcy55KCkgKyBjYXJlbnRJbkRvY3VtZW50Q29vcmRpbmF0
ZXMuaGVpZ2h0KCkgKyBjYXJldFBhZGRpbmcgLSBtX3NpemUuaGVpZ2h0KSk7CisgICAgfQorCisg
ICAgYm9vbCBuZWVkQW5pbWF0aW9uID0gZmFsc2U7CisgICAgLy8gSWYgd2UgYXJlIGF0IGxlc3Mg
dGhhbiB0aGUgdGFyZ2V0IHpvb20gbGV2ZWwsIHpvb20gaW4uCisgICAgaWYgKGRlbHRhU2NhbGUg
PiBtaW5TY2FsZUNoYW5nZVRvVHJpZ2dlclpvb20pCisgICAgICAgIG5lZWRBbmltYXRpb24gPSB0
cnVlOworICAgIC8vIElmIHRoZSBjYXJldCBpcyBvZmZzY3JlZW4sIHRoZW4gYW5pbWF0ZS4KKyAg
ICBJbnRSZWN0IHNpemVSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Cisg
ICAgaWYgKCFzaXplUmVjdC5jb250YWlucyhjYXJldCkpCisgICAgICAgIG5lZWRBbmltYXRpb24g
PSB0cnVlOworICAgIC8vIElmIHRoZSBib3ggaXMgcGFydGlhbGx5IG9mZnNjcmVlbiBhbmQgaXQn
cyBwb3NzaWJsZSB0byBicmluZyBpdCBmdWxseQorICAgIC8vIG9uc2NyZWVuLCB0aGVuIGFuaW1h
dGUuCisgICAgaWYgKHNpemVSZWN0LmNvbnRhaW5zKGRvY0JveC53aWR0aCgpLCBkb2NCb3guaGVp
Z2h0KCkpICYmICFzaXplUmVjdC5jb250YWlucyhib3hyZWN0KSkKKyAgICAgICAgbmVlZEFuaW1h
dGlvbiA9IHRydWU7CisKKyAgICBpZiAobmVlZEFuaW1hdGlvbikKKyAgICAgICAgc3RhcnRQYWdl
U2NhbGVBbmltYXRpb24obmV3T2Zmc2V0LCBmYWxzZSwgbmV3U2NhbGUsIHNjcm9sbEFuZFNjYWxl
QW5pbWF0aW9uRHVyYXRpb25JblNlY29uZHMpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OmFkdmFuY2VGb2N1cyhib29sIHJldmVyc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggZjBmMTk0NTJlOWVlNGJlMDZjYTFiODBlOWVj
ZWFjYzdmYmNlN2E4OC4uOTc3YmZjYmM5NWU3NDFlY2Q1MzA3ZmQxY2E2MjEyOWY2ZTE1MzBjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAt
NDk2LDYgKzQ5Niw3NSBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9vbVNjYWxlQm91
bmRzVGVzdCkKICAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9p
bnQsIHNjYWxlKTsKICAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1QYWdl
U2NhbGVGYWN0b3IoKSwgc2NhbGUpOwogfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZTY3Jv
bGxJbnRvRWRpdGFibGVUZXN0KQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImdl
dF9zY2FsZV9mb3Jfem9vbV9pbnRvX2VkaXRhYmxlX3Rlc3QuaHRtbCIpOworCisgICAgRGl2QXV0
b1pvb21UZXN0V2ViVmlld0NsaWVudCBjbGllbnQ7CisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2
NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGZsb2F0IExlZnRCb3hSYXRp
byA9IDAuMzsKKyAgICBpbnQgY2FyZXRQYWRkaW5nID0gMTA7CisgICAgaW50IG1pblJlYWRhYmxl
Q2FyZXRIZWlnaHQgPSAxODsKKyAgICBjbGllbnQubV93aW5kb3dSZWN0ID0gV2ViUmVjdCgwLCAw
LCB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCk7CisgICAgV2ViS2l0OjpXZWJWaWV3KiB3
ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJM
ICsgImdldF9zY2FsZV9mb3Jfem9vbV9pbnRvX2VkaXRhYmxlX3Rlc3QuaHRtbCIsIHRydWUsIDAs
ICZjbGllbnQpOworICAgIHdlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAg
ICB3ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkp
OworICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cygxLCAxMCk7CisgICAgd2Vi
Vmlldy0+bGF5b3V0KCk7CisgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoMS41Zik7
CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJs
ZVNjYWxlKHRydWUpOworICAgIAorCisgICAgV2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0ltcGwqPih3ZWJWaWV3KTsKKyAgICB3ZWJWaWV3SW1wbC0+c2hvdWxk
VXNlQW5pbWF0ZURvdWJsZVRhcFRpbWVaZXJvRm9yVGVzdGluZyh0cnVlKTsKKworICAgIFdlYlJl
Y3QgZWRpdEJveFdpdGhUZXh0KDIwMCwgMjAwLCAyNTAsIDIwKTsKKyAgICBXZWJSZWN0IGVkaXRC
b3hXaXRoTm9UZXh0KDIwMCwgMjUwLCAyNTAsIDIwKTsKKworICAgIC8vIFRlc3Qgc2Nyb2xsaW5n
IHRoZSBmb2N1c2VkIG5vZGUKKyAgICAvLyBUaGUgZWRpdCBib3ggaXMgc2hvcnRlciBhbmQgbmFy
cm93ZXIgdGhhbiB0aGUgdmlld3BvcnQgd2hlbiBsZWdpYmxlLgorICAgIHNldFNjYWxlQW5kU2Ny
b2xsQW5kTGF5b3V0KHdlYlZpZXcsIFdlYlBvaW50KDAsIDApLCAxKTsKKyAgICBXZWJSZWN0IHJl
Y3QsIGNhcmV0OworICAgIHdlYlZpZXdJbXBsLT5zZWxlY3Rpb25Cb3VuZHMoY2FyZXQsIHJlY3Qp
OworICAgIHdlYlZpZXctPnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QocmVjdCk7CisgICAgLy8g
VGhlIGVkaXQgYm94IHNob3VsZCBiZSBsZWZ0IGFsaWduZWQgd2l0aCBhIG1hcmdpbiBmb3IgcG9z
c2libGUgbGFiZWwuCisgICAgaW50IGhTY3JvbGwgPSBlZGl0Qm94V2l0aFRleHQueCAqIHdlYlZp
ZXctPnBhZ2VTY2FsZUZhY3RvcigpIC0gTGVmdEJveFJhdGlvICogdmlld3BvcnRXaWR0aDsKKyAg
ICBFWFBFQ1RfRVEoaFNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgp
LndpZHRoKTsKKyAgICBpbnQgdlNjcm9sbCA9IGVkaXRCb3hXaXRoVGV4dC55ICogd2ViVmlldy0+
cGFnZVNjYWxlRmFjdG9yKCkgLSAodmlld3BvcnRIZWlnaHQgLSBlZGl0Qm94V2l0aFRleHQuaGVp
Z2h0ICogd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpIC8gMjsKKyAgICBFWFBFQ1RfRVEodlNj
cm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCk7CisgICAg
RVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXctPmRldmljZVNjYWxlRmFjdG9yKCkgKiBtaW5SZWFkYWJs
ZUNhcmV0SGVpZ2h0IC8gY2FyZXQuaGVpZ2h0LCB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7
CisKKyAgICAvLyBUaGUgZWRpdCBib3ggaXMgd2lkZXIgdGhhbiB0aGUgdmlld3BvcnQgd2hlbiBs
ZWdpYmxlLgorICAgIHdlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKDQpOworICAgIHNldFNj
YWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXcsIFdlYlBvaW50KDAsIDApLCAxKTsKKyAgICB3
ZWJWaWV3SW1wbC0+c2VsZWN0aW9uQm91bmRzKGNhcmV0LCByZWN0KTsKKyAgICB3ZWJWaWV3LT5z
Y3JvbGxGb2N1c2VkTm9kZUludG9SZWN0KHJlY3QpOworICAgIC8vIFRoZSBjYXJldCBzaG91bGQg
YmUgcmlnaHQgYWxpZ25lZCBzaW5jZSB0aGUgY2FyZXQgd291bGQgYmUgb2Zmc2NyZWVuIHdoZW4g
dGhlIGVkaXQgYm94IGlzIGxlZnQgYWxpZ25lZC4KKyAgICBoU2Nyb2xsID0gKGNhcmV0LnggKyBj
YXJldC53aWR0aCkgKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSArIGNhcmV0UGFkZGluZyAt
IHZpZXdwb3J0V2lkdGg7CisgICAgRVhQRUNUX0VRKGhTY3JvbGwsIHdlYlZpZXctPm1haW5GcmFt
ZSgpLT5zY3JvbGxPZmZzZXQoKS53aWR0aCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXct
PmRldmljZVNjYWxlRmFjdG9yKCkgKiBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0IC8gY2FyZXQuaGVp
Z2h0LCB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICBzZXRTY2FsZUFuZFNjcm9s
bEFuZExheW91dCh3ZWJWaWV3LCBXZWJQb2ludCgwLCAwKSwgMSk7CisgICAgLy8gTW92ZSBmb2N1
cyB0byBlZGl0IGJveCB3aXRoIHRleHQuCisgICAgd2ViVmlldy0+YWR2YW5jZUZvY3VzKGZhbHNl
KTsKKyAgICB3ZWJWaWV3SW1wbC0+c2VsZWN0aW9uQm91bmRzKGNhcmV0LCByZWN0KTsKKyAgICB3
ZWJWaWV3LT5zY3JvbGxGb2N1c2VkTm9kZUludG9SZWN0KHJlY3QpOworICAgIC8vIFRoZSBlZGl0
IGJveCBzaG91bGQgYmUgbGVmdCBhbGlnbmVkLgorICAgIGhTY3JvbGwgPSBlZGl0Qm94V2l0aE5v
VGV4dC54ICogd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgRVhQRUNUX0VRKGhTY3Jv
bGwsIHdlYlZpZXctPm1haW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKS53aWR0aCk7CisgICAgdlNj
cm9sbCA9IGVkaXRCb3hXaXRoTm9UZXh0LnkgKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSAt
ICh2aWV3cG9ydEhlaWdodCAtIGVkaXRCb3hXaXRoTm9UZXh0LmhlaWdodCAqIHdlYlZpZXctPnBh
Z2VTY2FsZUZhY3RvcigpKSAvIDI7CisgICAgRVhQRUNUX0VRKHZTY3JvbGwsIHdlYlZpZXctPm1h
aW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKS5oZWlnaHQpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3
ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3RvcigpICogbWluUmVhZGFibGVDYXJldEhlaWdodCAvIGNh
cmV0LmhlaWdodCwgd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworCisgICAgLy8gTW92ZSBm
b2N1cyBiYWNrIHRvIHRoZSBmaXJzdCBlZGl0IGJveC4KKyAgICB3ZWJWaWV3LT5hZHZhbmNlRm9j
dXModHJ1ZSk7CisgICAgd2ViVmlld0ltcGwtPnNlbGVjdGlvbkJvdW5kcyhjYXJldCwgcmVjdCk7
CisgICAgLy8gVGhlIHBvc2l0aW9uIHNob3VsZCBoYXZlIHN0YXllZCB0aGUgc2FtZSBzaW5jZSB0
aGlzIGJveCB3YXMgYWxyZWFkeSBvbiBzY3JlZW4gd2l0aCB0aGUgcmlnaHQgc2NhbGUuCisgICAg
RVhQRUNUX0VRKHZTY3JvbGwsIHdlYlZpZXctPm1haW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKS5o
ZWlnaHQpOworICAgIEVYUEVDVF9FUShoU2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Ny
b2xsT2Zmc2V0KCkud2lkdGgpOworfQogI2VuZGlmCiAKIGNsYXNzIFRlc3RSZWxvYWREb2VzbnRS
ZWRpcmVjdFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYW1lQ2xpZW50IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pvb21f
aW50b19lZGl0YWJsZV90ZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2Rh
dGEvZ2V0X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkxYzc0OGUzMGRjZmMzZTBiOGQ5YzExZjg4MjRhNDc5MjZhMGI2NGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvZ2V0X3NjYWxlX2Zvcl96b29t
X2ludG9fZWRpdGFibGVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gZ2V0Zm9jdXMoKQorewordmFyIHRleHRmaWVsZCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdFZGl0Qm94V2l0aFRleHQnKTsKK3RleHRmaWVsZC5mb2N1cygp
OwordGV4dGZpZWxkLnNldFNlbGVjdGlvblJhbmdlKHRleHRmaWVsZC52YWx1ZS5sZW5ndGgsdGV4
dGZpZWxkLnZhbHVlLmxlbmd0aCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKyAgPGJvZHkgb25s
b2FkPSJnZXRmb2N1cygpIj4KKyAgICAgIDxpbnB1dCBpZD0iRWRpdEJveFdpdGhUZXh0IiBzdHls
ZT0iIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjAwcHg7IHRvcDogMjAwcHg7IHdpZHRoOiAy
NTA7IGhlaWdodDoyMCIgdmFsdWUgPSAiTG9uZyB0ZXh0IHRvIGZpbGwgdGhlIGVkaXQgYm94IiB0
eXBlPSJ0ZXh0Ij4KKyAgICAgIDxpbnB1dCBpZD0iRWRpdEJveFdpdGhOb1RleHQiIHN0eWxlPSIg
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMDBweDsgdG9wOiAyNTBweDsgd2lkdGg6IDI1MDsg
aGVpZ2h0OjIwIiB0eXBlPSJ0ZXh0Ij4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167198</attachid>
            <date>2012-10-04 16:26:55 -0700</date>
            <delta_ts>2012-10-04 16:53:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97958-20121004162604.patch</filename>
            <type>text/plain</type>
            <size>15393</size>
            <attacher>yusufo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGVhOWQ0YmM1YWE2OWU4OWQyODAxMDIzN2JiNjRiZTU3NDMyMTVlMjguLjZlMTVjOGQ3MmFlOTM2
Yzk3Njg5YzVhMTA3MTliMDNkMTU5ZGU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTItMTAtMDQgIFl1c3VmIE96dXlzYWwgIDx5dXN1Zm9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFN1cHBvcnQgem9vbWluZyBmb2N1c2VkIG5vZGUg
Zm9yIG1vYmlsZSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzk1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgdW5mb3JrcyB0aGUgQW5kcm9pZCB2ZXJzaW9uIG9mIHNjcm9sbEZvY3Vz
ZWROb2RlSW50b1JlY3QoKS5BIG5ldyBzZXR0aW5nCisgICAgICAgIGF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZSB3YXMgYWRkZWQgdG8gdHVybiBpdCBvbiwgc2luY2Ugbm90IGFsbAor
ICAgICAgICBwbGF0Zm9ybXMgd2l0aCBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpIHdhbnQgdGhpcy4K
KworICAgICAgICBUZXN0OiBXZWJGcmFtZVRlc3QuRGl2U2Nyb2xsSW50b0VkaXRhYmxlVGVzdAor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGlu
Z3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBdXRvWm9vbUZv
Y3VzZWROb2RlVG9MZWdpYmxlU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OmF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVT
Y2FsZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QpOgorICAgICAgICAqIHRlc3Rz
L1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pv
b21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGU4
MTZlMTEzZDI3MzczNDE0YjA3OTQ3MDgyNzhkMGE3NDgxZmEyMjkuLmFiZDg0ZWQwZTU3YWZlOTgz
MWZmZmQwNjM5MWU0MjkxZTVkYzJiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaApAQCAtNzQsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCmluZGV4IDE2YmM0MzExYjk3M2I0OTMzOGNkZGEwZGViMDU1MWYxZTlkZGM5ZTIu
LmM0YTc1ZjZkNDc3MjM3YzM4ZmM4YjYzYzQ0ZGE0YWI5YmIyZDFkZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNiArNTQsNyBA
QCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAg
ICAgLCBtX3ZpZXdwb3J0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXBwbHlEZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpCiAgICAgLCBtX2dlc3R1cmVUYXBIaWdobGln
aHRFbmFibGVkKHRydWUpCisgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2Fs
ZShmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNpemUoMjU2LCAyNTYpKQogICAg
ICwgbV9tYXhVbnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1MTIpKQogewpAQCAtMTQ1LDYg
KzE0NiwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseVBhZ2VTY2FsZUZhYwogICAgIG1fc2V0dGluZ3MtPnNldEFw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSkK
K3sKKyAgICBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSA9IGF1dG9ab29tRm9j
dXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFRl
eHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVU
T1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
aW5kZXggNzg2ZmY5NzE4ZGRhOTVjNmI5ZTk3ODhjYTExMjY0MmZhNzE0ZDNmMS4uMTE2OWMzMWNm
M2ViMmFlODBmZGExZjg4NWNkMDg2OTE2OGY0NmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzaXZlRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVT
Q1JJUFRfQ09NTU9OKTsKQEAgLTE2Miw2ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZW5k
ZXJWU3luY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZTeW5jRW5hYmxlZDsgfQog
ICAgIGJvb2wgYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25z
dCB7IHJldHVybiBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9
CiAgICAgYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0OworICAg
IGJvb2wgYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkgY29uc3QgeyByZXR1cm4g
bV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGU7IH0KICAgICBib29sIGdlc3R1cmVU
YXBIaWdobGlnaHRFbmFibGVkKCkgeyByZXR1cm4gbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxl
ZDsgfQogICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZWZh
dWx0VGlsZVNpemU7IH0KICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemUoKSBjb25zdCB7
IHJldHVybiBtX21heFVudGlsZWRMYXllclNpemU7IH0KQEAgLTE3NSw2ICsxNzcsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7CiAgICAgYm9vbCBtX2FwcGx5RGVmYXVs
dERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOwogICAgIGJvb2wgbV9nZXN0dXJlVGFwSGln
aGxpZ2h0RW5hYmxlZDsKKyAgICBib29sIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNj
YWxlOwogICAgIFdlYlNpemUgbV9kZWZhdWx0VGlsZVNpemU7CiAgICAgV2ViU2l6ZSBtX21heFVu
dGlsZWRMYXllclNpemU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDliMTNhOTYwY2JkYzNhMWQ2MDUzNjhhNDg2ZDUyMjkwM2YzY2FjYzUuLjk1
M2UwYTVmODc3OWM2MDVkZGVhMDI1ZmVjOGJjMjdmMjkwZTcyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIwMCw2ICsyMDAsMTAgQEAgc3RhdGlj
IGNvbnN0IGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvID0gMS4yZjsKIAog
Ly8gQ29uc3RhbnRzIGZvciB6b29taW5nIGluIG9uIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLgogc3Rh
dGljIGNvbnN0IGRvdWJsZSBzY3JvbGxBbmRTY2FsZUFuaW1hdGlvbkR1cmF0aW9uSW5TZWNvbmRz
ID0gMC4yOworc3RhdGljIGNvbnN0IGludCBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0ID0gMTg7Citz
dGF0aWMgY29uc3QgZmxvYXQgbWluU2NhbGVDaGFuZ2VUb1RyaWdnZXJab29tID0gMS4wNWY7Citz
dGF0aWMgY29uc3QgZmxvYXQgbGVmdEJveFJhdGlvID0gMC4zZjsKK3N0YXRpYyBjb25zdCBpbnQg
Y2FyZXRQYWRkaW5nID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0yNjIxLDggKzI2
MjUsNzggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChjb25z
dCBXZWJSZWN0JiByZWN0KQogICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZFdlYkNvcmVO
b2RlKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSB8fCAhZm9jdXNlZE5vZGUg
fHwgIWZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBF
bGVtZW50KiBlbGVtZW50Tm9kZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihmb2N1c2VkTm9kZSk7
Ci0gICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsRWxlbWVudFRvUmVjdChlbGVtZW50Tm9kZSwgSW50
UmVjdChyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpKTsKKworICAgIGlm
ICghbV93ZWJTZXR0aW5ncy0+YXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkpIHsK
KyAgICAgICAgRWxlbWVudCogZWxlbWVudE5vZGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZm9j
dXNlZE5vZGUpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zY3JvbGxFbGVtZW50VG9SZWN0KGVs
ZW1lbnROb2RlLCBJbnRSZWN0KHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdo
dCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQorICAgIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKworICAgIC8vICdjYXJldCcgaXMgcmVjdCBlbmNvbXBhc3NpbmcgdGhl
IGJsaW5raW5nIGN1cnNvci4KKyAgICBJbnRSZWN0IHRleHRib3hSZWN0ID0gZm9jdXNlZE5vZGUt
PmRvY3VtZW50KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwaXhlbFNuYXBwZWRJbnRSZWN0
KGZvY3VzZWROb2RlLT5Ob2RlOjpib3VuZGluZ0JveCgpKSk7CisgICAgV2ViUmVjdCBjYXJldCwg
ZW5kOworICAgIHNlbGVjdGlvbkJvdW5kcyhjYXJldCwgZW5kKTsKKworICAgIC8vIFBpY2sgYSBz
Y2FsZSB3aGljaCBpcyByZWFzb25hYmx5IHJlYWRhYmxlLiBUaGlzIGlzIHRoZSBzY2FsZSBhdCB3
aGljaAorICAgIC8vIHRoZSBjYXJldCBoZWlnaHQgd2lsbCBiZWNvbWUgbWluUmVhZGFibGVDYXJl
dEhlaWdodCAoYWRqdXN0ZWQgZm9yIGRwaQorICAgIC8vIGFuZCBmb250IHNjYWxlIGZhY3Rvciku
CisgICAgZmxvYXQgdGFyZ2V0U2NhbGUgPSBkZXZpY2VTY2FsZUZhY3RvcigpOworI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNldHRpbmdzKCkp
CisgICAgICAgIHRhcmdldFNjYWxlICo9IHBhZ2UoKS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IoKTsKKyNlbmRpZgorICAgIGNvbnN0IGZsb2F0IG5ld1NjYWxlID0g
Y2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xpbWl0cyhwYWdlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRh
YmxlQ2FyZXRIZWlnaHQgKiB0YXJnZXRTY2FsZSAvIGNhcmV0LmhlaWdodCk7CisgICAgY29uc3Qg
ZmxvYXQgZGVsdGFTY2FsZSA9IG5ld1NjYWxlIC8gcGFnZVNjYWxlRmFjdG9yKCk7CisKKyAgICAv
LyBDb252ZXJ0IHRoZSByZWN0cyB0byBhYnNvbHV0ZSBzcGFjZSBpbiB0aGUgbmV3IHNjYWxlLgor
ICAgIEludFJlY3QgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgPSB0ZXh0Ym94UmVj
dDsKKyAgICB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy5tb3ZlKG1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKSk7CisgICAgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMu
c2NhbGUoZGVsdGFTY2FsZSk7CisgICAgSW50UmVjdCBjYXJlbnRJbkRvY3VtZW50Q29vcmRpbmF0
ZXMgPSBjYXJldDsKKyAgICB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy5tb3ZlKG1h
aW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKSk7CisgICAgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29v
cmRpbmF0ZXMuc2NhbGUoZGVsdGFTY2FsZSk7CisKKyAgICBJbnRQb2ludCBuZXdPZmZzZXQ7Cisg
ICAgaWYgKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLndpZHRoKCkgPD0gbV9zaXpl
LndpZHRoKSB7CisgICAgICAgIC8vIEZpZWxkIGlzIG5hcnJvd2VyIHRoYW4gc2NyZWVuLiBUcnkg
dG8gbGVhdmUgcGFkZGluZyBvbiBsZWZ0IHNvIGZpZWxkJ3MKKyAgICAgICAgLy8gbGFiZWwgaXMg
dmlzaWJsZSwgYnV0IGl0J3MgbW9yZSBpbXBvcnRhbnQgdG8gZW5zdXJlIGVudGlyZSBmaWVsZCBp
cworICAgICAgICAvLyBvbnNjcmVlbi4KKyAgICAgICAgaW50IGlkZWFsTGVmdFBhZGRpbmcgPSBt
X3NpemUud2lkdGggKiBsZWZ0Qm94UmF0aW87CisgICAgICAgIGludCBtYXhMZWZ0UGFkZGluZ0tl
ZXBpbmdCb3hPbnNjcmVlbiA9IG1fc2l6ZS53aWR0aCAtIHRleHRib3hSZWN0SW5Eb2N1bWVudENv
b3JkaW5hdGVzLndpZHRoKCk7CisgICAgICAgIG5ld09mZnNldC5zZXRYKHRleHRib3hSZWN0SW5E
b2N1bWVudENvb3JkaW5hdGVzLngoKSAtIG1pbjxpbnQ+KGlkZWFsTGVmdFBhZGRpbmcsIG1heExl
ZnRQYWRkaW5nS2VlcGluZ0JveE9uc2NyZWVuKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
RmllbGQgaXMgd2lkZXIgdGhhbiBzY3JlZW4uIFRyeSB0byBsZWZ0LWFsaWduIGZpZWxkLCB1bmxl
c3MgY2FyZXQgd291bGQKKyAgICAgICAgLy8gYmUgb2Zmc2NyZWVuLCBpbiB3aGljaCBjYXNlIHJp
Z2h0LWFsaWduIHRoZSBjYXJldC4KKyAgICAgICAgbmV3T2Zmc2V0LnNldFgobWF4PGludD4odGV4
dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMueCgpLCBjYXJlbnRJbkRvY3VtZW50Q29vcmRp
bmF0ZXMueCgpICsgY2FyZW50SW5Eb2N1bWVudENvb3JkaW5hdGVzLndpZHRoKCkgKyBjYXJldFBh
ZGRpbmcgLSBtX3NpemUud2lkdGgpKTsKKyAgICB9CisgICAgaWYgKHRleHRib3hSZWN0SW5Eb2N1
bWVudENvb3JkaW5hdGVzLmhlaWdodCgpIDw9IG1fc2l6ZS5oZWlnaHQpIHsKKyAgICAgICAgLy8g
RmllbGQgaXMgc2hvcnRlciB0aGFuIHNjcmVlbi4gVmVydGljYWxseSBjZW50ZXIgaXQuCisgICAg
ICAgIG5ld09mZnNldC5zZXRZKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnkoKSAt
IChtX3NpemUuaGVpZ2h0IC0gdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMuaGVpZ2h0
KCkpIC8gMik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRmllbGQgaXMgdGFsbGVyIHRoYW4g
c2NyZWVuLiBUcnkgdG8gdG9wIGFsaWduIGZpZWxkLCB1bmxlc3MgY2FyZXQgd291bGQKKyAgICAg
ICAgLy8gYmUgb2Zmc2NyZWVuLCBpbiB3aGljaCBjYXNlIGJvdHRvbS1hbGlnbiB0aGUgY2FyZXQu
CisgICAgICAgIG5ld09mZnNldC5zZXRZKG1heDxpbnQ+KHRleHRib3hSZWN0SW5Eb2N1bWVudENv
b3JkaW5hdGVzLnkoKSwgY2FyZW50SW5Eb2N1bWVudENvb3JkaW5hdGVzLnkoKSArIGNhcmVudElu
RG9jdW1lbnRDb29yZGluYXRlcy5oZWlnaHQoKSArIGNhcmV0UGFkZGluZyAtIG1fc2l6ZS5oZWln
aHQpKTsKKyAgICB9CisKKyAgICBib29sIG5lZWRBbmltYXRpb24gPSBmYWxzZTsKKyAgICAvLyBJ
ZiB3ZSBhcmUgYXQgbGVzcyB0aGFuIHRoZSB0YXJnZXQgem9vbSBsZXZlbCwgem9vbSBpbi4KKyAg
ICBpZiAoZGVsdGFTY2FsZSA+IG1pblNjYWxlQ2hhbmdlVG9UcmlnZ2VyWm9vbSkKKyAgICAgICAg
bmVlZEFuaW1hdGlvbiA9IHRydWU7CisgICAgLy8gSWYgdGhlIGNhcmV0IGlzIG9mZnNjcmVlbiwg
dGhlbiBhbmltYXRlLgorICAgIEludFJlY3Qgc2l6ZVJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBt
X3NpemUuaGVpZ2h0KTsKKyAgICBpZiAoIXNpemVSZWN0LmNvbnRhaW5zKGNhcmV0KSkKKyAgICAg
ICAgbmVlZEFuaW1hdGlvbiA9IHRydWU7CisgICAgLy8gSWYgdGhlIGJveCBpcyBwYXJ0aWFsbHkg
b2Zmc2NyZWVuIGFuZCBpdCdzIHBvc3NpYmxlIHRvIGJyaW5nIGl0IGZ1bGx5CisgICAgLy8gb25z
Y3JlZW4sIHRoZW4gYW5pbWF0ZS4KKyAgICBpZiAoc2l6ZVJlY3QuY29udGFpbnModGV4dGJveFJl
Y3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMud2lkdGgoKSwgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29v
cmRpbmF0ZXMuaGVpZ2h0KCkpICYmICFzaXplUmVjdC5jb250YWlucyh0ZXh0Ym94UmVjdCkpCisg
ICAgICAgIG5lZWRBbmltYXRpb24gPSB0cnVlOworCisgICAgaWYgKG5lZWRBbmltYXRpb24pCisg
ICAgICAgIHN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKG5ld09mZnNldCwgZmFsc2UsIG5ld1NjYWxl
LCBzY3JvbGxBbmRTY2FsZUFuaW1hdGlvbkR1cmF0aW9uSW5TZWNvbmRzKTsKKyNlbmRpZgogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjphZHZhbmNlRm9jdXMoYm9vbCByZXZlcnNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCmluZGV4IGYwZjE5NDUyZTll
ZTRiZTA2Y2ExYjgwZTllY2VhY2M3ZmJjZTdhODguLjk3N2JmY2JjOTVlNzQxZWNkNTMwN2ZkMWNh
NjIxMjlmNmUxNTMwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKQEAgLTQ5Niw2ICs0OTYsNzUgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2
QXV0b1pvb21TY2FsZUJvdW5kc1Rlc3QpCiAgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0lt
cGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CiAgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJ
bXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKIH0KKworVEVTVF9GKFdlYkZy
YW1lVGVzdCwgRGl2U2Nyb2xsSW50b0VkaXRhYmxlVGVzdCkKK3sKKyAgICByZWdpc3Rlck1vY2tl
ZEh0dHBVUkxMb2FkKCJnZXRfc2NhbGVfZm9yX3pvb21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWwi
KTsKKworICAgIERpdkF1dG9ab29tVGVzdFdlYlZpZXdDbGllbnQgY2xpZW50OworICAgIGludCB2
aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBm
bG9hdCBMZWZ0Qm94UmF0aW8gPSAwLjM7CisgICAgaW50IGNhcmV0UGFkZGluZyA9IDEwOworICAg
IGludCBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0ID0gMTg7CisgICAgY2xpZW50Lm1fd2luZG93UmVj
dCA9IFdlYlJlY3QoMCwgMCwgdmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpOworICAgIFdl
YktpdDo6V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdB
bmRMb2FkKG1fYmFzZVVSTCArICJnZXRfc2NhbGVfZm9yX3pvb21faW50b19lZGl0YWJsZV90ZXN0
Lmh0bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICB3ZWJWaWV3LT5lbmFibGVGaXhlZExheW91
dE1vZGUodHJ1ZSk7CisgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwg
dmlld3BvcnRIZWlnaHQpKTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMo
MSwgMTApOworICAgIHdlYlZpZXctPmxheW91dCgpOworICAgIHdlYlZpZXctPnNldERldmljZVNj
YWxlRmFjdG9yKDEuNWYpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEF1dG9ab29tRm9j
dXNlZE5vZGVUb0xlZ2libGVTY2FsZSh0cnVlKTsKKyAgICAKKworICAgIFdlYlZpZXdJbXBsKiB3
ZWJWaWV3SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4od2ViVmlldyk7CisgICAgd2Vi
Vmlld0ltcGwtPnNob3VsZFVzZUFuaW1hdGVEb3VibGVUYXBUaW1lWmVyb0ZvclRlc3RpbmcodHJ1
ZSk7CisKKyAgICBXZWJSZWN0IGVkaXRCb3hXaXRoVGV4dCgyMDAsIDIwMCwgMjUwLCAyMCk7Cisg
ICAgV2ViUmVjdCBlZGl0Qm94V2l0aE5vVGV4dCgyMDAsIDI1MCwgMjUwLCAyMCk7CisKKyAgICAv
LyBUZXN0IHNjcm9sbGluZyB0aGUgZm9jdXNlZCBub2RlCisgICAgLy8gVGhlIGVkaXQgYm94IGlz
IHNob3J0ZXIgYW5kIG5hcnJvd2VyIHRoYW4gdGhlIHZpZXdwb3J0IHdoZW4gbGVnaWJsZS4KKyAg
ICBzZXRTY2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3LCBXZWJQb2ludCgwLCAwKSwgMSk7
CisgICAgV2ViUmVjdCByZWN0LCBjYXJldDsKKyAgICB3ZWJWaWV3SW1wbC0+c2VsZWN0aW9uQm91
bmRzKGNhcmV0LCByZWN0KTsKKyAgICB3ZWJWaWV3LT5zY3JvbGxGb2N1c2VkTm9kZUludG9SZWN0
KHJlY3QpOworICAgIC8vIFRoZSBlZGl0IGJveCBzaG91bGQgYmUgbGVmdCBhbGlnbmVkIHdpdGgg
YSBtYXJnaW4gZm9yIHBvc3NpYmxlIGxhYmVsLgorICAgIGludCBoU2Nyb2xsID0gZWRpdEJveFdp
dGhUZXh0LnggKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSAtIExlZnRCb3hSYXRpbyAqIHZp
ZXdwb3J0V2lkdGg7CisgICAgRVhQRUNUX0VRKGhTY3JvbGwsIHdlYlZpZXctPm1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKS53aWR0aCk7CisgICAgaW50IHZTY3JvbGwgPSBlZGl0Qm94V2l0aFRl
eHQueSAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpIC0gKHZpZXdwb3J0SGVpZ2h0IC0gZWRp
dEJveFdpdGhUZXh0LmhlaWdodCAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKSAvIDI7Cisg
ICAgRVhQRUNUX0VRKHZTY3JvbGwsIHdlYlZpZXctPm1haW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQo
KS5oZWlnaHQpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3Rv
cigpICogbWluUmVhZGFibGVDYXJldEhlaWdodCAvIGNhcmV0LmhlaWdodCwgd2ViVmlldy0+cGFn
ZVNjYWxlRmFjdG9yKCkpOworCisgICAgLy8gVGhlIGVkaXQgYm94IGlzIHdpZGVyIHRoYW4gdGhl
IHZpZXdwb3J0IHdoZW4gbGVnaWJsZS4KKyAgICB3ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rv
cig0KTsKKyAgICBzZXRTY2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3LCBXZWJQb2ludCgw
LCAwKSwgMSk7CisgICAgd2ViVmlld0ltcGwtPnNlbGVjdGlvbkJvdW5kcyhjYXJldCwgcmVjdCk7
CisgICAgd2ViVmlldy0+c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChyZWN0KTsKKyAgICAvLyBU
aGUgY2FyZXQgc2hvdWxkIGJlIHJpZ2h0IGFsaWduZWQgc2luY2UgdGhlIGNhcmV0IHdvdWxkIGJl
IG9mZnNjcmVlbiB3aGVuIHRoZSBlZGl0IGJveCBpcyBsZWZ0IGFsaWduZWQuCisgICAgaFNjcm9s
bCA9IChjYXJldC54ICsgY2FyZXQud2lkdGgpICogd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkg
KyBjYXJldFBhZGRpbmcgLSB2aWV3cG9ydFdpZHRoOworICAgIEVYUEVDVF9FUShoU2Nyb2xsLCB3
ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkud2lkdGgpOworICAgIEVYUEVDVF9G
TE9BVF9FUSh3ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3RvcigpICogbWluUmVhZGFibGVDYXJldEhl
aWdodCAvIGNhcmV0LmhlaWdodCwgd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworCisgICAg
c2V0U2NhbGVBbmRTY3JvbGxBbmRMYXlvdXQod2ViVmlldywgV2ViUG9pbnQoMCwgMCksIDEpOwor
ICAgIC8vIE1vdmUgZm9jdXMgdG8gZWRpdCBib3ggd2l0aCB0ZXh0LgorICAgIHdlYlZpZXctPmFk
dmFuY2VGb2N1cyhmYWxzZSk7CisgICAgd2ViVmlld0ltcGwtPnNlbGVjdGlvbkJvdW5kcyhjYXJl
dCwgcmVjdCk7CisgICAgd2ViVmlldy0+c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChyZWN0KTsK
KyAgICAvLyBUaGUgZWRpdCBib3ggc2hvdWxkIGJlIGxlZnQgYWxpZ25lZC4KKyAgICBoU2Nyb2xs
ID0gZWRpdEJveFdpdGhOb1RleHQueCAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpOworICAg
IEVYUEVDVF9FUShoU2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCku
d2lkdGgpOworICAgIHZTY3JvbGwgPSBlZGl0Qm94V2l0aE5vVGV4dC55ICogd2ViVmlldy0+cGFn
ZVNjYWxlRmFjdG9yKCkgLSAodmlld3BvcnRIZWlnaHQgLSBlZGl0Qm94V2l0aE5vVGV4dC5oZWln
aHQgKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSkgLyAyOworICAgIEVYUEVDVF9FUSh2U2Ny
b2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0KTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEod2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRhYmxl
Q2FyZXRIZWlnaHQgLyBjYXJldC5oZWlnaHQsIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsK
KworICAgIC8vIE1vdmUgZm9jdXMgYmFjayB0byB0aGUgZmlyc3QgZWRpdCBib3guCisgICAgd2Vi
Vmlldy0+YWR2YW5jZUZvY3VzKHRydWUpOworICAgIHdlYlZpZXdJbXBsLT5zZWxlY3Rpb25Cb3Vu
ZHMoY2FyZXQsIHJlY3QpOworICAgIC8vIFRoZSBwb3NpdGlvbiBzaG91bGQgaGF2ZSBzdGF5ZWQg
dGhlIHNhbWUgc2luY2UgdGhpcyBib3ggd2FzIGFscmVhZHkgb24gc2NyZWVuIHdpdGggdGhlIHJp
Z2h0IHNjYWxlLgorICAgIEVYUEVDVF9FUSh2U2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+
c2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0KTsKKyAgICBFWFBFQ1RfRVEoaFNjcm9sbCwgd2ViVmlldy0+
bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLndpZHRoKTsKK30KICNlbmRpZgogCiBjbGFzcyBU
ZXN0UmVsb2FkRG9lc250UmVkaXJlY3RXZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmFtZUNs
aWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvZ2V0
X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1sIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9kYXRhL2dldF9zY2FsZV9mb3Jfem9vbV9pbnRvX2VkaXRhYmxlX3Rlc3Qu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MWM3NDhlMzBkY2ZjM2UwYjhkOWMxMWY4ODI0YTQ3OTI2YTBiNjRh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2dl
dF9zY2FsZV9mb3Jfem9vbV9pbnRvX2VkaXRhYmxlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGdldGZvY3VzKCkKK3sKK3ZhciB0
ZXh0ZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnRWRpdEJveFdpdGhUZXh0Jyk7Cit0
ZXh0ZmllbGQuZm9jdXMoKTsKK3RleHRmaWVsZC5zZXRTZWxlY3Rpb25SYW5nZSh0ZXh0ZmllbGQu
dmFsdWUubGVuZ3RoLHRleHRmaWVsZC52YWx1ZS5sZW5ndGgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+CisgIDxib2R5IG9ubG9hZD0iZ2V0Zm9jdXMoKSI+CisgICAgICA8aW5wdXQgaWQ9IkVkaXRC
b3hXaXRoVGV4dCIgc3R5bGU9IiBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwMHB4OyB0b3A6
IDIwMHB4OyB3aWR0aDogMjUwOyBoZWlnaHQ6MjAiIHZhbHVlID0gIkxvbmcgdGV4dCB0byBmaWxs
IHRoZSBlZGl0IGJveCIgdHlwZT0idGV4dCI+CisgICAgICA8aW5wdXQgaWQ9IkVkaXRCb3hXaXRo
Tm9UZXh0IiBzdHlsZT0iIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjAwcHg7IHRvcDogMjUw
cHg7IHdpZHRoOiAyNTA7IGhlaWdodDoyMCIgdHlwZT0idGV4dCI+CisgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167206</attachid>
            <date>2012-10-04 16:53:46 -0700</date>
            <delta_ts>2012-10-05 10:43:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97958-20121004165255.patch</filename>
            <type>text/plain</type>
            <size>15388</size>
            <attacher>yusufo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGVhOWQ0YmM1YWE2OWU4OWQyODAxMDIzN2JiNjRiZTU3NDMyMTVlMjguLjZlMTVjOGQ3MmFlOTM2
Yzk3Njg5YzVhMTA3MTliMDNkMTU5ZGU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTItMTAtMDQgIFl1c3VmIE96dXlzYWwgIDx5dXN1Zm9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFN1cHBvcnQgem9vbWluZyBmb2N1c2VkIG5vZGUg
Zm9yIG1vYmlsZSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzk1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgdW5mb3JrcyB0aGUgQW5kcm9pZCB2ZXJzaW9uIG9mIHNjcm9sbEZvY3Vz
ZWROb2RlSW50b1JlY3QoKS5BIG5ldyBzZXR0aW5nCisgICAgICAgIGF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZSB3YXMgYWRkZWQgdG8gdHVybiBpdCBvbiwgc2luY2Ugbm90IGFsbAor
ICAgICAgICBwbGF0Zm9ybXMgd2l0aCBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpIHdhbnQgdGhpcy4K
KworICAgICAgICBUZXN0OiBXZWJGcmFtZVRlc3QuRGl2U2Nyb2xsSW50b0VkaXRhYmxlVGVzdAor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGlu
Z3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBdXRvWm9vbUZv
Y3VzZWROb2RlVG9MZWdpYmxlU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OmF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVT
Y2FsZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QpOgorICAgICAgICAqIHRlc3Rz
L1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pv
b21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGU4
MTZlMTEzZDI3MzczNDE0YjA3OTQ3MDgyNzhkMGE3NDgxZmEyMjkuLmFiZDg0ZWQwZTU3YWZlOTgz
MWZmZmQwNjM5MWU0MjkxZTVkYzJiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaApAQCAtNzQsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCmluZGV4IDE2YmM0MzExYjk3M2I0OTMzOGNkZGEwZGViMDU1MWYxZTlkZGM5ZTIu
LmM0YTc1ZjZkNDc3MjM3YzM4ZmM4YjYzYzQ0ZGE0YWI5YmIyZDFkZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNiArNTQsNyBA
QCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAg
ICAgLCBtX3ZpZXdwb3J0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXBwbHlEZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpCiAgICAgLCBtX2dlc3R1cmVUYXBIaWdobGln
aHRFbmFibGVkKHRydWUpCisgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2Fs
ZShmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNpemUoMjU2LCAyNTYpKQogICAg
ICwgbV9tYXhVbnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1MTIpKQogewpAQCAtMTQ1LDYg
KzE0NiwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseVBhZ2VTY2FsZUZhYwogICAgIG1fc2V0dGluZ3MtPnNldEFw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSkK
K3sKKyAgICBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSA9IGF1dG9ab29tRm9j
dXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFRl
eHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVU
T1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
aW5kZXggNzg2ZmY5NzE4ZGRhOTVjNmI5ZTk3ODhjYTExMjY0MmZhNzE0ZDNmMS4uMTE2OWMzMWNm
M2ViMmFlODBmZGExZjg4NWNkMDg2OTE2OGY0NmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzaXZlRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVT
Q1JJUFRfQ09NTU9OKTsKQEAgLTE2Miw2ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZW5k
ZXJWU3luY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZTeW5jRW5hYmxlZDsgfQog
ICAgIGJvb2wgYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25z
dCB7IHJldHVybiBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9
CiAgICAgYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0OworICAg
IGJvb2wgYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkgY29uc3QgeyByZXR1cm4g
bV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGU7IH0KICAgICBib29sIGdlc3R1cmVU
YXBIaWdobGlnaHRFbmFibGVkKCkgeyByZXR1cm4gbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxl
ZDsgfQogICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZWZh
dWx0VGlsZVNpemU7IH0KICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemUoKSBjb25zdCB7
IHJldHVybiBtX21heFVudGlsZWRMYXllclNpemU7IH0KQEAgLTE3NSw2ICsxNzcsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7CiAgICAgYm9vbCBtX2FwcGx5RGVmYXVs
dERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOwogICAgIGJvb2wgbV9nZXN0dXJlVGFwSGln
aGxpZ2h0RW5hYmxlZDsKKyAgICBib29sIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNj
YWxlOwogICAgIFdlYlNpemUgbV9kZWZhdWx0VGlsZVNpemU7CiAgICAgV2ViU2l6ZSBtX21heFVu
dGlsZWRMYXllclNpemU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDliMTNhOTYwY2JkYzNhMWQ2MDUzNjhhNDg2ZDUyMjkwM2YzY2FjYzUuLjcy
ZmMwMjMwMDI0OGIwYmVkNzgwZTVmNGE4NzIwMTEyY2I5NzA1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIwMCw2ICsyMDAsMTAgQEAgc3RhdGlj
IGNvbnN0IGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvID0gMS4yZjsKIAog
Ly8gQ29uc3RhbnRzIGZvciB6b29taW5nIGluIG9uIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLgogc3Rh
dGljIGNvbnN0IGRvdWJsZSBzY3JvbGxBbmRTY2FsZUFuaW1hdGlvbkR1cmF0aW9uSW5TZWNvbmRz
ID0gMC4yOworc3RhdGljIGNvbnN0IGludCBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0ID0gMTg7Citz
dGF0aWMgY29uc3QgZmxvYXQgbWluU2NhbGVDaGFuZ2VUb1RyaWdnZXJab29tID0gMS4wNWY7Citz
dGF0aWMgY29uc3QgZmxvYXQgbGVmdEJveFJhdGlvID0gMC4zZjsKK3N0YXRpYyBjb25zdCBpbnQg
Y2FyZXRQYWRkaW5nID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0yNjIxLDggKzI2
MjUsNzggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChjb25z
dCBXZWJSZWN0JiByZWN0KQogICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZFdlYkNvcmVO
b2RlKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSB8fCAhZm9jdXNlZE5vZGUg
fHwgIWZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBF
bGVtZW50KiBlbGVtZW50Tm9kZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihmb2N1c2VkTm9kZSk7
Ci0gICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsRWxlbWVudFRvUmVjdChlbGVtZW50Tm9kZSwgSW50
UmVjdChyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpKTsKKworICAgIGlm
ICghbV93ZWJTZXR0aW5ncy0+YXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkpIHsK
KyAgICAgICAgRWxlbWVudCogZWxlbWVudE5vZGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZm9j
dXNlZE5vZGUpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zY3JvbGxFbGVtZW50VG9SZWN0KGVs
ZW1lbnROb2RlLCBJbnRSZWN0KHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdo
dCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQorICAgIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKworICAgIC8vICdjYXJldCcgaXMgcmVjdCBlbmNvbXBhc3NpbmcgdGhl
IGJsaW5raW5nIGN1cnNvci4KKyAgICBJbnRSZWN0IHRleHRib3hSZWN0ID0gZm9jdXNlZE5vZGUt
PmRvY3VtZW50KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwaXhlbFNuYXBwZWRJbnRSZWN0
KGZvY3VzZWROb2RlLT5Ob2RlOjpib3VuZGluZ0JveCgpKSk7CisgICAgV2ViUmVjdCBjYXJldCwg
ZW5kOworICAgIHNlbGVjdGlvbkJvdW5kcyhjYXJldCwgZW5kKTsKKworICAgIC8vIFBpY2sgYSBz
Y2FsZSB3aGljaCBpcyByZWFzb25hYmx5IHJlYWRhYmxlLiBUaGlzIGlzIHRoZSBzY2FsZSBhdCB3
aGljaAorICAgIC8vIHRoZSBjYXJldCBoZWlnaHQgd2lsbCBiZWNvbWUgbWluUmVhZGFibGVDYXJl
dEhlaWdodCAoYWRqdXN0ZWQgZm9yIGRwaQorICAgIC8vIGFuZCBmb250IHNjYWxlIGZhY3Rvciku
CisgICAgZmxvYXQgdGFyZ2V0U2NhbGUgPSBkZXZpY2VTY2FsZUZhY3RvcigpOworI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNldHRpbmdzKCkp
CisgICAgICAgIHRhcmdldFNjYWxlICo9IHBhZ2UoKS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IoKTsKKyNlbmRpZgorICAgIGNvbnN0IGZsb2F0IG5ld1NjYWxlID0g
Y2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xpbWl0cyhwYWdlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRh
YmxlQ2FyZXRIZWlnaHQgKiB0YXJnZXRTY2FsZSAvIGNhcmV0LmhlaWdodCk7CisgICAgY29uc3Qg
ZmxvYXQgZGVsdGFTY2FsZSA9IG5ld1NjYWxlIC8gcGFnZVNjYWxlRmFjdG9yKCk7CisKKyAgICAv
LyBDb252ZXJ0IHRoZSByZWN0cyB0byBhYnNvbHV0ZSBzcGFjZSBpbiB0aGUgbmV3IHNjYWxlLgor
ICAgIEludFJlY3QgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgPSB0ZXh0Ym94UmVj
dDsKKyAgICB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy5tb3ZlKG1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKSk7CisgICAgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMu
c2NhbGUoZGVsdGFTY2FsZSk7CisgICAgSW50UmVjdCBjYXJldEluRG9jdW1lbnRDb29yZGluYXRl
cyA9IGNhcmV0OworICAgIHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLm1vdmUobWFp
bkZyYW1lKCktPnNjcm9sbE9mZnNldCgpKTsKKyAgICB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29y
ZGluYXRlcy5zY2FsZShkZWx0YVNjYWxlKTsKKworICAgIEludFBvaW50IG5ld09mZnNldDsKKyAg
ICBpZiAodGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMud2lkdGgoKSA8PSBtX3NpemUu
d2lkdGgpIHsKKyAgICAgICAgLy8gRmllbGQgaXMgbmFycm93ZXIgdGhhbiBzY3JlZW4uIFRyeSB0
byBsZWF2ZSBwYWRkaW5nIG9uIGxlZnQgc28gZmllbGQncworICAgICAgICAvLyBsYWJlbCBpcyB2
aXNpYmxlLCBidXQgaXQncyBtb3JlIGltcG9ydGFudCB0byBlbnN1cmUgZW50aXJlIGZpZWxkIGlz
CisgICAgICAgIC8vIG9uc2NyZWVuLgorICAgICAgICBpbnQgaWRlYWxMZWZ0UGFkZGluZyA9IG1f
c2l6ZS53aWR0aCAqIGxlZnRCb3hSYXRpbzsKKyAgICAgICAgaW50IG1heExlZnRQYWRkaW5nS2Vl
cGluZ0JveE9uc2NyZWVuID0gbV9zaXplLndpZHRoIC0gdGV4dGJveFJlY3RJbkRvY3VtZW50Q29v
cmRpbmF0ZXMud2lkdGgoKTsKKyAgICAgICAgbmV3T2Zmc2V0LnNldFgodGV4dGJveFJlY3RJbkRv
Y3VtZW50Q29vcmRpbmF0ZXMueCgpIC0gbWluPGludD4oaWRlYWxMZWZ0UGFkZGluZywgbWF4TGVm
dFBhZGRpbmdLZWVwaW5nQm94T25zY3JlZW4pKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBG
aWVsZCBpcyB3aWRlciB0aGFuIHNjcmVlbi4gVHJ5IHRvIGxlZnQtYWxpZ24gZmllbGQsIHVubGVz
cyBjYXJldCB3b3VsZAorICAgICAgICAvLyBiZSBvZmZzY3JlZW4sIGluIHdoaWNoIGNhc2Ugcmln
aHQtYWxpZ24gdGhlIGNhcmV0LgorICAgICAgICBuZXdPZmZzZXQuc2V0WChtYXg8aW50Pih0ZXh0
Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy54KCksIGNhcmV0SW5Eb2N1bWVudENvb3JkaW5h
dGVzLngoKSArIGNhcmV0SW5Eb2N1bWVudENvb3JkaW5hdGVzLndpZHRoKCkgKyBjYXJldFBhZGRp
bmcgLSBtX3NpemUud2lkdGgpKTsKKyAgICB9CisgICAgaWYgKHRleHRib3hSZWN0SW5Eb2N1bWVu
dENvb3JkaW5hdGVzLmhlaWdodCgpIDw9IG1fc2l6ZS5oZWlnaHQpIHsKKyAgICAgICAgLy8gRmll
bGQgaXMgc2hvcnRlciB0aGFuIHNjcmVlbi4gVmVydGljYWxseSBjZW50ZXIgaXQuCisgICAgICAg
IG5ld09mZnNldC5zZXRZKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnkoKSAtICht
X3NpemUuaGVpZ2h0IC0gdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMuaGVpZ2h0KCkp
IC8gMik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRmllbGQgaXMgdGFsbGVyIHRoYW4gc2Ny
ZWVuLiBUcnkgdG8gdG9wIGFsaWduIGZpZWxkLCB1bmxlc3MgY2FyZXQgd291bGQKKyAgICAgICAg
Ly8gYmUgb2Zmc2NyZWVuLCBpbiB3aGljaCBjYXNlIGJvdHRvbS1hbGlnbiB0aGUgY2FyZXQuCisg
ICAgICAgIG5ld09mZnNldC5zZXRZKG1heDxpbnQ+KHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3Jk
aW5hdGVzLnkoKSwgY2FyZXRJbkRvY3VtZW50Q29vcmRpbmF0ZXMueSgpICsgY2FyZXRJbkRvY3Vt
ZW50Q29vcmRpbmF0ZXMuaGVpZ2h0KCkgKyBjYXJldFBhZGRpbmcgLSBtX3NpemUuaGVpZ2h0KSk7
CisgICAgfQorCisgICAgYm9vbCBuZWVkQW5pbWF0aW9uID0gZmFsc2U7CisgICAgLy8gSWYgd2Ug
YXJlIGF0IGxlc3MgdGhhbiB0aGUgdGFyZ2V0IHpvb20gbGV2ZWwsIHpvb20gaW4uCisgICAgaWYg
KGRlbHRhU2NhbGUgPiBtaW5TY2FsZUNoYW5nZVRvVHJpZ2dlclpvb20pCisgICAgICAgIG5lZWRB
bmltYXRpb24gPSB0cnVlOworICAgIC8vIElmIHRoZSBjYXJldCBpcyBvZmZzY3JlZW4sIHRoZW4g
YW5pbWF0ZS4KKyAgICBJbnRSZWN0IHNpemVSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCwgbV9zaXpl
LmhlaWdodCk7CisgICAgaWYgKCFzaXplUmVjdC5jb250YWlucyhjYXJldCkpCisgICAgICAgIG5l
ZWRBbmltYXRpb24gPSB0cnVlOworICAgIC8vIElmIHRoZSBib3ggaXMgcGFydGlhbGx5IG9mZnNj
cmVlbiBhbmQgaXQncyBwb3NzaWJsZSB0byBicmluZyBpdCBmdWxseQorICAgIC8vIG9uc2NyZWVu
LCB0aGVuIGFuaW1hdGUuCisgICAgaWYgKHNpemVSZWN0LmNvbnRhaW5zKHRleHRib3hSZWN0SW5E
b2N1bWVudENvb3JkaW5hdGVzLndpZHRoKCksIHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5h
dGVzLmhlaWdodCgpKSAmJiAhc2l6ZVJlY3QuY29udGFpbnModGV4dGJveFJlY3QpKQorICAgICAg
ICBuZWVkQW5pbWF0aW9uID0gdHJ1ZTsKKworICAgIGlmIChuZWVkQW5pbWF0aW9uKQorICAgICAg
ICBzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihuZXdPZmZzZXQsIGZhbHNlLCBuZXdTY2FsZSwgc2Ny
b2xsQW5kU2NhbGVBbmltYXRpb25EdXJhdGlvbkluU2Vjb25kcyk7CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6YWR2YW5jZUZvY3VzKGJvb2wgcmV2ZXJzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCBmMGYxOTQ1MmU5ZWU0YmUw
NmNhMWI4MGU5ZWNlYWNjN2ZiY2U3YTg4Li45NzdiZmNiYzk1ZTc0MWVjZDUzMDdmZDFjYTYyMTI5
ZjZlMTUzMGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRl
c3QuY3BwCkBAIC00OTYsNiArNDk2LDc1IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1dG9a
b29tU2NhbGVCb3VuZHNUZXN0KQogICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBk
b3VibGVUYXBQb2ludCwgc2NhbGUpOwogICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+
bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CiB9CisKK1RFU1RfRihXZWJGcmFtZVRl
c3QsIERpdlNjcm9sbEludG9FZGl0YWJsZVRlc3QpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRw
VVJMTG9hZCgiZ2V0X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1sIik7CisK
KyAgICBEaXZBdXRvWm9vbVRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBpbnQgdmlld3Bv
cnRXaWR0aCA9IDY0MDsKKyAgICBpbnQgdmlld3BvcnRIZWlnaHQgPSA0ODA7CisgICAgZmxvYXQg
TGVmdEJveFJhdGlvID0gMC4zOworICAgIGludCBjYXJldFBhZGRpbmcgPSAxMDsKKyAgICBpbnQg
bWluUmVhZGFibGVDYXJldEhlaWdodCA9IDE4OworICAgIGNsaWVudC5tX3dpbmRvd1JlY3QgPSBX
ZWJSZWN0KDAsIDAsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KTsKKyAgICBXZWJLaXQ6
OldlYlZpZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9h
ZChtX2Jhc2VVUkwgKyAiZ2V0X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1s
IiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2Rl
KHRydWUpOworICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdw
b3J0SGVpZ2h0KSk7CisgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKDEsIDEw
KTsKKyAgICB3ZWJWaWV3LT5sYXlvdXQoKTsKKyAgICB3ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZh
Y3RvcigxLjVmKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBdXRvWm9vbUZvY3VzZWRO
b2RlVG9MZWdpYmxlU2NhbGUodHJ1ZSk7CisgICAgCisKKyAgICBXZWJWaWV3SW1wbCogd2ViVmll
d0ltcGwgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KHdlYlZpZXcpOworICAgIHdlYlZpZXdJ
bXBsLT5zaG91bGRVc2VBbmltYXRlRG91YmxlVGFwVGltZVplcm9Gb3JUZXN0aW5nKHRydWUpOwor
CisgICAgV2ViUmVjdCBlZGl0Qm94V2l0aFRleHQoMjAwLCAyMDAsIDI1MCwgMjApOworICAgIFdl
YlJlY3QgZWRpdEJveFdpdGhOb1RleHQoMjAwLCAyNTAsIDI1MCwgMjApOworCisgICAgLy8gVGVz
dCBzY3JvbGxpbmcgdGhlIGZvY3VzZWQgbm9kZQorICAgIC8vIFRoZSBlZGl0IGJveCBpcyBzaG9y
dGVyIGFuZCBuYXJyb3dlciB0aGFuIHRoZSB2aWV3cG9ydCB3aGVuIGxlZ2libGUuCisgICAgc2V0
U2NhbGVBbmRTY3JvbGxBbmRMYXlvdXQod2ViVmlldywgV2ViUG9pbnQoMCwgMCksIDEpOworICAg
IFdlYlJlY3QgcmVjdCwgY2FyZXQ7CisgICAgd2ViVmlld0ltcGwtPnNlbGVjdGlvbkJvdW5kcyhj
YXJldCwgcmVjdCk7CisgICAgd2ViVmlldy0+c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChyZWN0
KTsKKyAgICAvLyBUaGUgZWRpdCBib3ggc2hvdWxkIGJlIGxlZnQgYWxpZ25lZCB3aXRoIGEgbWFy
Z2luIGZvciBwb3NzaWJsZSBsYWJlbC4KKyAgICBpbnQgaFNjcm9sbCA9IGVkaXRCb3hXaXRoVGV4
dC54ICogd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkgLSBMZWZ0Qm94UmF0aW8gKiB2aWV3cG9y
dFdpZHRoOworICAgIEVYUEVDVF9FUShoU2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Ny
b2xsT2Zmc2V0KCkud2lkdGgpOworICAgIGludCB2U2Nyb2xsID0gZWRpdEJveFdpdGhUZXh0Lnkg
KiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSAtICh2aWV3cG9ydEhlaWdodCAtIGVkaXRCb3hX
aXRoVGV4dC5oZWlnaHQgKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSkgLyAyOworICAgIEVY
UEVDVF9FUSh2U2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkuaGVp
Z2h0KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAq
IG1pblJlYWRhYmxlQ2FyZXRIZWlnaHQgLyBjYXJldC5oZWlnaHQsIHdlYlZpZXctPnBhZ2VTY2Fs
ZUZhY3RvcigpKTsKKworICAgIC8vIFRoZSBlZGl0IGJveCBpcyB3aWRlciB0aGFuIHRoZSB2aWV3
cG9ydCB3aGVuIGxlZ2libGUuCisgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoNCk7
CisgICAgc2V0U2NhbGVBbmRTY3JvbGxBbmRMYXlvdXQod2ViVmlldywgV2ViUG9pbnQoMCwgMCks
IDEpOworICAgIHdlYlZpZXdJbXBsLT5zZWxlY3Rpb25Cb3VuZHMoY2FyZXQsIHJlY3QpOworICAg
IHdlYlZpZXctPnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QocmVjdCk7CisgICAgLy8gVGhlIGNh
cmV0IHNob3VsZCBiZSByaWdodCBhbGlnbmVkIHNpbmNlIHRoZSBjYXJldCB3b3VsZCBiZSBvZmZz
Y3JlZW4gd2hlbiB0aGUgZWRpdCBib3ggaXMgbGVmdCBhbGlnbmVkLgorICAgIGhTY3JvbGwgPSAo
Y2FyZXQueCArIGNhcmV0LndpZHRoKSAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpICsgY2Fy
ZXRQYWRkaW5nIC0gdmlld3BvcnRXaWR0aDsKKyAgICBFWFBFQ1RfRVEoaFNjcm9sbCwgd2ViVmll
dy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLndpZHRoKTsKKyAgICBFWFBFQ1RfRkxPQVRf
RVEod2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRhYmxlQ2FyZXRIZWlnaHQg
LyBjYXJldC5oZWlnaHQsIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAgIHNldFNj
YWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXcsIFdlYlBvaW50KDAsIDApLCAxKTsKKyAgICAv
LyBNb3ZlIGZvY3VzIHRvIGVkaXQgYm94IHdpdGggdGV4dC4KKyAgICB3ZWJWaWV3LT5hZHZhbmNl
Rm9jdXMoZmFsc2UpOworICAgIHdlYlZpZXdJbXBsLT5zZWxlY3Rpb25Cb3VuZHMoY2FyZXQsIHJl
Y3QpOworICAgIHdlYlZpZXctPnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QocmVjdCk7CisgICAg
Ly8gVGhlIGVkaXQgYm94IHNob3VsZCBiZSBsZWZ0IGFsaWduZWQuCisgICAgaFNjcm9sbCA9IGVk
aXRCb3hXaXRoTm9UZXh0LnggKiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBFWFBF
Q1RfRVEoaFNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLndpZHRo
KTsKKyAgICB2U2Nyb2xsID0gZWRpdEJveFdpdGhOb1RleHQueSAqIHdlYlZpZXctPnBhZ2VTY2Fs
ZUZhY3RvcigpIC0gKHZpZXdwb3J0SGVpZ2h0IC0gZWRpdEJveFdpdGhOb1RleHQuaGVpZ2h0ICog
d2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpIC8gMjsKKyAgICBFWFBFQ1RfRVEodlNjcm9sbCwg
d2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCk7CisgICAgRVhQRUNU
X0ZMT0FUX0VRKHdlYlZpZXctPmRldmljZVNjYWxlRmFjdG9yKCkgKiBtaW5SZWFkYWJsZUNhcmV0
SGVpZ2h0IC8gY2FyZXQuaGVpZ2h0LCB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAg
ICAvLyBNb3ZlIGZvY3VzIGJhY2sgdG8gdGhlIGZpcnN0IGVkaXQgYm94LgorICAgIHdlYlZpZXct
PmFkdmFuY2VGb2N1cyh0cnVlKTsKKyAgICB3ZWJWaWV3SW1wbC0+c2VsZWN0aW9uQm91bmRzKGNh
cmV0LCByZWN0KTsKKyAgICAvLyBUaGUgcG9zaXRpb24gc2hvdWxkIGhhdmUgc3RheWVkIHRoZSBz
YW1lIHNpbmNlIHRoaXMgYm94IHdhcyBhbHJlYWR5IG9uIHNjcmVlbiB3aXRoIHRoZSByaWdodCBz
Y2FsZS4KKyAgICBFWFBFQ1RfRVEodlNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9s
bE9mZnNldCgpLmhlaWdodCk7CisgICAgRVhQRUNUX0VRKGhTY3JvbGwsIHdlYlZpZXctPm1haW5G
cmFtZSgpLT5zY3JvbGxPZmZzZXQoKS53aWR0aCk7Cit9CiAjZW5kaWYKIAogY2xhc3MgVGVzdFJl
bG9hZERvZXNudFJlZGlyZWN0V2ViRnJhbWVDbGllbnQgOiBwdWJsaWMgV2ViRnJhbWVDbGllbnQg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2dldF9zY2Fs
ZV9mb3Jfem9vbV9pbnRvX2VkaXRhYmxlX3Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pvb21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTFjNzQ4ZTMwZGNmYzNlMGI4ZDljMTFmODgyNGE0NzkyNmEwYjY0YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9nZXRfc2Nh
bGVfZm9yX3pvb21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRmb2N1cygpCit7Cit2YXIgdGV4dGZp
ZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0VkaXRCb3hXaXRoVGV4dCcpOwordGV4dGZp
ZWxkLmZvY3VzKCk7Cit0ZXh0ZmllbGQuc2V0U2VsZWN0aW9uUmFuZ2UodGV4dGZpZWxkLnZhbHVl
Lmxlbmd0aCx0ZXh0ZmllbGQudmFsdWUubGVuZ3RoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
ICA8Ym9keSBvbmxvYWQ9ImdldGZvY3VzKCkiPgorICAgICAgPGlucHV0IGlkPSJFZGl0Qm94V2l0
aFRleHQiIHN0eWxlPSIgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMDBweDsgdG9wOiAyMDBw
eDsgd2lkdGg6IDI1MDsgaGVpZ2h0OjIwIiB2YWx1ZSA9ICJMb25nIHRleHQgdG8gZmlsbCB0aGUg
ZWRpdCBib3giIHR5cGU9InRleHQiPgorICAgICAgPGlucHV0IGlkPSJFZGl0Qm94V2l0aE5vVGV4
dCIgc3R5bGU9IiBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwMHB4OyB0b3A6IDI1MHB4OyB3
aWR0aDogMjUwOyBoZWlnaHQ6MjAiIHR5cGU9InRleHQiPgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167349</attachid>
            <date>2012-10-05 10:43:45 -0700</date>
            <delta_ts>2012-10-05 13:30:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97958-20121005104253.patch</filename>
            <type>text/plain</type>
            <size>15370</size>
            <attacher>yusufo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGVhOWQ0YmM1YWE2OWU4OWQyODAxMDIzN2JiNjRiZTU3NDMyMTVlMjguLjZlMTVjOGQ3MmFlOTM2
Yzk3Njg5YzVhMTA3MTliMDNkMTU5ZGU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTItMTAtMDQgIFl1c3VmIE96dXlzYWwgIDx5dXN1Zm9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFN1cHBvcnQgem9vbWluZyBmb2N1c2VkIG5vZGUg
Zm9yIG1vYmlsZSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzk1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgdW5mb3JrcyB0aGUgQW5kcm9pZCB2ZXJzaW9uIG9mIHNjcm9sbEZvY3Vz
ZWROb2RlSW50b1JlY3QoKS5BIG5ldyBzZXR0aW5nCisgICAgICAgIGF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZSB3YXMgYWRkZWQgdG8gdHVybiBpdCBvbiwgc2luY2Ugbm90IGFsbAor
ICAgICAgICBwbGF0Zm9ybXMgd2l0aCBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpIHdhbnQgdGhpcy4K
KworICAgICAgICBUZXN0OiBXZWJGcmFtZVRlc3QuRGl2U2Nyb2xsSW50b0VkaXRhYmxlVGVzdAor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGlu
Z3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBdXRvWm9vbUZv
Y3VzZWROb2RlVG9MZWdpYmxlU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OmF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVT
Y2FsZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QpOgorICAgICAgICAqIHRlc3Rz
L1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pv
b21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGU4
MTZlMTEzZDI3MzczNDE0YjA3OTQ3MDgyNzhkMGE3NDgxZmEyMjkuLmFiZDg0ZWQwZTU3YWZlOTgz
MWZmZmQwNjM5MWU0MjkxZTVkYzJiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaApAQCAtNzQsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCmluZGV4IDE2YmM0MzExYjk3M2I0OTMzOGNkZGEwZGViMDU1MWYxZTlkZGM5ZTIu
LmM0YTc1ZjZkNDc3MjM3YzM4ZmM4YjYzYzQ0ZGE0YWI5YmIyZDFkZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNiArNTQsNyBA
QCBXZWJTZXR0aW5nc0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAg
ICAgLCBtX3ZpZXdwb3J0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fYXBwbHlEZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpCiAgICAgLCBtX2dlc3R1cmVUYXBIaWdobGln
aHRFbmFibGVkKHRydWUpCisgICAgLCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2Fs
ZShmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNpemUoMjU2LCAyNTYpKQogICAg
ICwgbV9tYXhVbnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1MTIpKQogewpAQCAtMTQ1LDYg
KzE0NiwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseVBhZ2VTY2FsZUZhYwogICAgIG1fc2V0dGluZ3MtPnNldEFw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEF1dG9ab29tRm9jdXNlZE5v
ZGVUb0xlZ2libGVTY2FsZShib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSkK
K3sKKyAgICBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSA9IGF1dG9ab29tRm9j
dXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFRl
eHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVU
T1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
aW5kZXggNzg2ZmY5NzE4ZGRhOTVjNmI5ZTk3ODhjYTExMjY0MmZhNzE0ZDNmMS4uMTE2OWMzMWNm
M2ViMmFlODBmZGExZjg4NWNkMDg2OTE2OGY0NmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzaXZlRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVT
Q1JJUFRfQ09NTU9OKTsKQEAgLTE2Miw2ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZW5k
ZXJWU3luY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZTeW5jRW5hYmxlZDsgfQog
ICAgIGJvb2wgYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25z
dCB7IHJldHVybiBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9
CiAgICAgYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0OworICAg
IGJvb2wgYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkgY29uc3QgeyByZXR1cm4g
bV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGU7IH0KICAgICBib29sIGdlc3R1cmVU
YXBIaWdobGlnaHRFbmFibGVkKCkgeyByZXR1cm4gbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxl
ZDsgfQogICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZWZh
dWx0VGlsZVNpemU7IH0KICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemUoKSBjb25zdCB7
IHJldHVybiBtX21heFVudGlsZWRMYXllclNpemU7IH0KQEAgLTE3NSw2ICsxNzcsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7CiAgICAgYm9vbCBtX2FwcGx5RGVmYXVs
dERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOwogICAgIGJvb2wgbV9nZXN0dXJlVGFwSGln
aGxpZ2h0RW5hYmxlZDsKKyAgICBib29sIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNj
YWxlOwogICAgIFdlYlNpemUgbV9kZWZhdWx0VGlsZVNpemU7CiAgICAgV2ViU2l6ZSBtX21heFVu
dGlsZWRMYXllclNpemU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDliMTNhOTYwY2JkYzNhMWQ2MDUzNjhhNDg2ZDUyMjkwM2YzY2FjYzUuLjVi
ZmYyNzNlNWY5NjIxODA4Nzk4NTYzOTgzY2VjOTA2MjdkNmE0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIwMCw2ICsyMDAsMTAgQEAgc3RhdGlj
IGNvbnN0IGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvID0gMS4yZjsKIAog
Ly8gQ29uc3RhbnRzIGZvciB6b29taW5nIGluIG9uIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLgogc3Rh
dGljIGNvbnN0IGRvdWJsZSBzY3JvbGxBbmRTY2FsZUFuaW1hdGlvbkR1cmF0aW9uSW5TZWNvbmRz
ID0gMC4yOworc3RhdGljIGNvbnN0IGludCBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0ID0gMTg7Citz
dGF0aWMgY29uc3QgZmxvYXQgbWluU2NhbGVDaGFuZ2VUb1RyaWdnZXJab29tID0gMS4wNWY7Citz
dGF0aWMgY29uc3QgZmxvYXQgbGVmdEJveFJhdGlvID0gMC4zZjsKK3N0YXRpYyBjb25zdCBpbnQg
Y2FyZXRQYWRkaW5nID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0yNjIxLDggKzI2
MjUsNzggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChjb25z
dCBXZWJSZWN0JiByZWN0KQogICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZFdlYkNvcmVO
b2RlKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSB8fCAhZm9jdXNlZE5vZGUg
fHwgIWZvY3VzZWROb2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBF
bGVtZW50KiBlbGVtZW50Tm9kZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihmb2N1c2VkTm9kZSk7
Ci0gICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsRWxlbWVudFRvUmVjdChlbGVtZW50Tm9kZSwgSW50
UmVjdChyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpKTsKKworICAgIGlm
ICghbV93ZWJTZXR0aW5ncy0+YXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkpIHsK
KyAgICAgICAgRWxlbWVudCogZWxlbWVudE5vZGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZm9j
dXNlZE5vZGUpOworICAgICAgICBmcmFtZS0+dmlldygpLT5zY3JvbGxFbGVtZW50VG9SZWN0KGVs
ZW1lbnROb2RlLCBJbnRSZWN0KHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdo
dCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQorICAgIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKworICAgIC8vICdjYXJldCcgaXMgcmVjdCBlbmNvbXBhc3NpbmcgdGhl
IGJsaW5raW5nIGN1cnNvci4KKyAgICBJbnRSZWN0IHRleHRib3hSZWN0ID0gZm9jdXNlZE5vZGUt
PmRvY3VtZW50KCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwaXhlbFNuYXBwZWRJbnRSZWN0
KGZvY3VzZWROb2RlLT5Ob2RlOjpib3VuZGluZ0JveCgpKSk7CisgICAgV2ViUmVjdCBjYXJldCwg
ZW5kOworICAgIHNlbGVjdGlvbkJvdW5kcyhjYXJldCwgZW5kKTsKKworICAgIC8vIFBpY2sgYSBz
Y2FsZSB3aGljaCBpcyByZWFzb25hYmx5IHJlYWRhYmxlLiBUaGlzIGlzIHRoZSBzY2FsZSBhdCB3
aGljaAorICAgIC8vIHRoZSBjYXJldCBoZWlnaHQgd2lsbCBiZWNvbWUgbWluUmVhZGFibGVDYXJl
dEhlaWdodCAoYWRqdXN0ZWQgZm9yIGRwaQorICAgIC8vIGFuZCBmb250IHNjYWxlIGZhY3Rvciku
CisgICAgZmxvYXQgdGFyZ2V0U2NhbGUgPSBkZXZpY2VTY2FsZUZhY3RvcigpOworI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNldHRpbmdzKCkp
CisgICAgICAgIHRhcmdldFNjYWxlICo9IHBhZ2UoKS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IoKTsKKyNlbmRpZgorICAgIGNvbnN0IGZsb2F0IG5ld1NjYWxlID0g
Y2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xpbWl0cyhwYWdlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRh
YmxlQ2FyZXRIZWlnaHQgKiB0YXJnZXRTY2FsZSAvIGNhcmV0LmhlaWdodCk7CisgICAgY29uc3Qg
ZmxvYXQgZGVsdGFTY2FsZSA9IG5ld1NjYWxlIC8gcGFnZVNjYWxlRmFjdG9yKCk7CisKKyAgICAv
LyBDb252ZXJ0IHRoZSByZWN0cyB0byBhYnNvbHV0ZSBzcGFjZSBpbiB0aGUgbmV3IHNjYWxlLgor
ICAgIEludFJlY3QgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgPSB0ZXh0Ym94UmVj
dDsKKyAgICB0ZXh0Ym94UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcy5tb3ZlKG1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKSk7CisgICAgdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMu
c2NhbGUoZGVsdGFTY2FsZSk7CisgICAgSW50UmVjdCBjYXJldEluRG9jdW1lbnRDb29yZGluYXRl
cyA9IGNhcmV0OworICAgIGNhcmV0SW5Eb2N1bWVudENvb3JkaW5hdGVzLm1vdmUobWFpbkZyYW1l
KCktPnNjcm9sbE9mZnNldCgpKTsKKyAgICBjYXJldEluRG9jdW1lbnRDb29yZGluYXRlcy5zY2Fs
ZShkZWx0YVNjYWxlKTsKKworICAgIEludFBvaW50IG5ld09mZnNldDsKKyAgICBpZiAodGV4dGJv
eFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMud2lkdGgoKSA8PSBtX3NpemUud2lkdGgpIHsKKyAg
ICAgICAgLy8gRmllbGQgaXMgbmFycm93ZXIgdGhhbiBzY3JlZW4uIFRyeSB0byBsZWF2ZSBwYWRk
aW5nIG9uIGxlZnQgc28gZmllbGQncworICAgICAgICAvLyBsYWJlbCBpcyB2aXNpYmxlLCBidXQg
aXQncyBtb3JlIGltcG9ydGFudCB0byBlbnN1cmUgZW50aXJlIGZpZWxkIGlzCisgICAgICAgIC8v
IG9uc2NyZWVuLgorICAgICAgICBpbnQgaWRlYWxMZWZ0UGFkZGluZyA9IG1fc2l6ZS53aWR0aCAq
IGxlZnRCb3hSYXRpbzsKKyAgICAgICAgaW50IG1heExlZnRQYWRkaW5nS2VlcGluZ0JveE9uc2Ny
ZWVuID0gbV9zaXplLndpZHRoIC0gdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMud2lk
dGgoKTsKKyAgICAgICAgbmV3T2Zmc2V0LnNldFgodGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRp
bmF0ZXMueCgpIC0gbWluPGludD4oaWRlYWxMZWZ0UGFkZGluZywgbWF4TGVmdFBhZGRpbmdLZWVw
aW5nQm94T25zY3JlZW4pKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGaWVsZCBpcyB3aWRl
ciB0aGFuIHNjcmVlbi4gVHJ5IHRvIGxlZnQtYWxpZ24gZmllbGQsIHVubGVzcyBjYXJldCB3b3Vs
ZAorICAgICAgICAvLyBiZSBvZmZzY3JlZW4sIGluIHdoaWNoIGNhc2UgcmlnaHQtYWxpZ24gdGhl
IGNhcmV0LgorICAgICAgICBuZXdPZmZzZXQuc2V0WChtYXg8aW50Pih0ZXh0Ym94UmVjdEluRG9j
dW1lbnRDb29yZGluYXRlcy54KCksIGNhcmV0SW5Eb2N1bWVudENvb3JkaW5hdGVzLngoKSArIGNh
cmV0SW5Eb2N1bWVudENvb3JkaW5hdGVzLndpZHRoKCkgKyBjYXJldFBhZGRpbmcgLSBtX3NpemUu
d2lkdGgpKTsKKyAgICB9CisgICAgaWYgKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVz
LmhlaWdodCgpIDw9IG1fc2l6ZS5oZWlnaHQpIHsKKyAgICAgICAgLy8gRmllbGQgaXMgc2hvcnRl
ciB0aGFuIHNjcmVlbi4gVmVydGljYWxseSBjZW50ZXIgaXQuCisgICAgICAgIG5ld09mZnNldC5z
ZXRZKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnkoKSAtIChtX3NpemUuaGVpZ2h0
IC0gdGV4dGJveFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMuaGVpZ2h0KCkpIC8gMik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gRmllbGQgaXMgdGFsbGVyIHRoYW4gc2NyZWVuLiBUcnkgdG8g
dG9wIGFsaWduIGZpZWxkLCB1bmxlc3MgY2FyZXQgd291bGQKKyAgICAgICAgLy8gYmUgb2Zmc2Ny
ZWVuLCBpbiB3aGljaCBjYXNlIGJvdHRvbS1hbGlnbiB0aGUgY2FyZXQuCisgICAgICAgIG5ld09m
ZnNldC5zZXRZKG1heDxpbnQ+KHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnkoKSwg
Y2FyZXRJbkRvY3VtZW50Q29vcmRpbmF0ZXMueSgpICsgY2FyZXRJbkRvY3VtZW50Q29vcmRpbmF0
ZXMuaGVpZ2h0KCkgKyBjYXJldFBhZGRpbmcgLSBtX3NpemUuaGVpZ2h0KSk7CisgICAgfQorCisg
ICAgYm9vbCBuZWVkQW5pbWF0aW9uID0gZmFsc2U7CisgICAgLy8gSWYgd2UgYXJlIGF0IGxlc3Mg
dGhhbiB0aGUgdGFyZ2V0IHpvb20gbGV2ZWwsIHpvb20gaW4uCisgICAgaWYgKGRlbHRhU2NhbGUg
PiBtaW5TY2FsZUNoYW5nZVRvVHJpZ2dlclpvb20pCisgICAgICAgIG5lZWRBbmltYXRpb24gPSB0
cnVlOworICAgIC8vIElmIHRoZSBjYXJldCBpcyBvZmZzY3JlZW4sIHRoZW4gYW5pbWF0ZS4KKyAg
ICBJbnRSZWN0IHNpemVSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Cisg
ICAgaWYgKCFzaXplUmVjdC5jb250YWlucyhjYXJldCkpCisgICAgICAgIG5lZWRBbmltYXRpb24g
PSB0cnVlOworICAgIC8vIElmIHRoZSBib3ggaXMgcGFydGlhbGx5IG9mZnNjcmVlbiBhbmQgaXQn
cyBwb3NzaWJsZSB0byBicmluZyBpdCBmdWxseQorICAgIC8vIG9uc2NyZWVuLCB0aGVuIGFuaW1h
dGUuCisgICAgaWYgKHNpemVSZWN0LmNvbnRhaW5zKHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3Jk
aW5hdGVzLndpZHRoKCksIHRleHRib3hSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzLmhlaWdodCgp
KSAmJiAhc2l6ZVJlY3QuY29udGFpbnModGV4dGJveFJlY3QpKQorICAgICAgICBuZWVkQW5pbWF0
aW9uID0gdHJ1ZTsKKworICAgIGlmIChuZWVkQW5pbWF0aW9uKQorICAgICAgICBzdGFydFBhZ2VT
Y2FsZUFuaW1hdGlvbihuZXdPZmZzZXQsIGZhbHNlLCBuZXdTY2FsZSwgc2Nyb2xsQW5kU2NhbGVB
bmltYXRpb25EdXJhdGlvbkluU2Vjb25kcyk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6YWR2YW5jZUZvY3VzKGJvb2wgcmV2ZXJzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCBmMGYxOTQ1MmU5ZWU0YmUwNmNhMWI4MGU5ZWNl
YWNjN2ZiY2U3YTg4Li4wZDI0MTI1ODQ4ODMwZDY0ZWRmMGM2ZmNlNDExNzA2YzRlYmJjMGY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC00
OTYsNiArNDk2LDc0IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1dG9ab29tU2NhbGVCb3Vu
ZHNUZXN0KQogICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2lu
dCwgc2NhbGUpOwogICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VT
Y2FsZUZhY3RvcigpLCBzY2FsZSk7CiB9CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERpdlNjcm9s
bEludG9FZGl0YWJsZVRlc3QpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZ2V0
X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1sIik7CisKKyAgICBEaXZBdXRv
Wm9vbVRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBpbnQgdmlld3BvcnRXaWR0aCA9IDY0
MDsKKyAgICBpbnQgdmlld3BvcnRIZWlnaHQgPSA0ODA7CisgICAgZmxvYXQgTGVmdEJveFJhdGlv
ID0gMC4zOworICAgIGludCBjYXJldFBhZGRpbmcgPSAxMDsKKyAgICBpbnQgbWluUmVhZGFibGVD
YXJldEhlaWdodCA9IDE4OworICAgIGNsaWVudC5tX3dpbmRvd1JlY3QgPSBXZWJSZWN0KDAsIDAs
IHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KTsKKyAgICBXZWJLaXQ6OldlYlZpZXcqIHdl
YlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwg
KyAiZ2V0X3NjYWxlX2Zvcl96b29tX2ludG9fZWRpdGFibGVfdGVzdC5odG1sIiwgdHJ1ZSwgMCwg
JmNsaWVudCk7CisgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOworICAg
IHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7
CisgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKDEsIDEwKTsKKyAgICB3ZWJW
aWV3LT5sYXlvdXQoKTsKKyAgICB3ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3RvcigxLjVmKTsK
KyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxl
U2NhbGUodHJ1ZSk7CisKKyAgICBXZWJWaWV3SW1wbCogd2ViVmlld0ltcGwgPSBzdGF0aWNfY2Fz
dDxXZWJWaWV3SW1wbCo+KHdlYlZpZXcpOworICAgIHdlYlZpZXdJbXBsLT5zaG91bGRVc2VBbmlt
YXRlRG91YmxlVGFwVGltZVplcm9Gb3JUZXN0aW5nKHRydWUpOworCisgICAgV2ViUmVjdCBlZGl0
Qm94V2l0aFRleHQoMjAwLCAyMDAsIDI1MCwgMjApOworICAgIFdlYlJlY3QgZWRpdEJveFdpdGhO
b1RleHQoMjAwLCAyNTAsIDI1MCwgMjApOworCisgICAgLy8gVGVzdCBzY3JvbGxpbmcgdGhlIGZv
Y3VzZWQgbm9kZQorICAgIC8vIFRoZSBlZGl0IGJveCBpcyBzaG9ydGVyIGFuZCBuYXJyb3dlciB0
aGFuIHRoZSB2aWV3cG9ydCB3aGVuIGxlZ2libGUuCisgICAgc2V0U2NhbGVBbmRTY3JvbGxBbmRM
YXlvdXQod2ViVmlldywgV2ViUG9pbnQoMCwgMCksIDEpOworICAgIFdlYlJlY3QgcmVjdCwgY2Fy
ZXQ7CisgICAgd2ViVmlld0ltcGwtPnNlbGVjdGlvbkJvdW5kcyhjYXJldCwgcmVjdCk7CisgICAg
d2ViVmlldy0+c2Nyb2xsRm9jdXNlZE5vZGVJbnRvUmVjdChyZWN0KTsKKyAgICAvLyBUaGUgZWRp
dCBib3ggc2hvdWxkIGJlIGxlZnQgYWxpZ25lZCB3aXRoIGEgbWFyZ2luIGZvciBwb3NzaWJsZSBs
YWJlbC4KKyAgICBpbnQgaFNjcm9sbCA9IGVkaXRCb3hXaXRoVGV4dC54ICogd2ViVmlldy0+cGFn
ZVNjYWxlRmFjdG9yKCkgLSBMZWZ0Qm94UmF0aW8gKiB2aWV3cG9ydFdpZHRoOworICAgIEVYUEVD
VF9FUShoU2Nyb2xsLCB3ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkud2lkdGgp
OworICAgIGludCB2U2Nyb2xsID0gZWRpdEJveFdpdGhUZXh0LnkgKiB3ZWJWaWV3LT5wYWdlU2Nh
bGVGYWN0b3IoKSAtICh2aWV3cG9ydEhlaWdodCAtIGVkaXRCb3hXaXRoVGV4dC5oZWlnaHQgKiB3
ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSkgLyAyOworICAgIEVYUEVDVF9FUSh2U2Nyb2xsLCB3
ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0KTsKKyAgICBFWFBFQ1Rf
RkxPQVRfRVEod2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAqIG1pblJlYWRhYmxlQ2FyZXRI
ZWlnaHQgLyBjYXJldC5oZWlnaHQsIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAg
IC8vIFRoZSBlZGl0IGJveCBpcyB3aWRlciB0aGFuIHRoZSB2aWV3cG9ydCB3aGVuIGxlZ2libGUu
CisgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoNCk7CisgICAgc2V0U2NhbGVBbmRT
Y3JvbGxBbmRMYXlvdXQod2ViVmlldywgV2ViUG9pbnQoMCwgMCksIDEpOworICAgIHdlYlZpZXdJ
bXBsLT5zZWxlY3Rpb25Cb3VuZHMoY2FyZXQsIHJlY3QpOworICAgIHdlYlZpZXctPnNjcm9sbEZv
Y3VzZWROb2RlSW50b1JlY3QocmVjdCk7CisgICAgLy8gVGhlIGNhcmV0IHNob3VsZCBiZSByaWdo
dCBhbGlnbmVkIHNpbmNlIHRoZSBjYXJldCB3b3VsZCBiZSBvZmZzY3JlZW4gd2hlbiB0aGUgZWRp
dCBib3ggaXMgbGVmdCBhbGlnbmVkLgorICAgIGhTY3JvbGwgPSAoY2FyZXQueCArIGNhcmV0Lndp
ZHRoKSAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpICsgY2FyZXRQYWRkaW5nIC0gdmlld3Bv
cnRXaWR0aDsKKyAgICBFWFBFQ1RfRVEoaFNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNj
cm9sbE9mZnNldCgpLndpZHRoKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlldy0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSAqIG1pblJlYWRhYmxlQ2FyZXRIZWlnaHQgLyBjYXJldC5oZWlnaHQsIHdl
YlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAgIHNldFNjYWxlQW5kU2Nyb2xsQW5kTGF5
b3V0KHdlYlZpZXcsIFdlYlBvaW50KDAsIDApLCAxKTsKKyAgICAvLyBNb3ZlIGZvY3VzIHRvIGVk
aXQgYm94IHdpdGggdGV4dC4KKyAgICB3ZWJWaWV3LT5hZHZhbmNlRm9jdXMoZmFsc2UpOworICAg
IHdlYlZpZXdJbXBsLT5zZWxlY3Rpb25Cb3VuZHMoY2FyZXQsIHJlY3QpOworICAgIHdlYlZpZXct
PnNjcm9sbEZvY3VzZWROb2RlSW50b1JlY3QocmVjdCk7CisgICAgLy8gVGhlIGVkaXQgYm94IHNo
b3VsZCBiZSBsZWZ0IGFsaWduZWQuCisgICAgaFNjcm9sbCA9IGVkaXRCb3hXaXRoTm9UZXh0Lngg
KiB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBFWFBFQ1RfRVEoaFNjcm9sbCwgd2Vi
Vmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLndpZHRoKTsKKyAgICB2U2Nyb2xsID0g
ZWRpdEJveFdpdGhOb1RleHQueSAqIHdlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpIC0gKHZpZXdw
b3J0SGVpZ2h0IC0gZWRpdEJveFdpdGhOb1RleHQuaGVpZ2h0ICogd2ViVmlldy0+cGFnZVNjYWxl
RmFjdG9yKCkpIC8gMjsKKyAgICBFWFBFQ1RfRVEodlNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1l
KCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXct
PmRldmljZVNjYWxlRmFjdG9yKCkgKiBtaW5SZWFkYWJsZUNhcmV0SGVpZ2h0IC8gY2FyZXQuaGVp
Z2h0LCB3ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICAvLyBNb3ZlIGZvY3VzIGJh
Y2sgdG8gdGhlIGZpcnN0IGVkaXQgYm94LgorICAgIHdlYlZpZXctPmFkdmFuY2VGb2N1cyh0cnVl
KTsKKyAgICB3ZWJWaWV3SW1wbC0+c2VsZWN0aW9uQm91bmRzKGNhcmV0LCByZWN0KTsKKyAgICAv
LyBUaGUgcG9zaXRpb24gc2hvdWxkIGhhdmUgc3RheWVkIHRoZSBzYW1lIHNpbmNlIHRoaXMgYm94
IHdhcyBhbHJlYWR5IG9uIHNjcmVlbiB3aXRoIHRoZSByaWdodCBzY2FsZS4KKyAgICBFWFBFQ1Rf
RVEodlNjcm9sbCwgd2ViVmlldy0+bWFpbkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCk7
CisgICAgRVhQRUNUX0VRKGhTY3JvbGwsIHdlYlZpZXctPm1haW5GcmFtZSgpLT5zY3JvbGxPZmZz
ZXQoKS53aWR0aCk7Cit9CiAjZW5kaWYKIAogY2xhc3MgVGVzdFJlbG9hZERvZXNudFJlZGlyZWN0
V2ViRnJhbWVDbGllbnQgOiBwdWJsaWMgV2ViRnJhbWVDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2dldF9zY2FsZV9mb3Jfem9vbV9pbnRvX2Vk
aXRhYmxlX3Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9nZXRf
c2NhbGVfZm9yX3pvb21faW50b19lZGl0YWJsZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFjNzQ4
ZTMwZGNmYzNlMGI4ZDljMTFmODgyNGE0NzkyNmEwYjY0YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9nZXRfc2NhbGVfZm9yX3pvb21faW50b19l
ZGl0YWJsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBnZXRmb2N1cygpCit7Cit2YXIgdGV4dGZpZWxkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ0VkaXRCb3hXaXRoVGV4dCcpOwordGV4dGZpZWxkLmZvY3VzKCk7Cit0ZXh0
ZmllbGQuc2V0U2VsZWN0aW9uUmFuZ2UodGV4dGZpZWxkLnZhbHVlLmxlbmd0aCx0ZXh0ZmllbGQu
dmFsdWUubGVuZ3RoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9Imdl
dGZvY3VzKCkiPgorICAgICAgPGlucHV0IGlkPSJFZGl0Qm94V2l0aFRleHQiIHN0eWxlPSIgcG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAyMDBweDsgdG9wOiAyMDBweDsgd2lkdGg6IDI1MDsgaGVp
Z2h0OjIwIiB2YWx1ZSA9ICJMb25nIHRleHQgdG8gZmlsbCB0aGUgZWRpdCBib3giIHR5cGU9InRl
eHQiPgorICAgICAgPGlucHV0IGlkPSJFZGl0Qm94V2l0aE5vVGV4dCIgc3R5bGU9IiBwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDIwMHB4OyB0b3A6IDI1MHB4OyB3aWR0aDogMjUwOyBoZWlnaHQ6
MjAiIHR5cGU9InRleHQiPgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>