<?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>49291</bug_id>
          
          <creation_ts>2010-11-09 17:32:02 -0800</creation_ts>
          <short_desc>Add capability for displaying warnings to autofill popup</short_desc>
          <delta_ts>2010-11-15 03:37:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>0</everconfirmed>
          <reporter name="Ilya Sherman">isherman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dhollowa</cc>
    
    <cc>hamaji</cc>
    
    <cc>isherman</cc>
    
    <cc>jcivelli</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307080</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-09 17:32:02 -0800</bug_when>
    <thetext>Add capability for displaying warnings to autofill popup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307085</commentid>
    <comment_count>1</comment_count>
      <attachid>73445</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-09 17:39:44 -0800</bug_when>
    <thetext>Created attachment 73445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307097</commentid>
    <comment_count>2</comment_count>
      <attachid>73445</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-09 18:03:37 -0800</bug_when>
    <thetext>Comment on attachment 73445
Patch

It seems strange that we are adding this feature to PopupMenuClient. Can this be restricted to the Chromium platform code by using some multiple inheritance? Why do we need this concept in the cross-platform sources at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307275</commentid>
    <comment_count>3</comment_count>
      <attachid>73478</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-10 03:07:27 -0800</bug_when>
    <thetext>Created attachment 73478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307277</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-10 03:12:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 73445 [details])
&gt; It seems strange that we are adding this feature to PopupMenuClient. Can this be restricted to the Chromium platform code by using some multiple inheritance? Why do we need this concept in the cross-platform sources at all?

You&apos;re right, this should probably only touch Chromium code.  Does the update version look more along the right lines?  (Some parts of it were slapped together in the manner of &quot;sleepily appease the compiler gods&quot;, so it&apos;ll almost certainly need to be cleaned up some; but the general trajectory should hopefully be better.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308196</commentid>
    <comment_count>5</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-11-11 15:10:11 -0800</bug_when>
    <thetext>I am not reviewer, but here are my comments:

&gt; WebCore/platform/chromium/PopupMenuChromium.cpp:1089
&gt; +      clearSelection();

4 space indent.

&gt; WebCore/platform/chromium/PopupMenuClientChromium.h:31
&gt; +    virtual bool itemIsWarning(unsigned listIndex) const = 0;

I think it would have been better to add this to PopupMenuClient (like we did previously for item labels).

&gt; WebKit/chromium/src/WebViewImpl.cpp:-1946
&gt; -        m_autoFillPopupClient-&gt;setSuggestions(

Is that call not required anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308216</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-11 15:34:54 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I am not reviewer, but here are my comments:

Thanks for taking a look =)

&gt; &gt; WebCore/platform/chromium/PopupMenuClientChromium.h:31
&gt; &gt; +    virtual bool itemIsWarning(unsigned listIndex) const = 0;
&gt; 
&gt; I think it would have been better to add this to PopupMenuClient (like we did previously for item labels).

For the sake of consistency, we should probably either add this to PopupMenuClient or move the labels out of there.  I don&apos;t know the codebase nearly well enough, so I&apos;ll defer to others&apos; wisdom here.

&gt; &gt; WebKit/chromium/src/WebViewImpl.cpp:-1946
&gt; &gt; -        m_autoFillPopupClient-&gt;setSuggestions(
&gt; 
&gt; Is that call not required anymore?

It&apos;s called from within m_autoFillPopupClient-&gt;initialize(), so I think this call was redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308473</commentid>
    <comment_count>7</comment_count>
      <attachid>73727</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-12 03:20:36 -0800</bug_when>
    <thetext>Created attachment 73727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308474</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-12 03:24:32 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; &gt; WebCore/platform/chromium/PopupMenuClientChromium.h:31
&gt; &gt; &gt; +    virtual bool itemIsWarning(unsigned listIndex) const = 0;
&gt; &gt; 
&gt; &gt; I think it would have been better to add this to PopupMenuClient (like we did previously for item labels).
&gt; 
&gt; For the sake of consistency, we should probably either add this to PopupMenuClient or move the labels out of there.  I don&apos;t know the codebase nearly well enough, so I&apos;ll defer to others&apos; wisdom here.

The latest patch sidesteps this issue by moving all the code in question down into AutoFillPopupMenuClient.cpp.  The original question is likely to become relevant again in the near future, though, as we might want to distinguish warnings by slightly more than just tweaking the font.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308610</commentid>
    <comment_count>9</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-11-12 09:53:42 -0800</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308813</commentid>
    <comment_count>10</comment_count>
      <attachid>73784</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-12 15:48:35 -0800</bug_when>
    <thetext>Created attachment 73784
Patch

Actually make the warning display italicized...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309150</commentid>
    <comment_count>11</comment_count>
      <attachid>73784</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 18:03:42 -0800</bug_when>
    <thetext>Comment on attachment 73784
Patch

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

&gt; WebCore/ChangeLog:3
&gt;  2010-11-12  Ilya Sherman  &lt;isherman@chromium.org&gt;
&gt;  
&gt; +        Reviewed by NOBODY (OOPS!).

The ChangeLog diff should start at the top of ChangeLog.

&gt; WebCore/ChangeLog:12
&gt; +        * platform/chromium/PopupMenuChromium.cpp:
&gt; +        (WebCore::PopupListBox::selectIndex):
&gt; +        * platform/chromium/PopupMenuChromium.h:

The list lacks PopupListBox::getRowFont().
We had better write what we change for each of files/functions as possible.

&gt; WebKit/chromium/ChangeLog:3
&gt;  2010-11-12  Ilya Sherman  &lt;isherman@chromium.org&gt;
&gt;  
&gt; +        Reviewed by NOBODY (OOPS!).

The ChangeLog diff doesn&apos;t start at the top of ChangeLog.

&gt; WebKit/chromium/src/AutoFillPopupMenuClient.cpp:254
&gt; +    return m_uniqueIDs[index] == -1;

The rule &quot;uniqueID ==-1 -&gt; warning&quot; looks implicit.  Can we introduce a symbol for this -1?

I also found WebViewClient.h has no explanation of uniqueID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309160</commentid>
    <comment_count>12</comment_count>
      <attachid>73784</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-14 19:38:02 -0800</bug_when>
    <thetext>Comment on attachment 73784
Patch

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

Thanks as always for the detailed feedback =)

&gt;&gt; WebCore/ChangeLog:3
&gt;&gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; The ChangeLog diff should start at the top of ChangeLog.

It&apos;s the diff tool&apos;s fault! =)

But, it should be fixed now, with some other changes interspersed between my two.

&gt;&gt; WebKit/chromium/src/AutoFillPopupMenuClient.cpp:254
&gt;&gt; +    return m_uniqueIDs[index] == -1;
&gt; 
&gt; The rule &quot;uniqueID ==-1 -&gt; warning&quot; looks implicit.  Can we introduce a symbol for this -1?
&gt; 
&gt; I also found WebViewClient.h has no explanation of uniqueID.

Oops, this should actually be uniqueID &lt; 0 -- updated the code to match.

Also added comments to WebView.h and WebViewClient.h to explain the role of the uniqueID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309161</commentid>
    <comment_count>13</comment_count>
      <attachid>73871</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-14 19:38:53 -0800</bug_when>
    <thetext>Created attachment 73871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309163</commentid>
    <comment_count>14</comment_count>
      <attachid>73871</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 19:44:46 -0800</bug_when>
    <thetext>Comment on attachment 73871
Patch

ok. good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309218</commentid>
    <comment_count>15</comment_count>
      <attachid>73871</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 03:37:38 -0800</bug_when>
    <thetext>Comment on attachment 73871
Patch

Clearing flags on attachment: 73871

Committed r72001: &lt;http://trac.webkit.org/changeset/72001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309219</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 03:37:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73445</attachid>
            <date>2010-11-09 17:39:44 -0800</date>
            <delta_ts>2010-11-10 03:07:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49291-20101109173942.patch</filename>
            <type>text/plain</type>
            <size>10819</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2IxODlkNzc2YTJkZmU2ZmY3Yjg2ZTViNDk3ZmQ3ZDQ0NDkzMDQ3Yi4uOThkMmIxNWViZDFhNTlk
