<?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>104268</bug_id>
          
          <creation_ts>2012-12-06 08:56:09 -0800</creation_ts>
          <short_desc>[chromium] expose UserGestureIndicator::Token via WebKit API so PPAPI plugins can correctly consume it</short_desc>
          <delta_ts>2013-03-07 00:14:39 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>111531</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdn</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784970</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-12-06 08:56:09 -0800</bug_when>
    <thetext>In https://code.google.com/codesearch#OAMlx_jo-ck/src/webkit/plugins/ppapi/ppapi_plugin_instance.cc&amp;exact_package=chromium&amp;q=PluginInstance::IsProcessingUserGesture&amp;l=1747 the user gesture state is remembered for 10s and allows a PPAPI plugin to execute javascript with a user gesture indicator in that timeframe. It should use a token instead, so we only get one user gesture gated action per user gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847481</commentid>
    <comment_count>1</comment_count>
      <attachid>191442</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-05 02:38:42 -0800</bug_when>
    <thetext>Created attachment 191442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847485</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 02:40:24 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847741</commentid>
    <comment_count>3</comment_count>
      <attachid>191442</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-03-05 09:25:53 -0800</bug_when>
    <thetext>Comment on attachment 191442
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:416
&gt; +    virtual WebUserGestureToken* currentUserGestureToken() const = 0;

methods that return objects which need to be destroyed by the caller are usually
prefixed with &quot;create&quot;.  That might make this method sound odd.

&gt; Source/WebKit/chromium/public/WebUserGestureToken.h:59
&gt; +    WebPrivatePtr&lt;WebCore::UserGestureToken&gt; m_token;

Since you are using WebPrivatePtr here, it seems like you should arrange for
embedders of WebKit to pass around WebUserGestureToken by value.  Treat it like
a smart pointer (like RefPtr) just as we do with WebNode and many other similar
wrapper types.  This way the &quot;currentUserGestureToken&quot; method can just return
a WebUserGestureToken by value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848061</commentid>
    <comment_count>4</comment_count>
      <attachid>191561</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-05 14:12:57 -0800</bug_when>
    <thetext>Created attachment 191561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848064</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 14:14:43 -0800</bug_when>
    <thetext>Attachment 191561 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/WebKit.gyp&apos;, u&apos;Source/WebKit/chromium/WebKit.gypi&apos;, u&apos;Source/WebKit/chromium/public/WebFrame.h&apos;, u&apos;Source/WebKit/chromium/public/WebScopedUserGesture.h&apos;, u&apos;Source/WebKit/chromium/public/WebUserGestureToken.h&apos;, u&apos;Source/WebKit/chromium/src/WebFrameImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebFrameImpl.h&apos;, u&apos;Source/WebKit/chromium/src/WebScopedUserGesture.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebUserGestureToken.cpp&apos;, u&apos;Source/WebKit/chromium/tests/WebUserGestureTokenTest.cpp&apos;]&quot; exit_code: 1
Source/WebKit/chromium/public/WebUserGestureToken.h:56:  WEBKIT_EXPORT should not be used on a function with a body.  [readability/webkit_export] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848065</commentid>
    <comment_count>6</comment_count>
      <attachid>191563</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-05 14:16:05 -0800</bug_when>
    <thetext>Created attachment 191563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848223</commentid>
    <comment_count>7</comment_count>
      <attachid>191563</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-03-05 16:22:48 -0800</bug_when>
    <thetext>Comment on attachment 191563
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:415
&gt; +    // The caller takes ownership of the WebUserGestureToken returned.

nit: No need for this last sentence now.

&gt; Source/WebKit/chromium/public/WebScopedUserGesture.h:64
&gt; +    WEBKIT_EXPORT void initialize(const WebUserGestureToken&amp;);

nit: I suggest giving this method a more descriptive name like &quot;initializeWithToken&quot;

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1123
&gt; +    return WebUserGestureToken(UserGestureIndicator::currentToken());

nit: I didn&apos;t notice this before, but it appears as though there is no need to have a WebFrame here.
The |this| pointer isn&apos;t relevant.  That suggests that you could just have a static method on
WebUserGestureToken, like so:

  class WebUserGestureToken {
  public:
      WEBKIT_EXPORT static WebUserGestureToken current();
      ...
  };

&gt; Source/WebKit/chromium/src/WebScopedUserGesture.cpp:47
&gt; +        m_indicator.reset(new WebCore::UserGestureIndicator(static_cast&lt;WebCore::UserGestureToken*&gt;(token)));

nit: I&apos;m surprised the static_cast was needed given that WebUserGestureToken has a conversion operator.

&gt; Source/WebKit/chromium/tests/WebUserGestureTokenTest.cpp:62
&gt; +        token = frame-&gt;currentUserGestureToken();

nit: It is kind of unfortunate that this test needs a WebFrame.  There is no real
reason for WebFrame to have the isProcessingUserGesture method.  It is really just
a global property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848599</commentid>
    <comment_count>8</comment_count>
      <attachid>191680</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-06 01:07:12 -0800</bug_when>
    <thetext>Created attachment 191680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848600</commentid>
    <comment_count>9</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-03-06 01:08:18 -0800</bug_when>
    <thetext>This patch is on top of wkb.ug/111531 so it doesn&apos;t build yet on EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849789</commentid>
    <comment_count>10</comment_count>
      <attachid>191680</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-03-06 23:30:46 -0800</bug_when>
    <thetext>Comment on attachment 191680
Patch

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

&gt; Source/WebKit/chromium/public/WebScopedUserGesture.h:52
&gt; +// Instead, obtain the current WebUserGestureToken from the WebFrame, and use

nit: This comment seems out-of-date.

&gt; Source/WebKit/chromium/src/WebScopedUserGesture.cpp:47
&gt; +        m_indicator.reset(new WebCore::UserGestureIndicator(static_cast&lt;WebCore::UserGestureToken*&gt;(token)));

nit: The static_cast is really needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849796</commentid>
    <comment_count>11</comment_count>
      <attachid>191933</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-06 23:48:08 -0800</bug_when>
    <thetext>Created attachment 191933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849797</commentid>
    <comment_count>12</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-03-06 23:48:54 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 191680 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191680&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebScopedUserGesture.h:52
&gt; &gt; +// Instead, obtain the current WebUserGestureToken from the WebFrame, and use
&gt; 
&gt; nit: This comment seems out-of-date.
&gt; 

updated

&gt; &gt; Source/WebKit/chromium/src/WebScopedUserGesture.cpp:47
&gt; &gt; +        m_indicator.reset(new WebCore::UserGestureIndicator(static_cast&lt;WebCore::UserGestureToken*&gt;(token)));
&gt; 
&gt; nit: The static_cast is really needed?

I made the operator return a PassRefPtr, then it works without the cast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849816</commentid>
    <comment_count>13</comment_count>
      <attachid>191933</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 00:14:35 -0800</bug_when>
    <thetext>Comment on attachment 191933
Patch

Clearing flags on attachment: 191933

Committed r145046: &lt;http://trac.webkit.org/changeset/145046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849817</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 00:14:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191442</attachid>
            <date>2013-03-05 02:38:42 -0800</date>
            <delta_ts>2013-03-05 14:12:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104268-20130305113449.patch</filename>
            <type>text/plain</type>
            <size>17505</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcuLjJiYzQ1ZjEwZDE5YWRi
