<?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>59437</bug_id>
          
          <creation_ts>2011-04-26 01:00:55 -0700</creation_ts>
          <short_desc>Moar strict OwnPtr fixes for WebKit/chromium</short_desc>
          <delta_ts>2011-04-26 11:23:38 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>392345</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 01:00:55 -0700</bug_when>
    <thetext>Moar strict OwnPtr fixes for WebKit/chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392346</commentid>
    <comment_count>1</comment_count>
      <attachid>91079</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 01:01:42 -0700</bug_when>
    <thetext>Created attachment 91079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392469</commentid>
    <comment_count>2</comment_count>
      <attachid>91079</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-26 08:12:28 -0700</bug_when>
    <thetext>Comment on attachment 91079
Patch

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

&gt; Source/WebKit/chromium/src/WebDataSourceImpl.cpp:43
&gt; +OwnPtr&lt;WebPluginLoadObserver&gt; WebDataSourceImpl::m_nextPluginLoadObserver;

Won&apos;t this make an exit-time destructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392475</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 08:17:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 91079 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=91079&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebDataSourceImpl.cpp:43
&gt; &gt; +OwnPtr&lt;WebPluginLoadObserver&gt; WebDataSourceImpl::m_nextPluginLoadObserver;
&gt; 
&gt; Won&apos;t this make an exit-time destructor?

exit-time destructors are allowed in Chromium.  I can change this not be one, if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392480</commentid>
    <comment_count>4</comment_count>
      <attachid>91109</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 08:21:28 -0700</bug_when>
    <thetext>Created attachment 91109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392482</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 08:27:11 -0700</bug_when>
    <thetext>Patch updated to avoid exit-time destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392491</commentid>
    <comment_count>6</comment_count>
      <attachid>91109</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-04-26 08:38:38 -0700</bug_when>
    <thetext>Comment on attachment 91109
Patch

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

Glad you got rid of the exit time destructor (as it bothered me too when I glanced at this before going off to bed).

Only one comment to consider.

&gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:319
&gt; +void WebDevToolsAgent::interruptAndDispatch(MessageDescriptor* rawDescriptor)

Yeah for decent variable names.

&gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:342
&gt; +    PageScriptDebugServer::interruptAndRun(new DebuggerTask(descriptor.release()));

Seems odd that there is no adopt of the &quot;new DebuggerTask&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392537</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 10:02:28 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:342
&gt; &gt; +    PageScriptDebugServer::interruptAndRun(new DebuggerTask(descriptor.release()));
&gt; 
&gt; Seems odd that there is no adopt of the &quot;new DebuggerTask&quot; here.

Good question:

    static void interruptAndRun(PassOwnPtr&lt;Task&gt;);

Ah!  I&apos;ve figured it out.  I haven&apos;t been removing the LOOSE_PASS_OWN_PTR define in PassOwnPtr.h!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392584</commentid>
    <comment_count>8</comment_count>
      <attachid>91109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-26 11:23:33 -0700</bug_when>
    <thetext>Comment on attachment 91109
Patch

Clearing flags on attachment: 91109

Committed r84933: &lt;http://trac.webkit.org/changeset/84933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392585</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-26 11:23:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91079</attachid>
            <date>2011-04-26 01:01:42 -0700</date>
            <delta_ts>2011-04-26 08:21:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59437-20110426010141.patch</filename>
            <type>text/plain</type>
            <size>14865</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDg5MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDQtMjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2FyIHN0cmljdCBPd25Q