NDcyZDQzZDBmMzIxMTU1ZjczY2Q2NjI3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMS0wOSAgSWx5
YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYXBhYmlsaXR5IGZvciBkaXNwbGF5aW5n
IHdhcm5pbmdzIHRvIGF1dG9maWxsIHBvcHVwLgorICAgICAgICBXYXJuaW5ncyBhcmUgZGlzcGxh
eWVkIGluIGRhcmsgZ3JheSBpdGFsaWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00OTI5MQorICAgICAgICBodHRwOi8vY29kZS5nb29nbGUuY29tL3Av
Y2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODUwOQorCisgICAgICAgICogcGxhdGZvcm0vUG9w
dXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpnZXRSb3dGb250KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc1dhcm5pbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aXRlbUlzV2FybmluZyk6CisKIDIwMTAtMTEtMDkgIEFi
aGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51
Q2xpZW50LmggYi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCmluZGV4IDJiNDEz
ODA3YzVkYTFjN2E5YjllOWJjYjRmOTEzZDQ1NmM3OTU4NmIuLmRhMzM0OGJlYmI4ZjUxZDMwZGMw
ZTVlMzY0YmE4YTAxZmM3NmJjMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaApAQCAt
NTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvcHVwRGlkSGlkZSgpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNMYWJlbCh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzV2FybmluZyh1bnNpZ25lZCBs
aXN0SW5kZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2VsZWN0ZWQodW5z
aWduZWQgbGlzdEluZGV4KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFBvcE92
ZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHZhbHVlU2hvdWxkQ2hhbmdlT25Ib3RU
cmFjaygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5jcHAKaW5kZXggMDY0OTI4NWI0N2YxMTMzZjhjMDEzODM1NmI3YTAwMDllNDk4
ZDE4ZS4uMjQzZDliNDQ3YjJlYWEzYTA5YjQ3MGFiMmE4NzY2MTY0YTg3MmZlNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTk5OSw2
ICs5OTksMTMgQEAgRm9udCBQb3B1cExpc3RCb3g6OmdldFJvd0ZvbnQoaW50IHJvd0luZGV4KQog
ICAgICAgICBGb250IGZvbnQoZCwgaXRlbUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53
b3JkU3BhY2luZygpKTsKICAgICAgICAgZm9udC51cGRhdGUoMCk7CiAgICAgICAgIHJldHVybiBm
b250OworICAgIH0gZWxzZSBpZiAobV9wb3B1cENsaWVudC0+aXRlbUlzV2FybmluZyhyb3dJbmRl
eCkpIHsKKyAgICAgICAgLy8gSXRhbGljaXplIHdhcm5pbmdzLgorICAgICAgICBGb250RGVzY3Jp
cHRpb24gZCA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlvbigpOworICAgICAgICBkLnNldEl0YWxp
Yyh0cnVlKTsKKyAgICAgICAgRm9udCBmb250KGQsIGl0ZW1Gb250LmxldHRlclNwYWNpbmcoKSwg
aXRlbUZvbnQud29yZFNwYWNpbmcoKSk7CisgICAgICAgIGZvbnQudXBkYXRlKDApOworICAgICAg
ICByZXR1cm4gZm9udDsKICAgICB9CiAKICAgICByZXR1cm4gaXRlbUZvbnQ7CkBAIC0xMjM4LDYg
KzEyNDUsOCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAg
ICAgICAgdHlwZSA9IFBvcHVwSXRlbTo6VHlwZVNlcGFyYXRvcjsKICAgICAgICAgZWxzZSBpZiAo
bV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSkpCiAgICAgICAgICAgICB0eXBlID0gUG9wdXBJ
dGVtOjpUeXBlR3JvdXA7CisgICAgICAgIGVsc2UgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc1dh
cm5pbmcoaSkpCisgICAgICAgICAgICB0eXBlID0gUG9wdXBJdGVtOjpUeXBlV2FybmluZzsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgdHlwZSA9IFBvcHVwSXRlbTo6VHlwZU9wdGlvbjsKICAg
ICAgICAgbV9pdGVtcy5hcHBlbmQobmV3IFBvcHVwSXRlbShtX3BvcHVwQ2xpZW50LT5pdGVtVGV4
dChpKSwgdHlwZSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1
cE1lbnVDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5oCmluZGV4IDBkMGUyM2NlMzVhNWQ3NjM4MzMzMzE5YWE5NTAwZDExYTk2ZTExOTYuLjQ3
Nzc3ZDYwNDgzN2NjYWYyY2IwMDNjMDg5ZTUyNjk3ZDc5NTQ2MjUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xh
c3MgUG9wdXBMaXN0Qm94Owogc3RydWN0IFBvcHVwSXRlbSB7CiAgICAgZW51bSBUeXBlIHsKICAg
ICAgICAgVHlwZU9wdGlvbiwKKyAgICAgICAgVHlwZVdhcm5pbmcsCiAgICAgICAgIFR5cGVHcm91
cCwKICAgICAgICAgVHlwZVNlcGFyYXRvcgogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAppbmRleCA3ZmFhMzcyYjEzMjViMjU1MDcwNjBhOTY2ZDI3NzMxOTBjMTc0NzJlLi5hZjEy
ZWY4OWQ2YTY1N2Q4ZWNmM2JjNmFiNDBiNDhhYmNkZjQ2MjUzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cG9wdXBEaWRIaWRlKCk7CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc1NlcGFyYXRvcih1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNMYWJlbCh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNXYXJuaW5nKHVuc2ln
bmVkIGxpc3RJbmRleCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXRlbUlzU2VsZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxpc3RJbmRleCk7CiAgICAgdmlydHVhbCBib29s
IHZhbHVlU2hvdWxkQ2hhbmdlT25Ib3RUcmFjaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXgg
MGRlYjA2MzQ0ZjMxY2M4ZjY1OWViYzliNWQ5N2UxMGI5MjE0MjRlNC4uNDgyZDgzZGYyZjM5MDZi
YzI4ZjVlZWE0NzhiYzk2MjgwOTc2ZTY3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBwb3B1cERpZEhpZGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlz
U2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGl0
ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGl0
ZW1Jc1dhcm5pbmcodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNTZWxlY3RlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQb3BPdmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVTaG91bGRDaGFuZ2VPbkhvdFRyYWNrKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGVkNzhkNTFkNzY1MTVmNjM3Y2VmZWQx
YTRkYTM2ODUzYTdmNTJkNzguLjcxZjM5NjkxYjU5NjVmYzBkMGIzOGE3MTc4MDdkY2UyNzQ3ZmVl
YWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTExLTA5ICBJbHlhIFNoZXJt
YW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGNhcGFiaWxpdHkgZm9yIGRpc3BsYXlpbmcgd2Fybmlu
Z3MgdG8gYXV0b2ZpbGwgcG9wdXAKKyAgICAgICAgV2FybmluZ3MgYXJlIGRpc3BsYXllZCBpbiBk
YXJrIGdyYXkgaXRhbGljLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDkyOTEKKyAgICAgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVt
L2lzc3Vlcy9kZXRhaWw/aWQ9NTg1MDkKKworICAgICAgICAqIHNyYy9BdXRvRmlsbFBvcHVwTWVu
dUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojpj
YW5SZW1vdmVTdWdnZXN0aW9uQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9w
dXBNZW51Q2xpZW50OjppdGVtU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVw
TWVudUNsaWVudDo6aXRlbUlzV2FybmluZyk6CisgICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBN
ZW51Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b0ZpbGxTdWdnZXN0aW9ucyk6CisKIDIwMTAtMTEt
MDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0
b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBv
cHVwTWVudUNsaWVudC5jcHAKaW5kZXggNzMxYzAyYzIwMWFkZWQzMWRlMTFmMzE2MWZlNjFmYWNh
MDk3ZDMxZi4uYTk4MWM1YzA1OTYwM2QzYWE1NmY0MWU3M2VkODliYTZmODlmYTljOSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAKQEAgLTEx
NSwxMCArMTE1LDEwIEBAIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnJlbW92ZVN1Z2dl
c3Rpb25BdEluZGV4KHVuc2lnbmVkIGxpc3RJbmRleCkKIAogYm9vbCBBdXRvRmlsbFBvcHVwTWVu
dUNsaWVudDo6Y2FuUmVtb3ZlU3VnZ2VzdGlvbkF0SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQog
ewotICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpb24gb2YgaXRlbXMgYmVmb3JlIHRoZSBzZXBhcmF0
b3IgYW5kIHRob3NlIHRoYXQgZG9uJ3QKLSAgICAvLyBoYXZlIGEgbGFiZWwgKGF1dG9jb21wbGV0
ZSkuCisgICAgLy8gT25seSBhbGxvdyBkZWxldGlvbiBvZiBpdGVtcyBiZWZvcmUgdGhlIHNlcGFy
YXRvciB0aGF0IGhhdmUgdW5pcXVlIGlkIDAKKyAgICAvLyAoaS5lLiBhcmUgYXV0b2NvbXBsZXRl
IHJhdGhlciB0aGFuIGF1dG9maWxsIGl0ZW1zKS4KICAgICBpbnQgaW5kZXggPSBjb252ZXJ0TGlz
dEluZGV4VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRleCk7Ci0gICAgcmV0dXJuIG1fbGFiZWxzW2lu
ZGV4XS5pc0VtcHR5KCkgJiYgKG1fc2VwYXJhdG9ySW5kZXggPT0gLTEgfHwgbGlzdEluZGV4IDwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2VwYXJhdG9ySW5kZXgpKTsKKyAgICByZXR1cm4gIW1f
dW5pcXVlSURzW2luZGV4XSAmJiAobV9zZXBhcmF0b3JJbmRleCA9PSAtMSB8fCBsaXN0SW5kZXgg
PCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkpOwogfQogCiB2b2lkIEF1
dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBi
b29sIGZpcmVFdmVudHMpCkBAIC0xOTYsNyArMTk2LDEzIEBAIFN0cmluZyBBdXRvRmlsbFBvcHVw
TWVudUNsaWVudDo6aXRlbUljb24odW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogCiBQb3B1cE1l
bnVTdHlsZSBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3QKIHsKLSAgICByZXR1cm4gKm1fc3R5bGU7CisgICAgcmV0dXJuICFpdGVtSXNX
YXJuaW5nKGxpc3RJbmRleCkgPyAqbV9zdHlsZSA6IFBvcHVwTWVudVN0eWxlKENvbG9yOjpkYXJr
R3JheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+YmFja2dyb3VuZENvbG9yKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPmZvbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+aXNWaXNpYmxlKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPmlzRGlzcGxheU5vbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+dGV4dEluZGVudCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3N0eWxlLT50ZXh0RGlyZWN0aW9uKCkpOwogfQogCiBQb3B1cE1lbnVTdHlsZSBBdXRv
RmlsbFBvcHVwTWVudUNsaWVudDo6bWVudVN0eWxlKCkgY29uc3QKQEAgLTIzOSw2ICsyNDUsMTYg
QEAgYm9vbCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVk
IGxpc3RJbmRleCkgY29uc3QKICAgICByZXR1cm4gKG1fc2VwYXJhdG9ySW5kZXggIT0gLTEgJiYg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2VwYXJhdG9ySW5kZXgpID09IGxpc3RJbmRleCk7CiB9
CiAKK2Jvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1Jc1dhcm5pbmcodW5zaWduZWQg
bGlzdEluZGV4KSBjb25zdAoreworICAgIGludCBpbmRleCA9IGNvbnZlcnRMaXN0SW5kZXhUb0lu
dGVybmFsSW5kZXgobGlzdEluZGV4KTsKKyAgICBpZiAoaW5kZXggPT0gLTEpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEFTU0VSVChpbmRleCA+PSAwICYmIHN0YXRpY19jYXN0PHNpemVf
dD4oaW5kZXgpIDwgbV91bmlxdWVJRHMuc2l6ZSgpKTsKKyAgICByZXR1cm4gbV91bmlxdWVJRHNb
aW5kZXhdID09IC0xOworfQorCiB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZXRUZXh0
RnJvbUl0ZW0odW5zaWduZWQgbGlzdEluZGV4KQogewogICAgIG1fdGV4dEZpZWxkLT5zZXRWYWx1
ZShnZXRTdWdnZXN0aW9uKGxpc3RJbmRleCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5oCmluZGV4IGE5NDZlMzQxNDkzZjNkNTVkODEyM2ZkNzZjMGU3
NGU2OTRjOWRmNzAuLjY3MDIxNTY5M2QxYmVlNWVkZjUzMDVmYjUzZTYwMmE5NjkwNDBkYzIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTg5
LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNlbGVjdGVkSW5kZXgoKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdGVkSW5kZXg7IH0KICAgICB2aXJ0dWFsIHZvaWQgcG9wdXBEaWRI
aWRlKCk7CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc1NlcGFyYXRvcih1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNXYXJuaW5nKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2Vs
ZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRQb3BPdmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNDkwYzYyMGIxZjk0NWQ2YmU4ZGY3YzQyNDRk
MzZkN2RkMDkxNTA1Ni4uMTE3ZGYyYmU3NjcxY2QyMjk1YmUyNzc2MWUxNjRiMjIzYjQ1NTJjNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0
aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvRmlsbFBvcHVwU2V0dGluZ3MgPSB7
CiAgICAgZmFsc2UsIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAvLyBsb29wU2VsZWN0
aW9uTmF2aWdhdGlvbgogICAgIGZhbHNlLCAvLyByZXN0cmljdFdpZHRoT2ZMaXN0Qm94IChGb3Ig
c2VjdXJpdHkgcmVhc29ucyBzaG93IHRoZSBlbnRpcmUgZW50cnkKLSAgICAgICAgICAgLy8gc28g
dGhlIHVzZXIgZG9lc24ndCBlbnRlciBpbmZvcm1hdGlvbiBpdCBkaWQgbm90IGludGVuZCB0by4p
CisgICAgICAgICAgIC8vIHNvIHRoZSB1c2VyIGRvZXNuJ3QgZW50ZXIgaW5mb3JtYXRpb24gaGUg
ZGlkIG5vdCBpbnRlbmQgdG8uKQogICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2UgdXNlIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiB0
aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBkaXNwbGF5IG9m
IGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVtcyBpbiB0aGUg
aW5wdXQgZmllbGQuCkBAIC0xOTQzLDEyICsxOTQzLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvRmlsbFN1Z2dlc3Rpb25zKAogICAgIH0KIAogICAgIGlmIChtX2F1dG9GaWxsUG9wdXBT
aG93aW5nKSB7Ci0gICAgICAgIG1fYXV0b0ZpbGxQb3B1cENsaWVudC0+c2V0U3VnZ2VzdGlvbnMo
Ci0gICAgICAgICAgICBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJ
bmRleCk7CiAgICAgICAgIHJlZnJlc2hBdXRvRmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgp
LT52aWV3KCksIDApOworICAgICAgICBtX2F1dG9GaWxsUG9wdXAtPnNob3coZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKICAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73478</attachid>
            <date>2010-11-10 03:07:27 -0800</date>
            <delta_ts>2010-11-12 03:20:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49291-20101110030726.patch</filename>
            <type>text/plain</type>
            <size>18352</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2YyN2E5YzNjOTMzNmJlZWRjZGM5OTMzOTFiOTZkMzRhZjM1Y2EwOS4uMWNiZjFjNTZjN2RlYzBl