MzM0NWJmMTg2MWJhMzQ1MmU1ODk5MzlkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTMtMDMtMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2
aWEgV2ViS2l0IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
LCB0aGUgUFBBUEkgY3JlYXRlcyBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlIHVwIHRvIDEwIHNlY29u
ZHMKKyAgICAgICAgYWZ0ZXIgYSBjYWxsIHdpdGggYW4gY3VycmVudGx5IGFjdGl2ZSB1c2VyIGdl
c3R1cmUgd2FzIG1hZGUuIEl0IHNob3VsZAorICAgICAgICB1c2UgdGhlIG5ld2x5IGFkZGVkIFdl
YlVzZXJHZXN0dXJlVG9rZW4gdG8gbWFrZSBzdXJlIHRoaXMgdXNlciBnZXN0dXJlCisgICAgICAg
IGlzIG5vdCBjb25zdW1lZCBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBXZSBjYW4ndCByZXF1
aXJlIGEgV2ViVXNlckdlc3R1cmVUb2tlbiBmb3IgYSBXZWJTY29wZWRVc2VyR2VzdHVyZSwgc2lu
Y2UKKyAgICAgICAgZS5nLiB0aGUgZXh0ZW5zaW9uIEFQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGNy
ZWF0ZSBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlCisgICAgICAgIG91dCBvZiB0aGUgYmx1ZS4KKwor
ICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICog
cHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViRnJhbWUp
OgorICAgICAgICAqIHB1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU2NvcGVkVXNlckdlc3R1cmU6OldlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVXNlckdlc3R1cmVUb2tlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46On5XZWJVc2VyR2VzdHVyZVRva2VuKToK
KyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVJbXBsOjpjdXJyZW50VXNlckdlc3R1cmVUb2tlbik6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6CisgICAg
ICAgICogc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2NvcGVkVXNlckdlc3R1cmU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBzcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OldlYlVzZXJHZXN0dXJl
VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpvcGVyYXRvciBX
ZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuKik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0
dXJlVG9rZW46OnJlc2V0KToKKyAgICAgICAgKiB0ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVz
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVz
ZXJHZXN0dXJlLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VEVT
VCk6CisKIDIwMTMtMDMtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogY2VsbEZvckNvbHVtbkFuZFJvdyBmYWlscyBmb3IgdGFibGVzIHdpdGgg
aGlkZGVuIHRhYmxlIGNlbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMTA1YTky
YzU4OTlhYzgwMmY4NjNhYTJhYTY1MzNmMGQ3YjU5ZTc3NC4uNjcxNGExNDVmYWNjZDJlMDI5MzI4
YzMyZjE2YTBmYzhiMTZhOTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjc2
LDYgKzI3Niw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0UnVuLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViVGltZVJhbmdlLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViVVJMTG9hZGVyT3B0aW9ucy5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YlVzZXJHZXN0dXJlVG9rZW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVk
aWFDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVmlldy5oJywKQEAgLTU3NSw2ICs1NzYs
NyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViVVJMTG9hZFRpbWluZy5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViU2NvcGVkVXNlckdlc3R1cmUuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlRleHRGaWVsZERlY29yYXRvckNsaWVudC5jcHAnLAorICAgICAgICAgICAgICAg
ICdzcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
VXNlck1lZGlhUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVmlld0JlbmNo
bWFya1N1cHBvcnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJWaWV3QmVuY2ht
YXJrU3VwcG9ydEltcGwuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAzYWUz
YWZlMWEwMTk2MTI2ODYyYmI4YWNlODQwMWNkMjE1MDc0MDgwLi5hNjU5MWU5ZjczY2ExYTAyMTk3
ODFkNWI5OGU3NDdiNzFlM2Q3ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAg
LTEyMiw2ICsxMjIsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJpYWxpemVy
VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBsdWdpbkNvbnRhaW5lclRlc3QuY3BwJywKKyAgICAg
ICAgICAgICd0ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAnLAogICAgICAgICAgICAg
J3Rlc3RzL1dlYlNvY2tldERlZmxhdGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMv
V2ViVVJMUmVxdWVzdFRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
cmFtZS5oCmluZGV4IGU3NGVmZWI3OGI3MjQ1MDkxYjI4NGFmMTA2ZDI1YmEzNTE4MzBlYjguLmE1
MDhmM2M5ZGUxNzk0YzVjM2EwM2RmYzlmMDcyM2NhZWQxNWE0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtNjksNiArNjksNyBAQCBjbGFzcyBXZWJTdHJp
bmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJVUkxMb2FkZXI7CiBjbGFzcyBXZWJVUkxSZXF1
ZXN0OworY2xhc3MgV2ViVXNlckdlc3R1cmVUb2tlbjsKIGNsYXNzIFdlYlZpZXc7CiBzdHJ1Y3Qg
V2ViQ29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgV2ViRmluZE9wdGlvbnM7CkBAIC00MDgsNiArNDA5
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgYSBjb25zdW1hYmxlIGdlc3R1
cmUgZXhpc3RzIGFuZCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY29uc3VtZWQuCiAgICAgdmlydHVh
bCBib29sIGNvbnN1bWVVc2VyR2VzdHVyZSgpIGNvbnN0ID0gMDsKIAorICAgIC8vIFJldHVybnMg
YSB0b2tlbiBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgdXNlciBnZXN0dXJlLiBJdCBjYW4gYmUg
dXNlZAorICAgIC8vIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgdGhlIHVzZXIgZ2VzdHVyZSBsYXRl
ciBvbiB1c2luZyBhCisgICAgLy8gV2ViU2NvcGVkVXNlckdlc3R1cmUuCisgICAgLy8gVGhlIGNh
bGxlciB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIFdlYlVzZXJHZXN0dXJlVG9rZW4gcmV0dXJuZWQu
CisgICAgdmlydHVhbCBXZWJVc2VyR2VzdHVyZVRva2VuKiBjdXJyZW50VXNlckdlc3R1cmVUb2tl
bigpIGNvbnN0ID0gMDsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZyYW1lIGlzIGlu
IHRoZSBwcm9jZXNzIG9mIG9wZW5pbmcgYSBuZXcgZnJhbWUKICAgICAvLyB3aXRoIGEgc3VwcHJl
c3NlZCBvcGVuZXIuCiAgICAgdmlydHVhbCBib29sIHdpbGxTdXBwcmVzc09wZW5lckluTmV3RnJh
bWUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2NvcGVkVXNlckdlc3R1cmUuaAppbmRleCBkOWQ3MDhmYTk2YTU5ZTIyMmFhNGZmMGFlM2Qw
NTY3NmY4MGUxNTIyLi4xMTNjZmE2ZWJhN2U0ZTM0Y2RmMzg3NjQwMDA5NGUxMzRkOGEwNjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2Vz
dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjb3BlZFVzZXJH
ZXN0dXJlLmgKQEAgLTM5LDE3ICszOSwzMCBAQCBjbGFzcyBVc2VyR2VzdHVyZUluZGljYXRvcjsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW47CisKIC8v
IEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MsIHdoaWxlIGtlcHQgYWxpdmUsIHdpbGwgaW5kaWNh
dGUgdGhhdCB3ZSBhcmUgaW4KIC8vIHRoZSBjb250ZXh0IG9mIGEga25vd24gdXNlciBnZXN0dXJl
LiBUbyB1c2UsIGNyZWF0ZSBvbmUsIHBlcmZvcm0gd2hhdGV2ZXIKIC8vIGFjdGlvbnMgd2VyZSBk
b25lIHVuZGVyIGNvbG9yIG9mIGEga25vd24gdXNlciBnZXN0dXJlLCBhbmQgdGhlbiBkZWxldGUg
aXQuCiAvLyBVc3VhbGx5IHRoaXMgd2lsbCBiZSBkb25lIG9uIHRoZSBzdGFjay4KKy8vCisvLyBT
RUNVUklUWSBXQVJOSU5HOiBEbyBub3QgY3JlYXRlIHNldmVyYWwgaW5zdGFuY2VzIG9mIHRoaXMg
Y2xhc3MgZm9yIHRoZSBzYW1lCisvLyB1c2VyIGdlc3R1cmUuIERvaW5nIHNvIG1pZ2h0IGVuYWJs
ZSBtYWxpY2lvdXMgY29kZSB0byB3b3JrIGFyb3VuZCBjZXJ0YWluCisvLyByZXN0cmljdGlvbnMg
c3VjaCBhcyBvcGVuaW5nIG11bHRpcGxlIHdpbmRvd3MuCisvLyBJbnN0ZWFkLCBvYnRhaW4gdGhl
IGN1cnJlbnQgV2ViVXNlckdlc3R1cmVUb2tlbiBmcm9tIHRoZSBXZWJGcmFtZSwgYW5kIHVzZQor
Ly8gdGhpcyB0b2tlbiB0byBjcmVhdGUgYSBXZWJTY29wZWRVc2VyR2VzdHVyZS4gSWYgdGhlIHRv
a2VuIHdhcyBhbHJhZHkKKy8vIGNvbnN1bWVkLCB0aGUgbmV3IFdlYlNjb3BlZFVzZXJHZXN0dXJl
IHdpbGwgbm90IGluZGljYXRlIHRoYXQgd2UgYXJlIGluIHRoZQorLy8gY29udGV4dCBvZiBhIHVz
ZXIgZ2VzdHVyZS4KIGNsYXNzIFdlYlNjb3BlZFVzZXJHZXN0dXJlIHsKIHB1YmxpYzoKKyAgICAv
LyBEb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdG9rZW4uCisgICAgZXhwbGljaXQgV2Vi
U2NvcGVkVXNlckdlc3R1cmUoV2ViVXNlckdlc3R1cmVUb2tlbiogdG9rZW4pIHsgaW5pdGlhbGl6
ZSh0b2tlbik7IH0KICAgICBXZWJTY29wZWRVc2VyR2VzdHVyZSgpIHsgaW5pdGlhbGl6ZSgpOyB9
CiAgICAgfldlYlNjb3BlZFVzZXJHZXN0dXJlKCkgeyByZXNldCgpOyB9CiAKIHByaXZhdGU6CiAg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgaW5pdGlhbGl6ZShXZWJVc2VyR2VzdHVyZVRva2VuKik7CiAgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHJlc2V0KCk7CiAKICAgICBXZWJQcml2YXRlT3duUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJl
SW5kaWNhdG9yPiBtX2luZGljYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlVzZXJHZXN0dXJlVG9rZW4uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVzZXJHZXN0dXJlVG9rZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjU2MzY0OTE2MDE2YmVh
OTBkNjk3OWVkOGE2NDYwMzM0NzI5N2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYlVzZXJHZXN0dXJlVG9rZW5faAorI2RlZmluZSBXZWJVc2VyR2VzdHVyZVRva2Vu
X2gKKworI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcml2
YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVzZXJHZXN0dXJlVG9rZW47
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBBIFdlYlVzZXJHZXN0dXJlVG9rZW4gYWxs
b3dzIGZvciBzdG9yaW5nIHRoZSB1c2VyIGdlc3R1cmUgc3RhdGUgb2YgdGhlCisvLyBjdXJyZW50
bHkgYWN0aXZlIGNvbnRleHQgYW5kIHJlaW5zdGFudGlhdGluZyBpdCBsYXRlciBvbiB0byBjb250
aW51ZQorLy8gcHJvY2Vzc2luZyB0aGUgdXNlciBnZXN0dXJlIGluIGNhc2UgaXQgd2FzIG5vdCBj
b25zdW1lZCBtZWFud2hpbGUuCitjbGFzcyBXZWJVc2VyR2VzdHVyZVRva2VuIHsKK3B1YmxpYzoK
KyAgICB+V2ViVXNlckdlc3R1cmVUb2tlbigpIHsgcmVzZXQoKTsgfQorCisjaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2ViVXNlckdlc3R1cmVUb2tlbihQYXNzUmVmUHRy
PFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+KTsKKyAgICBvcGVyYXRvciBXZWJDb3JlOjpVc2Vy
R2VzdHVyZVRva2VuKigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViVXNlckdl
c3R1cmVUb2tlbigpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisKKyAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+IG1fdG9rZW47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlVzZXJHZXN0dXJlVG9rZW5faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZGE1OWVh
YWJjYWQ4ZDQ0NjhiMjljNmU3YWZmZmIyYTA0MTI5NzI5Zi4uZWUzMjA5ZjU1NzQ1MDhhNWViYzMy
ZWM3MmZkNTE4YmFkZmQ3ZGRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJXZWJTY3JpcHRTb3Vy
Y2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYlVzZXJHZXN0dXJlVG9rZW4uaCIKICNp
bmNsdWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCiAjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKQEAgLTExMTcsNiArMTExOCwxMSBAQCBib29sIFdlYkZyYW1lSW1w
bDo6Y29uc3VtZVVzZXJHZXN0dXJlKCkgY29uc3QKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpOwogfQogCitXZWJVc2VyR2VzdHVyZVRva2VuKiBX
ZWJGcmFtZUltcGw6OmN1cnJlbnRVc2VyR2VzdHVyZVRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbmV3IFdlYlVzZXJHZXN0dXJlVG9rZW4oVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRU
b2tlbigpKTsKK30KKwogYm9vbCBXZWJGcmFtZUltcGw6OndpbGxTdXBwcmVzc09wZW5lckluTmV3
RnJhbWUoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+c3VwcHJlc3NP
cGVuZXJJbk5ld0ZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oCmluZGV4IDk3YzYyMWRjOWMzN2VkZDc3NDcyNGUxYWI4OTgzYWMxMTg3OTJjYjYuLjgyZWQ2
MWQyMTA4MWFlZTMxZWIyMTMyY2E1NzA0YmZlNmIxODUwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdW5zaWduZWQgdW5sb2FkTGlzdGVuZXJDb3VudCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBjb25zdW1lVXNlckdlc3R1cmUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYlVzZXJHZXN0dXJl
VG9rZW4qIGN1cnJlbnRVc2VyR2VzdHVyZVRva2VuKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHdpbGxTdXBwcmVzc09wZW5lckluTmV3RnJhbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVwbGFjZVNlbGVjdGlvbihjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5z
ZXJ0VGV4dChjb25zdCBXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcAppbmRleCA2ODQyNmZjYWViMjBlNDJmNTYz
MzQzNDgzMjAzYTc0Y2QwZjlhZTcxLi45ZGY1NGY2ODI0MGVhOTFmZjkxMWY5ZWNmMTcyODYwY2U1
MTk3YTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRV
c2VyR2VzdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NvcGVk
VXNlckdlc3R1cmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViU2NvcGVkVXNl
ckdlc3R1cmUuaCIKIAogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVk
ZSAiV2ViVXNlckdlc3R1cmVUb2tlbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDAs
NiArNDEsMTEgQEAgdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6aW5pdGlhbGl6ZSgpCiAgICAg
bV9pbmRpY2F0b3IucmVzZXQobmV3IFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yKFdlYkNv
cmU6OkRlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpKTsKIH0KIAordm9pZCBXZWJTY29w
ZWRVc2VyR2VzdHVyZTo6aW5pdGlhbGl6ZShXZWJVc2VyR2VzdHVyZVRva2VuKiB0b2tlbikKK3sK
KyAgICBtX2luZGljYXRvci5yZXNldChuZXcgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3Io
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbio+KCp0b2tlbikpKTsKK30KKwog
dm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6cmVzZXQoKQogewogICAgIG1faW5kaWNhdG9yLnJl
c2V0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdl
c3R1cmVUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVy
ZVRva2VuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzFhZmFhNjZhNGMxMTI0NGNiMGM3NWQ2MDg5NTQzNTI0
NmQ3NWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
VXNlckdlc3R1cmVUb2tlbi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCisKKyNpbmNsdWRlICJVc2VyR2VzdHVy
ZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVXNlckdlc3R1cmVUb2tl
bjo6V2ViVXNlckdlc3R1cmVUb2tlbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9r
ZW4+IHRva2VuKQoreworICAgIG1fdG9rZW4gPSB0b2tlbjsKK30KKworV2ViVXNlckdlc3R1cmVU
b2tlbjo6b3BlcmF0b3IgV2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbiooKSBjb25zdAoreworICAg
IHJldHVybiBtX3Rva2VuLmdldCgpOworfQorCit2b2lkIFdlYlVzZXJHZXN0dXJlVG9rZW46OnJl
c2V0KCkKK3sKKyAgICBtX3Rva2VuLnJlc2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJVc2VyR2VzdHVy
ZVRva2VuVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlVzZXJHZXN0
dXJlVG9rZW5UZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTg0ZDBiM2Y0NGM5YjU4MDg4ZTAwMmVlNWIw
ZjZiZTkyMGFjOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYlVzZXJHZXN0dXJlVG9rZW4uaCIKKworI2luY2x1
ZGUgIkZyYW1lVGVzdEhlbHBlcnMuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5o
IgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViU2NvcGVkVXNlckdlc3R1cmUu
aCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgeworCitURVNUKFdlYlVzZXJHZXN0dXJlVG9rZW5UZXN0LCBCYXNpYykKK3sKKyAgICBXZWJW
aWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQoImFi
b3V0OmJsYW5rIiwgdHJ1ZSk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gd2ViVmlldy0+bWFpbkZy
YW1lKCk7CisKKyAgICBPd25QdHI8V2ViVXNlckdlc3R1cmVUb2tlbj4gdG9rZW47CisgICAgewor
ICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoRGVmaW5pdGVseVByb2Nlc3Np
bmdVc2VyR2VzdHVyZSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGZyYW1lLT5pc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKTsKKyAgICAgICAgdG9rZW4gPSBhZG9wdFB0cihmcmFtZS0+Y3VycmVudFVz
ZXJHZXN0dXJlVG9rZW4oKSk7CisgICAgfQorCisgICAgRVhQRUNUX0ZBTFNFKGZyYW1lLT5pc1By
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKworICAgIHsKKyAgICAgICAgV2ViU2NvcGVkVXNlckdl
c3R1cmUgaW5kaWNhdG9yKHRva2VuLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZnJhbWUt
PmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgICAgICBmcmFtZS0+Y29uc3VtZVVzZXJH
ZXN0dXJlKCk7CisgICAgICAgIEVYUEVDVF9GQUxTRShmcmFtZS0+aXNQcm9jZXNzaW5nVXNlckdl
c3R1cmUoKSk7CisgICAgfQorCisgICAgeworICAgICAgICBXZWJTY29wZWRVc2VyR2VzdHVyZSBp
bmRpY2F0b3IodG9rZW4uZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoZnJhbWUtPmlzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIH0KKworICAgIHdlYlZpZXctPmNsb3NlKCk7Cit9
CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191561</attachid>
            <date>2013-03-05 14:12:57 -0800</date>
            <delta_ts>2013-03-05 14:16:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104268-20130305230903.patch</filename>
            <type>text/plain</type>
            <size>18246</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcuLjcyOWYyMWM0NTNjOWRk