dHIgZml4ZXMgZm9yIFdlYktpdC9jaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0MzcKKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIGFs
bCBidXQgdHdvIHN0cmljdCBPd25QdHIgaXNzdWVzIGluIFdlYktpdC9jaHJvbWl1bS4KKworICAg
ICAgICAqIHNyYy9XZWJEYXRhU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRh
dGFTb3VyY2VJbXBsOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhU291
cmNlSW1wbDo6c2V0TmV4dFBsdWdpbkxvYWRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRhdGFTb3VyY2VJbXBsOjpXZWJEYXRhU291cmNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYkRh
dGFTb3VyY2VJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmF0dGFjaCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpkZXRhY2gpOgorICAgICAgICAoV2ViS2l0
OjpXZWJEZXZUb29sc0FnZW50OjppbnRlcnJ1cHRBbmREaXNwYXRjaCk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cHJpbnRC
ZWdpbik6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmNyZWF0ZVdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwpOgorICAgICAgICAqIHNyYy9XZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
SW1wbCk6CisgICAgICAgICogc3JjL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGw6OldlYlN0b3Jh
Z2VFdmVudERpc3BhdGNoZXJJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6YXBwbHlBdXRvRmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
YWRkVXNlclNjcmlwdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmFkZFVzZXJTdHlsZVNo
ZWV0KToKKwogMjAxMS0wNC0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGF0YVNvdXJjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcAkocmV2aXNpb24gODQ4ODYpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1XZWJQbHVnaW5Mb2FkT2JzZXJ2ZXIqIFdlYkRhdGFTb3VyY2VJ
bXBsOjptX25leHRQbHVnaW5Mb2FkT2JzZXJ2ZXIgPSAwOworT3duUHRyPFdlYlBsdWdpbkxvYWRP
YnNlcnZlcj4gV2ViRGF0YVNvdXJjZUltcGw6Om1fbmV4dFBsdWdpbkxvYWRPYnNlcnZlcjsKIAog
UGFzc1JlZlB0cjxXZWJEYXRhU291cmNlSW1wbD4gV2ViRGF0YVNvdXJjZUltcGw6OmNyZWF0ZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRh
KQogewpAQCAtMTExLDcgKzExMSw4IEBAIFdlYkRhdGFTb3VyY2U6OkV4dHJhRGF0YSogV2ViRGF0
YVNvdXJjZUkKIAogdm9pZCBXZWJEYXRhU291cmNlSW1wbDo6c2V0RXh0cmFEYXRhKEV4dHJhRGF0
YSogZXh0cmFEYXRhKQogewotICAgIG1fZXh0cmFEYXRhLnNldChleHRyYURhdGEpOworICAgIC8v
IGV4dHJhRGF0YSBjYW4ndCBiZSBhIFBhc3NPd25QdHIgYmVjYXVzZSBzZXRFeHRyYURhdGEgaXMg
YSBXZWJLaXQgQVBJIGZ1bmN0aW9uLgorICAgIG1fZXh0cmFEYXRhID0gYWRvcHRQdHIoZXh0cmFE
YXRhKTsKIH0KIAogV2ViQXBwbGljYXRpb25DYWNoZUhvc3QqIFdlYkRhdGFTb3VyY2VJbXBsOjph
cHBsaWNhdGlvbkNhY2hlSG9zdCgpCkBAIC0xNjUsMjUgKzE2NiwyMyBAQCB2b2lkIFdlYkRhdGFT
b3VyY2VJbXBsOjphcHBlbmRSZWRpcmVjdChjCiAKIHZvaWQgV2ViRGF0YVNvdXJjZUltcGw6OnNl
dE5leHRQbHVnaW5Mb2FkT2JzZXJ2ZXIoUGFzc093blB0cjxXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXI+
IG9ic2VydmVyKQogewotICAgIC8vIFRoaXMgY2FsbCBzaG91bGQgYWx3YXlzIGJlIGZvbGxvd2Vk
IHVwIHdpdGggdGhlIGNyZWF0aW9uIG9mIGEKLSAgICAvLyBXZWJEYXRhU291cmNlSW1wbCwgc28g
d2Ugc2hvdWxkIG5ldmVyIGxlYWsgdGhpcyBvYmplY3QuCi0gICAgbV9uZXh0UGx1Z2luTG9hZE9i
c2VydmVyID0gb2JzZXJ2ZXIubGVha1B0cigpOworICAgIG1fbmV4dFBsdWdpbkxvYWRPYnNlcnZl
ciA9IG9ic2VydmVyOwogfQogCiBXZWJEYXRhU291cmNlSW1wbDo6V2ViRGF0YVNvdXJjZUltcGwo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0
YSkKICAgICA6IERvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpCiB7Ci0gICAgaWYgKG1fbmV4
dFBsdWdpbkxvYWRPYnNlcnZlcikgewotICAgICAgICAvLyBXaGVuIGEgbmV3IGZyYW1lIGlzIGNy
ZWF0ZWQsIGl0IGluaXRpYWxseSBnZXRzIGEgZGF0YSBzb3VyY2UgZm9yIGFuCi0gICAgICAgIC8v
IGVtcHR5IGRvY3VtZW50LiAgVGhlbiBpdCBpcyBuYXZpZ2F0ZWQgdG8gdGhlIHNvdXJjZSBVUkwg
b2YgdGhlCi0gICAgICAgIC8vIGZyYW1lLCB3aGljaCByZXN1bHRzIGluIGEgc2Vjb25kIGRhdGEg
c291cmNlIGJlaW5nIGNyZWF0ZWQuICBXZSB3YW50Ci0gICAgICAgIC8vIHRvIHdhaXQgdG8gYXR0
YWNoIHRoZSBXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXIgdG8gdGhhdCBkYXRhIHNvdXJjZS4KLSAgICAg
ICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgQVNTRVJUKG1f
bmV4dFBsdWdpbkxvYWRPYnNlcnZlci0+dXJsKCkgPT0gV2ViVVJMKHJlcXVlc3QudXJsKCkpKTsK
LSAgICAgICAgICAgIG1fcGx1Z2luTG9hZE9ic2VydmVyLnNldChtX25leHRQbHVnaW5Mb2FkT2Jz
ZXJ2ZXIpOwotICAgICAgICAgICAgbV9uZXh0UGx1Z2luTG9hZE9ic2VydmVyID0gMDsKLSAgICAg
ICAgfQotICAgIH0KKyAgICBpZiAoIW1fbmV4dFBsdWdpbkxvYWRPYnNlcnZlcikKKyAgICAgICAg
cmV0dXJuOworICAgIC8vIFdoZW4gYSBuZXcgZnJhbWUgaXMgY3JlYXRlZCwgaXQgaW5pdGlhbGx5
IGdldHMgYSBkYXRhIHNvdXJjZSBmb3IgYW4KKyAgICAvLyBlbXB0eSBkb2N1bWVudC4gVGhlbiBp
dCBpcyBuYXZpZ2F0ZWQgdG8gdGhlIHNvdXJjZSBVUkwgb2YgdGhlCisgICAgLy8gZnJhbWUsIHdo
aWNoIHJlc3VsdHMgaW4gYSBzZWNvbmQgZGF0YSBzb3VyY2UgYmVpbmcgY3JlYXRlZC4gV2Ugd2Fu
dAorICAgIC8vIHRvIHdhaXQgdG8gYXR0YWNoIHRoZSBXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXIgdG8g
dGhhdCBkYXRhIHNvdXJjZS4KKyAgICBpZiAocmVxdWVzdC51cmwoKS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX25leHRQbHVnaW5Mb2FkT2JzZXJ2ZXItPnVybCgp
ID09IFdlYlVSTChyZXF1ZXN0LnVybCgpKSk7CisgICAgbV9wbHVnaW5Mb2FkT2JzZXJ2ZXIgPSBt
X25leHRQbHVnaW5Mb2FkT2JzZXJ2ZXIucmVsZWFzZSgpOwogfQogCiBXZWJEYXRhU291cmNlSW1w
bDo6fldlYkRhdGFTb3VyY2VJbXBsKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRhdGFTb3VyY2VJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGF0YVNvdXJjZUltcGwuaAkocmV2aXNpb24gODQ4ODYpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC05
OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7
CiAgICAgT3duUHRyPFdlYlBsdWdpbkxvYWRPYnNlcnZlcj4gbV9wbHVnaW5Mb2FkT2JzZXJ2ZXI7
CiAKLSAgICBzdGF0aWMgV2ViUGx1Z2luTG9hZE9ic2VydmVyKiBtX25leHRQbHVnaW5Mb2FkT2Jz
ZXJ2ZXI7CisgICAgc3RhdGljIE93blB0cjxXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXI+IG1fbmV4dFBs
dWdpbkxvYWRPYnNlcnZlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAkocmV2aXNpb24gODQ4ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZU
b29sc0FnZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NCw4ICsxODQsNyBAQCB2b2lk
IFdlYkRldlRvb2xzQWdlbnRJbXBsOjphdHRhY2goKQogICAgIGlmICghbV9jbGllbnQtPmV4cG9z
ZVY4RGVidWdnZXJQcm90b2NvbCgpKQogICAgICAgICBDbGllbnRNZXNzYWdlTG9vcEFkYXB0ZXI6
OmVuc3VyZUNsaWVudE1lc3NhZ2VMb29wQ3JlYXRlZChtX2NsaWVudCk7CiAKLSAgICBtX2RlYnVn
Z2VyQWdlbnRJbXBsLnNldCgKLSAgICAgICAgbmV3IERlYnVnZ2VyQWdlbnRJbXBsKG1fd2ViVmll
d0ltcGwsIHRoaXMsIG1fY2xpZW50KSk7CisgICAgbV9kZWJ1Z2dlckFnZW50SW1wbCA9IGFkb3B0
UHRyKG5ldyBEZWJ1Z2dlckFnZW50SW1wbChtX3dlYlZpZXdJbXBsLCB0aGlzLCBtX2NsaWVudCkp
OwogICAgIG1fYXR0YWNoZWQgPSB0cnVlOwogfQogCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBX
ZWJEZXZUb29sc0FnZW50SW1wbDo6ZGV0YWNoKCkKICAgICBpYy0+ZGlzY29ubmVjdEZyb250ZW5k
KCk7CiAgICAgaWMtPmhpZGVIaWdobGlnaHQoKTsKICAgICBpYy0+Y2xvc2UoKTsKLSAgICBtX2Rl
YnVnZ2VyQWdlbnRJbXBsLnNldCgwKTsKKyAgICBtX2RlYnVnZ2VyQWdlbnRJbXBsLmNsZWFyKCk7
CiAgICAgbV9hdHRhY2hlZCA9IGZhbHNlOwogfQogCkBAIC0zMTcsMjEgKzMxNiwzMCBAQCB2b2lk
IFdlYkRldlRvb2xzQWdlbnQ6OmRlYnVnZ2VyUGF1c2VTY3JpCiAgICAgRGVidWdnZXJBZ2VudE1h
bmFnZXI6OnBhdXNlU2NyaXB0KCk7CiB9CiAKLXZvaWQgV2ViRGV2VG9vbHNBZ2VudDo6aW50ZXJy
dXB0QW5kRGlzcGF0Y2goTWVzc2FnZURlc2NyaXB0b3IqIGQpCit2b2lkIFdlYkRldlRvb2xzQWdl
bnQ6OmludGVycnVwdEFuZERpc3BhdGNoKE1lc3NhZ2VEZXNjcmlwdG9yKiByYXdEZXNjcmlwdG9y
KQogeworICAgIC8vIHJhd0Rlc2NyaXB0b3IgY2FuJ3QgYmUgYSBQYXNzT3duUHRyIGJlY2F1c2Ug
aW50ZXJydXB0QW5kRGlzcGF0Y2ggaXMgYSBXZWJLaXQgQVBJIGZ1bmN0aW9uLgorICAgIE93blB0
cjxNZXNzYWdlRGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9IGFkb3B0UHRyKHJhd0Rlc2NyaXB0b3Ip
OworCiAgICAgY2xhc3MgRGVidWdnZXJUYXNrIDogcHVibGljIFBhZ2VTY3JpcHREZWJ1Z1NlcnZl
cjo6VGFzayB7CiAgICAgcHVibGljOgotICAgICAgICBEZWJ1Z2dlclRhc2soV2ViRGV2VG9vbHNB
Z2VudDo6TWVzc2FnZURlc2NyaXB0b3IqIGRlc2NyaXB0b3IpIDogbV9kZXNjcmlwdG9yKGRlc2Ny
aXB0b3IpIHsgfQorICAgICAgICBEZWJ1Z2dlclRhc2soUGFzc093blB0cjxXZWJEZXZUb29sc0Fn
ZW50OjpNZXNzYWdlRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKKyAgICAgICAgICAgIDogbV9kZXNj
cmlwdG9yKGRlc2NyaXB0b3IpCisgICAgICAgIHsKKyAgICAgICAgfQorCiAgICAgICAgIHZpcnR1
YWwgfkRlYnVnZ2VyVGFzaygpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuKCkKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKFdlYkRldlRvb2xzQWdlbnQqIHdlYmFnZW50ID0gbV9kZXNj
cmlwdG9yLT5hZ2VudCgpKQogICAgICAgICAgICAgICAgIHdlYmFnZW50LT5kaXNwYXRjaE9uSW5z
cGVjdG9yQmFja2VuZChtX2Rlc2NyaXB0b3ItPm1lc3NhZ2UoKSk7CiAgICAgICAgIH0KKwogICAg
IHByaXZhdGU6CiAgICAgICAgIE93blB0cjxXZWJEZXZUb29sc0FnZW50OjpNZXNzYWdlRGVzY3Jp
cHRvcj4gbV9kZXNjcmlwdG9yOwogICAgIH07Ci0gICAgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpp
bnRlcnJ1cHRBbmRSdW4obmV3IERlYnVnZ2VyVGFzayhkKSk7CisKKyAgICBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OmludGVycnVwdEFuZFJ1bihuZXcgRGVidWdnZXJUYXNrKGRlc2NyaXB0b3IucmVs
ZWFzZSgpKSk7CiB9CiAKIGJvb2wgV2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9y
TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDg0ODg2KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM5MCw5ICsxMzkwLDkgQEAgaW50IFdlYkZyYW1lSW1wbDo6cHJpbnRCZWdpbihjb25zdCBXZWJT
aQogICAgIH0KIAogICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgcGx1Z2luQ29udGFpbmVyLT5z
dXBwb3J0c1BhZ2luYXRlZFByaW50KCkpCi0gICAgICAgIG1fcHJpbnRDb250ZXh0LnNldChuZXcg
Q2hyb21lUGx1Z2luUHJpbnRDb250ZXh0KGZyYW1lKCksIHBsdWdpbkNvbnRhaW5lciwgcHJpbnRl
ckRQSSkpOworICAgICAgICBtX3ByaW50Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBDaHJvbWVQbHVn
aW5QcmludENvbnRleHQoZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmludGVyRFBJKSk7CiAg
ICAgZWxzZQotICAgICAgICBtX3ByaW50Q29udGV4dC5zZXQobmV3IENocm9tZVByaW50Q29udGV4
dChmcmFtZSgpKSk7CisgICAgICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENocm9t
ZVByaW50Q29udGV4dChmcmFtZSgpKSk7CiAKICAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBzdGF0
aWNfY2FzdDxmbG9hdD4ocGFnZVNpemUud2lkdGgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS5oZWlnaHQpKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNw
cAkocmV2aXNpb24gODQ4ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxNCArNTEsMTMgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMg
V2ViTWVkaWFQbGF5ZXIqIGNyZWF0ZVdlYk1lZGlhUGxheWVyKAotICAgIFdlYk1lZGlhUGxheWVy
Q2xpZW50KiBjbGllbnQsIEZyYW1lKiBmcmFtZSkKK3N0YXRpYyBQYXNzT3duUHRyPFdlYk1lZGlh
UGxheWVyPiBjcmVhdGVXZWJNZWRpYVBsYXllcihXZWJNZWRpYVBsYXllckNsaWVudCogY2xpZW50
LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
SW1wbDo6ZnJvbUZyYW1lKGZyYW1lKTsKIAogICAgIGlmICghd2ViRnJhbWUtPmNsaWVudCgpKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gd2ViRnJhbWUtPmNsaWVudCgpLT5jcmVhdGVN
ZWRpYVBsYXllcih3ZWJGcmFtZSwgY2xpZW50KTsKKyAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8
V2ViTWVkaWFQbGF5ZXI+KCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKHdlYkZyYW1lLT5jbGllbnQo
KS0+Y3JlYXRlTWVkaWFQbGF5ZXIod2ViRnJhbWUsIGNsaWVudCkpOwogfQogCiBib29sIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6bV9pc0VuYWJsZWQgPSBmYWxzZTsKQEAgLTIxOSw3ICsyMTgs
NyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZChjb25zCiB2b2lkIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZEludGVybmFsKCkKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9tZWRpYVBsYXllci0+bWVkaWFQbGF5
ZXJDbGllbnQoKSktPmRvY3VtZW50KCktPmZyYW1lKCk7Ci0gICAgbV93ZWJNZWRpYVBsYXllci5z
ZXQoY3JlYXRlV2ViTWVkaWFQbGF5ZXIodGhpcywgZnJhbWUpKTsKKyAgICBtX3dlYk1lZGlhUGxh
eWVyID0gY3JlYXRlV2ViTWVkaWFQbGF5ZXIodGhpcywgZnJhbWUpOwogICAgIGlmIChtX3dlYk1l
ZGlhUGxheWVyLmdldCgpKQogICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCBtX3VybCkpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBs
LmNwcAkocmV2aXNpb24gODQ4ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudE1vY2suaCIKICNpbmNsdWRlICJX
ZWJSZWN0LmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDYsNyArNDcsNyBAQCBX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKiBXZWJTcGVlY2hJCiAKIFdlYlNwZWVjaElucHV0
Q29udHJvbGxlck1vY2tJbXBsOjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbCgKICAg
ICBXZWJTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKLSAgICA6IG1fd2ViY29yZU1vY2so
bmV3IFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jaygpKQorICAgIDogbV93ZWJjb3JlTW9j
ayhhZG9wdFB0cihuZXcgV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKCkpKQogICAgICwg
bV9saXN0ZW5lcihsaXN0ZW5lcikKIHsKICAgICBtX3dlYmNvcmVNb2NrLT5zZXRMaXN0ZW5lcih0
aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VFdmVudERp
c3BhdGNoZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbC5jcHAJKHJldmlzaW9uIDg0ODg2KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAKICNpbmNsdWRlICJXZWJTdG9y
YWdlQXJlYUltcGwuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDksNyArNTAsNyBAQCBXZWJTdG9y
YWdlRXZlbnREaXNwYXRjaGVyKiBXZWJTdG9yYWdlRXZlCiB9CiAKIFdlYlN0b3JhZ2VFdmVudERp
c3BhdGNoZXJJbXBsOjpXZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbCgpCi0gICAgOiBtX2V2
ZW50RGlzcGF0Y2hlcihuZXcgV2ViQ29yZTo6U3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwocGFn
ZUdyb3VwTmFtZSkpCisgICAgOiBtX2V2ZW50RGlzcGF0Y2hlcihhZG9wdFB0cihuZXcgV2ViQ29y
ZTo6U3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwocGFnZUdyb3VwTmFtZSkpKQogewogICAgIEFT
U0VSVChtX2V2ZW50RGlzcGF0Y2hlcik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA4NDg4NikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0LDExICsz
MTQsMTAgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIAogICAgICwg
bV9vcGVyYXRpb25zQWxsb3dlZChXZWJEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAsIG1fZHJhZ09w
ZXJhdGlvbihXZWJEcmFnT3BlcmF0aW9uTm9uZSkKICAgICAsIG1fYXV0b0ZpbGxQb3B1cFNob3dp
bmcoZmFsc2UpCi0gICAgLCBtX2F1dG9GaWxsUG9wdXBDbGllbnQoMCkKICAgICAsIG1fYXV0b0Zp
bGxQb3B1cCgwKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV90YWJzVG9M
aW5rcyhmYWxzZSkKLSAgICAsIG1fZHJhZ1Njcm9sbFRpbWVyKG5ldyBEcmFnU2Nyb2xsVGltZXIo
KSkKKyAgICAsIG1fZHJhZ1Njcm9sbFRpbWVyKGFkb3B0UHRyKG5ldyBEcmFnU2Nyb2xsVGltZXIp
KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fbGF5ZXJSZW5kZXJl
cigwKQogICAgICwgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoZmFsc2UpCkBAIC0z
MjgsOCArMzI3LDggQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIAog
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgLCBtX3NwZWVjaElucHV0Q2xpZW50KFNwZWVj
aElucHV0Q2xpZW50SW1wbDo6Y3JlYXRlKGNsaWVudCkpCiAjZW5kaWYKLSAgICAsIG1fZGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eShuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eShj
bGllbnQgPyBjbGllbnQtPmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgOiAwKSkKLSAgICAsIG1f
Z2VvbG9jYXRpb25DbGllbnRQcm94eShuZXcgR2VvbG9jYXRpb25DbGllbnRQcm94eShjbGllbnQg
PyBjbGllbnQtPmdlb2xvY2F0aW9uQ2xpZW50KCkgOiAwKSkKKyAgICAsIG1fZGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eShhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eShjbGllbnQgPyBjbGllbnQtPmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgOiAwKSkpCisgICAg
LCBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHkoYWRvcHRQdHIobmV3IEdlb2xvY2F0aW9uQ2xpZW50
UHJveHkoY2xpZW50ID8gY2xpZW50LT5nZW9sb2NhdGlvbkNsaWVudCgpIDogMCkpKQogewogICAg
IC8vIFdlYktpdC93aW4vV2ViVmlldy5jcHAgZG9lcyB0aGUgc2FtZSB0aGluZywgZXhjZXB0IHRo
ZXkgY2FsbCB0aGUKICAgICAvLyBLSlMgc3BlY2lmaWMgd3JhcHBlciBhcm91bmQgdGhpcyBtZXRo
b2QuIFdlIG5lZWQgdG8gaGF2ZSB0aHJlYWRpbmcKQEAgLTM1MywxMyArMzUyLDEzIEBAIFdlYlZp
ZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiAKICAgICBwYWdlQ2xpZW50cy5nZW9s
b2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eS5nZXQoKTsKICAgICBwYWdl
Q2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IEJhY2tGb3J3YXJkTGlzdENocm9taXVtOjpjcmVh
dGUodGhpcyk7CiAKLSAgICBtX3BhZ2Uuc2V0KG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7CisgICAg
bV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKIAogICAgIG1fZ2VvbG9j
YXRpb25DbGllbnRQcm94eS0+c2V0Q29udHJvbGxlcihtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJv
bGxlcigpKTsKIAogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91cE5hbWUpOwogCi0g
ICAgbV9pbnNwZWN0b3JTZXR0aW5nc01hcC5zZXQobmV3IFNldHRpbmdzTWFwKTsKKyAgICBtX2lu
c3BlY3RvclNldHRpbmdzTWFwID0gYWRvcHRQdHIobmV3IFNldHRpbmdzTWFwKTsKIH0KIAogV2Vi
Vmlld0ltcGw6On5XZWJWaWV3SW1wbCgpCkBAIC0xNTMyLDggKzE1MzEsOCBAQCBib29sIFdlYlZp
ZXdJbXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpCiAKIFdlYlNldHRpbmdzKiBXZWJWaWV3SW1w
bDo6c2V0dGluZ3MoKQogewotICAgIGlmICghbV93ZWJTZXR0aW5ncy5nZXQoKSkKLSAgICAgICAg
bV93ZWJTZXR0aW5ncy5zZXQobmV3IFdlYlNldHRpbmdzSW1wbChtX3BhZ2UtPnNldHRpbmdzKCkp
KTsKKyAgICBpZiAoIW1fd2ViU2V0dGluZ3MpCisgICAgICAgIG1fd2ViU2V0dGluZ3MgPSBhZG9w
dFB0cihuZXcgV2ViU2V0dGluZ3NJbXBsKG1fcGFnZS0+c2V0dGluZ3MoKSkpOwogICAgIEFTU0VS
VChtX3dlYlNldHRpbmdzLmdldCgpKTsKICAgICByZXR1cm4gbV93ZWJTZXR0aW5ncy5nZXQoKTsK
IH0KQEAgLTIwMTcsOCArMjAxNiw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b0ZpbGxT
dWdnZXN0aW8KIAogICAgIC8vIFRoZSBmaXJzdCB0aW1lIHRoZSBBdXRvRmlsbCBwb3B1cCBpcyBz
aG93biB3ZSdsbCBjcmVhdGUgdGhlIGNsaWVudCBhbmQKICAgICAvLyB0aGUgcG9wdXAuCi0gICAg
aWYgKCFtX2F1dG9GaWxsUG9wdXBDbGllbnQuZ2V0KCkpCi0gICAgICAgIG1fYXV0b0ZpbGxQb3B1
cENsaWVudC5zZXQobmV3IEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50KTsKKyAgICBpZiAoIW1fYXV0
b0ZpbGxQb3B1cENsaWVudCkKKyAgICAgICAgbV9hdXRvRmlsbFBvcHVwQ2xpZW50ID0gYWRvcHRQ
dHIobmV3IEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50KTsKIAogICAgIG1fYXV0b0ZpbGxQb3B1cENs
aWVudC0+aW5pdGlhbGl6ZSgKICAgICAgICAgaW5wdXRFbGVtLCBuYW1lcywgbGFiZWxzLCBpY29u
cywgdW5pcXVlSURzLCBzZXBhcmF0b3JJbmRleCk7CkBAIC0yMTIwLDcgKzIxMTksNyBAQCB2b2lk
IFdlYlZpZXc6OmFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEF0IGluamVjdEF0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYlZpZXc6OlVzZXJDb250ZW50SW5qZWN0SW4gaW5qZWN0SW4p
CiB7Ci0gICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gcGF0dGVybnMobmV3IFZlY3RvcjxTdHJp
bmc+KTsKKyAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBwYXR0ZXJucyA9IGFkb3B0UHRyKG5l
dyBWZWN0b3I8U3RyaW5nPik7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0ZXJuc0lu
LnNpemUoKTsgKytpKQogICAgICAgICBwYXR0ZXJucy0+YXBwZW5kKHBhdHRlcm5zSW5baV0pOwog
CkBAIC0yMTM2LDcgKzIxMzUsNyBAQCB2b2lkIFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0KGNv
bnN0IFdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlZpZXc6OlVzZXJDb250
ZW50SW5qZWN0SW4gaW5qZWN0SW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YlZpZXc6OlVzZXJTdHlsZUluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKIHsKLSAgICBPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBwYXR0ZXJucyhuZXcgVmVjdG9yPFN0cmluZz4pOworICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJp
bmc+KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhdHRlcm5zSW4uc2l6ZSgpOyArK2kp
CiAgICAgICAgIHBhdHRlcm5zLT5hcHBlbmQocGF0dGVybnNJbltpXSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91109</attachid>
            <date>2011-04-26 08:21:28 -0700</date>
            <delta_ts>2011-04-26 11:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59437-20110426082126.patch</filename>
            <type>text/plain</type>
            <size>15779</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDg5MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDQtMjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2FyIHN0cmljdCBPd25Q