ZjdlNjdjZjc0ZmFlOWRjZWVmNThlNDg4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMS0wOSAgSWx5
YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYXBhYmlsaXR5IGZvciBkaXNwbGF5aW5n
IHdhcm5pbmdzIHRvIGF1dG9maWxsIHBvcHVwLgorICAgICAgICBXYXJuaW5ncyBhcmUgZGlzcGxh
eWVkIGluIGRhcmsgZ3JheSBpdGFsaWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00OTI5MQorICAgICAgICBodHRwOi8vY29kZS5nb29nbGUuY29tL3Av
Y2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODUwOQorCisgICAgICAgICogcGxhdGZvcm0vUG9w
dXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpnZXRSb3dGb250KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc1dhcm5pbmcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aXRlbUlzV2FybmluZyk6CisKIDIwMTAtMTEtMTAgIFNo
aW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRpbmcg
YSBtYW51YWwgdGVzdCB3aGljaCBJIGZvcmdvdCB0byBhZGQgaW4gcjcxNjE4LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAwNjQ5Mjg1
YjQ3ZjExMzNmOGMwMTM4MzU2YjdhMDAwOWU0OThkMThlLi4zYzAzY2Y5OTU3OTkzZGUyOGFmZjgz
MzI0ZmU4ODM0ZTA1NjhkMDRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlBsYXRmb3Jt
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0uaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAj
aW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCkBAIC04OSw3ICs5MCw3IEBAIHN0YXRpYyBjb25z
dCBQb3B1cENvbnRhaW5lclNldHRpbmdzIGRyb3BEb3duU2V0dGluZ3MgPSB7CiAvLyBib3ggKCJj
b21ib2JveCIgb24gV2luZG93cykuCiBjbGFzcyBQb3B1cExpc3RCb3ggOiBwdWJsaWMgRnJhbWVs
ZXNzU2Nyb2xsVmlldyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UG9wdXBMaXN0
Qm94PiBjcmVhdGUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQsIGNvbnN0IFBvcHVwQ29udGFpbmVy
U2V0dGluZ3MmIHNldHRpbmdzKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBvcHVwTGlzdEJveD4g
Y3JlYXRlKFBvcHVwTWVudUNsaWVudENocm9taXVtKiBjbGllbnQsIGNvbnN0IFBvcHVwQ29udGFp
bmVyU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQb3B1cExpc3RCb3goY2xpZW50LCBzZXR0aW5ncykpOwogICAgIH0KQEAgLTE1Myw3ICsxNTQs
NyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQb3B1cENvbnRhaW5lcjsKICAgICBmcmll
bmQgY2xhc3MgUmVmQ291bnRlZDxQb3B1cExpc3RCb3g+OwogCi0gICAgUG9wdXBMaXN0Qm94KFBv
cHVwTWVudUNsaWVudCogY2xpZW50LCBjb25zdCBQb3B1cENvbnRhaW5lclNldHRpbmdzJiBzZXR0
aW5ncykKKyAgICBQb3B1cExpc3RCb3goUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0qIGNsaWVudCwg
Y29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgICAgIDogbV9zZXR0
aW5ncyhzZXR0aW5ncykKICAgICAgICAgLCBtX29yaWdpbmFsSW5kZXgoMCkKICAgICAgICAgLCBt
X3NlbGVjdGVkSW5kZXgoMCkKQEAgLTI1Myw3ICsyNTQsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rv
cjxQb3B1cEl0ZW0qPiBtX2l0ZW1zOwogCiAgICAgLy8gVGhlIDxzZWxlY3Q+IFBvcHVwTWVudUNs
aWVudCB0aGF0IG9wZW5lZCB1cy4KLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7
CisgICAgUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0qIG1fcG9wdXBDbGllbnQ7CiAKICAgICAvLyBU
aGUgc2Nyb2xsYmFyIHdoaWNoIGhhcyBtb3VzZSBjYXB0dXJlLiAgTW91c2UgZXZlbnRzIGdvIHN0
cmFpZ2h0IHRvIHRoaXMKICAgICAvLyBpZiBub24tTlVMTC4KQEAgLTMwNCwxNCArMzA1LDE0IEBA
IHN0YXRpYyBQbGF0Zm9ybVdoZWVsRXZlbnQgY29uc3RydWN0UmVsYXRpdmVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYKIC8vIFBvcHVwQ29udGFpbmVyIGltcGxlbWVudGF0aW9u
CiAKIC8vIHN0YXRpYwotUGFzc1JlZlB0cjxQb3B1cENvbnRhaW5lcj4gUG9wdXBDb250YWluZXI6
OmNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCwKK1Bhc3NSZWZQdHI8UG9wdXBDb250YWlu
ZXI+IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0qIGNsaWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9w
dXBUeXBlIHBvcHVwVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cENvbnRhaW5lcihjbGllbnQsIHBvcHVwVHlwZSwg
c2V0dGluZ3MpKTsKIH0KIAotUG9wdXBDb250YWluZXI6OlBvcHVwQ29udGFpbmVyKFBvcHVwTWVu
dUNsaWVudCogY2xpZW50LAorUG9wdXBDb250YWluZXI6OlBvcHVwQ29udGFpbmVyKFBvcHVwTWVu
dUNsaWVudENocm9taXVtKiBjbGllbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UG9wdXBUeXBlIHBvcHVwVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBQb3B1cENvbnRhaW5lclNldHRpbmdzJiBzZXR0aW5ncykKICAgICA6IG1fbGlzdEJveChQb3B1
cExpc3RCb3g6OmNyZWF0ZShjbGllbnQsIHNldHRpbmdzKSkKQEAgLTk5OSw2ICsxMDAwLDEzIEBA
IEZvbnQgUG9wdXBMaXN0Qm94OjpnZXRSb3dGb250KGludCByb3dJbmRleCkKICAgICAgICAgRm9u
dCBmb250KGQsIGl0ZW1Gb250LmxldHRlclNwYWNpbmcoKSwgaXRlbUZvbnQud29yZFNwYWNpbmco
KSk7CiAgICAgICAgIGZvbnQudXBkYXRlKDApOwogICAgICAgICByZXR1cm4gZm9udDsKKyAgICB9
IGVsc2UgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc1dhcm5pbmcocm93SW5kZXgpKSB7CisgICAg
ICAgIC8vIEl0YWxpY2l6ZSB3YXJuaW5ncy4KKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGQgPSBp
dGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsKKyAgICAgICAgZC5zZXRJdGFsaWModHJ1ZSk7Cisg
ICAgICAgIEZvbnQgZm9udChkLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250Lndv
cmRTcGFjaW5nKCkpOworICAgICAgICBmb250LnVwZGF0ZSgwKTsKKyAgICAgICAgcmV0dXJuIGZv
bnQ7CiAgICAgfQogCiAgICAgcmV0dXJuIGl0ZW1Gb250OwpAQCAtMTA2OSwxMyArMTA3NywxNiBA
QCB2b2lkIFBvcHVwTGlzdEJveDo6c2VsZWN0SW5kZXgoaW50IGluZGV4KQogICAgIGlmIChpbmRl
eCA8IDAgfHwgaW5kZXggPj0gbnVtSXRlbXMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KGluZGV4ICE9IG1fc2VsZWN0ZWRJbmRleCAmJiBpc1NlbGVjdGFibGVJdGVtKGluZGV4KSkgewor
ICAgIGJvb2wgaXNTZWxlY3RhYmxlID0gaXNTZWxlY3RhYmxlSXRlbShpbmRleCk7CisgICAgaWYg
KGluZGV4ICE9IG1fc2VsZWN0ZWRJbmRleCAmJiBpc1NlbGVjdGFibGUpIHsKICAgICAgICAgaW52
YWxpZGF0ZVJvdyhtX3NlbGVjdGVkSW5kZXgpOwogICAgICAgICBtX3NlbGVjdGVkSW5kZXggPSBp
bmRleDsKICAgICAgICAgaW52YWxpZGF0ZVJvdyhtX3NlbGVjdGVkSW5kZXgpOwogCiAgICAgICAg
IHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7CiAgICAgICAgIG1fcG9wdXBDbGllbnQtPnNlbGVj
dGlvbkNoYW5nZWQobV9zZWxlY3RlZEluZGV4KTsKKyAgICB9IGVsc2UgaWYgKCFpc1NlbGVjdGFi
bGUpIHsKKyAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CiAgICAgfQogfQogCkBAIC0xMjM4LDYgKzEy
NDksOCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAg
ICAgdHlwZSA9IFBvcHVwSXRlbTo6VHlwZVNlcGFyYXRvcjsKICAgICAgICAgZWxzZSBpZiAobV9w
b3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSkpCiAgICAgICAgICAgICB0eXBlID0gUG9wdXBJdGVt
OjpUeXBlR3JvdXA7CisgICAgICAgIGVsc2UgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc1dhcm5p
bmcoaSkpCisgICAgICAgICAgICB0eXBlID0gUG9wdXBJdGVtOjpUeXBlV2FybmluZzsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgdHlwZSA9IFBvcHVwSXRlbTo6VHlwZU9wdGlvbjsKICAgICAg
ICAgbV9pdGVtcy5hcHBlbmQobmV3IFBvcHVwSXRlbShtX3BvcHVwQ2xpZW50LT5pdGVtVGV4dChp
KSwgdHlwZSkpOwpAQCAtMTM2NCw3ICsxMzc3LDcgQEAgYm9vbCBQb3B1cExpc3RCb3g6OmlzUG9p
bnRJbkJvdW5kcyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAvLyAgICAgICBwb3J0YWJpbGl0eSBs
YXllci4gVG8gYWNjZXNzIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgb24gdGhlCiAvLyAgICAgICBw
b3B1cCB3aWRnZXRzLCB1c2UgfHBvcHVwV2luZG93fCBhYm92ZS4gCiAKLVBvcHVwTWVudUNocm9t
aXVtOjpQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVu
dUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnRDaHJvbWl1bSogY2xp
ZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKaW5kZXggMGQwZTIzY2UzNWE1ZDc2Mzgz
MzMzMTlhYTk1MDBkMTFhOTZlMTE5Ni4uYjk0ZGQ5ZmMxZjAxY2MwZjRmM2JlMGVlNzljYmIzYTdh
YmRlODE2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21p
dW0uaApAQCAtMzIsMTEgKzMyLDExIEBACiAjZGVmaW5lIFBvcHVwTWVudUNocm9taXVtX2gKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogCiAjaW5j
bHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRl
ICJQb3B1cE1lbnVQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEyICs0
NCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bTsK
IGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIFBvcHVwTGlzdEJveDsKK2NsYXNzIFBvcHVwTWVudUNs
aWVudENocm9taXVtOwogCiAvLyBBIGNvbnRhaW5lciBmb3IgdGhlIGRhdGEgZm9yIGVhY2ggbWVu
dSBpdGVtIChlLmcuIHJlcHJlc2VudGVkIGJ5IDxvcHRpb24+CiAvLyBvciA8b3B0Z3JvdXA+IGlu
IGEgPHNlbGVjdD4gd2lkZ2V0KSBhbmQgaXMgdXNlZCBieSBQb3B1cExpc3RCb3guCiBzdHJ1Y3Qg
UG9wdXBJdGVtIHsKICAgICBlbnVtIFR5cGUgewogICAgICAgICBUeXBlT3B0aW9uLAorICAgICAg
ICBUeXBlV2FybmluZywKICAgICAgICAgVHlwZUdyb3VwLAogICAgICAgICBUeXBlU2VwYXJhdG9y
CiAgICAgfTsKQEAgLTEyMCw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1Z2dlc3Rpb24s
IC8vIEF1dG9jb21wbGV0ZS9hdXRvZmlsbCBwb3B1cC4KICAgICB9OwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UG9wdXBDb250YWluZXI+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqLCBQb3B1cFR5
cGUsCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UG9wdXBDb250YWluZXI+IGNyZWF0ZShQb3B1cE1l
bnVDbGllbnRDaHJvbWl1bSosIFBvcHVwVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MmKTsKIAogICAg
IC8vIFdoZXRoZXIgYSBrZXkgZXZlbnQgc2hvdWxkIGJlIHNlbnQgdG8gdGhpcyBwb3B1cC4KQEAg
LTE4NSw3ICsxODcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXVEY6
OlJlZkNvdW50ZWQ8UG9wdXBDb250YWluZXI+OwogCi0gICAgUG9wdXBDb250YWluZXIoUG9wdXBN
ZW51Q2xpZW50KiwgUG9wdXBUeXBlIHBvcHVwVHlwZSwgY29uc3QgUG9wdXBDb250YWluZXJTZXR0
aW5ncyYpOworICAgIFBvcHVwQ29udGFpbmVyKFBvcHVwTWVudUNsaWVudENocm9taXVtKiwgUG9w
dXBUeXBlIHBvcHVwVHlwZSwgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyYpOwogICAgIH5Q
b3B1cENvbnRhaW5lcigpOwogCiAgICAgLy8gUGFpbnQgdGhlIGJvcmRlci4KQEAgLTIwNSw3ICsy
MDcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBQb3B1cE1lbnVDaHJvbWl1bSA6IHB1YmxpYyBQb3B1
cE1lbnUgewogcHVibGljOgotICAgIFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCop
OworICAgIFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudENocm9taXVtKik7CiAgICAg
flBvcHVwTWVudUNocm9taXVtKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRS
ZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKQEAgLTIxNCw5ICsyMTYsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0K
KyAgICBQb3B1cE1lbnVDbGllbnRDaHJvbWl1bSogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9w
b3B1cENsaWVudDsgfQogCi0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAg
IFBvcHVwTWVudUNsaWVudENocm9taXVtKiBtX3BvcHVwQ2xpZW50OwogICAgIFBvcHVwTWVudVBy
aXZhdGUgcDsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBNZW51Q2xpZW50Q2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2xpZW50Q2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWI3OTQxZWZiOGY2MzMwMDE5YjNjNjFj
NmJmODgxZWI1Zjk2ZTM1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDbGllbnRDaHJvbWl1bS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIFBvcHVwTWVudUNsaWVudENocm9taXVtX2gKKyNkZWZpbmUgUG9wdXBNZW51Q2xpZW50
Q2hyb21pdW1faAorCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0gOiBwdWJsaWMgUG9wdXBN
ZW51Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzV2FybmluZyh1bnNp
Z25lZCBsaXN0SW5kZXgpIGNvbnN0ID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCmlu
ZGV4IGRjMDZiNWFiMjIwMWNmY2JmNWJjNGQyMjcxNTk5ZDQ2ZTY0YmQ0OGMuLmEyMjBjZTFmOWMw
MTQyN2Y5MDY2NzYwYTBlYjU5MTlhNWQ0ODQ3ZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0zNyw3ICszNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorU2VhcmNoUG9w
dXBNZW51Q2hyb21pdW06OlNlYXJjaFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudENo
cm9taXVtKiBjbGllbnQpCiAgICAgOiBtX3BvcHVwKGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVDaHJv
bWl1bShjbGllbnQpKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaAppbmRleCA4MjdmZjY2NjlkNmM2MDRjZTVlMjc1NmFi
MjY3NWI1ZjVmMmY2ZjZiLi4yMmIyMGE5ZTU1NGJkYzVkMDA2YTgyZGIxZDAwYWRmNDA2ODc1NWRl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVD
aHJvbWl1bS5oCkBAIC0yNiw5ICsyNiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIFBvcHVwTWVudUNsaWVudDsKKwogY2xhc3MgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0gOiBw
dWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICBTZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShQb3B1
cE1lbnVDbGllbnRDaHJvbWl1bSopOwogCiAgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVu
dSgpOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNWYzMTU5OGYwZGVkM2NjNDRiY2YyMzIxMmM4NTlkYmNiMDQ4YjE2Yy4uNDc2MWQ2MjQw
YjAzOWI5OTE0OTRhNDBkNDAwYjAyYzg5Y2FlNTU0OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTAtMTEtMDkgIElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY2Fw
YWJpbGl0eSBmb3IgZGlzcGxheWluZyB3YXJuaW5ncyB0byBhdXRvZmlsbCBwb3B1cAorICAgICAg
ICBXYXJuaW5ncyBhcmUgZGlzcGxheWVkIGluIGRhcmsgZ3JheSBpdGFsaWMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5MQorICAgICAgICBodHRw
Oi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODUwOQorCisg
ICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KToK
KyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1TdHlsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNXYXJuaW5nKToK
KyAgICAgICAgKiBzcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRv
RmlsbFN1Z2dlc3Rpb25zKToKKwogMjAxMC0xMS0wOSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCmluZGV4IDczMWMw
MmMyMDFhZGVkMzFkZTExZjMxNjFmZTYxZmFjYTA5N2QzMWYuLmE5ODFjNWMwNTk2MDNkM2FhNTZm
NDFlNzNlZDg5YmE2Zjg5ZmE5YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0
b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0Zp
bGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0xMTUsMTAgKzExNSwxMCBAQCB2b2lkIEF1dG9GaWxs
UG9wdXBNZW51Q2xpZW50OjpyZW1vdmVTdWdnZXN0aW9uQXRJbmRleCh1bnNpZ25lZCBsaXN0SW5k
ZXgpCiAKIGJvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25B
dEluZGV4KHVuc2lnbmVkIGxpc3RJbmRleCkKIHsKLSAgICAvLyBPbmx5IGFsbG93IGRlbGV0aW9u
IG9mIGl0ZW1zIGJlZm9yZSB0aGUgc2VwYXJhdG9yIGFuZCB0aG9zZSB0aGF0IGRvbid0Ci0gICAg
Ly8gaGF2ZSBhIGxhYmVsIChhdXRvY29tcGxldGUpLgorICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRp
b24gb2YgaXRlbXMgYmVmb3JlIHRoZSBzZXBhcmF0b3IgdGhhdCBoYXZlIHVuaXF1ZSBpZCAwCisg
ICAgLy8gKGkuZS4gYXJlIGF1dG9jb21wbGV0ZSByYXRoZXIgdGhhbiBhdXRvZmlsbCBpdGVtcyku
CiAgICAgaW50IGluZGV4ID0gY29udmVydExpc3RJbmRleFRvSW50ZXJuYWxJbmRleChsaXN0SW5k
ZXgpOwotICAgIHJldHVybiBtX2xhYmVsc1tpbmRleF0uaXNFbXB0eSgpICYmIChtX3NlcGFyYXRv
ckluZGV4ID09IC0xIHx8IGxpc3RJbmRleCA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFy
YXRvckluZGV4KSk7CisgICAgcmV0dXJuICFtX3VuaXF1ZUlEc1tpbmRleF0gJiYgKG1fc2VwYXJh
dG9ySW5kZXggPT0gLTEgfHwgbGlzdEluZGV4IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2Vw
YXJhdG9ySW5kZXgpKTsKIH0KIAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6dmFsdWVD
aGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRzKQpAQCAtMTk2LDcgKzE5
NiwxMyBAQCBTdHJpbmcgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1JY29uKHVuc2lnbmVk
IGxpc3RJbmRleCkgY29uc3QKIAogUG9wdXBNZW51U3R5bGUgQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQ6Oml0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICpt
X3N0eWxlOworICAgIHJldHVybiAhaXRlbUlzV2FybmluZyhsaXN0SW5kZXgpID8gKm1fc3R5bGUg
OiBQb3B1cE1lbnVTdHlsZShDb2xvcjo6ZGFya0dyYXksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPmJhY2tn
cm91bmRDb2xvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5mb250KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUt
PmlzVmlzaWJsZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5pc0Rpc3BsYXlOb25lKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnRleHRJbmRlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+dGV4dERpcmVjdGlvbigp
KTsKIH0KIAogUG9wdXBNZW51U3R5bGUgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Om1lbnVTdHls
ZSgpIGNvbnN0CkBAIC0yMzksNiArMjQ1LDE2IEBAIGJvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQ6Oml0ZW1Jc1NlcGFyYXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAgICAgcmV0dXJu
IChtX3NlcGFyYXRvckluZGV4ICE9IC0xICYmIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFy
YXRvckluZGV4KSA9PSBsaXN0SW5kZXgpOwogfQogCitib29sIEF1dG9GaWxsUG9wdXBNZW51Q2xp
ZW50OjppdGVtSXNXYXJuaW5nKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKK3sKKyAgICBpbnQg
aW5kZXggPSBjb252ZXJ0TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRleCk7CisgICAg
aWYgKGluZGV4ID09IC0xKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoaW5k
ZXggPj0gMCAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8IG1fdW5pcXVlSURzLnNpemUo
KSk7CisgICAgcmV0dXJuIG1fdW5pcXVlSURzW2luZGV4XSA9PSAtMTsKK30KKwogdm9pZCBBdXRv
RmlsbFBvcHVwTWVudUNsaWVudDo6c2V0VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxpc3RJbmRleCkK
IHsKICAgICBtX3RleHRGaWVsZC0+c2V0VmFsdWUoZ2V0U3VnZ2VzdGlvbihsaXN0SW5kZXgpKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQu
aCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaAppbmRleCBh
OTQ2ZTM0MTQ5M2YzZDU1ZDgxMjNmZDc2YzBlNzRlNjk0YzlkZjcwLi5hMzNjM2Q2Y2Y1MjJhZTFm
NDY2MzE0NDIzYmY1NmFiMjVmYTU3MDA1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaWZuZGVmIEF1dG9GaWxs
UG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnRfaAogCi0j
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50Q2hy
b21pdW0uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTElucHV0RWxlbWVudDsK
QEAgLTQ2LDcgKzQ2LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsK
IAogLy8gVGhlIEF1dG9GaWxsIHN1Z2dlc3Rpb25zIHBvcHVwIG1lbnUgY2xpZW50LCB1c2VkIHRv
IGRpc3BsYXkgbmFtZSBzdWdnZXN0aW9ucwogLy8gd2l0aCByaWdodC1qdXN0aWZpZWQgbGFiZWxz
LgotY2xhc3MgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50IHsKK2NsYXNzIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50IDogcHVibGljIFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudENocm9taXVtIHsKIHB1YmxpYzoKICAgICBBdXRvRmlsbFBvcHVw
TWVudUNsaWVudCgpOwogICAgIHZpcnR1YWwgfkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50KCk7CkBA
IC04OSw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzZWxlY3RlZEluZGV4KCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZEluZGV4OyB9CiAgICAgdmlydHVhbCB2b2lkIHBvcHVw
RGlkSGlkZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlz
dEluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzV2FybmluZyh1bnNpZ25lZCBs
aXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNMYWJlbCh1bnNpZ25lZCBs
aXN0SW5kZXgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGl0ZW1J
c1NlbGVjdGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUG9wT3ZlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCAxOGY3YTAyMGUxZTU5
M2QzZmYxNWY3MzBlOWM2NzcxNWU5NTE5ODJmLi4yOTU0MGIxYzA1NWUxZmRiZDdmZjhlMDBkMzA2
YzAxYmZiYTIzNWQwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
QEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCisjaW5j
bHVkZSAiUG9wdXBNZW51Q2xpZW50Q2hyb21pdW0uaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51Q2hyb21pdW0uaCIKQEAgLTg0MiwxMiArODQzLDEyIEBAIFBhc3NSZWZQdHI8UG9wdXBNZW51
PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCiAgICAgaWYgKFdlYlZpZXdJbXBsOjp1c2VFeHRlcm5hbFBvcHVwTWVudXMoKSkKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRlcm5hbFBvcHVwTWVudShjbGllbnQsIG1fd2ViVmll
dy0+Y2xpZW50KCkpKTsKICAgICAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUNo
cm9taXVtKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hyb21p
dW0oc3RhdGljX2Nhc3Q8UG9wdXBNZW51Q2xpZW50Q2hyb21pdW0qPihjbGllbnQpKSk7CiB9CiAK
IFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShjbGllbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUNocm9taXVtKHN0YXRpY19jYXN0PFBvcHVw
TWVudUNsaWVudENocm9taXVtKj4oY2xpZW50KSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNDkwYzYyMGIxZjk0NWQ2YmU4
ZGY3YzQyNDRkMzZkN2RkMDkxNTA1Ni4uMTE3ZGYyYmU3NjcxY2QyMjk1YmUyNzc2MWUxNjRiMjIz
YjQ1NTJjNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE3OCw3ICsxNzgs
NyBAQCBzdGF0aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvRmlsbFBvcHVwU2V0
dGluZ3MgPSB7CiAgICAgZmFsc2UsIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAvLyBs
b29wU2VsZWN0aW9uTmF2aWdhdGlvbgogICAgIGZhbHNlLCAvLyByZXN0cmljdFdpZHRoT2ZMaXN0
Qm94IChGb3Igc2VjdXJpdHkgcmVhc29ucyBzaG93IHRoZSBlbnRpcmUgZW50cnkKLSAgICAgICAg
ICAgLy8gc28gdGhlIHVzZXIgZG9lc24ndCBlbnRlciBpbmZvcm1hdGlvbiBpdCBkaWQgbm90IGlu
dGVuZCB0by4pCisgICAgICAgICAgIC8vIHNvIHRoZSB1c2VyIGRvZXNuJ3QgZW50ZXIgaW5mb3Jt
YXRpb24gaGUgZGlkIG5vdCBpbnRlbmQgdG8uKQogICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2Ug
dXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAg
ICAvLyBvZiB0aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBk
aXNwbGF5IG9mIGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVt
cyBpbiB0aGUgaW5wdXQgZmllbGQuCkBAIC0xOTQzLDEyICsxOTQzLDkgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6YXBwbHlBdXRvRmlsbFN1Z2dlc3Rpb25zKAogICAgIH0KIAogICAgIGlmIChtX2F1dG9G
aWxsUG9wdXBTaG93aW5nKSB7Ci0gICAgICAgIG1fYXV0b0ZpbGxQb3B1cENsaWVudC0+c2V0U3Vn
Z2VzdGlvbnMoCi0gICAgICAgICAgICBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBz
ZXBhcmF0b3JJbmRleCk7CiAgICAgICAgIHJlZnJlc2hBdXRvRmlsbFBvcHVwKCk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbV9hdXRvRmlsbFBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJE
b2N1bWVudCgpLT52aWV3KCksIDApOworICAgICAgICBtX2F1dG9GaWxsUG9wdXAtPnNob3coZm9j
dXNlZE5vZGUtPmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygp
LCAwKTsKICAgICAgICAgbV9hdXRvRmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73727</attachid>
            <date>2010-11-12 03:20:36 -0800</date>
            <delta_ts>2010-11-12 15:48:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49291-20101112032034.patch</filename>
            <type>text/plain</type>
            <size>11803</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTYxMmExMGQxN2U5NmQ3ZjE3ZDIwMWI0ODA5ZjU1NmY3NjU2YzY1ZC4uNTE2ODg4M2UxOWZkZTc4