Y2UzN2QwOTE5YjU0ZWI1ZDk5MzM3MDNjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTMtMDMtMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2
aWEgV2ViS2l0IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
LCB0aGUgUFBBUEkgY3JlYXRlcyBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlIHVwIHRvIDEwIHNlY29u
ZHMKKyAgICAgICAgYWZ0ZXIgYSBjYWxsIHdpdGggYW4gY3VycmVudGx5IGFjdGl2ZSB1c2VyIGdl
c3R1cmUgd2FzIG1hZGUuIEl0IHNob3VsZAorICAgICAgICB1c2UgdGhlIG5ld2x5IGFkZGVkIFdl
YlVzZXJHZXN0dXJlVG9rZW4gdG8gbWFrZSBzdXJlIHRoaXMgdXNlciBnZXN0dXJlCisgICAgICAg
IGlzIG5vdCBjb25zdW1lZCBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBXZSBjYW4ndCByZXF1
aXJlIGEgV2ViVXNlckdlc3R1cmVUb2tlbiBmb3IgYSBXZWJTY29wZWRVc2VyR2VzdHVyZSwgc2lu
Y2UKKyAgICAgICAgZS5nLiB0aGUgZXh0ZW5zaW9uIEFQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGNy
ZWF0ZSBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlCisgICAgICAgIG91dCBvZiB0aGUgYmx1ZS4KKwor
ICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICog
cHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViRnJhbWUp
OgorICAgICAgICAqIHB1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NvcGVkVXNlckdlc3R1cmU6OldlYlNjb3BlZFVz
ZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVXNlckdlc3R1cmVUb2tlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OldlYlVzZXJHZXN0dXJlVG9rZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpvcGVyYXRvcj0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjp+V2ViVXNlckdlc3R1cmVUb2tlbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OmlzTnVsbCk6CisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3Vy
cmVudFVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMv
V2ViRnJhbWVJbXBsLmg6CisgICAgICAgIChXZWJGcmFtZUltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJTY29wZWRVc2VyR2VzdHVyZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNjb3BlZFVzZXJH
ZXN0dXJlOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dl
YlVzZXJHZXN0dXJlVG9rZW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpXZWJVc2VyR2VzdHVyZVRva2VuKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgV2ViQ29yZTo6VXNl
ckdlc3R1cmVUb2tlbiopOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjph
c3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpyZXNldCk6Cisg
ICAgICAgICogdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEzLTAzLTA0ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IGNlbGxG
b3JDb2x1bW5BbmRSb3cgZmFpbHMgZm9yIHRhYmxlcyB3aXRoIGhpZGRlbiB0YWJsZSBjZWxscwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDEwNWE5MmM1ODk5YWM4MDJmODYzYWEyYWE2
NTMzZjBkN2I1OWU3NzQuLjY3MTRhMTQ1ZmFjY2QyZTAyOTMyOGMzMmYxNmEwZmM4YjE2YTk1ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI3Niw2ICsyNzYsNyBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViVGV4dFJ1bi5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlRpbWVSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlVSTExvYWRlck9w
dGlvbnMuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyR2VzdHVyZVRva2VuLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhQ2xpZW50LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlZpZXcuaCcsCkBAIC01NzUsNiArNTc2LDcgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlVSTExvYWRUaW1pbmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNj
b3BlZFVzZXJHZXN0dXJlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0RmllbGRE
ZWNvcmF0b3JDbGllbnQuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJHZXN0dXJl
VG9rZW4uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdCZW5jaG1hcmtTdXBwb3J0SW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViVmlld0JlbmNobWFya1N1cHBvcnRJbXBsLmgnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggM2FlM2FmZTFhMDE5NjEyNjg2MmJiOGFj
ZTg0MDFjZDIxNTA3NDA4MC4uYTY1OTFlOWY3M2NhMWEwMjE5NzgxZDViOThlNzQ3YjcxZTNkN2U3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMjIsNiArMTIyLDcgQEAKICAg
ICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9XZWJQbHVnaW5Db250YWluZXJUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2ViVXNl
ckdlc3R1cmVUb2tlblRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJTb2NrZXREZWZs
YXRlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNw
YXRjaGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlVSTFJlcXVlc3RUZXN0LmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCBlNzRlZmVi
NzhiNzI0NTA5MWIyODRhZjEwNmQyNWJhMzUxODMwZWI4Li5jNDU3YmM3MGM4ZTMzZGUwMzVhNjBh
MTBlOGY4ZmIzZDQxNzU4M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwog
Y2xhc3MgV2ViVVJMTG9hZGVyOwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKK2NsYXNzIFdlYlVzZXJH
ZXN0dXJlVG9rZW47CiBjbGFzcyBXZWJWaWV3Owogc3RydWN0IFdlYkNvbnNvbGVNZXNzYWdlOwog
c3RydWN0IFdlYkZpbmRPcHRpb25zOwpAQCAtNDA4LDYgKzQwOSwxMiBAQCBwdWJsaWM6CiAgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIGEgY29uc3VtYWJsZSBnZXN0dXJlIGV4aXN0cyBhbmQgaGFzIGJl
ZW4gc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkLgogICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVXNlckdl
c3R1cmUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBSZXR1cm5zIGEgdG9rZW4gZm9yIHRoZSBjdXJy
ZW50bHkgYWN0aXZlIHVzZXIgZ2VzdHVyZS4gSXQgY2FuIGJlIHVzZWQKKyAgICAvLyB0byBjb250
aW51ZSBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1cmUgbGF0ZXIgb24gdXNpbmcgYQorICAgIC8v
IFdlYlNjb3BlZFVzZXJHZXN0dXJlLgorICAgIC8vIFRoZSBjYWxsZXIgdGFrZXMgb3duZXJzaGlw
IG9mIHRoZSBXZWJVc2VyR2VzdHVyZVRva2VuIHJldHVybmVkLgorICAgIHZpcnR1YWwgV2ViVXNl
ckdlc3R1cmVUb2tlbiBjdXJyZW50VXNlckdlc3R1cmVUb2tlbigpIGNvbnN0ID0gMDsKKwogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZyYW1lIGlzIGluIHRoZSBwcm9jZXNzIG9mIG9wZW5p
bmcgYSBuZXcgZnJhbWUKICAgICAvLyB3aXRoIGEgc3VwcHJlc3NlZCBvcGVuZXIuCiAgICAgdmly
dHVhbCBib29sIHdpbGxTdXBwcmVzc09wZW5lckluTmV3RnJhbWUoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVy
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NvcGVkVXNlckdlc3R1cmUu
aAppbmRleCBkOWQ3MDhmYTk2YTU5ZTIyMmFhNGZmMGFlM2QwNTY3NmY4MGUxNTIyLi5mY2MzMDhi
MGFmODJiMWQwOTUwYmM4ZGQ4NjA3NGVhZDcwYjBiNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmgKQEAgLTM5LDE3ICsz
OSwyOSBAQCBjbGFzcyBVc2VyR2VzdHVyZUluZGljYXRvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW47CisKIC8vIEFuIGluc3RhbmNlIG9mIHRoaXMg
Y2xhc3MsIHdoaWxlIGtlcHQgYWxpdmUsIHdpbGwgaW5kaWNhdGUgdGhhdCB3ZSBhcmUgaW4KIC8v
IHRoZSBjb250ZXh0IG9mIGEga25vd24gdXNlciBnZXN0dXJlLiBUbyB1c2UsIGNyZWF0ZSBvbmUs
IHBlcmZvcm0gd2hhdGV2ZXIKIC8vIGFjdGlvbnMgd2VyZSBkb25lIHVuZGVyIGNvbG9yIG9mIGEg
a25vd24gdXNlciBnZXN0dXJlLCBhbmQgdGhlbiBkZWxldGUgaXQuCiAvLyBVc3VhbGx5IHRoaXMg
d2lsbCBiZSBkb25lIG9uIHRoZSBzdGFjay4KKy8vCisvLyBTRUNVUklUWSBXQVJOSU5HOiBEbyBu
b3QgY3JlYXRlIHNldmVyYWwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgZm9yIHRoZSBzYW1lCisv
LyB1c2VyIGdlc3R1cmUuIERvaW5nIHNvIG1pZ2h0IGVuYWJsZSBtYWxpY2lvdXMgY29kZSB0byB3
b3JrIGFyb3VuZCBjZXJ0YWluCisvLyByZXN0cmljdGlvbnMgc3VjaCBhcyBvcGVuaW5nIG11bHRp
cGxlIHdpbmRvd3MuCisvLyBJbnN0ZWFkLCBvYnRhaW4gdGhlIGN1cnJlbnQgV2ViVXNlckdlc3R1
cmVUb2tlbiBmcm9tIHRoZSBXZWJGcmFtZSwgYW5kIHVzZQorLy8gdGhpcyB0b2tlbiB0byBjcmVh
dGUgYSBXZWJTY29wZWRVc2VyR2VzdHVyZS4gSWYgdGhlIHRva2VuIHdhcyBhbHJhZHkKKy8vIGNv
bnN1bWVkLCB0aGUgbmV3IFdlYlNjb3BlZFVzZXJHZXN0dXJlIHdpbGwgbm90IGluZGljYXRlIHRo
YXQgd2UgYXJlIGluIHRoZQorLy8gY29udGV4dCBvZiBhIHVzZXIgZ2VzdHVyZS4KIGNsYXNzIFdl
YlNjb3BlZFVzZXJHZXN0dXJlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJTY29wZWRVc2Vy
R2VzdHVyZShjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJiB0b2tlbikgeyBpbml0aWFsaXplKHRv
a2VuKTsgfQogICAgIFdlYlNjb3BlZFVzZXJHZXN0dXJlKCkgeyBpbml0aWFsaXplKCk7IH0KICAg
ICB+V2ViU2NvcGVkVXNlckdlc3R1cmUoKSB7IHJlc2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZSgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBp
bml0aWFsaXplKGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mKTsKICAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgcmVzZXQoKTsKIAogICAgIFdlYlByaXZhdGVPd25QdHI8V2ViQ29yZTo6VXNlckdlc3R1
cmVJbmRpY2F0b3I+IG1faW5kaWNhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmFhMGQ5YTQ4OGMz
NDQzZDQ1MWFjZjk3MTAyNDFmYzBkNmM1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyR2VzdHVyZVRva2VuLmgKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViVXNlckdlc3R1cmVUb2tlbl9oCisjZGVmaW5lIFdlYlVzZXJHZXN0dXJlVG9r
ZW5faAorCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlBy
aXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVXNlckdlc3R1cmVUb2tl
bjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEEgV2ViVXNlckdlc3R1cmVUb2tlbiBh
bGxvd3MgZm9yIHN0b3JpbmcgdGhlIHVzZXIgZ2VzdHVyZSBzdGF0ZSBvZiB0aGUKKy8vIGN1cnJl
bnRseSBhY3RpdmUgY29udGV4dCBhbmQgcmVpbnN0YW50aWF0aW5nIGl0IGxhdGVyIG9uIHRvIGNv
bnRpbnVlCisvLyBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1cmUgaW4gY2FzZSBpdCB3YXMgbm90
IGNvbnN1bWVkIG1lYW53aGlsZS4KK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW4geworcHVibGlj
OgorICAgIFdlYlVzZXJHZXN0dXJlVG9rZW4oKSB7IH0KKyAgICBXZWJVc2VyR2VzdHVyZVRva2Vu
KGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KKyAg
ICBXZWJVc2VyR2VzdHVyZVRva2VuJiBvcGVyYXRvcj0oY29uc3QgV2ViVXNlckdlc3R1cmVUb2tl
biYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQorICAgIH5XZWJVc2VyR2VzdHVyZVRva2VuKCkgeyByZXNldCgpOyB9CisK
KyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV90b2tlbi5p
c051bGwoKTsgfQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2Vi
VXNlckdlc3R1cmVUb2tlbihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+KTsK
KyAgICBvcGVyYXRvciBXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuKigpIGNvbnN0OworI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJVc2Vy
R2VzdHVyZVRva2VuJik7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisKKyAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+IG1fdG9rZW47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlVzZXJHZXN0dXJlVG9rZW5faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZGE1OWVh
YWJjYWQ4ZDQ0NjhiMjljNmU3YWZmZmIyYTA0MTI5NzI5Zi4uNzllNTg3OTEwNDY0NGZhN2ZmOWFi
NjI1MmI3NDNjZDBjNDUyYjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlICJXZWJTY3JpcHRTb3Vy
Y2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYlVzZXJHZXN0dXJlVG9rZW4uaCIKICNp
bmNsdWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCiAjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKQEAgLTExMTcsNiArMTExOCwxMSBAQCBib29sIFdlYkZyYW1lSW1w
bDo6Y29uc3VtZVVzZXJHZXN0dXJlKCkgY29uc3QKICAgICByZXR1cm4gVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpOwogfQogCitXZWJVc2VyR2VzdHVyZVRva2VuIFdl
YkZyYW1lSW1wbDo6Y3VycmVudFVzZXJHZXN0dXJlVG9rZW4oKSBjb25zdAoreworICAgIHJldHVy
biBXZWJVc2VyR2VzdHVyZVRva2VuKFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VG9rZW4o
KSk7Cit9CisKIGJvb2wgV2ViRnJhbWVJbXBsOjp3aWxsU3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1l
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCktPnN1cHByZXNzT3BlbmVy
SW5OZXdGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApp
bmRleCA5N2M2MjFkYzljMzdlZGQ3NzQ3MjRlMWFiODk4M2FjMTE4NzkyY2I2Li4wODgzMTM5YTRk
YmY4YmYwMmJhNTUwNWYzMzMyZDM2ZjU2NzNhMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMTY1LDYgKzE2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIHVubG9hZExpc3RlbmVyQ291bnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY29u
c3VtZVVzZXJHZXN0dXJlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJVc2VyR2VzdHVyZVRva2Vu
IGN1cnJlbnRVc2VyR2VzdHVyZVRva2VuKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHdpbGxT
dXBwcmVzc09wZW5lckluTmV3RnJhbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcmVwbGFj
ZVNlbGVjdGlvbihjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0VGV4
dChjb25zdCBXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcAppbmRleCA2ODQyNmZjYWViMjBlNDJmNTYzMzQzNDgz
MjAzYTc0Y2QwZjlhZTcxLi43ZGZkMGRkN2RkODViZjhjNTRlYjI0YTczOTFlZGZlM2MyNDE0NDAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRVc2VyR2Vz
dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NvcGVkVXNlckdl
c3R1cmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViU2NvcGVkVXNlckdlc3R1
cmUuaCIKIAogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV2Vi
VXNlckdlc3R1cmVUb2tlbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDAsNiArNDEs
MTIgQEAgdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6aW5pdGlhbGl6ZSgpCiAgICAgbV9pbmRp
Y2F0b3IucmVzZXQobmV3IFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yKFdlYkNvcmU6OkRl
ZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpKTsKIH0KIAordm9pZCBXZWJTY29wZWRVc2Vy
R2VzdHVyZTo6aW5pdGlhbGl6ZShjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJiB0b2tlbikKK3sK
KyAgICBpZiAoIXRva2VuLmlzTnVsbCgpKQorICAgICAgICBtX2luZGljYXRvci5yZXNldChuZXcg
V2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VXNlckdl
c3R1cmVUb2tlbio+KHRva2VuKSkpOworfQorCiB2b2lkIFdlYlNjb3BlZFVzZXJHZXN0dXJlOjpy
ZXNldCgpCiB7CiAgICAgbV9pbmRpY2F0b3IucmVzZXQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZVRva2VuLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVzZXJHZXN0dXJlVG9rZW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0MzA3
OGM2ZGI1OGE1MWVjYTAwOGQxM2UzMTBmODU2NDZlZDAwYjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZVRva2VuLmNwcApAQCAtMCww
ICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVzZXJHZXN0dXJlVG9r
ZW4uaCIKKworI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJVc2VyR2VzdHVyZVRva2VuOjpXZWJVc2VyR2VzdHVyZVRva2VuKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbj4gdG9rZW4pCit7CisgICAgbV90b2tlbiA9
IHRva2VuOworfQorCitXZWJVc2VyR2VzdHVyZVRva2VuOjpvcGVyYXRvciBXZWJDb3JlOjpVc2Vy
R2VzdHVyZVRva2VuKigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdG9rZW4uZ2V0KCk7Cit9CisK
K3ZvaWQgV2ViVXNlckdlc3R1cmVUb2tlbjo6YXNzaWduKGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9r
ZW4mIG90aGVyKQoreworICAgIG1fdG9rZW4gPSBvdGhlci5tX3Rva2VuOworfQorCit2b2lkIFdl
YlVzZXJHZXN0dXJlVG9rZW46OnJlc2V0KCkKK3sKKyAgICBtX3Rva2VuLnJlc2V0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYlVzZXJHZXN0dXJlVG9rZW5UZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTZkMzEy
MjhiYzFkOGI2N2E3OWViYTYwNzkxNTg3OGIyNGQxNWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYlVzZXJHZXN0
dXJlVG9rZW4uaCIKKworI2luY2x1ZGUgIkZyYW1lVGVzdEhlbHBlcnMuaCIKKyNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAi
V2ViU2NvcGVkVXNlckdlc3R1cmUuaCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgeworCitURVNUKFdlYlVzZXJHZXN0dXJlVG9rZW5UZXN0
LCBCYXNpYykKK3sKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3Jl
YXRlV2ViVmlld0FuZExvYWQoImFib3V0OmJsYW5rIiwgdHJ1ZSk7CisgICAgV2ViRnJhbWUqIGZy
YW1lID0gd2ViVmlldy0+bWFpbkZyYW1lKCk7CisKKyAgICBXZWJVc2VyR2VzdHVyZVRva2VuIHRv
a2VuOworCisgICAgeworICAgICAgICBXZWJTY29wZWRVc2VyR2VzdHVyZSBpbmRpY2F0b3IodG9r
ZW4pOworICAgICAgICBFWFBFQ1RfRkFMU0UoZnJhbWUtPmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCkpOworICAgIH0KKworICAgIHsKKyAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNh
dG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgICAgICBFWFBFQ1RfVFJV
RShmcmFtZS0+aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CisgICAgICAgIHRva2VuID0gZnJh
bWUtPmN1cnJlbnRVc2VyR2VzdHVyZVRva2VuKCk7CisgICAgfQorCisgICAgRVhQRUNUX0ZBTFNF
KGZyYW1lLT5pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKworICAgIHsKKyAgICAgICAgV2Vi
U2NvcGVkVXNlckdlc3R1cmUgaW5kaWNhdG9yKHRva2VuKTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
ZnJhbWUtPmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgICAgICBmcmFtZS0+Y29uc3Vt
ZVVzZXJHZXN0dXJlKCk7CisgICAgICAgIEVYUEVDVF9GQUxTRShmcmFtZS0+aXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSk7CisgICAgfQorCisgICAgeworICAgICAgICBXZWJTY29wZWRVc2VyR2Vz
dHVyZSBpbmRpY2F0b3IodG9rZW4pOworICAgICAgICBFWFBFQ1RfRkFMU0UoZnJhbWUtPmlzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIH0KKworICAgIHdlYlZpZXctPmNsb3NlKCk7Cit9
CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191563</attachid>
            <date>2013-03-05 14:16:05 -0800</date>
            <delta_ts>2013-03-06 01:07:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104268-20130305231210.patch</filename>
            <type>text/plain</type>
            <size>18232</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDBlNWE2ZDZmNzY3YzE3OWJlNWY1OGZlYWFkMjUxZTY0MGFlMTljZjcuLjcyOWYyMWM0NTNjOWRk