dHIgZml4ZXMgZm9yIFdlYktpdC9jaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0MzcKKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIGFs
bCBidXQgdHdvIHN0cmljdCBPd25QdHIgaXNzdWVzIGluIFdlYktpdC9jaHJvbWl1bS4KKworICAg
ICAgICAqIHNyYy9XZWJEYXRhU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRh
dGFTb3VyY2VJbXBsOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhU291
cmNlSW1wbDo6c2V0TmV4dFBsdWdpbkxvYWRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRhdGFTb3VyY2VJbXBsOjpXZWJEYXRhU291cmNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYkRh
dGFTb3VyY2VJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmF0dGFjaCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpkZXRhY2gpOgorICAgICAgICAoV2ViS2l0
OjpXZWJEZXZUb29sc0FnZW50OjppbnRlcnJ1cHRBbmREaXNwYXRjaCk6CisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cHJpbnRC
ZWdpbik6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmNyZWF0ZVdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwpOgorICAgICAgICAqIHNyYy9XZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
SW1wbCk6CisgICAgICAgICogc3JjL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGw6OldlYlN0b3Jh
Z2VFdmVudERpc3BhdGNoZXJJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6YXBwbHlBdXRvRmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
YWRkVXNlclNjcmlwdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmFkZFVzZXJTdHlsZVNo
ZWV0KToKKwogMjAxMS0wNC0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHJldmlzaW9uIDg0ODg2KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDYgKzI1LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgZGVmaW5lIQorI2RlZmluZSBMT09TRV9PV05fUFRSCisKICNp
bmNsdWRlICJTdG9yYWdlQXJlYVByb3h5LmgiCiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFtZXNwYWNlUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VOYW1lc3Bh
Y2VQcm94eS5jcHAJKHJldmlzaW9uIDg0ODg2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQs
MTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKy8vIEZJWE1FOiBSZW1vdmUgdGhp
cyBkZWZpbmUhCisjZGVmaW5lIExPT1NFX09XTl9QVFIKKwogI2luY2x1ZGUgIlN0b3JhZ2VOYW1l
c3BhY2VQcm94eS5oIgogCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGF0YVNvdXJjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcAkocmV2aXNpb24g
ODQ4ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViUGx1Z2luTG9hZE9ic2VydmVyKiBXZWJE
YXRhU291cmNlSW1wbDo6bV9uZXh0UGx1Z2luTG9hZE9ic2VydmVyID0gMDsKK3N0YXRpYyBPd25Q
dHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiYgbmV4dFBsdWdpbkxvYWRPYnNlcnZlcigpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChPd25QdHI8V2ViUGx1Z2luTG9hZE9ic2VydmVyPiwgbmV4
dFBsdWdpbkxvYWRPYnNlcnZlciwgKCkpOworICAgIHJldHVybiBuZXh0UGx1Z2luTG9hZE9ic2Vy
dmVyOworfQogCiBQYXNzUmVmUHRyPFdlYkRhdGFTb3VyY2VJbXBsPiBXZWJEYXRhU291cmNlSW1w
bDo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIGRhdGEpCiB7CkBAIC0xMTEsNyArMTE1LDggQEAgV2ViRGF0YVNvdXJjZTo6RXh0cmFE
YXRhKiBXZWJEYXRhU291cmNlSQogCiB2b2lkIFdlYkRhdGFTb3VyY2VJbXBsOjpzZXRFeHRyYURh
dGEoRXh0cmFEYXRhKiBleHRyYURhdGEpCiB7Ci0gICAgbV9leHRyYURhdGEuc2V0KGV4dHJhRGF0
YSk7CisgICAgLy8gZXh0cmFEYXRhIGNhbid0IGJlIGEgUGFzc093blB0ciBiZWNhdXNlIHNldEV4
dHJhRGF0YSBpcyBhIFdlYktpdCBBUEkgZnVuY3Rpb24uCisgICAgbV9leHRyYURhdGEgPSBhZG9w
dFB0cihleHRyYURhdGEpOwogfQogCiBXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdCogV2ViRGF0YVNv
dXJjZUltcGw6OmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkKQEAgLTE2NSwyNSArMTcwLDIzIEBAIHZv
aWQgV2ViRGF0YVNvdXJjZUltcGw6OmFwcGVuZFJlZGlyZWN0KGMKIAogdm9pZCBXZWJEYXRhU291
cmNlSW1wbDo6c2V0TmV4dFBsdWdpbkxvYWRPYnNlcnZlcihQYXNzT3duUHRyPFdlYlBsdWdpbkxv
YWRPYnNlcnZlcj4gb2JzZXJ2ZXIpCiB7Ci0gICAgLy8gVGhpcyBjYWxsIHNob3VsZCBhbHdheXMg
YmUgZm9sbG93ZWQgdXAgd2l0aCB0aGUgY3JlYXRpb24gb2YgYQotICAgIC8vIFdlYkRhdGFTb3Vy
Y2VJbXBsLCBzbyB3ZSBzaG91bGQgbmV2ZXIgbGVhayB0aGlzIG9iamVjdC4KLSAgICBtX25leHRQ
bHVnaW5Mb2FkT2JzZXJ2ZXIgPSBvYnNlcnZlci5sZWFrUHRyKCk7CisgICAgbmV4dFBsdWdpbkxv
YWRPYnNlcnZlcigpID0gb2JzZXJ2ZXI7CiB9CiAKIFdlYkRhdGFTb3VyY2VJbXBsOjpXZWJEYXRh
U291cmNlSW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBkYXRhKQogICAgIDogRG9jdW1lbnRMb2FkZXIocmVxdWVzdCwgZGF0YSkKIHsKLSAg
ICBpZiAobV9uZXh0UGx1Z2luTG9hZE9ic2VydmVyKSB7Ci0gICAgICAgIC8vIFdoZW4gYSBuZXcg
ZnJhbWUgaXMgY3JlYXRlZCwgaXQgaW5pdGlhbGx5IGdldHMgYSBkYXRhIHNvdXJjZSBmb3IgYW4K
LSAgICAgICAgLy8gZW1wdHkgZG9jdW1lbnQuICBUaGVuIGl0IGlzIG5hdmlnYXRlZCB0byB0aGUg
c291cmNlIFVSTCBvZiB0aGUKLSAgICAgICAgLy8gZnJhbWUsIHdoaWNoIHJlc3VsdHMgaW4gYSBz
ZWNvbmQgZGF0YSBzb3VyY2UgYmVpbmcgY3JlYXRlZC4gIFdlIHdhbnQKLSAgICAgICAgLy8gdG8g
d2FpdCB0byBhdHRhY2ggdGhlIFdlYlBsdWdpbkxvYWRPYnNlcnZlciB0byB0aGF0IGRhdGEgc291
cmNlLgotICAgICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQobV9uZXh0UGx1Z2luTG9hZE9ic2VydmVyLT51cmwoKSA9PSBXZWJVUkwocmVxdWVz
dC51cmwoKSkpOwotICAgICAgICAgICAgbV9wbHVnaW5Mb2FkT2JzZXJ2ZXIuc2V0KG1fbmV4dFBs
dWdpbkxvYWRPYnNlcnZlcik7Ci0gICAgICAgICAgICBtX25leHRQbHVnaW5Mb2FkT2JzZXJ2ZXIg
PSAwOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmICghbmV4dFBsdWdpbkxvYWRPYnNlcnZlcigp
KQorICAgICAgICByZXR1cm47CisgICAgLy8gV2hlbiBhIG5ldyBmcmFtZSBpcyBjcmVhdGVkLCBp
dCBpbml0aWFsbHkgZ2V0cyBhIGRhdGEgc291cmNlIGZvciBhbgorICAgIC8vIGVtcHR5IGRvY3Vt
ZW50LiBUaGVuIGl0IGlzIG5hdmlnYXRlZCB0byB0aGUgc291cmNlIFVSTCBvZiB0aGUKKyAgICAv
LyBmcmFtZSwgd2hpY2ggcmVzdWx0cyBpbiBhIHNlY29uZCBkYXRhIHNvdXJjZSBiZWluZyBjcmVh
dGVkLiBXZSB3YW50CisgICAgLy8gdG8gd2FpdCB0byBhdHRhY2ggdGhlIFdlYlBsdWdpbkxvYWRP
YnNlcnZlciB0byB0aGF0IGRhdGEgc291cmNlLgorICAgIGlmIChyZXF1ZXN0LnVybCgpLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG5leHRQbHVnaW5Mb2FkT2JzZXJ2
ZXIoKS0+dXJsKCkgPT0gV2ViVVJMKHJlcXVlc3QudXJsKCkpKTsKKyAgICBtX3BsdWdpbkxvYWRP
YnNlcnZlciA9IG5leHRQbHVnaW5Mb2FkT2JzZXJ2ZXIoKS5yZWxlYXNlKCk7CiB9CiAKIFdlYkRh
dGFTb3VyY2VJbXBsOjp+V2ViRGF0YVNvdXJjZUltcGwoKQpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGF0YVNvdXJjZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5oCShyZXZpc2lvbiA4NDg4NikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDggKzk4LDYgQEAgcHJpdmF0ZToKIAogICAgIE93blB0cjxFeHRyYURhdGE+
IG1fZXh0cmFEYXRhOwogICAgIE93blB0cjxXZWJQbHVnaW5Mb2FkT2JzZXJ2ZXI+IG1fcGx1Z2lu
TG9hZE9ic2VydmVyOwotCi0gICAgc3RhdGljIFdlYlBsdWdpbkxvYWRPYnNlcnZlciogbV9uZXh0
UGx1Z2luTG9hZE9ic2VydmVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwu
Y3BwCShyZXZpc2lvbiA4NDg4NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDggKzE4NCw3IEBAIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmF0dGFjaCgpCiAgICAgaWYgKCFtX2NsaWVudC0+ZXhw
b3NlVjhEZWJ1Z2dlclByb3RvY29sKCkpCiAgICAgICAgIENsaWVudE1lc3NhZ2VMb29wQWRhcHRl
cjo6ZW5zdXJlQ2xpZW50TWVzc2FnZUxvb3BDcmVhdGVkKG1fY2xpZW50KTsKIAotICAgIG1fZGVi
dWdnZXJBZ2VudEltcGwuc2V0KAotICAgICAgICBuZXcgRGVidWdnZXJBZ2VudEltcGwobV93ZWJW
aWV3SW1wbCwgdGhpcywgbV9jbGllbnQpKTsKKyAgICBtX2RlYnVnZ2VyQWdlbnRJbXBsID0gYWRv
cHRQdHIobmV3IERlYnVnZ2VyQWdlbnRJbXBsKG1fd2ViVmlld0ltcGwsIHRoaXMsIG1fY2xpZW50
KSk7CiAgICAgbV9hdHRhY2hlZCA9IHRydWU7CiB9CiAKQEAgLTE5Niw3ICsxOTUsNyBAQCB2b2lk
IFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkZXRhY2goKQogICAgIGljLT5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKICAgICBpYy0+aGlkZUhpZ2hsaWdodCgpOwogICAgIGljLT5jbG9zZSgpOwotICAgIG1f
ZGVidWdnZXJBZ2VudEltcGwuc2V0KDApOworICAgIG1fZGVidWdnZXJBZ2VudEltcGwuY2xlYXIo
KTsKICAgICBtX2F0dGFjaGVkID0gZmFsc2U7CiB9CiAKQEAgLTMxNywyMSArMzE2LDMwIEBAIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudDo6ZGVidWdnZXJQYXVzZVNjcmkKICAgICBEZWJ1Z2dlckFnZW50
TWFuYWdlcjo6cGF1c2VTY3JpcHQoKTsKIH0KIAotdm9pZCBXZWJEZXZUb29sc0FnZW50OjppbnRl
cnJ1cHRBbmREaXNwYXRjaChNZXNzYWdlRGVzY3JpcHRvciogZCkKK3ZvaWQgV2ViRGV2VG9vbHNB
Z2VudDo6aW50ZXJydXB0QW5kRGlzcGF0Y2goTWVzc2FnZURlc2NyaXB0b3IqIHJhd0Rlc2NyaXB0
b3IpCiB7CisgICAgLy8gcmF3RGVzY3JpcHRvciBjYW4ndCBiZSBhIFBhc3NPd25QdHIgYmVjYXVz
ZSBpbnRlcnJ1cHRBbmREaXNwYXRjaCBpcyBhIFdlYktpdCBBUEkgZnVuY3Rpb24uCisgICAgT3du
UHRyPE1lc3NhZ2VEZXNjcmlwdG9yPiBkZXNjcmlwdG9yID0gYWRvcHRQdHIocmF3RGVzY3JpcHRv
cik7CisKICAgICBjbGFzcyBEZWJ1Z2dlclRhc2sgOiBwdWJsaWMgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpUYXNrIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIERlYnVnZ2VyVGFzayhXZWJEZXZUb29s
c0FnZW50OjpNZXNzYWdlRGVzY3JpcHRvciogZGVzY3JpcHRvcikgOiBtX2Rlc2NyaXB0b3IoZGVz
Y3JpcHRvcikgeyB9CisgICAgICAgIERlYnVnZ2VyVGFzayhQYXNzT3duUHRyPFdlYkRldlRvb2xz
QWdlbnQ6Ok1lc3NhZ2VEZXNjcmlwdG9yPiBkZXNjcmlwdG9yKQorICAgICAgICAgICAgOiBtX2Rl
c2NyaXB0b3IoZGVzY3JpcHRvcikKKyAgICAgICAgeworICAgICAgICB9CisKICAgICAgICAgdmly
dHVhbCB+RGVidWdnZXJUYXNrKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW4oKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudCogd2ViYWdlbnQgPSBtX2Rl
c2NyaXB0b3ItPmFnZW50KCkpCiAgICAgICAgICAgICAgICAgd2ViYWdlbnQtPmRpc3BhdGNoT25J
bnNwZWN0b3JCYWNrZW5kKG1fZGVzY3JpcHRvci0+bWVzc2FnZSgpKTsKICAgICAgICAgfQorCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgT3duUHRyPFdlYkRldlRvb2xzQWdlbnQ6Ok1lc3NhZ2VEZXNj
cmlwdG9yPiBtX2Rlc2NyaXB0b3I7CiAgICAgfTsKLSAgICBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6
OmludGVycnVwdEFuZFJ1bihuZXcgRGVidWdnZXJUYXNrKGQpKTsKKworICAgIFBhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlcjo6aW50ZXJydXB0QW5kUnVuKG5ldyBEZWJ1Z2dlclRhc2soZGVzY3JpcHRvci5y
ZWxlYXNlKCkpKTsKIH0KIAogYm9vbCBXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRG
b3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gODQ4ODYpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzkwLDkgKzEzOTAsOSBAQCBpbnQgV2ViRnJhbWVJbXBsOjpwcmludEJlZ2luKGNvbnN0IFdl
YlNpCiAgICAgfQogCiAgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXIt
PnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSkKLSAgICAgICAgbV9wcmludENvbnRleHQuc2V0KG5l
dyBDaHJvbWVQbHVnaW5QcmludENvbnRleHQoZnJhbWUoKSwgcGx1Z2luQ29udGFpbmVyLCBwcmlu
dGVyRFBJKSk7CisgICAgICAgIG1fcHJpbnRDb250ZXh0ID0gYWRvcHRQdHIobmV3IENocm9tZVBs
dWdpblByaW50Q29udGV4dChmcmFtZSgpLCBwbHVnaW5Db250YWluZXIsIHByaW50ZXJEUEkpKTsK
ICAgICBlbHNlCi0gICAgICAgIG1fcHJpbnRDb250ZXh0LnNldChuZXcgQ2hyb21lUHJpbnRDb250
ZXh0KGZyYW1lKCkpKTsKKyAgICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgQ2hy
b21lUHJpbnRDb250ZXh0KGZyYW1lKCkpKTsKIAogICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHN0
YXRpY19jYXN0PGZsb2F0PihwYWdlU2l6ZS53aWR0aCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBhZ2VTaXplLmhlaWdodCkpOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
Y3BwCShyZXZpc2lvbiA4NDg4NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDE0ICs1MSwxMyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRp
YyBXZWJNZWRpYVBsYXllciogY3JlYXRlV2ViTWVkaWFQbGF5ZXIoCi0gICAgV2ViTWVkaWFQbGF5
ZXJDbGllbnQqIGNsaWVudCwgRnJhbWUqIGZyYW1lKQorc3RhdGljIFBhc3NPd25QdHI8V2ViTWVk
aWFQbGF5ZXI+IGNyZWF0ZVdlYk1lZGlhUGxheWVyKFdlYk1lZGlhUGxheWVyQ2xpZW50KiBjbGll
bnQsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJh
bWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpOwogCiAgICAgaWYgKCF3ZWJGcmFtZS0+Y2xpZW50KCkp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB3ZWJGcmFtZS0+Y2xpZW50KCktPmNyZWF0
ZU1lZGlhUGxheWVyKHdlYkZyYW1lLCBjbGllbnQpOworICAgICAgICByZXR1cm4gUGFzc093blB0
cjxXZWJNZWRpYVBsYXllcj4oKTsKKyAgICByZXR1cm4gYWRvcHRQdHIod2ViRnJhbWUtPmNsaWVu
dCgpLT5jcmVhdGVNZWRpYVBsYXllcih3ZWJGcmFtZSwgY2xpZW50KSk7CiB9CiAKIGJvb2wgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptX2lzRW5hYmxlZCA9IGZhbHNlOwpAQCAtMjE5LDcgKzIx
OCw3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkKGNvbnMKIHZvaWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwoKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihtX21lZGlhUGxheWVyLT5tZWRpYVBs
YXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAgICBtX3dlYk1lZGlhUGxheWVy
LnNldChjcmVhdGVXZWJNZWRpYVBsYXllcih0aGlzLCBmcmFtZSkpOworICAgIG1fd2ViTWVkaWFQ
bGF5ZXIgPSBjcmVhdGVXZWJNZWRpYVBsYXllcih0aGlzLCBmcmFtZSk7CiAgICAgaWYgKG1fd2Vi
TWVkaWFQbGF5ZXIuZ2V0KCkpCiAgICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmxvYWQoS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIG1fdXJsKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0lt
cGwuY3BwCShyZXZpc2lvbiA4NDg4NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgogI2luY2x1ZGUg
IldlYlJlY3QuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Niw3ICs0Nyw3IEBA
IFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIFdlYlNwZWVjaEkKIAogV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9ja0ltcGw6OldlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsKAog
ICAgIFdlYlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQotICAgIDogbV93ZWJjb3JlTW9j
ayhuZXcgV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKCkpCisgICAgOiBtX3dlYmNvcmVN
b2NrKGFkb3B0UHRyKG5ldyBXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2soKSkpCiAgICAg
LCBtX2xpc3RlbmVyKGxpc3RlbmVyKQogewogICAgIG1fd2ViY29yZU1vY2stPnNldExpc3RlbmVy
KHRoaXMpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlckltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNwcAkocmV2aXNpb24gODQ4ODYpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKIAogI2luY2x1ZGUgIldlYlN0
b3JhZ2VBcmVhSW1wbC5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSw3ICs1MCw3IEBAIFdlYlN0
b3JhZ2VFdmVudERpc3BhdGNoZXIqIFdlYlN0b3JhZ2VFdmUKIH0KIAogV2ViU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlckltcGw6OldlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsKCkKLSAgICA6IG1f
ZXZlbnREaXNwYXRjaGVyKG5ldyBXZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbChw
YWdlR3JvdXBOYW1lKSkKKyAgICA6IG1fZXZlbnREaXNwYXRjaGVyKGFkb3B0UHRyKG5ldyBXZWJD
b3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbChwYWdlR3JvdXBOYW1lKSkpCiB7CiAgICAg
QVNTRVJUKG1fZXZlbnREaXNwYXRjaGVyKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDg0ODg2KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsMTEg
KzMxNCwxMCBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogCiAgICAg
LCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFn
T3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9hdXRvRmlsbFBvcHVwU2hv
d2luZyhmYWxzZSkKLSAgICAsIG1fYXV0b0ZpbGxQb3B1cENsaWVudCgwKQogICAgICwgbV9hdXRv
RmlsbFBvcHVwKDApCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX3RhYnNU
b0xpbmtzKGZhbHNlKQotICAgICwgbV9kcmFnU2Nyb2xsVGltZXIobmV3IERyYWdTY3JvbGxUaW1l
cigpKQorICAgICwgbV9kcmFnU2Nyb2xsVGltZXIoYWRvcHRQdHIobmV3IERyYWdTY3JvbGxUaW1l
cikpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllclJlbmRl
cmVyKDApCiAgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShmYWxzZSkKQEAg
LTMyOCw4ICszMjcsOCBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCog
CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQoU3Bl
ZWNoSW5wdXRDbGllbnRJbXBsOjpjcmVhdGUoY2xpZW50KSkKICNlbmRpZgotICAgICwgbV9kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5KG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
KGNsaWVudCA/IGNsaWVudC0+ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSA6IDApKQotICAgICwg
bV9nZW9sb2NhdGlvbkNsaWVudFByb3h5KG5ldyBHZW9sb2NhdGlvbkNsaWVudFByb3h5KGNsaWVu
dCA/IGNsaWVudC0+Z2VvbG9jYXRpb25DbGllbnQoKSA6IDApKQorICAgICwgbV9kZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5KGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5KGNsaWVudCA/IGNsaWVudC0+ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSA6IDApKSkKKyAg
ICAsIG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eShhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25DbGll
bnRQcm94eShjbGllbnQgPyBjbGllbnQtPmdlb2xvY2F0aW9uQ2xpZW50KCkgOiAwKSkpCiB7CiAg
ICAgLy8gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBkb2VzIHRoZSBzYW1lIHRoaW5nLCBleGNlcHQg
dGhleSBjYWxsIHRoZQogICAgIC8vIEtKUyBzcGVjaWZpYyB3cmFwcGVyIGFyb3VuZCB0aGlzIG1l
dGhvZC4gV2UgbmVlZCB0byBoYXZlIHRocmVhZGluZwpAQCAtMzUzLDEzICszNTIsMTMgQEAgV2Vi
Vmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIAogICAgIHBhZ2VDbGllbnRzLmdl
b2xvY2F0aW9uQ2xpZW50ID0gbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpOwogICAgIHBh
Z2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50ID0gQmFja0ZvcndhcmRMaXN0Q2hyb21pdW06OmNy
ZWF0ZSh0aGlzKTsKIAotICAgIG1fcGFnZS5zZXQobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKKyAg
ICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwogCiAgICAgbV9nZW9s
b2NhdGlvbkNsaWVudFByb3h5LT5zZXRDb250cm9sbGVyKG1fcGFnZS0+Z2VvbG9jYXRpb25Db250
cm9sbGVyKCkpOwogCiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUocGFnZUdyb3VwTmFtZSk7CiAK
LSAgICBtX2luc3BlY3RvclNldHRpbmdzTWFwLnNldChuZXcgU2V0dGluZ3NNYXApOworICAgIG1f
aW5zcGVjdG9yU2V0dGluZ3NNYXAgPSBhZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOwogfQogCiBX
ZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKQEAgLTE1MzIsOCArMTUzMSw4IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGkKIAogV2ViU2V0dGluZ3MqIFdlYlZpZXdJ
bXBsOjpzZXR0aW5ncygpCiB7Ci0gICAgaWYgKCFtX3dlYlNldHRpbmdzLmdldCgpKQotICAgICAg
ICBtX3dlYlNldHRpbmdzLnNldChuZXcgV2ViU2V0dGluZ3NJbXBsKG1fcGFnZS0+c2V0dGluZ3Mo
KSkpOworICAgIGlmICghbV93ZWJTZXR0aW5ncykKKyAgICAgICAgbV93ZWJTZXR0aW5ncyA9IGFk
b3B0UHRyKG5ldyBXZWJTZXR0aW5nc0ltcGwobV9wYWdlLT5zZXR0aW5ncygpKSk7CiAgICAgQVNT
RVJUKG1fd2ViU2V0dGluZ3MuZ2V0KCkpOwogICAgIHJldHVybiBtX3dlYlNldHRpbmdzLmdldCgp
OwogfQpAQCAtMjAxNyw4ICsyMDE2LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvRmls
bFN1Z2dlc3RpbwogCiAgICAgLy8gVGhlIGZpcnN0IHRpbWUgdGhlIEF1dG9GaWxsIHBvcHVwIGlz
IHNob3duIHdlJ2xsIGNyZWF0ZSB0aGUgY2xpZW50IGFuZAogICAgIC8vIHRoZSBwb3B1cC4KLSAg
ICBpZiAoIW1fYXV0b0ZpbGxQb3B1cENsaWVudC5nZXQoKSkKLSAgICAgICAgbV9hdXRvRmlsbFBv
cHVwQ2xpZW50LnNldChuZXcgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQpOworICAgIGlmICghbV9h
dXRvRmlsbFBvcHVwQ2xpZW50KQorICAgICAgICBtX2F1dG9GaWxsUG9wdXBDbGllbnQgPSBhZG9w
dFB0cihuZXcgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQpOwogCiAgICAgbV9hdXRvRmlsbFBvcHVw
Q2xpZW50LT5pbml0aWFsaXplKAogICAgICAgICBpbnB1dEVsZW0sIG5hbWVzLCBsYWJlbHMsIGlj
b25zLCB1bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKQEAgLTIxMjAsNyArMjExOSw3IEBAIHZv
aWQgV2ViVmlldzo6YWRkVXNlclNjcmlwdChjb25zdCBXZWJTdHIKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0QXQgaW5qZWN0QXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViVmlldzo6VXNlckNvbnRlbnRJbmplY3RJbiBpbmplY3RJ
bikKIHsKLSAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBwYXR0ZXJucyhuZXcgVmVjdG9yPFN0
cmluZz4pOworICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zID0gYWRvcHRQdHIo
bmV3IFZlY3RvcjxTdHJpbmc+KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhdHRlcm5z
SW4uc2l6ZSgpOyArK2kpCiAgICAgICAgIHBhdHRlcm5zLT5hcHBlbmQocGF0dGVybnNJbltpXSk7
CiAKQEAgLTIxMzYsNyArMjEzNSw3IEBAIHZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQo
Y29uc3QgV2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmlldzo6VXNlckNv
bnRlbnRJbmplY3RJbiBpbmplY3RJbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViVmlldzo6VXNlclN0eWxlSW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKQogewotICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zKG5ldyBWZWN0b3I8U3RyaW5nPik7CisgICAg
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gcGF0dGVybnMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFN0
cmluZz4pOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF0dGVybnNJbi5zaXplKCk7ICsr
aSkKICAgICAgICAgcGF0dGVybnMtPmFwcGVuZChwYXR0ZXJuc0luW2ldKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>