NTljODhhMWUxYTFjMzZmMTQzZGQwZjY4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMC0xMS0xMiAgSWx5
YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYXBhYmlsaXR5IGZvciBkaXNwbGF5aW5n
IHdhcm5pbmdzIHRvIGF1dG9maWxsIHBvcHVwCisgICAgICAgIFdhcm5pbmdzIGFyZSBkaXNwbGF5
ZWQgaW4gZGFyayBncmF5IGl0YWxpYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MjkxCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU4NTA5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RC
b3g6OnNlbGVjdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5oOgorCisyMDEwLTExLTEyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgUmVt
b3ZlIHNvbWUgdHJhaWxpbmcgd2hpdGVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA1NmE1YWE5NmNiOWZkNzZmOWZjZDM4YzY0
NjNlMjE0ODhjNWRhOGEwLi40MDljOWVlZWJmZTY1YzQ0Mzg2M2UwN2Q3MDczOWI1ZjNkMzI5OTkw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5o
IgpAQCAtMTA2OSwxMyArMTA3MCwxNiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6c2VsZWN0SW5kZXgo
aW50IGluZGV4KQogICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbnVtSXRlbXMoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGluZGV4ICE9IG1fc2VsZWN0ZWRJbmRleCAmJiBpc1Nl
bGVjdGFibGVJdGVtKGluZGV4KSkgeworICAgIGJvb2wgaXNTZWxlY3RhYmxlID0gaXNTZWxlY3Rh
YmxlSXRlbShpbmRleCk7CisgICAgaWYgKGluZGV4ICE9IG1fc2VsZWN0ZWRJbmRleCAmJiBpc1Nl
bGVjdGFibGUpIHsKICAgICAgICAgaW52YWxpZGF0ZVJvdyhtX3NlbGVjdGVkSW5kZXgpOwogICAg
ICAgICBtX3NlbGVjdGVkSW5kZXggPSBpbmRleDsKICAgICAgICAgaW52YWxpZGF0ZVJvdyhtX3Nl
bGVjdGVkSW5kZXgpOwogCiAgICAgICAgIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7CiAgICAg
ICAgIG1fcG9wdXBDbGllbnQtPnNlbGVjdGlvbkNoYW5nZWQobV9zZWxlY3RlZEluZGV4KTsKKyAg
ICB9IGVsc2UgaWYgKCFpc1NlbGVjdGFibGUpIHsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21p
dW0uaAppbmRleCBiZDg4NWJhYTA5MWQ4YTE4OTVmNjhlYzZlMzk5ZTNjNDBmNWIzNGMyLi5jYTQ3
Y2NmYjI1MmRmYWMxNThlYTAyYmI3OGEyZjg2MTIwNmJhYTRkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCkBAIC0zMiwxOCArMzIsMjAgQEAKICNk
ZWZpbmUgUG9wdXBNZW51Q2hyb21pdW1faAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAKICNpbmNsdWRlICJGcmFtZWxlc3NTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIlBvcHVwTWVudVN0eWxlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hy
b21lQ2xpZW50Q2hyb21pdW07CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBQb3B1cExpc3RCb3g7
CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAKIC8vIEEgY29udGFpbmVyIGZvciB0aGUgZGF0YSBm
b3IgZWFjaCBtZW51IGl0ZW0gKGUuZy4gcmVwcmVzZW50ZWQgYnkgPG9wdGlvbj4KIC8vIG9yIDxv
cHRncm91cD4gaW4gYSA8c2VsZWN0PiB3aWRnZXQpIGFuZCBpcyB1c2VkIGJ5IFBvcHVwTGlzdEJv
eC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDhhM2Y2M2RiMjRkMWI0YzZmMzhkOGU4ODEwZmQwYmQ0MDZkNzc0
MzIuLmVjOTg4OTI5Mjc3MDI1NWFkNGZiYzkzMDAwODQ4ZDhkYjJhNjVmNWIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEwLTExLTEyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBj
aHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGNhcGFiaWxpdHkgZm9yIGRpc3BsYXlpbmcgd2FybmluZ3MgdG8gYXV0b2ZpbGwg
cG9wdXAKKyAgICAgICAgV2FybmluZ3MgYXJlIGRpc3BsYXllZCBpbiBkYXJrIGdyYXkgaXRhbGlj
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyOTEK
KyAgICAgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/
aWQ9NTg1MDkKKworICAgICAgICAqIHNyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpjYW5SZW1vdmVTdWdnZXN0
aW9uQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojpp
dGVtSXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6
Oml0ZW1TdHlsZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojpt
ZW51U3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRl
bUlzV2FybmluZyk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojpp
bml0aWFsaXplKToKKyAgICAgICAgKiBzcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaDoKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6YXBwbHlBdXRvRmlsbFN1Z2dlc3Rpb25zKToKKworMjAxMC0xMS0xMiAgSWx5YSBTaGVybWFu
ICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgogCiAgICAgICAgIFJlbW92ZSBzb21lIHRyYWlsaW5nIHdoaXRlc3BhY2UKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggNzMxYzAy
YzIwMWFkZWQzMWRlMTFmMzE2MWZlNjFmYWNhMDk3ZDMxZi4uYmM4YzE0ZTE0ODEyMjIwYmRkMGI4
OGIyOTgwMWVkYTFkODc4ZTU1NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmls
bFBvcHVwTWVudUNsaWVudC5jcHAKQEAgLTExNSwxMCArMTE1LDEwIEBAIHZvaWQgQXV0b0ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OnJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KHVuc2lnbmVkIGxpc3RJbmRl
eCkKIAogYm9vbCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6Y2FuUmVtb3ZlU3VnZ2VzdGlvbkF0
SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQogewotICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpb24g
b2YgaXRlbXMgYmVmb3JlIHRoZSBzZXBhcmF0b3IgYW5kIHRob3NlIHRoYXQgZG9uJ3QKLSAgICAv
LyBoYXZlIGEgbGFiZWwgKGF1dG9jb21wbGV0ZSkuCisgICAgLy8gT25seSBhbGxvdyBkZWxldGlv
biBvZiBpdGVtcyBiZWZvcmUgdGhlIHNlcGFyYXRvciB0aGF0IGhhdmUgdW5pcXVlIGlkIDAKKyAg
ICAvLyAoaS5lLiBhcmUgYXV0b2NvbXBsZXRlIHJhdGhlciB0aGFuIGF1dG9maWxsIGl0ZW1zKS4K
ICAgICBpbnQgaW5kZXggPSBjb252ZXJ0TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRl
eCk7Ci0gICAgcmV0dXJuIG1fbGFiZWxzW2luZGV4XS5pc0VtcHR5KCkgJiYgKG1fc2VwYXJhdG9y
SW5kZXggPT0gLTEgfHwgbGlzdEluZGV4IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2VwYXJh
dG9ySW5kZXgpKTsKKyAgICByZXR1cm4gIW1fdW5pcXVlSURzW2luZGV4XSAmJiAobV9zZXBhcmF0
b3JJbmRleCA9PSAtMSB8fCBsaXN0SW5kZXggPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBh
cmF0b3JJbmRleCkpOwogfQogCiB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojp2YWx1ZUNo
YW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVudHMpCkBAIC0xOTQsMTQgKzE5
NCwxOSBAQCBTdHJpbmcgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1JY29uKHVuc2lnbmVk
IGxpc3RJbmRleCkgY29uc3QKICAgICByZXR1cm4gZ2V0SWNvbihsaXN0SW5kZXgpOwogfQogCiti
b29sIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWl0ZW1Jc1dhcm5pbmcobGlzdEluZGV4KTsKK30K
KwogUG9wdXBNZW51U3R5bGUgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1TdHlsZSh1bnNp
Z25lZCBsaXN0SW5kZXgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICptX3N0eWxlOworICAgIHJldHVy
biBpdGVtSXNXYXJuaW5nKGxpc3RJbmRleCkgPyAqbV93YXJuaW5nU3R5bGUgOiAqbV9yZWd1bGFy
U3R5bGU7CiB9CiAKIFBvcHVwTWVudVN0eWxlIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjptZW51
U3R5bGUoKSBjb25zdAogewotICAgIHJldHVybiAqbV9zdHlsZTsKKyAgICByZXR1cm4gKm1fcmVn
dWxhclN0eWxlOwogfQogCiBpbnQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OmNsaWVudFBhZGRp
bmdMZWZ0KCkgY29uc3QKQEAgLTIzOSw2ICsyNDQsMTYgQEAgYm9vbCBBdXRvRmlsbFBvcHVwTWVu
dUNsaWVudDo6aXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKICAgICBy
ZXR1cm4gKG1fc2VwYXJhdG9ySW5kZXggIT0gLTEgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1f
c2VwYXJhdG9ySW5kZXgpID09IGxpc3RJbmRleCk7CiB9CiAKK2Jvb2wgQXV0b0ZpbGxQb3B1cE1l
bnVDbGllbnQ6Oml0ZW1Jc1dhcm5pbmcodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAoreworICAg
IGludCBpbmRleCA9IGNvbnZlcnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlzdEluZGV4KTsK
KyAgICBpZiAoaW5kZXggPT0gLTEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VS
VChpbmRleCA+PSAwICYmIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbV91bmlxdWVJRHMu
c2l6ZSgpKTsKKyAgICByZXR1cm4gbV91bmlxdWVJRHNbaW5kZXhdID09IC0xOworfQorCiB2b2lk
IEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZXRUZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdElu
ZGV4KQogewogICAgIG1fdGV4dEZpZWxkLT5zZXRWYWx1ZShnZXRTdWdnZXN0aW9uKGxpc3RJbmRl
eCkpOwpAQCAtMjgyLDE5ICsyOTcsMzEgQEAgdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6
aW5pdGlhbGl6ZSgKICAgICAvLyBBdXRvRmlsbFBvcHVwTWVudUNsaWVudC4KICAgICBzZXRTdWdn
ZXN0aW9ucyhuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJbmRleCk7
CiAKLSAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOworICAgIEZvbnREZXNjcmlw
dGlvbiByZWd1bGFyRm9udERlc2NyaXB0aW9uOwogICAgIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhl
bWUoKS0+c3lzdGVtRm9udChDU1NWYWx1ZVdlYmtpdENvbnRyb2wsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ3VsYXJGb250RGVzY3JpcHRpb24p
OwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fdGV4dEZpZWxkLT5jb21wdXRlZFN0eWxlKCk7
Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShzdHlsZS0+Zm9udERlc2NyaXB0
aW9uKCkuY29tcHV0ZWRTaXplKCkpOworICAgIHJlZ3VsYXJGb250RGVzY3JpcHRpb24uc2V0Q29t
cHV0ZWRTaXplKHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKSk7CiAKLSAg
ICBGb250IGZvbnQoZm9udERlc2NyaXB0aW9uLCAwLCAwKTsKLSAgICBmb250LnVwZGF0ZSh0ZXh0
RmllbGQtPmRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+Zm9udFNlbGVjdG9yKCkpOworICAg
IEZvbnQgcmVndWxhckZvbnQocmVndWxhckZvbnREZXNjcmlwdGlvbiwgMCwgMCk7CisgICAgcmVn
dWxhckZvbnQudXBkYXRlKHRleHRGaWVsZC0+ZG9jdW1lbnQoKS0+c3R5bGVTZWxlY3RvcigpLT5m
b250U2VsZWN0b3IoKSk7CiAgICAgLy8gVGhlIGRpcmVjdGlvbiBvZiB0ZXh0IGluIHBvcHVwIG1l
bnUgaXMgc2V0IHRoZSBzYW1lIGFzIHRoZSBkaXJlY3Rpb24gb2YKICAgICAvLyB0aGUgaW5wdXQg
ZWxlbWVudDogdGV4dEZpZWxkLgotICAgIG1fc3R5bGUuc2V0KG5ldyBQb3B1cE1lbnVTdHlsZShD
b2xvcjo6YmxhY2ssIENvbG9yOjp3aGl0ZSwgZm9udCwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmFsc2UsIExlbmd0aChXZWJDb3JlOjpGaXhlZCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC0+cmVuZGVyZXIoKS0+c3R5bGUo
KS0+ZGlyZWN0aW9uKCkpKTsKKyAgICBtX3JlZ3VsYXJTdHlsZS5zZXQobmV3IFBvcHVwTWVudVN0
eWxlKENvbG9yOjpibGFjaywgQ29sb3I6OndoaXRlLCByZWd1bGFyRm9udCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGZhbHNlLCBMZW5ndGgoV2ViQ29y
ZTo6Rml4ZWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dEZpZWxkLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSkpOworCisgICAgRm9udERl
c2NyaXB0aW9uIHdhcm5pbmdGb250RGVzY3JpcHRpb24gPSByZWd1bGFyRm9udERlc2NyaXB0aW9u
OworICAgIHdhcm5pbmdGb250RGVzY3JpcHRpb24uc2V0SXRhbGljKHRydWUpOworICAgIEZvbnQg
d2FybmluZ0ZvbnQod2FybmluZ0ZvbnREZXNjcmlwdGlvbiwgcmVndWxhckZvbnQubGV0dGVyU3Bh
Y2luZygpLCByZWd1bGFyRm9udC53b3JkU3BhY2luZygpKTsKKyAgICB3YXJuaW5nRm9udC51cGRh
dGUocmVndWxhckZvbnQuZm9udFNlbGVjdG9yKCkpOworICAgIG1fd2FybmluZ1N0eWxlLnNldChu
ZXcgUG9wdXBNZW51U3R5bGUoQ29sb3I6OmRhcmtHcmF5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9yZWd1bGFyU3R5bGUtPmJhY2tncm91bmRDb2xvcigpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ0ZvbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+
aXNWaXNpYmxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3JlZ3VsYXJTdHlsZS0+aXNEaXNwbGF5Tm9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9yZWd1bGFyU3R5bGUtPnRleHRJbmRlbnQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcmVndWxhclN0eWxlLT50ZXh0RGly
ZWN0aW9uKCkpKTsKIH0KIAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6c2V0U3VnZ2Vz
dGlvbnMoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oCmluZGV4IGE5NDZlMzQxNDkzZjNkNTVk
ODEyM2ZkNzZjMGU3NGU2OTRjOWRmNzAuLmUzZWRmZDMwZWRlMWU3ZThmZWMzMGIxNzkyN2M1NTJm
MTI2YWFiNWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1l
bnVDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xp
ZW50LmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
aXRlbUljb24odW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGl0ZW1Ub29sVGlwKHVuc2lnbmVkIGxhc3RJbmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpT
dHJpbmcoKTsgfQogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaXRlbUFjY2Vzc2liaWxpdHlUZXh0
KHVuc2lnbmVkIGxhc3RJbmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpTdHJpbmcoKTsgfQotICAg
IHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxp
c3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVt
U3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudElu
c2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRl
OgogICAgIGludCBnZXRTZWxlY3RlZEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZElu
ZGV4OyB9CiAgICAgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCkgeyBtX3NlbGVjdGVk
SW5kZXggPSBpbmRleDsgfQogCisgICAgYm9vbCBpdGVtSXNXYXJuaW5nKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3Q7CisKICAgICAvLyBUaGUgbmFtZXMsIGxhYmVscyBhbmQgaWNvbnMgdGhhdCBt
YWtlIHVwIHRoZSBjb250ZW50cyBvZiB0aGUgbWVudSBpdGVtcy4KICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fbmFtZXM7CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2xhYmVsczsKQEAgLTE0
Myw3ICsxNDUsOCBAQCBwcml2YXRlOgogICAgIGludCBtX3NlbGVjdGVkSW5kZXg7CiAKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4gbV90ZXh0RmllbGQ7Ci0gICAgT3duUHRy
PFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlPiBtX3N0eWxlOworICAgIE93blB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnVTdHlsZT4gbV9yZWd1bGFyU3R5bGU7CisgICAgT3duUHRyPFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlPiBtX3dhcm5pbmdTdHlsZTsKIAogICAgIC8vIERFUFJFQ0FURUQ6IFdpbGwgYmUg
cmVtb3ZlZCBvbmNlIEF1dG9jb21wbGV0ZSBhbmQgQXV0b0ZpbGwgbWVyZ2UgaXMKICAgICAvLyBj
b21wbGV0ZS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggOTVkNjNlMzdhN2My
M2UyNzAyMWEwNTEzMmZlMjk2ZmMzYjgyMmIwNC4uNTE1NzZiMzVkMjdmMjc3M2M4ZDA4YzFhNmFh
MWY2ZmYwOWFiYTZjNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE3OCw3
ICsxNzgsNyBAQCBzdGF0aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvRmlsbFBv
cHVwU2V0dGluZ3MgPSB7CiAgICAgZmFsc2UsIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUs
ICAvLyBsb29wU2VsZWN0aW9uTmF2aWdhdGlvbgogICAgIGZhbHNlLCAvLyByZXN0cmljdFdpZHRo
T2ZMaXN0Qm94IChGb3Igc2VjdXJpdHkgcmVhc29ucyBzaG93IHRoZSBlbnRpcmUgZW50cnkKLSAg
ICAgICAgICAgLy8gc28gdGhlIHVzZXIgZG9lc24ndCBlbnRlciBpbmZvcm1hdGlvbiBpdCBkaWQg
bm90IGludGVuZCB0by4pCisgICAgICAgICAgIC8vIHNvIHRoZSB1c2VyIGRvZXNuJ3QgZW50ZXIg
aW5mb3JtYXRpb24gaGUgZGlkIG5vdCBpbnRlbmQgdG8uKQogICAgIC8vIEZvciBzdWdnZXN0aW9u
cywgd2UgdXNlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rp
b24KICAgICAvLyBvZiB0aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVw
IHRoZSBkaXNwbGF5IG9mIGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRo
ZSBpdGVtcyBpbiB0aGUgaW5wdXQgZmllbGQuCkBAIC0xOTQzLDEyICsxOTQzLDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6YXBwbHlBdXRvRmlsbFN1Z2dlc3Rpb25zKAogICAgIH0KIAogICAgIGlmICht
X2F1dG9GaWxsUG9wdXBTaG93aW5nKSB7Ci0gICAgICAgIG1fYXV0b0ZpbGxQb3B1cENsaWVudC0+
c2V0U3VnZ2VzdGlvbnMoCi0gICAgICAgICAgICBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVl
SURzLCBzZXBhcmF0b3JJbmRleCk7CiAgICAgICAgIHJlZnJlc2hBdXRvRmlsbFBvcHVwKCk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgbV9hdXRvRmlsbFBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5n
ZXRSZWN0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+
b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOworICAgICAgICBtX2F1dG9GaWxsUG9wdXAtPnNo
b3coZm9jdXNlZE5vZGUtPmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+
dmlldygpLCAwKTsKICAgICAgICAgbV9hdXRvRmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAg
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73784</attachid>
            <date>2010-11-12 15:48:35 -0800</date>
            <delta_ts>2010-11-14 19:38:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49291-20101112154834.patch</filename>
            <type>text/plain</type>
            <size>12244</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTYxMmExMGQxN2U5NmQ3ZjE3ZDIwMWI0ODA5ZjU1NmY3NjU2YzY1ZC4uNTE2ODg4M2UxOWZkZTc4