Y2UzN2QwOTE5YjU0ZWI1ZDk5MzM3MDNjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTMtMDMtMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2
aWEgV2ViS2l0IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
LCB0aGUgUFBBUEkgY3JlYXRlcyBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlIHVwIHRvIDEwIHNlY29u
ZHMKKyAgICAgICAgYWZ0ZXIgYSBjYWxsIHdpdGggYW4gY3VycmVudGx5IGFjdGl2ZSB1c2VyIGdl
c3R1cmUgd2FzIG1hZGUuIEl0IHNob3VsZAorICAgICAgICB1c2UgdGhlIG5ld2x5IGFkZGVkIFdl
YlVzZXJHZXN0dXJlVG9rZW4gdG8gbWFrZSBzdXJlIHRoaXMgdXNlciBnZXN0dXJlCisgICAgICAg
IGlzIG5vdCBjb25zdW1lZCBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBXZSBjYW4ndCByZXF1
aXJlIGEgV2ViVXNlckdlc3R1cmVUb2tlbiBmb3IgYSBXZWJTY29wZWRVc2VyR2VzdHVyZSwgc2lu
Y2UKKyAgICAgICAgZS5nLiB0aGUgZXh0ZW5zaW9uIEFQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGNy
ZWF0ZSBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlCisgICAgICAgIG91dCBvZiB0aGUgYmx1ZS4KKwor
ICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICog
cHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViRnJhbWUp
OgorICAgICAgICAqIHB1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NvcGVkVXNlckdlc3R1cmU6OldlYlNjb3BlZFVz
ZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVXNlckdlc3R1cmVUb2tlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OldlYlVzZXJHZXN0dXJlVG9rZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpvcGVyYXRvcj0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjp+V2ViVXNlckdlc3R1cmVUb2tlbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OmlzTnVsbCk6CisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3Vy
cmVudFVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMv
V2ViRnJhbWVJbXBsLmg6CisgICAgICAgIChXZWJGcmFtZUltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJTY29wZWRVc2VyR2VzdHVyZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNjb3BlZFVzZXJH
ZXN0dXJlOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dl
YlVzZXJHZXN0dXJlVG9rZW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpXZWJVc2VyR2VzdHVyZVRva2VuKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgV2ViQ29yZTo6VXNl
ckdlc3R1cmVUb2tlbiopOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjph
c3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpyZXNldCk6Cisg
ICAgICAgICogdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEzLTAzLTA0ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IGNlbGxG
b3JDb2x1bW5BbmRSb3cgZmFpbHMgZm9yIHRhYmxlcyB3aXRoIGhpZGRlbiB0YWJsZSBjZWxscwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDEwNWE5MmM1ODk5YWM4MDJmODYzYWEyYWE2
NTMzZjBkN2I1OWU3NzQuLjY3MTRhMTQ1ZmFjY2QyZTAyOTMyOGMzMmYxNmEwZmM4YjE2YTk1ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI3Niw2ICsyNzYsNyBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViVGV4dFJ1bi5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlRpbWVSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlVSTExvYWRlck9w
dGlvbnMuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyR2VzdHVyZVRva2VuLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhQ2xpZW50LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlZpZXcuaCcsCkBAIC01NzUsNiArNTc2LDcgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlVSTExvYWRUaW1pbmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNj
b3BlZFVzZXJHZXN0dXJlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0RmllbGRE
ZWNvcmF0b3JDbGllbnQuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJHZXN0dXJl
VG9rZW4uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdCZW5jaG1hcmtTdXBwb3J0SW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViVmlld0JlbmNobWFya1N1cHBvcnRJbXBsLmgnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggM2FlM2FmZTFhMDE5NjEyNjg2MmJiOGFj
ZTg0MDFjZDIxNTA3NDA4MC4uYTY1OTFlOWY3M2NhMWEwMjE5NzgxZDViOThlNzQ3YjcxZTNkN2U3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMjIsNiArMTIyLDcgQEAKICAg
ICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9XZWJQbHVnaW5Db250YWluZXJUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2ViVXNl
ckdlc3R1cmVUb2tlblRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJTb2NrZXREZWZs
YXRlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNw
YXRjaGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlVSTFJlcXVlc3RUZXN0LmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCBlNzRlZmVi
NzhiNzI0NTA5MWIyODRhZjEwNmQyNWJhMzUxODMwZWI4Li5jNDU3YmM3MGM4ZTMzZGUwMzVhNjBh
MTBlOGY4ZmIzZDQxNzU4M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwog
Y2xhc3MgV2ViVVJMTG9hZGVyOwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKK2NsYXNzIFdlYlVzZXJH
ZXN0dXJlVG9rZW47CiBjbGFzcyBXZWJWaWV3Owogc3RydWN0IFdlYkNvbnNvbGVNZXNzYWdlOwog
c3RydWN0IFdlYkZpbmRPcHRpb25zOwpAQCAtNDA4LDYgKzQwOSwxMiBAQCBwdWJsaWM6CiAgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIGEgY29uc3VtYWJsZSBnZXN0dXJlIGV4aXN0cyBhbmQgaGFzIGJl
ZW4gc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkLgogICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVXNlckdl
c3R1cmUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBSZXR1cm5zIGEgdG9rZW4gZm9yIHRoZSBjdXJy
ZW50bHkgYWN0aXZlIHVzZXIgZ2VzdHVyZS4gSXQgY2FuIGJlIHVzZWQKKyAgICAvLyB0byBjb250
aW51ZSBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1cmUgbGF0ZXIgb24gdXNpbmcgYQorICAgIC8v
IFdlYlNjb3BlZFVzZXJHZXN0dXJlLgorICAgIC8vIFRoZSBjYWxsZXIgdGFrZXMgb3duZXJzaGlw
IG9mIHRoZSBXZWJVc2VyR2VzdHVyZVRva2VuIHJldHVybmVkLgorICAgIHZpcnR1YWwgV2ViVXNl
ckdlc3R1cmVUb2tlbiBjdXJyZW50VXNlckdlc3R1cmVUb2tlbigpIGNvbnN0ID0gMDsKKwogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZyYW1lIGlzIGluIHRoZSBwcm9jZXNzIG9mIG9wZW5p
bmcgYSBuZXcgZnJhbWUKICAgICAvLyB3aXRoIGEgc3VwcHJlc3NlZCBvcGVuZXIuCiAgICAgdmly
dHVhbCBib29sIHdpbGxTdXBwcmVzc09wZW5lckluTmV3RnJhbWUoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVy
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NvcGVkVXNlckdlc3R1cmUu
aAppbmRleCBkOWQ3MDhmYTk2YTU5ZTIyMmFhNGZmMGFlM2QwNTY3NmY4MGUxNTIyLi5mY2MzMDhi
MGFmODJiMWQwOTUwYmM4ZGQ4NjA3NGVhZDcwYjBiNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmgKQEAgLTM5LDE3ICsz
OSwyOSBAQCBjbGFzcyBVc2VyR2VzdHVyZUluZGljYXRvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW47CisKIC8vIEFuIGluc3RhbmNlIG9mIHRoaXMg
Y2xhc3MsIHdoaWxlIGtlcHQgYWxpdmUsIHdpbGwgaW5kaWNhdGUgdGhhdCB3ZSBhcmUgaW4KIC8v
IHRoZSBjb250ZXh0IG9mIGEga25vd24gdXNlciBnZXN0dXJlLiBUbyB1c2UsIGNyZWF0ZSBvbmUs
IHBlcmZvcm0gd2hhdGV2ZXIKIC8vIGFjdGlvbnMgd2VyZSBkb25lIHVuZGVyIGNvbG9yIG9mIGEg
a25vd24gdXNlciBnZXN0dXJlLCBhbmQgdGhlbiBkZWxldGUgaXQuCiAvLyBVc3VhbGx5IHRoaXMg
d2lsbCBiZSBkb25lIG9uIHRoZSBzdGFjay4KKy8vCisvLyBTRUNVUklUWSBXQVJOSU5HOiBEbyBu
b3QgY3JlYXRlIHNldmVyYWwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgZm9yIHRoZSBzYW1lCisv
LyB1c2VyIGdlc3R1cmUuIERvaW5nIHNvIG1pZ2h0IGVuYWJsZSBtYWxpY2lvdXMgY29kZSB0byB3
b3JrIGFyb3VuZCBjZXJ0YWluCisvLyByZXN0cmljdGlvbnMgc3VjaCBhcyBvcGVuaW5nIG11bHRp
cGxlIHdpbmRvd3MuCisvLyBJbnN0ZWFkLCBvYnRhaW4gdGhlIGN1cnJlbnQgV2ViVXNlckdlc3R1
cmVUb2tlbiBmcm9tIHRoZSBXZWJGcmFtZSwgYW5kIHVzZQorLy8gdGhpcyB0b2tlbiB0byBjcmVh
dGUgYSBXZWJTY29wZWRVc2VyR2VzdHVyZS4gSWYgdGhlIHRva2VuIHdhcyBhbHJhZHkKKy8vIGNv
bnN1bWVkLCB0aGUgbmV3IFdlYlNjb3BlZFVzZXJHZXN0dXJlIHdpbGwgbm90IGluZGljYXRlIHRo
YXQgd2UgYXJlIGluIHRoZQorLy8gY29udGV4dCBvZiBhIHVzZXIgZ2VzdHVyZS4KIGNsYXNzIFdl
YlNjb3BlZFVzZXJHZXN0dXJlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJTY29wZWRVc2Vy
R2VzdHVyZShjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJiB0b2tlbikgeyBpbml0aWFsaXplKHRv
a2VuKTsgfQogICAgIFdlYlNjb3BlZFVzZXJHZXN0dXJlKCkgeyBpbml0aWFsaXplKCk7IH0KICAg
ICB+V2ViU2NvcGVkVXNlckdlc3R1cmUoKSB7IHJlc2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZSgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBp
bml0aWFsaXplKGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mKTsKICAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgcmVzZXQoKTsKIAogICAgIFdlYlByaXZhdGVPd25QdHI8V2ViQ29yZTo6VXNlckdlc3R1
cmVJbmRpY2F0b3I+IG1faW5kaWNhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZmVlYTJlMmY5ZjI5
YTIwMTJjYmM4ZTZmMDMyOGYxNWRlODM3MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyR2VzdHVyZVRva2VuLmgKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViVXNlckdlc3R1cmVUb2tlbl9oCisjZGVmaW5lIFdlYlVzZXJHZXN0dXJlVG9r
ZW5faAorCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlBy
aXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVXNlckdlc3R1cmVUb2tl
bjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEEgV2ViVXNlckdlc3R1cmVUb2tlbiBh
bGxvd3MgZm9yIHN0b3JpbmcgdGhlIHVzZXIgZ2VzdHVyZSBzdGF0ZSBvZiB0aGUKKy8vIGN1cnJl
bnRseSBhY3RpdmUgY29udGV4dCBhbmQgcmVpbnN0YW50aWF0aW5nIGl0IGxhdGVyIG9uIHRvIGNv
bnRpbnVlCisvLyBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1cmUgaW4gY2FzZSBpdCB3YXMgbm90
IGNvbnN1bWVkIG1lYW53aGlsZS4KK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW4geworcHVibGlj
OgorICAgIFdlYlVzZXJHZXN0dXJlVG9rZW4oKSB7IH0KKyAgICBXZWJVc2VyR2VzdHVyZVRva2Vu
KGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KKyAg
ICBXZWJVc2VyR2VzdHVyZVRva2VuJiBvcGVyYXRvcj0oY29uc3QgV2ViVXNlckdlc3R1cmVUb2tl
biYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQorICAgIH5XZWJVc2VyR2VzdHVyZVRva2VuKCkgeyByZXNldCgpOyB9CisK
KyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9rZW4uaXNOdWxsKCk7IH0KKwor
I2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIGV4cGxpY2l0IFdlYlVzZXJHZXN0dXJlVG9r
ZW4oUGFzc1JlZlB0cjxXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuPik7CisgICAgb3BlcmF0b3Ig
V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbiooKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViVXNlckdlc3R1cmVUb2tlbiYp
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworCisgICAgV2ViUHJpdmF0ZVB0cjxX
ZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuPiBtX3Rva2VuOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJVc2VyR2VzdHVyZVRva2VuX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGRhNTllYWFiY2FkOGQ0NDY4YjI5
YzZlN2FmZmZiMmEwNDEyOTcyOWYuLjc5ZTU4NzkxMDQ2NDRmYTdmZjlhYjYyNTJiNzQzY2QwYzQ1
MmIzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApA
QCAtMTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5jbHVk
ZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCiAjaW5jbHVkZSAiV2ViVmll
d0ltcGwuaCIKICNpbmNsdWRlICJYUGF0aFJlc3VsdC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCkBAIC0xMTE3LDYgKzExMTgsMTEgQEAgYm9vbCBXZWJGcmFtZUltcGw6OmNvbnN1bWVVc2Vy
R2VzdHVyZSgpIGNvbnN0CiAgICAgcmV0dXJuIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjb25zdW1l
VXNlckdlc3R1cmUoKTsKIH0KIAorV2ViVXNlckdlc3R1cmVUb2tlbiBXZWJGcmFtZUltcGw6OmN1
cnJlbnRVc2VyR2VzdHVyZVRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViVXNlckdlc3R1
cmVUb2tlbihVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRva2VuKCkpOworfQorCiBib29s
IFdlYkZyYW1lSW1wbDo6d2lsbFN1cHByZXNzT3BlbmVySW5OZXdGcmFtZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5zdXBwcmVzc09wZW5lckluTmV3RnJhbWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggOTdjNjIxZGM5
YzM3ZWRkNzc0NzI0ZTFhYjg5ODNhYzExODc5MmNiNi4uMDg4MzEzOWE0ZGJmOGJmMDJiYTU1MDVm
MzMzMmQzNmY1NjczYTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmgKQEAgLTE2NSw2ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCB1
bmxvYWRMaXN0ZW5lckNvdW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNvbnN1bWVVc2VyR2VzdHVy
ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViVXNlckdlc3R1cmVUb2tlbiBjdXJyZW50VXNlckdl
c3R1cmVUb2tlbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB3aWxsU3VwcHJlc3NPcGVuZXJJ
bk5ld0ZyYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZWxlY3Rpb24oY29u
c3QgV2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGluc2VydFRleHQoY29uc3QgV2ViU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRV
c2VyR2VzdHVyZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29wZWRVc2Vy
R2VzdHVyZS5jcHAKaW5kZXggNjg0MjZmY2FlYjIwZTQyZjU2MzM0MzQ4MzIwM2E3NGNkMGY5YWU3
MS4uN2RmZDBkZDdkZDg1YmY4YzU0ZWIyNGE3MzkxZWRmZTNjMjQxNDQwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NvcGVkVXNlckdlc3R1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYlNjb3BlZFVzZXJHZXN0dXJlLmgiCiAKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorI2luY2x1ZGUgIldlYlVzZXJHZXN0dXJlVG9r
ZW4uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQwLDYgKzQxLDEyIEBAIHZvaWQgV2Vi
U2NvcGVkVXNlckdlc3R1cmU6OmluaXRpYWxpemUoKQogICAgIG1faW5kaWNhdG9yLnJlc2V0KG5l
dyBXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcihXZWJDb3JlOjpEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKSk7CiB9CiAKK3ZvaWQgV2ViU2NvcGVkVXNlckdlc3R1cmU6OmluaXRp
YWxpemUoY29uc3QgV2ViVXNlckdlc3R1cmVUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKCF0b2tl
bi5pc051bGwoKSkKKyAgICAgICAgbV9pbmRpY2F0b3IucmVzZXQobmV3IFdlYkNvcmU6OlVzZXJH
ZXN0dXJlSW5kaWNhdG9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4qPih0
b2tlbikpKTsKK30KKwogdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6cmVzZXQoKQogewogICAg
IG1faW5kaWNhdG9yLnJlc2V0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJVc2VyR2VzdHVyZVRva2VuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDMwNzhjNmRiNThhNTFlY2Ew
MDhkMTNlMzEwZjg1NjQ2ZWQwMGIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCisKKyNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
VXNlckdlc3R1cmVUb2tlbjo6V2ViVXNlckdlc3R1cmVUb2tlbihQYXNzUmVmUHRyPFdlYkNvcmU6
OlVzZXJHZXN0dXJlVG9rZW4+IHRva2VuKQoreworICAgIG1fdG9rZW4gPSB0b2tlbjsKK30KKwor
V2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgV2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbioo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Rva2VuLmdldCgpOworfQorCit2b2lkIFdlYlVzZXJH
ZXN0dXJlVG9rZW46OmFzc2lnbihjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJiBvdGhlcikKK3sK
KyAgICBtX3Rva2VuID0gb3RoZXIubV90b2tlbjsKK30KKwordm9pZCBXZWJVc2VyR2VzdHVyZVRv
a2VuOjpyZXNldCgpCit7CisgICAgbV90b2tlbi5yZXNldCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVXNl
ckdlc3R1cmVUb2tlblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJV
c2VyR2VzdHVyZVRva2VuVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU2ZDMxMjI4YmMxZDhiNjdhNzll
YmE2MDc5MTU4NzhiMjRkMTVkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwCkBAIC0wLDAgKzEsODIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCisK
KyNpbmNsdWRlICJGcmFtZVRlc3RIZWxwZXJzLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlNjb3BlZFVzZXJH
ZXN0dXJlLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIHsKKworVEVTVChXZWJVc2VyR2VzdHVyZVRva2VuVGVzdCwgQmFzaWMpCit7Cisg
ICAgV2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRM
b2FkKCJhYm91dDpibGFuayIsIHRydWUpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IHdlYlZpZXct
Pm1haW5GcmFtZSgpOworCisgICAgV2ViVXNlckdlc3R1cmVUb2tlbiB0b2tlbjsKKworICAgIHsK
KyAgICAgICAgV2ViU2NvcGVkVXNlckdlc3R1cmUgaW5kaWNhdG9yKHRva2VuKTsKKyAgICAgICAg
RVhQRUNUX0ZBTFNFKGZyYW1lLT5pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICB9CisK
KyAgICB7CisgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZnJhbWUtPmlzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgICAgICB0b2tlbiA9IGZyYW1lLT5jdXJyZW50VXNl
ckdlc3R1cmVUb2tlbigpOworICAgIH0KKworICAgIEVYUEVDVF9GQUxTRShmcmFtZS0+aXNQcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKSk7CisKKyAgICB7CisgICAgICAgIFdlYlNjb3BlZFVzZXJHZXN0
dXJlIGluZGljYXRvcih0b2tlbik7CisgICAgICAgIEVYUEVDVF9UUlVFKGZyYW1lLT5pc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICAgICAgZnJhbWUtPmNvbnN1bWVVc2VyR2VzdHVyZSgp
OworICAgICAgICBFWFBFQ1RfRkFMU0UoZnJhbWUtPmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
OworICAgIH0KKworICAgIHsKKyAgICAgICAgV2ViU2NvcGVkVXNlckdlc3R1cmUgaW5kaWNhdG9y
KHRva2VuKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGZyYW1lLT5pc1Byb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpKTsKKyAgICB9CisKKyAgICB3ZWJWaWV3LT5jbG9zZSgpOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191680</attachid>
            <date>2013-03-06 01:07:12 -0800</date>
            <delta_ts>2013-03-06 23:48:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104268-20130306100317.patch</filename>
            <type>text/plain</type>
            <size>17290</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDIzZmFiYzMwOWU1ZjBkNDA0MzBhYzUyZWU4ZWU5ZDE1N2UyOTlhNWQuLjZmMGVmM2M5OGRhZWZi