NTljODhhMWUxYTFjMzZmMTQzZGQwZjY4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMC0xMS0xMiAgSWx5
YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYXBhYmlsaXR5IGZvciBkaXNwbGF5aW5n
IHdhcm5pbmdzIHRvIGF1dG9maWxsIHBvcHVwCisgICAgICAgIFdhcm5pbmdzIGFyZSBkaXNwbGF5
ZWQgaW4gZGFyayBncmF5IGl0YWxpYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MjkxCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU4NTA5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RC
b3g6OnNlbGVjdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5oOgorCisyMDEwLTExLTEyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgUmVt
b3ZlIHNvbWUgdHJhaWxpbmcgd2hpdGVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA1NmE1YWE5NmNiOWZkNzZmOWZjZDM4YzY0
NjNlMjE0ODhjNWRhOGEwLi4xOGViMzdhOWEzMTI4MzQ2ZmZjMjRjN2MzM2I0MTlmMTI5OTM2M2I0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5o
IgpAQCAtOTkxLDcgKzk5Miw3IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludFJvdyhHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgcm93SW5kCiAKIEZvbnQgUG9w
dXBMaXN0Qm94OjpnZXRSb3dGb250KGludCByb3dJbmRleCkKIHsKLSAgICBGb250IGl0ZW1Gb250
ID0gbV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkuZm9udCgpOworICAgIEZvbnQgaXRlbUZvbnQg
PSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUocm93SW5kZXgpLmZvbnQoKTsKICAgICBpZiAobV9w
b3B1cENsaWVudC0+aXRlbUlzTGFiZWwocm93SW5kZXgpKSB7CiAgICAgICAgIC8vIEJvbGQtaWZ5
IGxhYmVscyAoaWUsIGFuIDxvcHRncm91cD4gaGVhZGluZykuCiAgICAgICAgIEZvbnREZXNjcmlw
dGlvbiBkID0gaXRlbUZvbnQuZm9udERlc2NyaXB0aW9uKCk7CkBAIC0xMDY5LDEzICsxMDcwLDE2
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpzZWxlY3RJbmRleChpbnQgaW5kZXgpCiAgICAgaWYgKGlu
ZGV4IDwgMCB8fCBpbmRleCA+PSBudW1JdGVtcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoaW5kZXggIT0gbV9zZWxlY3RlZEluZGV4ICYmIGlzU2VsZWN0YWJsZUl0ZW0oaW5kZXgpKSB7
CisgICAgYm9vbCBpc1NlbGVjdGFibGUgPSBpc1NlbGVjdGFibGVJdGVtKGluZGV4KTsKKyAgICBp
ZiAoaW5kZXggIT0gbV9zZWxlY3RlZEluZGV4ICYmIGlzU2VsZWN0YWJsZSkgewogICAgICAgICBp
bnZhbGlkYXRlUm93KG1fc2VsZWN0ZWRJbmRleCk7CiAgICAgICAgIG1fc2VsZWN0ZWRJbmRleCA9
IGluZGV4OwogICAgICAgICBpbnZhbGlkYXRlUm93KG1fc2VsZWN0ZWRJbmRleCk7CiAKICAgICAg
ICAgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKICAgICAgICAgbV9wb3B1cENsaWVudC0+c2Vs
ZWN0aW9uQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOworICAgIH0gZWxzZSBpZiAoIWlzU2VsZWN0
YWJsZSkgeworICAgICAgICBjbGVhclNlbGVjdGlvbigpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCmluZGV4IGJkODg1YmFhMDkx
ZDhhMTg5NWY2OGVjNmUzOTllM2M0MGY1YjM0YzIuLmNhNDdjY2ZiMjUyZGZhYzE1OGVhMDJiYjc4
YTJmODYxMjA2YmFhNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBNZW51Q2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmgKQEAgLTMyLDE4ICszMiwyMCBAQAogI2RlZmluZSBQb3B1cE1lbnVDaHJvbWl1
bV9oCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
IAogI2luY2x1ZGUgIkZyYW1lbGVzc1Njcm9sbFZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNp
bmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bTsKIGNs
YXNzIEZyYW1lVmlldzsKIGNsYXNzIFBvcHVwTGlzdEJveDsKK2NsYXNzIFBvcHVwTWVudUNsaWVu
dDsKIAogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAoZS5n
LiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgogLy8gb3IgPG9wdGdyb3VwPiBpbiBhIDxzZWxlY3Q+
IHdpZGdldCkgYW5kIGlzIHVzZWQgYnkgUG9wdXBMaXN0Qm94LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGEz
ZjYzZGIyNGQxYjRjNmYzOGQ4ZTg4MTBmZDBiZDQwNmQ3NzQzMi4uZWM5ODg5MjkyNzcwMjU1YWQ0
ZmJjOTMwMDA4NDhkOGRiMmE2NWY1YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIw
MTAtMTEtMTIgIElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4KIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY2FwYWJpbGl0eSBm
b3IgZGlzcGxheWluZyB3YXJuaW5ncyB0byBhdXRvZmlsbCBwb3B1cAorICAgICAgICBXYXJuaW5n
cyBhcmUgZGlzcGxheWVkIGluIGRhcmsgZ3JheSBpdGFsaWMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5MQorICAgICAgICBodHRwOi8vY29kZS5n
b29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODUwOQorCisgICAgICAgICog
c3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b0Zp
bGxQb3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KToKKyAgICAgICAg
KFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1Jc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVN0eWxlKToKKyAgICAgICAg
KFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Om1lbnVTdHlsZSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNXYXJuaW5nKToKKyAgICAgICAg
KFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAq
IHNyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9GaWxsU3VnZ2Vz
dGlvbnMpOgorCisyMDEwLTExLTEyICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgUmVtb3Zl
IHNvbWUgdHJhaWxpbmcgd2hpdGVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9G
aWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCA3MzFjMDJjMjAxYWRlZDMxZGUxMWYzMTYxZmU2
MWZhY2EwOTdkMzFmLi5hZTIzZjg0MTljMzg1OTk4YjY4MjU4MWVkYjZiMTRhN2MwMGJlMjIwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcApA
QCAtMTE1LDEwICsxMTUsMTAgQEAgdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cmVtb3Zl
U3VnZ2VzdGlvbkF0SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQogCiBib29sIEF1dG9GaWxsUG9w
dXBNZW51Q2xpZW50OjpjYW5SZW1vdmVTdWdnZXN0aW9uQXRJbmRleCh1bnNpZ25lZCBsaXN0SW5k
ZXgpCiB7Ci0gICAgLy8gT25seSBhbGxvdyBkZWxldGlvbiBvZiBpdGVtcyBiZWZvcmUgdGhlIHNl
cGFyYXRvciBhbmQgdGhvc2UgdGhhdCBkb24ndAotICAgIC8vIGhhdmUgYSBsYWJlbCAoYXV0b2Nv
bXBsZXRlKS4KKyAgICAvLyBPbmx5IGFsbG93IGRlbGV0aW9uIG9mIGl0ZW1zIGJlZm9yZSB0aGUg
c2VwYXJhdG9yIHRoYXQgaGF2ZSB1bmlxdWUgaWQgMAorICAgIC8vIChpLmUuIGFyZSBhdXRvY29t
cGxldGUgcmF0aGVyIHRoYW4gYXV0b2ZpbGwgaXRlbXMpLgogICAgIGludCBpbmRleCA9IGNvbnZl
cnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlzdEluZGV4KTsKLSAgICByZXR1cm4gbV9sYWJl
bHNbaW5kZXhdLmlzRW1wdHkoKSAmJiAobV9zZXBhcmF0b3JJbmRleCA9PSAtMSB8fCBsaXN0SW5k
ZXggPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkpOworICAgIHJldHVy
biAhbV91bmlxdWVJRHNbaW5kZXhdICYmIChtX3NlcGFyYXRvckluZGV4ID09IC0xIHx8IGxpc3RJ
bmRleCA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFyYXRvckluZGV4KSk7CiB9CiAKIHZv
aWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5k
ZXgsIGJvb2wgZmlyZUV2ZW50cykKQEAgLTE5NCwxNCArMTk0LDE5IEBAIFN0cmluZyBBdXRvRmls
bFBvcHVwTWVudUNsaWVudDo6aXRlbUljb24odW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogICAg
IHJldHVybiBnZXRJY29uKGxpc3RJbmRleCk7CiB9CiAKK2Jvb2wgQXV0b0ZpbGxQb3B1cE1lbnVD
bGllbnQ6Oml0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAoreworICAgIHJl
dHVybiAhaXRlbUlzV2FybmluZyhsaXN0SW5kZXgpOworfQorCiBQb3B1cE1lbnVTdHlsZSBBdXRv
RmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKm1fc3R5bGU7CisgICAgcmV0dXJuIGl0ZW1Jc1dhcm5pbmcobGlzdElu
ZGV4KSA/ICptX3dhcm5pbmdTdHlsZSA6ICptX3JlZ3VsYXJTdHlsZTsKIH0KIAogUG9wdXBNZW51
U3R5bGUgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Om1lbnVTdHlsZSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuICptX3N0eWxlOworICAgIHJldHVybiAqbV9yZWd1bGFyU3R5bGU7CiB9CiAKIGludCBB
dXRvRmlsbFBvcHVwTWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdApAQCAtMjM5
LDYgKzI0NCwxNiBAQCBib29sIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNTZXBhcmF0
b3IodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogICAgIHJldHVybiAobV9zZXBhcmF0b3JJbmRl
eCAhPSAtMSAmJiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkgPT0gbGlz
dEluZGV4KTsKIH0KIAorYm9vbCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbUlzV2Fybmlu
Zyh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0Cit7CisgICAgaW50IGluZGV4ID0gY29udmVydExp
c3RJbmRleFRvSW50ZXJuYWxJbmRleChsaXN0SW5kZXgpOworICAgIGlmIChpbmRleCA9PSAtMSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKGluZGV4ID49IDAgJiYgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtX3VuaXF1ZUlEcy5zaXplKCkpOworICAgIHJldHVybiBt
X3VuaXF1ZUlEc1tpbmRleF0gPT0gLTE7Cit9CisKIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQ6OnNldFRleHRGcm9tSXRlbSh1bnNpZ25lZCBsaXN0SW5kZXgpCiB7CiAgICAgbV90ZXh0Rmll
bGQtPnNldFZhbHVlKGdldFN1Z2dlc3Rpb24obGlzdEluZGV4KSk7CkBAIC0yODIsMTkgKzI5Nywz
MSBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojppbml0aWFsaXplKAogICAgIC8vIEF1
dG9GaWxsUG9wdXBNZW51Q2xpZW50LgogICAgIHNldFN1Z2dlc3Rpb25zKG5hbWVzLCBsYWJlbHMs
IGljb25zLCB1bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKIAotICAgIEZvbnREZXNjcmlwdGlv
biBmb250RGVzY3JpcHRpb247CisgICAgRm9udERlc2NyaXB0aW9uIHJlZ3VsYXJGb250RGVzY3Jp
cHRpb247CiAgICAgUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KENTU1Zh
bHVlV2Via2l0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVndWxhckZvbnREZXNjcmlwdGlvbik7CiAgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gbV90ZXh0RmllbGQtPmNvbXB1dGVkU3R5bGUoKTsKLSAgICBmb250RGVzY3JpcHRpb24u
c2V0Q29tcHV0ZWRTaXplKHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKSk7
CisgICAgcmVndWxhckZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoc3R5bGUtPmZvbnRE
ZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpKTsKIAotICAgIEZvbnQgZm9udChmb250RGVzY3Jp
cHRpb24sIDAsIDApOwotICAgIGZvbnQudXBkYXRlKHRleHRGaWVsZC0+ZG9jdW1lbnQoKS0+c3R5
bGVTZWxlY3RvcigpLT5mb250U2VsZWN0b3IoKSk7CisgICAgRm9udCByZWd1bGFyRm9udChyZWd1
bGFyRm9udERlc2NyaXB0aW9uLCAwLCAwKTsKKyAgICByZWd1bGFyRm9udC51cGRhdGUodGV4dEZp
ZWxkLT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPmZvbnRTZWxlY3RvcigpKTsKICAgICAv
LyBUaGUgZGlyZWN0aW9uIG9mIHRleHQgaW4gcG9wdXAgbWVudSBpcyBzZXQgdGhlIHNhbWUgYXMg
dGhlIGRpcmVjdGlvbiBvZgogICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50OiB0ZXh0RmllbGQuCi0g
ICAgbV9zdHlsZS5zZXQobmV3IFBvcHVwTWVudVN0eWxlKENvbG9yOjpibGFjaywgQ29sb3I6Ondo
aXRlLCBmb250LCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSwgTGVuZ3RoKFdlYkNvcmU6OkZpeGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4dEZpZWxkLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSkpOworICAg
IG1fcmVndWxhclN0eWxlLnNldChuZXcgUG9wdXBNZW51U3R5bGUoQ29sb3I6OmJsYWNrLCBDb2xv
cjo6d2hpdGUsIHJlZ3VsYXJGb250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJ1ZSwgZmFsc2UsIExlbmd0aChXZWJDb3JlOjpGaXhlZCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQtPnJlbmRlcmVyKCktPnN0
eWxlKCktPmRpcmVjdGlvbigpKSk7CisKKyAgICBGb250RGVzY3JpcHRpb24gd2FybmluZ0ZvbnRE
ZXNjcmlwdGlvbiA9IHJlZ3VsYXJGb250LmZvbnREZXNjcmlwdGlvbigpOworICAgIHdhcm5pbmdG
b250RGVzY3JpcHRpb24uc2V0SXRhbGljKHRydWUpOworICAgIEZvbnQgd2FybmluZ0ZvbnQod2Fy
bmluZ0ZvbnREZXNjcmlwdGlvbiwgcmVndWxhckZvbnQubGV0dGVyU3BhY2luZygpLCByZWd1bGFy
Rm9udC53b3JkU3BhY2luZygpKTsKKyAgICB3YXJuaW5nRm9udC51cGRhdGUocmVndWxhckZvbnQu
Zm9udFNlbGVjdG9yKCkpOworICAgIG1fd2FybmluZ1N0eWxlLnNldChuZXcgUG9wdXBNZW51U3R5
bGUoQ29sb3I6OmRhcmtHcmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9yZWd1bGFyU3R5bGUtPmJhY2tncm91bmRDb2xvcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ0ZvbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+aXNWaXNpYmxlKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+
aXNEaXNwbGF5Tm9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9yZWd1bGFyU3R5bGUtPnRleHRJbmRlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcmVndWxhclN0eWxlLT50ZXh0RGlyZWN0aW9uKCkpKTsKIH0K
IAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6c2V0U3VnZ2VzdGlvbnMoY29uc3QgV2Vi
VmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmls
bFBvcHVwTWVudUNsaWVudC5oCmluZGV4IGE5NDZlMzQxNDkzZjNkNTVkODEyM2ZkNzZjMGU3NGU2
OTRjOWRmNzAuLmUzZWRmZDMwZWRlMWU3ZThmZWMzMGIxNzkyN2M1NTJmMTI2YWFiNWUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTc4LDcg
Kzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaXRlbUljb24odW5zaWdu
ZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGl0ZW1Ub29sVGlw
KHVuc2lnbmVkIGxhc3RJbmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpTdHJpbmcoKTsgfQogICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgaXRlbUFjY2Vzc2liaWxpdHlUZXh0KHVuc2lnbmVkIGxhc3RJ
bmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
dGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQg
bGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIG1l
bnVTdHlsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIGludCBnZXRT
ZWxlY3RlZEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZEluZGV4OyB9CiAgICAgdm9p
ZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCkgeyBtX3NlbGVjdGVkSW5kZXggPSBpbmRleDsg
fQogCisgICAgYm9vbCBpdGVtSXNXYXJuaW5nKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CisK
ICAgICAvLyBUaGUgbmFtZXMsIGxhYmVscyBhbmQgaWNvbnMgdGhhdCBtYWtlIHVwIHRoZSBjb250
ZW50cyBvZiB0aGUgbWVudSBpdGVtcy4KICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fbmFtZXM7
CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2xhYmVsczsKQEAgLTE0Myw3ICsxNDUsOCBAQCBw
cml2YXRlOgogICAgIGludCBtX3NlbGVjdGVkSW5kZXg7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudD4gbV90ZXh0RmllbGQ7Ci0gICAgT3duUHRyPFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlPiBtX3N0eWxlOworICAgIE93blB0cjxXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZT4g
bV9yZWd1bGFyU3R5bGU7CisgICAgT3duUHRyPFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlPiBtX3dh
cm5pbmdTdHlsZTsKIAogICAgIC8vIERFUFJFQ0FURUQ6IFdpbGwgYmUgcmVtb3ZlZCBvbmNlIEF1
dG9jb21wbGV0ZSBhbmQgQXV0b0ZpbGwgbWVyZ2UgaXMKICAgICAvLyBjb21wbGV0ZS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggOTVkNjNlMzdhN2MyM2UyNzAyMWEwNTEzMmZl
Mjk2ZmMzYjgyMmIwNC4uNTE1NzZiMzVkMjdmMjc3M2M4ZDA4YzFhNmFhMWY2ZmYwOWFiYTZjNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0
aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvRmlsbFBvcHVwU2V0dGluZ3MgPSB7
CiAgICAgZmFsc2UsIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAvLyBsb29wU2VsZWN0
aW9uTmF2aWdhdGlvbgogICAgIGZhbHNlLCAvLyByZXN0cmljdFdpZHRoT2ZMaXN0Qm94IChGb3Ig
c2VjdXJpdHkgcmVhc29ucyBzaG93IHRoZSBlbnRpcmUgZW50cnkKLSAgICAgICAgICAgLy8gc28g
dGhlIHVzZXIgZG9lc24ndCBlbnRlciBpbmZvcm1hdGlvbiBpdCBkaWQgbm90IGludGVuZCB0by4p
CisgICAgICAgICAgIC8vIHNvIHRoZSB1c2VyIGRvZXNuJ3QgZW50ZXIgaW5mb3JtYXRpb24gaGUg
ZGlkIG5vdCBpbnRlbmQgdG8uKQogICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2UgdXNlIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiB0
aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBkaXNwbGF5IG9m
IGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVtcyBpbiB0aGUg
aW5wdXQgZmllbGQuCkBAIC0xOTQzLDEyICsxOTQzLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvRmlsbFN1Z2dlc3Rpb25zKAogICAgIH0KIAogICAgIGlmIChtX2F1dG9GaWxsUG9wdXBT
aG93aW5nKSB7Ci0gICAgICAgIG1fYXV0b0ZpbGxQb3B1cENsaWVudC0+c2V0U3VnZ2VzdGlvbnMo
Ci0gICAgICAgICAgICBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJ
bmRleCk7CiAgICAgICAgIHJlZnJlc2hBdXRvRmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgp
LT52aWV3KCksIDApOworICAgICAgICBtX2F1dG9GaWxsUG9wdXAtPnNob3coZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKICAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73871</attachid>
            <date>2010-11-14 19:38:53 -0800</date>
            <delta_ts>2010-11-15 03:37:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49291-20101114193852.patch</filename>
            <type>text/plain</type>
            <size>15037</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmZhMGVkZDc5M2UyZDEwMWU3ZDE0ZGM5OTRmNDRhYzY3ZTQwOTA0Yi4uNjYyNTAwYTkzMDIwYTg3
NmQxMDE3NzBjODRmODk2ZTEwMTJhNTMwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMS0xNCAgSWx5
YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYXBhYmlsaXR5IGZvciBkaXNwbGF5aW5n
IHdhcm5pbmdzIHRvIGF1dG9maWxsIHBvcHVwCisgICAgICAgIFdhcm5pbmdzIGFyZSBkaXNwbGF5
ZWQgaW4gZGFyayBncmF5IGl0YWxpYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MjkxCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU4NTA5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RC
b3g6OmdldFJvd0ZvbnQpOgorICAgICAgICAgIFVzZSBpdGVtLXNwZWNpZmljIGZvbnQsIG5vdCBq
dXN0IHRoZSBnZW5lcmljIG1lbnUgZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJv
eDo6c2VsZWN0SW5kZXgpOgorICAgICAgICAgIFVwZGF0ZWQgdG8gY2xlYXIgdGhlIHNlbGVjdGlv
biB3aGVuIGhvdmVyaW5nIG92ZXIgYSBub24tc2VsZWN0YWJsZSBpdGVtLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6IE1pbm9yIGNsZWFudXAKKwogMjAx
MC0xMS0xNCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA4MGM1YmM4MTM0MzA5NWMyNGYzMjhhNzM1
MjEwNjE2YjM5YTEwYTU1Li4wNGVlYjkzMDVhMzk1NzIxOTgxZmIzNzMxMTMzYTYwMjYxOGE5MjRj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5o
IgpAQCAtOTkxLDcgKzk5Miw3IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpwYWludFJvdyhHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgcm93SW5kCiAKIEZvbnQgUG9w
dXBMaXN0Qm94OjpnZXRSb3dGb250KGludCByb3dJbmRleCkKIHsKLSAgICBGb250IGl0ZW1Gb250
ID0gbV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkuZm9udCgpOworICAgIEZvbnQgaXRlbUZvbnQg
PSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUocm93SW5kZXgpLmZvbnQoKTsKICAgICBpZiAobV9w
b3B1cENsaWVudC0+aXRlbUlzTGFiZWwocm93SW5kZXgpKSB7CiAgICAgICAgIC8vIEJvbGQtaWZ5
IGxhYmVscyAoaWUsIGFuIDxvcHRncm91cD4gaGVhZGluZykuCiAgICAgICAgIEZvbnREZXNjcmlw
dGlvbiBkID0gaXRlbUZvbnQuZm9udERlc2NyaXB0aW9uKCk7CkBAIC0xMDY5LDEzICsxMDcwLDE2
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpzZWxlY3RJbmRleChpbnQgaW5kZXgpCiAgICAgaWYgKGlu
ZGV4IDwgMCB8fCBpbmRleCA+PSBudW1JdGVtcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoaW5kZXggIT0gbV9zZWxlY3RlZEluZGV4ICYmIGlzU2VsZWN0YWJsZUl0ZW0oaW5kZXgpKSB7
CisgICAgYm9vbCBpc1NlbGVjdGFibGUgPSBpc1NlbGVjdGFibGVJdGVtKGluZGV4KTsKKyAgICBp
ZiAoaW5kZXggIT0gbV9zZWxlY3RlZEluZGV4ICYmIGlzU2VsZWN0YWJsZSkgewogICAgICAgICBp
bnZhbGlkYXRlUm93KG1fc2VsZWN0ZWRJbmRleCk7CiAgICAgICAgIG1fc2VsZWN0ZWRJbmRleCA9
IGluZGV4OwogICAgICAgICBpbnZhbGlkYXRlUm93KG1fc2VsZWN0ZWRJbmRleCk7CiAKICAgICAg
ICAgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKICAgICAgICAgbV9wb3B1cENsaWVudC0+c2Vs
ZWN0aW9uQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOworICAgIH0gZWxzZSBpZiAoIWlzU2VsZWN0
YWJsZSkgeworICAgICAgICBjbGVhclNlbGVjdGlvbigpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCmluZGV4IGJkODg1YmFhMDkx
ZDhhMTg5NWY2OGVjNmUzOTllM2M0MGY1YjM0YzIuLmNhNDdjY2ZiMjUyZGZhYzE1OGVhMDJiYjc4
YTJmODYxMjA2YmFhNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBNZW51Q2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmgKQEAgLTMyLDE4ICszMiwyMCBAQAogI2RlZmluZSBQb3B1cE1lbnVDaHJvbWl1
bV9oCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
IAogI2luY2x1ZGUgIkZyYW1lbGVzc1Njcm9sbFZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNp
bmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bTsKIGNs
YXNzIEZyYW1lVmlldzsKIGNsYXNzIFBvcHVwTGlzdEJveDsKK2NsYXNzIFBvcHVwTWVudUNsaWVu
dDsKIAogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAoZS5n
LiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgogLy8gb3IgPG9wdGdyb3VwPiBpbiBhIDxzZWxlY3Q+
IHdpZGdldCkgYW5kIGlzIHVzZWQgYnkgUG9wdXBMaXN0Qm94LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzcw
ZjhmZDYxMjZhZDRjZWQwNGU2ZWEzMmM1NTAyMDBmYmQ0YTA2ZC4uMGEwOGMyYWZiOTBiN2VjMDky
MDI4ZDI3OWU1NjI1MmU5YTZjODFiZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTAtMTEtMTQgIElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY2FwYWJpbGl0eSBm
b3IgZGlzcGxheWluZyB3YXJuaW5ncyB0byBhdXRvZmlsbCBwb3B1cAorICAgICAgICBXYXJuaW5n
cyBhcmUgZGlzcGxheWVkIGluIGRhcmsgZ3JheSBpdGFsaWMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5MQorICAgICAgICBodHRwOi8vY29kZS5n
b29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODUwOQorCisgICAgICAgICog
c3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b0Zp
bGxQb3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KToKKyAgICAgICAg
ICBVcGRhdGVkIGxvZ2ljIC0tIGNhbiBvbmx5IHJlbW92ZSBBdXRvY29tcGxldGUgc3VnZ2VzdGlv
bnMsIHdoaWNoIGhhdmUgdW5pcXVlIElEIDAuCisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9w
dXBNZW51Q2xpZW50OjppdGVtSXNFbmFibGVkKTogRmFsc2UgZm9yIHdhcm5pbmdzLgorICAgICAg
ICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVN0eWxlKTogRGFyayBncmF5
IGl0YWxpYyBmb3Igd2FybmluZ3MuCisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51
Q2xpZW50OjptZW51U3R5bGUpOiBWYXJpYWJsZSBuYW1lIGNoYW5nZWQuCisgICAgICAgIChXZWJL
aXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNXYXJuaW5nKTogVHJ1ZSBmb3IgdW5p
cXVlIElEIDwgMC4KKyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Omlu
aXRpYWxpemUpOiBVcGRhdGVkIGNhY2hlZCBzdHlsZXMgKHNlZSBhYm92ZSkuCisgICAgICAgICog
c3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50Lmg6IEFkZGVkIGl0ZW1Jc0VuYWJsZWQoKSwgdmFy
aWFibGUgdG8gY2FjaGUgd2FybmluZyBzdHlsZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOiBNaW5vciBjbGVhbnVwLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlB
dXRvRmlsbFN1Z2dlc3Rpb25zKTogCisKIDIwMTAtMTEtMTMgIFNoaW5pY2hpcm8gSGFtYWppICA8
aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggY2U4ZTUxMjQ3ZjA3NTk4MmMwYzhhOTI3OGE3
MDgxMjRjZWVmYjE2NS4uZDlkNzJjN2JmODdlYmE2OWYzN2QwOTNkZDUzNGJiZDI5NDBjZmVhYyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI4OSw3ICsyODksMTEgQEAgcHVibGljOgog
CiAgICAgLy8gTm90aWZpZXMgdGhlIFdlYlZpZXcgdGhhdCBBdXRvRmlsbCBzdWdnZXN0aW9ucyBh
cmUgYXZhaWxhYmxlIGZvciBhIG5vZGUuCiAgICAgLy8gfHVuaXF1ZUlEc3wgaXMgYSB2ZWN0b3Ig
b2YgSURzIHRoYXQgcmVwcmVzZW50IHRoZSB1bmlxdWUgSUQgb2YgZWFjaAotICAgIC8vIEF1dG9G
aWxsIHByb2ZpbGUgaW4gdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLgorICAgIC8vIEF1dG9GaWxsIHBy
b2ZpbGUgaW4gdGhlIHN1Z2dlc3Rpb25zIHBvcHVwLiAgSWYgYSB1bmlxdWUgSUQgaXMgMCwgdGhl
biB0aGUKKyAgICAvLyBjb3JyZXNwb25kaW5nIHN1Z2dlc3Rpb24gY29tZXMgZnJvbSBBdXRvY29t
cGxldGUgcmF0aGVyIHRoYW4gQXV0b0ZpbGwuCisgICAgLy8gSWYgYSB1bmlxdWUgSUQgaXMgbmVn
YXRpdmUsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgInN1Z2dlc3Rpb24iIGlzCisgICAgLy8gYWN0
dWFsbHkgYSB1c2VyLWZhY2luZyB3YXJuaW5nLCBlLmcuIGV4cGxhaW5pbmcgd2h5IEF1dG9GaWxs
IGlzCisgICAgLy8gdW5hdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IGZvcm0uCiAgICAgdmlydHVh
bCB2b2lkIGFwcGx5QXV0b0ZpbGxTdWdnZXN0aW9ucygKICAgICAgICAgY29uc3QgV2ViTm9kZSYs
CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBuYW1lcywKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggNmFmNzU4MjZmOGIwY2FmZmY0ODNhOTgzNGYz
ZTQ0Zjc4MzhhYTljZC4uN2NlMTQ4MzM0OWE1YjAwMWQ4MzM5NzFkYThiOWZlNTAwY2E1MGUzOSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTMwOSwxMSArMzA5LDEz
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJTdHJpbmcmIHZhbHVlKSB7IH0KIAogICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIg
dGhhdCB0aGUgdXNlciBoYXMgYWNjZXB0ZWQgYW4gQXV0b0ZpbGwgc3VnZ2VzdGlvbiBmb3IKLSAg
ICAvLyBhIFdlYk5vZGUuICB8bmFtZXwgYW5kIHxsYWJlbHwgZm9ybSBhIGtleSBpbnRvIHRoZSBz
ZXQgb2YgQXV0b0ZpbGwKLSAgICAvLyBwcm9maWxlcy4gIHxpbmRleHwgaXMgYW4gaW5kZXggb2Yg
dGhlIHNlbGVjdGVkIHN1Z2dlc3Rpb24gaW4gdGhlIGxpc3Qgb2YKLSAgICAvLyBzdWdnZXN0aW9u
cyBwcm92aWRlZCBieSB0aGUgY2xpZW50CisgICAgLy8gYSBXZWJOb2RlLiAgfHVuaXF1ZUlEfCBp
cyB1c2VkIGFzIGEga2V5IGludG8gdGhlIHNldCBvZiBBdXRvRmlsbCBwcm9maWxlcywKKyAgICAv
LyBhbmQgc2hvdWxkIG5ldmVyIGJlIG5lZ2F0aXZlLiAgSWYgaXQgaXMgMCwgdGhlbiB0aGUgc3Vn
Z2VzdGlvbiBpcyBhbgorICAgIC8vIEF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uOyBhbmQgfHZhbHVl
fCBzdG9yZXMgdGhlIHN1Z2dlc3RlZCB0ZXh0LiAgfGluZGV4fAorICAgIC8vIGlzIGFuIGluZGV4
IG9mIHRoZSBzZWxlY3RlZCBzdWdnZXN0aW9uIGluIHRoZSBsaXN0IG9mIHN1Z2dlc3Rpb25zIHBy
b3ZpZGVkCisgICAgLy8gYnkgdGhlIGNsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXB0
QXV0b0ZpbGxTdWdnZXN0aW9uKGNvbnN0IFdlYk5vZGUmLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB2YWx1
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YlN0cmluZyYgbGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgdW5pcXVlSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbmRleCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0
b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCmluZGV4IDczMWMwMmMyMDFhZGVkMzFkZTExZjMxNjFm
ZTYxZmFjYTA5N2QzMWYuLjMyYWJkNmY1NzgxNjcyYWM1MzBkMzY2ZjFhOWQzNjY1MTdhN2UyM2Yg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3Bw
CkBAIC0xMTUsMTAgKzExNSwxMCBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpyZW1v
dmVTdWdnZXN0aW9uQXRJbmRleCh1bnNpZ25lZCBsaXN0SW5kZXgpCiAKIGJvb2wgQXV0b0ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KHVuc2lnbmVkIGxpc3RJ
bmRleCkKIHsKLSAgICAvLyBPbmx5IGFsbG93IGRlbGV0aW9uIG9mIGl0ZW1zIGJlZm9yZSB0aGUg
c2VwYXJhdG9yIGFuZCB0aG9zZSB0aGF0IGRvbid0Ci0gICAgLy8gaGF2ZSBhIGxhYmVsIChhdXRv
Y29tcGxldGUpLgorICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpb24gb2YgaXRlbXMgYmVmb3JlIHRo
ZSBzZXBhcmF0b3IgdGhhdCBoYXZlIHVuaXF1ZSBpZCAwCisgICAgLy8gKGkuZS4gYXJlIGF1dG9j
b21wbGV0ZSByYXRoZXIgdGhhbiBhdXRvZmlsbCBpdGVtcykuCiAgICAgaW50IGluZGV4ID0gY29u
dmVydExpc3RJbmRleFRvSW50ZXJuYWxJbmRleChsaXN0SW5kZXgpOwotICAgIHJldHVybiBtX2xh
YmVsc1tpbmRleF0uaXNFbXB0eSgpICYmIChtX3NlcGFyYXRvckluZGV4ID09IC0xIHx8IGxpc3RJ
bmRleCA8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFyYXRvckluZGV4KSk7CisgICAgcmV0
dXJuICFtX3VuaXF1ZUlEc1tpbmRleF0gJiYgKG1fc2VwYXJhdG9ySW5kZXggPT0gLTEgfHwgbGlz
dEluZGV4IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2VwYXJhdG9ySW5kZXgpKTsKIH0KIAog
dm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJ
bmRleCwgYm9vbCBmaXJlRXZlbnRzKQpAQCAtMTk0LDE0ICsxOTQsMTkgQEAgU3RyaW5nIEF1dG9G
aWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSWNvbih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAg
ICAgcmV0dXJuIGdldEljb24obGlzdEluZGV4KTsKIH0KIAorYm9vbCBBdXRvRmlsbFBvcHVwTWVu
dUNsaWVudDo6aXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICFpdGVtSXNXYXJuaW5nKGxpc3RJbmRleCk7Cit9CisKIFBvcHVwTWVudVN0eWxlIEF1
dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25z
dAogewotICAgIHJldHVybiAqbV9zdHlsZTsKKyAgICByZXR1cm4gaXRlbUlzV2FybmluZyhsaXN0
SW5kZXgpID8gKm1fd2FybmluZ1N0eWxlIDogKm1fcmVndWxhclN0eWxlOwogfQogCiBQb3B1cE1l
bnVTdHlsZSBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6bWVudVN0eWxlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gKm1fc3R5bGU7CisgICAgcmV0dXJuICptX3JlZ3VsYXJTdHlsZTsKIH0KIAogaW50
IEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0CkBAIC0y
MzksNiArMjQ0LDE2IEBAIGJvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1Jc1NlcGFy
YXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIChtX3NlcGFyYXRvcklu
ZGV4ICE9IC0xICYmIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFyYXRvckluZGV4KSA9PSBs
aXN0SW5kZXgpOwogfQogCitib29sIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNXYXJu
aW5nKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKK3sKKyAgICBpbnQgaW5kZXggPSBjb252ZXJ0
TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRleCk7CisgICAgaWYgKGluZGV4ID09IC0x
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoaW5kZXggPj0gMCAmJiBzdGF0
aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8IG1fdW5pcXVlSURzLnNpemUoKSk7CisgICAgcmV0dXJu
IG1fdW5pcXVlSURzW2luZGV4XSA8IDA7Cit9CisKIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQ6OnNldFRleHRGcm9tSXRlbSh1bnNpZ25lZCBsaXN0SW5kZXgpCiB7CiAgICAgbV90ZXh0Rmll
bGQtPnNldFZhbHVlKGdldFN1Z2dlc3Rpb24obGlzdEluZGV4KSk7CkBAIC0yODIsMTkgKzI5Nywz
MSBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojppbml0aWFsaXplKAogICAgIC8vIEF1
dG9GaWxsUG9wdXBNZW51Q2xpZW50LgogICAgIHNldFN1Z2dlc3Rpb25zKG5hbWVzLCBsYWJlbHMs
IGljb25zLCB1bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKIAotICAgIEZvbnREZXNjcmlwdGlv
biBmb250RGVzY3JpcHRpb247CisgICAgRm9udERlc2NyaXB0aW9uIHJlZ3VsYXJGb250RGVzY3Jp
cHRpb247CiAgICAgUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KENTU1Zh
bHVlV2Via2l0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVndWxhckZvbnREZXNjcmlwdGlvbik7CiAgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gbV90ZXh0RmllbGQtPmNvbXB1dGVkU3R5bGUoKTsKLSAgICBmb250RGVzY3JpcHRpb24u
c2V0Q29tcHV0ZWRTaXplKHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKSk7
CisgICAgcmVndWxhckZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoc3R5bGUtPmZvbnRE
ZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpKTsKIAotICAgIEZvbnQgZm9udChmb250RGVzY3Jp
cHRpb24sIDAsIDApOwotICAgIGZvbnQudXBkYXRlKHRleHRGaWVsZC0+ZG9jdW1lbnQoKS0+c3R5
bGVTZWxlY3RvcigpLT5mb250U2VsZWN0b3IoKSk7CisgICAgRm9udCByZWd1bGFyRm9udChyZWd1
bGFyRm9udERlc2NyaXB0aW9uLCAwLCAwKTsKKyAgICByZWd1bGFyRm9udC51cGRhdGUodGV4dEZp
ZWxkLT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPmZvbnRTZWxlY3RvcigpKTsKICAgICAv
LyBUaGUgZGlyZWN0aW9uIG9mIHRleHQgaW4gcG9wdXAgbWVudSBpcyBzZXQgdGhlIHNhbWUgYXMg
dGhlIGRpcmVjdGlvbiBvZgogICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50OiB0ZXh0RmllbGQuCi0g
ICAgbV9zdHlsZS5zZXQobmV3IFBvcHVwTWVudVN0eWxlKENvbG9yOjpibGFjaywgQ29sb3I6Ondo
aXRlLCBmb250LCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSwgTGVuZ3RoKFdlYkNvcmU6OkZpeGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4dEZpZWxkLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSkpOworICAg
IG1fcmVndWxhclN0eWxlLnNldChuZXcgUG9wdXBNZW51U3R5bGUoQ29sb3I6OmJsYWNrLCBDb2xv
cjo6d2hpdGUsIHJlZ3VsYXJGb250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJ1ZSwgZmFsc2UsIExlbmd0aChXZWJDb3JlOjpGaXhlZCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQtPnJlbmRlcmVyKCktPnN0
eWxlKCktPmRpcmVjdGlvbigpKSk7CisKKyAgICBGb250RGVzY3JpcHRpb24gd2FybmluZ0ZvbnRE
ZXNjcmlwdGlvbiA9IHJlZ3VsYXJGb250LmZvbnREZXNjcmlwdGlvbigpOworICAgIHdhcm5pbmdG
b250RGVzY3JpcHRpb24uc2V0SXRhbGljKHRydWUpOworICAgIEZvbnQgd2FybmluZ0ZvbnQod2Fy
bmluZ0ZvbnREZXNjcmlwdGlvbiwgcmVndWxhckZvbnQubGV0dGVyU3BhY2luZygpLCByZWd1bGFy
Rm9udC53b3JkU3BhY2luZygpKTsKKyAgICB3YXJuaW5nRm9udC51cGRhdGUocmVndWxhckZvbnQu
Zm9udFNlbGVjdG9yKCkpOworICAgIG1fd2FybmluZ1N0eWxlLnNldChuZXcgUG9wdXBNZW51U3R5
bGUoQ29sb3I6OmRhcmtHcmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9yZWd1bGFyU3R5bGUtPmJhY2tncm91bmRDb2xvcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ0ZvbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+aXNWaXNpYmxlKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+
aXNEaXNwbGF5Tm9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9yZWd1bGFyU3R5bGUtPnRleHRJbmRlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcmVndWxhclN0eWxlLT50ZXh0RGlyZWN0aW9uKCkpKTsKIH0K
IAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6c2V0U3VnZ2VzdGlvbnMoY29uc3QgV2Vi
VmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmls
bFBvcHVwTWVudUNsaWVudC5oCmluZGV4IGE5NDZlMzQxNDkzZjNkNTVkODEyM2ZkNzZjMGU3NGU2
OTRjOWRmNzAuLmUzZWRmZDMwZWRlMWU3ZThmZWMzMGIxNzkyN2M1NTJmMTI2YWFiNWUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTc4LDcg
Kzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaXRlbUljb24odW5zaWdu
ZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGl0ZW1Ub29sVGlw
KHVuc2lnbmVkIGxhc3RJbmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpTdHJpbmcoKTsgfQogICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgaXRlbUFjY2Vzc2liaWxpdHlUZXh0KHVuc2lnbmVkIGxhc3RJ
bmRleCkgY29uc3QgeyByZXR1cm4gV1RGOjpTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
dGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQg
bGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIG1l
bnVTdHlsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIGludCBnZXRT
ZWxlY3RlZEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZEluZGV4OyB9CiAgICAgdm9p
ZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCkgeyBtX3NlbGVjdGVkSW5kZXggPSBpbmRleDsg
fQogCisgICAgYm9vbCBpdGVtSXNXYXJuaW5nKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CisK
ICAgICAvLyBUaGUgbmFtZXMsIGxhYmVscyBhbmQgaWNvbnMgdGhhdCBtYWtlIHVwIHRoZSBjb250
ZW50cyBvZiB0aGUgbWVudSBpdGVtcy4KICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fbmFtZXM7
CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2xhYmVsczsKQEAgLTE0Myw3ICsxNDUsOCBAQCBw
cml2YXRlOgogICAgIGludCBtX3NlbGVjdGVkSW5kZXg7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudD4gbV90ZXh0RmllbGQ7Ci0gICAgT3duUHRyPFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlPiBtX3N0eWxlOworICAgIE93blB0cjxXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZT4g
bV9yZWd1bGFyU3R5bGU7CisgICAgT3duUHRyPFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlPiBtX3dh
cm5pbmdTdHlsZTsKIAogICAgIC8vIERFUFJFQ0FURUQ6IFdpbGwgYmUgcmVtb3ZlZCBvbmNlIEF1
dG9jb21wbGV0ZSBhbmQgQXV0b0ZpbGwgbWVyZ2UgaXMKICAgICAvLyBjb21wbGV0ZS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggOTVkNjNlMzdhN2MyM2UyNzAyMWEwNTEzMmZl
Mjk2ZmMzYjgyMmIwNC4uNTE1NzZiMzVkMjdmMjc3M2M4ZDA4YzFhNmFhMWY2ZmYwOWFiYTZjNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0
aWMgY29uc3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyBhdXRvRmlsbFBvcHVwU2V0dGluZ3MgPSB7
CiAgICAgZmFsc2UsIC8vIGFjY2VwdE9uQWJhbmRvbgogICAgIHRydWUsICAvLyBsb29wU2VsZWN0
aW9uTmF2aWdhdGlvbgogICAgIGZhbHNlLCAvLyByZXN0cmljdFdpZHRoT2ZMaXN0Qm94IChGb3Ig
c2VjdXJpdHkgcmVhc29ucyBzaG93IHRoZSBlbnRpcmUgZW50cnkKLSAgICAgICAgICAgLy8gc28g
dGhlIHVzZXIgZG9lc24ndCBlbnRlciBpbmZvcm1hdGlvbiBpdCBkaWQgbm90IGludGVuZCB0by4p
CisgICAgICAgICAgIC8vIHNvIHRoZSB1c2VyIGRvZXNuJ3QgZW50ZXIgaW5mb3JtYXRpb24gaGUg
ZGlkIG5vdCBpbnRlbmQgdG8uKQogICAgIC8vIEZvciBzdWdnZXN0aW9ucywgd2UgdXNlIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIGlucHV0IGZpZWxkIGFzIHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiB0
aGUgcG9wdXAgaXRlbXMuIFRoZSBtYWluIHJlYXNvbiBpcyB0byBrZWVwIHRoZSBkaXNwbGF5IG9m
IGl0ZW1zIGluCiAgICAgLy8gZHJvcC1kb3duIHRoZSBzYW1lIGFzIHRoZSBpdGVtcyBpbiB0aGUg
aW5wdXQgZmllbGQuCkBAIC0xOTQzLDEyICsxOTQzLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvRmlsbFN1Z2dlc3Rpb25zKAogICAgIH0KIAogICAgIGlmIChtX2F1dG9GaWxsUG9wdXBT
aG93aW5nKSB7Ci0gICAgICAgIG1fYXV0b0ZpbGxQb3B1cENsaWVudC0+c2V0U3VnZ2VzdGlvbnMo
Ci0gICAgICAgICAgICBuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJ
bmRleCk7CiAgICAgICAgIHJlZnJlc2hBdXRvRmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwLT5zaG93KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgp
LT52aWV3KCksIDApOworICAgICAgICBtX2F1dG9GaWxsUG9wdXAtPnNob3coZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKICAg
ICAgICAgbV9hdXRvRmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>