OWZkY2VjZjA3YjY1ZTQzZGZiZjFkYWQ1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNTQgQEAKIDIwMTMtMDMtMDYgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2
aWEgV2ViS2l0IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
LCB0aGUgUFBBUEkgY3JlYXRlcyBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlIHVwIHRvIDEwIHNlY29u
ZHMKKyAgICAgICAgYWZ0ZXIgYSBjYWxsIHdpdGggYW4gY3VycmVudGx5IGFjdGl2ZSB1c2VyIGdl
c3R1cmUgd2FzIG1hZGUuIEl0IHNob3VsZAorICAgICAgICB1c2UgdGhlIG5ld2x5IGFkZGVkIFdl
YlVzZXJHZXN0dXJlVG9rZW4gdG8gbWFrZSBzdXJlIHRoaXMgdXNlciBnZXN0dXJlCisgICAgICAg
IGlzIG5vdCBjb25zdW1lZCBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICBXZSBjYW4ndCByZXF1
aXJlIGEgV2ViVXNlckdlc3R1cmVUb2tlbiBmb3IgYSBXZWJTY29wZWRVc2VyR2VzdHVyZSwgc2lu
Y2UKKyAgICAgICAgZS5nLiB0aGUgZXh0ZW5zaW9uIEFQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGNy
ZWF0ZSBhIFdlYlNjb3BlZFVzZXJHZXN0dXJlCisgICAgICAgIG91dCBvZiB0aGUgYmx1ZS4KKwor
ICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICog
cHVibGljL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTY29wZWRVc2VyR2VzdHVyZTo6V2ViU2NvcGVkVXNlckdlc3R1cmUpOgor
ICAgICAgICAoV2ViU2NvcGVkVXNlckdlc3R1cmUpOgorICAgICAgICAqIHB1YmxpYy9XZWJVc2Vy
R2VzdHVyZUluZGljYXRvci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlVzZXJH
ZXN0dXJlSW5kaWNhdG9yKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2Vy
R2VzdHVyZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViVXNlckdlc3R1cmVUb2tlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJl
VG9rZW46OldlYlVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2Vz
dHVyZVRva2VuOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRv
a2VuOjp+V2ViVXNlckdlc3R1cmVUb2tlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0
dXJlVG9rZW46OmlzTnVsbCk6CisgICAgICAgICogc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NvcGVkVXNlckdlc3R1cmU6OmluaXRpYWxpemVXaXRo
VG9rZW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVXNlckdlc3R1cmVJ
bmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZUluZGljYXRvcjo6
Y3VycmVudFVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OldlYlVzZXJHZXN0dXJlVG9r
ZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpvcGVyYXRvciBXZWJD
b3JlOjpVc2VyR2VzdHVyZVRva2VuKik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJl
VG9rZW46OmFzc2lnbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJHZXN0dXJlVG9rZW46OnJl
c2V0KToKKyAgICAgICAgKiB0ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9y
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKKzIw
MTMtMDMtMDYgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKICAgICAg
ICAgW2Nocm9taXVtXSBpbnRyb2R1Y2UgV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTUzMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKaW5kZXggOTE0NzJiZjA4NDFkMzE2MmM0MTczZjAzYzQwNTAwZGI2
ODhiOTA0MS4uMDZkMjU3OTM3MjUzMTIxMDFmODgxZWEwYjY1YjVmMmM1ZGRiNDYxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjc3LDYgKzI3Nyw3IEBACiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJUaW1lUmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJV
UkxMb2FkZXJPcHRpb25zLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyR2VzdHVyZVRv
a2VuLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhQ2xpZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlZpZXcuaCcsCkBAIC01NzcsNiArNTc4LDcgQEAKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJVc2VyR2VzdHVyZVRva2VuLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJVc2VyTWVk
aWFSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJWaWV3QmVuY2htYXJrU3Vw
cG9ydEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdCZW5jaG1hcmtTdXBw
b3J0SW1wbC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IDM4YTRmOTQ0YTdh
YjdmMWM0NzU1ZDk2OWIwOGNhZTljZWEzZmU2YWEuLmEyNjZkY2RlYjVlY2E5OTZhNGVkNWRjYjQx
ZmY2MGQzOGM3OWU5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTIzLDYg
KzEyMyw3IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZU5ld1NlcmlhbGl6ZXJUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZVNlcmlhbGl6ZXJUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvV2ViUGx1Z2luQ29udGFpbmVyVGVzdC5jcHAnLAorICAgICAgICAgICAg
J3Rlc3RzL1dlYlVzZXJHZXN0dXJlVG9rZW5UZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMv
V2ViU29ja2V0RGVmbGF0ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJVUkxS
ZXF1ZXN0VGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2NvcGVkVXNlckdlc3R1cmUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNjb3BlZFVzZXJHZXN0dXJlLmgKaW5kZXggZDlkNzA4ZmE5NmE1OWUyMjJhYTRmZjBhZTNk
MDU2NzZmODBlMTUyMi4uMjVlNDY1YWVmMDg3ZWYxYzU3MWJhNTRlMTllMWM1OGFjN2ViZGVlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NvcGVkVXNlckdl
c3R1cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2Vy
R2VzdHVyZS5oCkBAIC0zOSwxNyArMzksMjkgQEAgY2xhc3MgVXNlckdlc3R1cmVJbmRpY2F0b3I7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJVc2VyR2VzdHVyZVRva2VuOworCiAv
LyBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLCB3aGlsZSBrZXB0IGFsaXZlLCB3aWxsIGluZGlj
YXRlIHRoYXQgd2UgYXJlIGluCiAvLyB0aGUgY29udGV4dCBvZiBhIGtub3duIHVzZXIgZ2VzdHVy
ZS4gVG8gdXNlLCBjcmVhdGUgb25lLCBwZXJmb3JtIHdoYXRldmVyCiAvLyBhY3Rpb25zIHdlcmUg
ZG9uZSB1bmRlciBjb2xvciBvZiBhIGtub3duIHVzZXIgZ2VzdHVyZSwgYW5kIHRoZW4gZGVsZXRl
IGl0LgogLy8gVXN1YWxseSB0aGlzIHdpbGwgYmUgZG9uZSBvbiB0aGUgc3RhY2suCisvLworLy8g
U0VDVVJJVFkgV0FSTklORzogRG8gbm90IGNyZWF0ZSBzZXZlcmFsIGluc3RhbmNlcyBvZiB0aGlz
IGNsYXNzIGZvciB0aGUgc2FtZQorLy8gdXNlciBnZXN0dXJlLiBEb2luZyBzbyBtaWdodCBlbmFi
bGUgbWFsaWNpb3VzIGNvZGUgdG8gd29yayBhcm91bmQgY2VydGFpbgorLy8gcmVzdHJpY3Rpb25z
IHN1Y2ggYXMgb3BlbmluZyBtdWx0aXBsZSB3aW5kb3dzLgorLy8gSW5zdGVhZCwgb2J0YWluIHRo
ZSBjdXJyZW50IFdlYlVzZXJHZXN0dXJlVG9rZW4gZnJvbSB0aGUgV2ViRnJhbWUsIGFuZCB1c2UK
Ky8vIHRoaXMgdG9rZW4gdG8gY3JlYXRlIGEgV2ViU2NvcGVkVXNlckdlc3R1cmUuIElmIHRoZSB0
b2tlbiB3YXMgYWxyYWR5CisvLyBjb25zdW1lZCwgdGhlIG5ldyBXZWJTY29wZWRVc2VyR2VzdHVy
ZSB3aWxsIG5vdCBpbmRpY2F0ZSB0aGF0IHdlIGFyZSBpbiB0aGUKKy8vIGNvbnRleHQgb2YgYSB1
c2VyIGdlc3R1cmUuCiBjbGFzcyBXZWJTY29wZWRVc2VyR2VzdHVyZSB7CiBwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViU2NvcGVkVXNlckdlc3R1cmUoY29uc3QgV2ViVXNlckdlc3R1cmVUb2tlbiYg
dG9rZW4pIHsgaW5pdGlhbGl6ZVdpdGhUb2tlbih0b2tlbik7IH0KICAgICBXZWJTY29wZWRVc2Vy
R2VzdHVyZSgpIHsgaW5pdGlhbGl6ZSgpOyB9CiAgICAgfldlYlNjb3BlZFVzZXJHZXN0dXJlKCkg
eyByZXNldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxp
emUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZVdpdGhUb2tlbihjb25zdCBX
ZWJVc2VyR2VzdHVyZVRva2VuJik7CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAK
ICAgICBXZWJQcml2YXRlT3duUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yPiBtX2lu
ZGljYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJV
c2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDU3MTcwODA0MjhjMGY1MWYwZDllZWExMDdlNzQz
YmYwODU0MzQ3MmQuLmE5NjJhNmE4ZTIxYzNiOGE2ZDhmYjkwODJmMmE1NjRlZjFmNjc3OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVXNlckdlc3R1
cmVJbmRpY2F0b3IuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
Y2xhc3MgV2ViVXNlckdlc3R1cmVUb2tlbjsKKwogY2xhc3MgV2ViVXNlckdlc3R1cmVJbmRpY2F0
b3IgewogcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhIHVzZXIgZ2VzdHVyZSBpcyBj
dXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLgpAQCAtNDIsNiArNDQsMTEgQEAgcHVibGljOgogCiAg
ICAgLy8gUmV0dXJucyB0cnVlIGlmIGEgY29uc3VtYWJsZSBnZXN0dXJlIGV4aXN0cyBhbmQgaGFz
IGJlZW4gc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkLgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJv
b2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisKKyAgICAvLyBSZXR1cm5zIGEgdG9rZW4gZm9yIHRo
ZSBjdXJyZW50bHkgYWN0aXZlIHVzZXIgZ2VzdHVyZS4gSXQgY2FuIGJlIHVzZWQgdG8KKyAgICAv
LyBjb250aW51ZSBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1cmUgbGF0ZXIgb24gdXNpbmcgYQor
ICAgIC8vIFdlYlNjb3BlZFVzZXJHZXN0dXJlLgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdl
YlVzZXJHZXN0dXJlVG9rZW4gY3VycmVudFVzZXJHZXN0dXJlVG9rZW4oKTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJHZXN0dXJlVG9r
ZW4uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJHZXN0dXJlVG9rZW4u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YWZlZWEyZTJmOWYyOWEyMDEyY2JjOGU2ZjAzMjhmMTVkZTgzNzEyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVXNlckdl
c3R1cmVUb2tlbi5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlVzZXJHZXN0dXJlVG9rZW5f
aAorI2RlZmluZSBXZWJVc2VyR2VzdHVyZVRva2VuX2gKKworI2luY2x1ZGUgIi4uLy4uLy4uL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFVzZXJHZXN0dXJlVG9rZW47Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CisvLyBBIFdlYlVzZXJHZXN0dXJlVG9rZW4gYWxsb3dzIGZvciBzdG9yaW5nIHRoZSB1c2VyIGdl
c3R1cmUgc3RhdGUgb2YgdGhlCisvLyBjdXJyZW50bHkgYWN0aXZlIGNvbnRleHQgYW5kIHJlaW5z
dGFudGlhdGluZyBpdCBsYXRlciBvbiB0byBjb250aW51ZQorLy8gcHJvY2Vzc2luZyB0aGUgdXNl
ciBnZXN0dXJlIGluIGNhc2UgaXQgd2FzIG5vdCBjb25zdW1lZCBtZWFud2hpbGUuCitjbGFzcyBX
ZWJVc2VyR2VzdHVyZVRva2VuIHsKK3B1YmxpYzoKKyAgICBXZWJVc2VyR2VzdHVyZVRva2VuKCkg
eyB9CisgICAgV2ViVXNlckdlc3R1cmVUb2tlbihjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJiBv
dGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgV2ViVXNlckdlc3R1cmVUb2tlbiYgb3BlcmF0
b3I9KGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mIG90aGVyKQorICAgIHsKKyAgICAgICAgYXNz
aWduKG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICB+V2ViVXNlckdl
c3R1cmVUb2tlbigpIHsgcmVzZXQoKTsgfQorCisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJl
dHVybiBtX3Rva2VuLmlzTnVsbCgpOyB9CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAg
ICBleHBsaWNpdCBXZWJVc2VyR2VzdHVyZVRva2VuKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlckdl
c3R1cmVUb2tlbj4pOworICAgIG9wZXJhdG9yIFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4qKCkg
Y29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWdu
KGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVz
ZXQoKTsKKworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbj4gbV90
b2tlbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViVXNlckdl
c3R1cmVUb2tlbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
Y29wZWRVc2VyR2VzdHVyZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY29w
ZWRVc2VyR2VzdHVyZS5jcHAKaW5kZXggNjg0MjZmY2FlYjIwZTQyZjU2MzM0MzQ4MzIwM2E3NGNk
MGY5YWU3MS4uOTczODE4NzJkODE2NWM3OWNhMWQxNzJjYjI2NGQwZTUyM2U4MmNjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NvcGVkVXNlckdlc3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYlNjb3BlZFVzZXJHZXN0dXJlLmgiCiAK
ICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorI2luY2x1ZGUgIldlYlVzZXJHZXN0
dXJlVG9rZW4uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQwLDYgKzQxLDEyIEBAIHZv
aWQgV2ViU2NvcGVkVXNlckdlc3R1cmU6OmluaXRpYWxpemUoKQogICAgIG1faW5kaWNhdG9yLnJl
c2V0KG5ldyBXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcihXZWJDb3JlOjpEZWZpbml0ZWx5
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSk7CiB9CiAKK3ZvaWQgV2ViU2NvcGVkVXNlckdlc3R1cmU6
OmluaXRpYWxpemVXaXRoVG9rZW4oY29uc3QgV2ViVXNlckdlc3R1cmVUb2tlbiYgdG9rZW4pCit7
CisgICAgaWYgKCF0b2tlbi5pc051bGwoKSkKKyAgICAgICAgbV9pbmRpY2F0b3IucmVzZXQobmV3
IFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJH
ZXN0dXJlVG9rZW4qPih0b2tlbikpKTsKK30KKwogdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6
cmVzZXQoKQogewogICAgIG1faW5kaWNhdG9yLnJlc2V0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IDA0
MmZlMTczMzc3OGM5MDU3N2M2OTM4MWIxMzhkNmRiNjYxMGZjYjguLmUzNzFiZTkyZjc3NzFkZDMz
MTExMTcxZTM0YjA3ZjQxZmM5NDk1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZUluZGljYXRvci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw0ICs0OCw5IEBAIGJvb2wgV2ViVXNlckdl
c3R1cmVJbmRpY2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpCiAgICAgcmV0dXJuIFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpjb25zdW1lVXNlckdlc3R1cmUoKTsKIH0KIAorV2ViVXNlckdlc3R1cmVU
b2tlbiBXZWJVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlVG9rZW4oKQor
eworICAgIHJldHVybiBXZWJVc2VyR2VzdHVyZVRva2VuKFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpj
dXJyZW50VG9rZW4oKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZVRva2VuLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDMwNzhjNmRiNThhNTFlY2EwMDhkMTNlMzEwZjg1NjQ2ZWQwMGIwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2Vz
dHVyZVRva2VuLmgiCisKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworV2ViVXNlckdlc3R1cmVUb2tlbjo6V2ViVXNlckdlc3R1cmVUb2tl
bihQYXNzUmVmUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+IHRva2VuKQoreworICAgIG1f
dG9rZW4gPSB0b2tlbjsKK30KKworV2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgV2ViQ29y
ZTo6VXNlckdlc3R1cmVUb2tlbiooKSBjb25zdAoreworICAgIHJldHVybiBtX3Rva2VuLmdldCgp
OworfQorCit2b2lkIFdlYlVzZXJHZXN0dXJlVG9rZW46OmFzc2lnbihjb25zdCBXZWJVc2VyR2Vz
dHVyZVRva2VuJiBvdGhlcikKK3sKKyAgICBtX3Rva2VuID0gb3RoZXIubV90b2tlbjsKK30KKwor
dm9pZCBXZWJVc2VyR2VzdHVyZVRva2VuOjpyZXNldCgpCit7CisgICAgbV90b2tlbi5yZXNldCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U5YTFlNjkxNGYzZjhhNWNlMDQwNDQ5YjkxOGNjMDMxZjg2YTA0ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3Qu
Y3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJV
c2VyR2VzdHVyZVRva2VuLmgiCisKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgor
I2luY2x1ZGUgIldlYlNjb3BlZFVzZXJHZXN0dXJlLmgiCisjaW5jbHVkZSAiV2ViVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSB7CisKK1RF
U1QoV2ViVXNlckdlc3R1cmVUb2tlblRlc3QsIEJhc2ljKQoreworICAgIFdlYlVzZXJHZXN0dXJl
VG9rZW4gdG9rZW47CisKKyAgICB7CisgICAgICAgIFdlYlNjb3BlZFVzZXJHZXN0dXJlIGluZGlj
YXRvcih0b2tlbik7CisgICAgICAgIEVYUEVDVF9GQUxTRShXZWJVc2VyR2VzdHVyZUluZGljYXRv
cjo6aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CisgICAgfQorCisgICAgeworICAgICAgICBV
c2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFdlYlVzZXJHZXN0dXJlSW5kaWNhdG9yOjppc1By
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICAgICAgdG9rZW4gPSBXZWJVc2VyR2VzdHVyZUlu
ZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlVG9rZW4oKTsKKyAgICB9CisKKyAgICBFWFBFQ1Rf
RkFMU0UoV2ViVXNlckdlc3R1cmVJbmRpY2F0b3I6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
OworCisgICAgeworICAgICAgICBXZWJTY29wZWRVc2VyR2VzdHVyZSBpbmRpY2F0b3IodG9rZW4p
OworICAgICAgICBFWFBFQ1RfVFJVRShXZWJVc2VyR2VzdHVyZUluZGljYXRvcjo6aXNQcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSk7CisgICAgICAgIFdlYlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjb25z
dW1lVXNlckdlc3R1cmUoKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKFdlYlVzZXJHZXN0dXJlSW5k
aWNhdG9yOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIFdlYlNjb3BlZFVzZXJHZXN0dXJlIGluZGljYXRvcih0b2tlbik7CisgICAgICAgIEVYUEVD
VF9GQUxTRShXZWJVc2VyR2VzdHVyZUluZGljYXRvcjo6aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSk7CisgICAgfQorfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191933</attachid>
            <date>2013-03-06 23:48:08 -0800</date>
            <delta_ts>2013-03-07 00:14:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104268-20130307084412.patch</filename>
            <type>text/plain</type>
            <size>17235</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDc4NDNhOTNkMDhiYjAyNDljMjYyMTYwYWM1YjRhNDYxZWZiMWM0OGQuLmM1YjljZTA4YjMxMTFj
MzIzZmUzMTJjMGI4MzE2ZTFjNWZhODM1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMTMtMDMtMDYgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2
aWEgV2ViS2l0IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIEN1cnJlbnRseSwg
dGhlIFBQQVBJIGNyZWF0ZXMgYSBXZWJTY29wZWRVc2VyR2VzdHVyZSB1cCB0byAxMCBzZWNvbmRz
CisgICAgICAgIGFmdGVyIGEgY2FsbCB3aXRoIGFuIGN1cnJlbnRseSBhY3RpdmUgdXNlciBnZXN0
dXJlIHdhcyBtYWRlLiBJdCBzaG91bGQKKyAgICAgICAgdXNlIHRoZSBuZXdseSBhZGRlZCBXZWJV
c2VyR2VzdHVyZVRva2VuIHRvIG1ha2Ugc3VyZSB0aGlzIHVzZXIgZ2VzdHVyZQorICAgICAgICBp
cyBub3QgY29uc3VtZWQgbXVsdGlwbGUgdGltZXMuCisKKyAgICAgICAgV2UgY2FuJ3QgcmVxdWly
ZSBhIFdlYlVzZXJHZXN0dXJlVG9rZW4gZm9yIGEgV2ViU2NvcGVkVXNlckdlc3R1cmUsIHNpbmNl
CisgICAgICAgIGUuZy4gdGhlIGV4dGVuc2lvbiBBUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBjcmVh
dGUgYSBXZWJTY29wZWRVc2VyR2VzdHVyZQorICAgICAgICBvdXQgb2YgdGhlIGJsdWUuCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHB1
YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViU2NvcGVkVXNlckdlc3R1cmU6OldlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAg
ICAgICAgKFdlYlNjb3BlZFVzZXJHZXN0dXJlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVXNlckdl
c3R1cmVJbmRpY2F0b3IuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJVc2VyR2Vz
dHVyZUluZGljYXRvcik6CisgICAgICAgICogcHVibGljL1dlYlVzZXJHZXN0dXJlVG9rZW4uaDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NvcGVkVXNlckdl
c3R1cmUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYlVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRv
a2VuOjpXZWJVc2VyR2VzdHVyZVRva2VuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1
cmVUb2tlbjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1cmVUb2tl
bjo6fldlYlVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVy
ZVRva2VuOjppc051bGwpOgorICAgICAgICAqIHNyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNjb3BlZFVzZXJHZXN0dXJlOjppbml0aWFsaXplV2l0aFRv
a2VuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1
cnJlbnRVc2VyR2VzdHVyZVRva2VuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3Jj
L1dlYlVzZXJHZXN0dXJlVG9rZW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJVc2VyR2VzdHVyZUluZGljYXRvci5jcHAuCisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpXZWJVc2VyR2VzdHVyZVRva2Vu
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgV2ViQ29y
ZTo6VXNlckdlc3R1cmVUb2tlbiopOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRv
a2VuOjphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyR2VzdHVyZVRva2VuOjpyZXNl
dCk6CisgICAgICAgICogdGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZUluZGljYXRvci5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEz
LTAzLTA2ICBEYXZpZCBEb3J3aW4gIDxkZG9yd2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Y2hyb21pdW1dIEZpeCB0eXBvOiBkZXN0b3J5UGFnZSgpID0+IGRlc3Ryb3lQYWdlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA5MTQ3MmJmMDg0MWQzMTYyYzQxNzNmMDNjNDA1MDBk
YjY4OGI5MDQxLi4wNmQyNTc5MzcyNTMxMjEwMWY4ODFlYTBiNjViNWYyYzVkZGI0NjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNzcsNiArMjc3LDcgQEAKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYlRpbWVSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YlVSTExvYWRlck9wdGlvbnMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyR2Vz
dHVyZUluZGljYXRvci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYlVzZXJHZXN0dXJl
VG9rZW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVkaWFDbGllbnQuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViVmlldy5oJywKQEAgLTU3Nyw2ICs1NzgsNyBAQAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViU2NvcGVkVXNlckdlc3R1cmUuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlRleHRGaWVsZERlY29yYXRvckNsaWVudC5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwJywKKyAgICAgICAgICAgICAgICAnc3Jj
L1dlYlVzZXJHZXN0dXJlVG9rZW4uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJN
ZWRpYVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdCZW5jaG1hcmtT
dXBwb3J0SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVmlld0JlbmNobWFya1N1
cHBvcnRJbXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggMzhhNGY5NDRh
N2FiN2YxYzQ3NTVkOTY5YjA4Y2FlOWNlYTNmZTZhYS4uYTI2NmRjZGViNWVjYTk5NmE0ZWQ1ZGNi
NDFmZjYwZDM4Yzc5ZTlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMjMs
NiArMTIzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAg
ICAgICAgICAgICd0ZXN0cy9XZWJQbHVnaW5Db250YWluZXJUZXN0LmNwcCcsCisgICAgICAgICAg
ICAndGVzdHMvV2ViVXNlckdlc3R1cmVUb2tlblRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9XZWJTb2NrZXREZWZsYXRlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlVS
TFJlcXVlc3RUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2NvcGVkVXNlckdlc3R1cmUuaAppbmRleCBkOWQ3MDhmYTk2YTU5ZTIyMmFhNGZmMGFl
M2QwNTY3NmY4MGUxNTIyLi5iMjg3NzRhNGJmOWVjZjg1MGU0MWQwNmQ5NDYyNGE1YjFiYzFlNjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY29wZWRVc2Vy
R2VzdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjb3BlZFVz
ZXJHZXN0dXJlLmgKQEAgLTM5LDE3ICszOSwzMCBAQCBjbGFzcyBVc2VyR2VzdHVyZUluZGljYXRv
cjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlVzZXJHZXN0dXJlVG9rZW47CisK
IC8vIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MsIHdoaWxlIGtlcHQgYWxpdmUsIHdpbGwgaW5k
aWNhdGUgdGhhdCB3ZSBhcmUgaW4KIC8vIHRoZSBjb250ZXh0IG9mIGEga25vd24gdXNlciBnZXN0
dXJlLiBUbyB1c2UsIGNyZWF0ZSBvbmUsIHBlcmZvcm0gd2hhdGV2ZXIKIC8vIGFjdGlvbnMgd2Vy
ZSBkb25lIHVuZGVyIGNvbG9yIG9mIGEga25vd24gdXNlciBnZXN0dXJlLCBhbmQgdGhlbiBkZWxl
dGUgaXQuCiAvLyBVc3VhbGx5IHRoaXMgd2lsbCBiZSBkb25lIG9uIHRoZSBzdGFjay4KKy8vCisv
LyBTRUNVUklUWSBXQVJOSU5HOiBEbyBub3QgY3JlYXRlIHNldmVyYWwgaW5zdGFuY2VzIG9mIHRo
aXMgY2xhc3MgZm9yIHRoZSBzYW1lCisvLyB1c2VyIGdlc3R1cmUuIERvaW5nIHNvIG1pZ2h0IGVu
YWJsZSBtYWxpY2lvdXMgY29kZSB0byB3b3JrIGFyb3VuZCBjZXJ0YWluCisvLyByZXN0cmljdGlv
bnMgc3VjaCBhcyBvcGVuaW5nIG11bHRpcGxlIHdpbmRvd3MuCisvLyBJbnN0ZWFkLCBvYnRhaW4g
dGhlIGN1cnJlbnQgV2ViVXNlckdlc3R1cmVUb2tlbiBmcm9tIHRoZQorLy8gV2ViVXNlckdlc3R1
cmVJbmRpY2F0b3IsIGFuZCB1c2UgdGhpcyB0b2tlbiB0byBjcmVhdGUgYQorLy8gV2ViU2NvcGVk
VXNlckdlc3R1cmUuIElmIHRoZSB0b2tlbiB3YXMgYWxyYWR5IGNvbnN1bWVkLCB0aGUgbmV3Cisv
LyBXZWJTY29wZWRVc2VyR2VzdHVyZSB3aWxsIG5vdCBpbmRpY2F0ZSB0aGF0IHdlIGFyZSBpbiB0
aGUgY29udGV4dCBvZiBhIHVzZXIKKy8vIGdlc3R1cmUuCiBjbGFzcyBXZWJTY29wZWRVc2VyR2Vz
dHVyZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViU2NvcGVkVXNlckdlc3R1cmUoY29uc3Qg
V2ViVXNlckdlc3R1cmVUb2tlbiYgdG9rZW4pIHsgaW5pdGlhbGl6ZVdpdGhUb2tlbih0b2tlbik7
IH0KICAgICBXZWJTY29wZWRVc2VyR2VzdHVyZSgpIHsgaW5pdGlhbGl6ZSgpOyB9CiAgICAgfldl
YlNjb3BlZFVzZXJHZXN0dXJlKCkgeyByZXNldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGluaXRpYWxpemUoKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlh
bGl6ZVdpdGhUb2tlbihjb25zdCBXZWJVc2VyR2VzdHVyZVRva2VuJik7CiAgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHJlc2V0KCk7CiAKICAgICBXZWJQcml2YXRlT3duUHRyPFdlYkNvcmU6OlVzZXJH
ZXN0dXJlSW5kaWNhdG9yPiBtX2luZGljYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDU3MTcwODA0
MjhjMGY1MWYwZDllZWExMDdlNzQzYmYwODU0MzQ3MmQuLmE5NjJhNmE4ZTIxYzNiOGE2ZDhmYjkw
ODJmMmE1NjRlZjFmNjc3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuaApAQCAtMzUsNiArMzUsOCBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViVXNlckdlc3R1cmVUb2tlbjsKKwogY2xhc3Mg
V2ViVXNlckdlc3R1cmVJbmRpY2F0b3IgewogcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhIHVzZXIgZ2VzdHVyZSBpcyBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLgpAQCAtNDIsNiAr
NDQsMTEgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGEgY29uc3VtYWJsZSBn
ZXN0dXJlIGV4aXN0cyBhbmQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkLgogICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIGJvb2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisKKyAgICAvLyBS
ZXR1cm5zIGEgdG9rZW4gZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHVzZXIgZ2VzdHVyZS4gSXQg
Y2FuIGJlIHVzZWQgdG8KKyAgICAvLyBjb250aW51ZSBwcm9jZXNzaW5nIHRoZSB1c2VyIGdlc3R1
cmUgbGF0ZXIgb24gdXNpbmcgYQorICAgIC8vIFdlYlNjb3BlZFVzZXJHZXN0dXJlLgorICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIFdlYlVzZXJHZXN0dXJlVG9rZW4gY3VycmVudFVzZXJHZXN0dXJl
VG9rZW4oKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlVzZXJHZXN0dXJlVG9rZW4uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlVzZXJHZXN0dXJlVG9rZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmEzNWFjMDcyMWRmYTUxYTk5YjQ4
YmQ3NjY1NmU4NDRmMmE1N2YwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVXNlckdlc3R1cmVUb2tlbi5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYlVzZXJHZXN0dXJlVG9rZW5faAorI2RlZmluZSBXZWJVc2VyR2VzdHVyZVRva2VuX2gKKwor
I2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcml2YXRlUHRy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVzZXJHZXN0dXJlVG9rZW47Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBBIFdlYlVzZXJHZXN0dXJlVG9rZW4gYWxsb3dzIGZv
ciBzdG9yaW5nIHRoZSB1c2VyIGdlc3R1cmUgc3RhdGUgb2YgdGhlCisvLyBjdXJyZW50bHkgYWN0
aXZlIGNvbnRleHQgYW5kIHJlaW5zdGFudGlhdGluZyBpdCBsYXRlciBvbiB0byBjb250aW51ZQor
Ly8gcHJvY2Vzc2luZyB0aGUgdXNlciBnZXN0dXJlIGluIGNhc2UgaXQgd2FzIG5vdCBjb25zdW1l
ZCBtZWFud2hpbGUuCitjbGFzcyBXZWJVc2VyR2VzdHVyZVRva2VuIHsKK3B1YmxpYzoKKyAgICBX
ZWJVc2VyR2VzdHVyZVRva2VuKCkgeyB9CisgICAgV2ViVXNlckdlc3R1cmVUb2tlbihjb25zdCBX
ZWJVc2VyR2VzdHVyZVRva2VuJiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgV2ViVXNl
ckdlc3R1cmVUb2tlbiYgb3BlcmF0b3I9KGNvbnN0IFdlYlVzZXJHZXN0dXJlVG9rZW4mIG90aGVy
KQorICAgIHsKKyAgICAgICAgYXNzaWduKG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOwor
ICAgIH0KKyAgICB+V2ViVXNlckdlc3R1cmVUb2tlbigpIHsgcmVzZXQoKTsgfQorCisgICAgYm9v
bCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3Rva2VuLmlzTnVsbCgpOyB9CisKKyNpZiBXRUJL
SVRfSU1QTEVNRU5UQVRJT04KKyAgICBleHBsaWNpdCBXZWJVc2VyR2VzdHVyZVRva2VuKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbj4pOworICAgIG9wZXJhdG9yIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbj4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRl
OgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViVXNlckdlc3R1cmVUb2tl
biYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworCisgICAgV2ViUHJpdmF0ZVB0
cjxXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuPiBtX3Rva2VuOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJVc2VyR2VzdHVyZVRva2VuX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjb3BlZFVzZXJHZXN0dXJlLmNwcAppbmRleCA2
ODQyNmZjYWViMjBlNDJmNTYzMzQzNDgzMjAzYTc0Y2QwZjlhZTcxLi43YWI5MTI1ZWUwMGFhMTBm
ZTViMWRmOTU5MDUwMjI3MjUyY2M2N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTY29wZWRVc2VyR2VzdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2NvcGVkVXNlckdlc3R1cmUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiV2ViU2NvcGVkVXNlckdlc3R1cmUuaCIKIAogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmgiCisjaW5jbHVkZSAiV2ViVXNlckdlc3R1cmVUb2tlbi5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNDAsNiArNDEsMTIgQEAgdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6
aW5pdGlhbGl6ZSgpCiAgICAgbV9pbmRpY2F0b3IucmVzZXQobmV3IFdlYkNvcmU6OlVzZXJHZXN0
dXJlSW5kaWNhdG9yKFdlYkNvcmU6OkRlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpKTsK
IH0KIAordm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6aW5pdGlhbGl6ZVdpdGhUb2tlbihjb25z
dCBXZWJVc2VyR2VzdHVyZVRva2VuJiB0b2tlbikKK3sKKyAgICBpZiAoIXRva2VuLmlzTnVsbCgp
KQorICAgICAgICBtX2luZGljYXRvci5yZXNldChuZXcgV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRp
Y2F0b3IodG9rZW4pKTsKK30KKwogdm9pZCBXZWJTY29wZWRVc2VyR2VzdHVyZTo6cmVzZXQoKQog
ewogICAgIG1faW5kaWNhdG9yLnJlc2V0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IDA0MmZlMTczMzc3
OGM5MDU3N2M2OTM4MWIxMzhkNmRiNjYxMGZjYjguLmUzNzFiZTkyZjc3NzFkZDMzMTExMTcxZTM0
YjA3ZjQxZmM5NDk1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJVc2VyR2VzdHVyZUluZGljYXRvci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2VuLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC00Nyw0ICs0OCw5IEBAIGJvb2wgV2ViVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpCiAgICAgcmV0dXJuIFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpjb25zdW1lVXNlckdlc3R1cmUoKTsKIH0KIAorV2ViVXNlckdlc3R1cmVUb2tlbiBXZWJV
c2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlVG9rZW4oKQoreworICAgIHJl
dHVybiBXZWJVc2VyR2VzdHVyZVRva2VuKFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VG9r
ZW4oKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVc2VyR2VzdHVyZVRva2VuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjIzNGVl
ZWY4OTNmYTg1NzJhNTRhYzk5OTA4YThhZTU3ZjcyMTRiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlckdlc3R1cmVUb2tlbi5jcHAKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2VzdHVyZVRva2Vu
LmgiCisKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViVXNlckdlc3R1cmVUb2tlbjo6V2ViVXNlckdlc3R1cmVUb2tlbihQYXNzUmVm
UHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+IHRva2VuKQoreworICAgIG1fdG9rZW4gPSB0
b2tlbjsKK30KKworV2ViVXNlckdlc3R1cmVUb2tlbjo6b3BlcmF0b3IgUGFzc1JlZlB0cjxXZWJD
b3JlOjpVc2VyR2VzdHVyZVRva2VuPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdG9rZW4uZ2V0
KCk7Cit9CisKK3ZvaWQgV2ViVXNlckdlc3R1cmVUb2tlbjo6YXNzaWduKGNvbnN0IFdlYlVzZXJH
ZXN0dXJlVG9rZW4mIG90aGVyKQoreworICAgIG1fdG9rZW4gPSBvdGhlci5tX3Rva2VuOworfQor
Cit2b2lkIFdlYlVzZXJHZXN0dXJlVG9rZW46OnJlc2V0KCkKK3sKKyAgICBtX3Rva2VuLnJlc2V0
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYlVzZXJHZXN0dXJlVG9rZW5UZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZTlhMWU2OTE0ZjNmOGE1Y2UwNDA0NDliOTE4Y2MwMzFmODZhMDRkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJVc2VyR2VzdHVyZVRva2VuVGVz
dC5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldl
YlVzZXJHZXN0dXJlVG9rZW4uaCIKKworI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgi
CisjaW5jbHVkZSAiV2ViU2NvcGVkVXNlckdlc3R1cmUuaCIKKyNpbmNsdWRlICJXZWJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIHsKKwor
VEVTVChXZWJVc2VyR2VzdHVyZVRva2VuVGVzdCwgQmFzaWMpCit7CisgICAgV2ViVXNlckdlc3R1
cmVUb2tlbiB0b2tlbjsKKworICAgIHsKKyAgICAgICAgV2ViU2NvcGVkVXNlckdlc3R1cmUgaW5k
aWNhdG9yKHRva2VuKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKFdlYlVzZXJHZXN0dXJlSW5kaWNh
dG9yOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAg
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoV2ViVXNlckdlc3R1cmVJbmRpY2F0b3I6Omlz
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgICAgICB0b2tlbiA9IFdlYlVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmVUb2tlbigpOworICAgIH0KKworICAgIEVYUEVD
VF9GQUxTRShXZWJVc2VyR2VzdHVyZUluZGljYXRvcjo6aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSk7CisKKyAgICB7CisgICAgICAgIFdlYlNjb3BlZFVzZXJHZXN0dXJlIGluZGljYXRvcih0b2tl
bik7CisgICAgICAgIEVYUEVDVF9UUlVFKFdlYlVzZXJHZXN0dXJlSW5kaWNhdG9yOjppc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICAgICAgV2ViVXNlckdlc3R1cmVJbmRpY2F0b3I6OmNv
bnN1bWVVc2VyR2VzdHVyZSgpOworICAgICAgICBFWFBFQ1RfRkFMU0UoV2ViVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgV2ViU2NvcGVkVXNlckdlc3R1cmUgaW5kaWNhdG9yKHRva2VuKTsKKyAgICAgICAgRVhQ
RUNUX0ZBTFNFKFdlYlVzZXJHZXN0dXJlSW5kaWNhdG9yOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpKTsKKyAgICB9Cit9CisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>