<?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>151224</bug_id>
          
          <creation_ts>2015-11-12 14:24:08 -0800</creation_ts>
          <short_desc>Remove swipe snapshot before main document load if scroll position is already restored</short_desc>
          <delta_ts>2015-12-01 11:57:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1141636</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-12 14:24:08 -0800</bug_when>
    <thetext>Remove swipe snapshot before main document load if scroll position is already restored</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141637</commentid>
    <comment_count>1</comment_count>
      <attachid>265434</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-12 14:24:50 -0800</bug_when>
    <thetext>Created attachment 265434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141644</commentid>
    <comment_count>2</comment_count>
      <attachid>265436</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-12 14:38:46 -0800</bug_when>
    <thetext>Created attachment 265436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141867</commentid>
    <comment_count>3</comment_count>
      <attachid>265484</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-13 10:19:16 -0800</bug_when>
    <thetext>Created attachment 265484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142084</commentid>
    <comment_count>4</comment_count>
      <attachid>265484</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-14 18:50:58 -0800</bug_when>
    <thetext>Comment on attachment 265484
Patch

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

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:207
&gt; +    WTFLogAlways(&quot;requestScrollPositionUpdate %d&quot;, scrollPosition.y());

Did you mean to leave this in?

&gt; Source/WebKit2/UIProcess/ViewGestureController.cpp:126
&gt; +#if PLATFORM(MAC)
&gt; +    // On Mac, we check if the scroll position restoration succeeded by comparing the
&gt; +    // requested and actual scroll position. It&apos;s possible that we will never succeed in restoring
&gt; +    // the exact scroll position we wanted, in the case of a dynamic page, but we know that by
&gt; +    // main frame load time that we&apos;ve gotten as close as we&apos;re going to get, so stop waiting.
&gt; +    // We don&apos;t want to do this on iOS because scroll position restoration is baked into the transaction.
&gt; +    m_snapshotRemovalTracker.cancelOutstandingEvent(SnapshotRemovalTracker::ScrollPositionRestoration);
&gt; +#endif

This mentions Mac and iOS; not sure if other platforms would be more like Mac or more like iOS.

&gt; Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm:758
&gt; +{
&gt; +
&gt; +}

I’d omit the blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142107</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-14 23:20:52 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 265484 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265484&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:207
&gt; &gt; +    WTFLogAlways(&quot;requestScrollPositionUpdate %d&quot;, scrollPosition.y());
&gt; 
&gt; Did you mean to leave this in?

Definitely not.

&gt; &gt; Source/WebKit2/UIProcess/ViewGestureController.cpp:126
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +    // On Mac, we check if the scroll position restoration succeeded by comparing the
&gt; &gt; +    // requested and actual scroll position. It&apos;s possible that we will never succeed in restoring
&gt; &gt; +    // the exact scroll position we wanted, in the case of a dynamic page, but we know that by
&gt; &gt; +    // main frame load time that we&apos;ve gotten as close as we&apos;re going to get, so stop waiting.
&gt; &gt; +    // We don&apos;t want to do this on iOS because scroll position restoration is baked into the transaction.
&gt; &gt; +    m_snapshotRemovalTracker.cancelOutstandingEvent(SnapshotRemovalTracker::ScrollPositionRestoration);
&gt; &gt; +#endif
&gt; 
&gt; This mentions Mac and iOS; not sure if other platforms would be more like
&gt; Mac or more like iOS.

You raise a good point. Really, this should be &quot;uses UI-side compositing/transactional scrolling/something&quot;, and we&apos;d want the &quot;iOS&quot; behavior if you were using UI-side compositing on Mac. We don&apos;t have a fantastic way to tell right now, but we should. I&apos;ll come up with something.

&gt; &gt; Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm:758
&gt; &gt; +{
&gt; &gt; +
&gt; &gt; +}
&gt; 
&gt; I’d omit the blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145307</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-01 11:36:53 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 265484 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=265484&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:207
&gt; &gt; &gt; +    WTFLogAlways(&quot;requestScrollPositionUpdate %d&quot;, scrollPosition.y());
&gt; &gt; 
&gt; &gt; Did you mean to leave this in?
&gt; 
&gt; Definitely not.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/ViewGestureController.cpp:126
&gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; +    // On Mac, we check if the scroll position restoration succeeded by comparing the
&gt; &gt; &gt; +    // requested and actual scroll position. It&apos;s possible that we will never succeed in restoring
&gt; &gt; &gt; +    // the exact scroll position we wanted, in the case of a dynamic page, but we know that by
&gt; &gt; &gt; +    // main frame load time that we&apos;ve gotten as close as we&apos;re going to get, so stop waiting.
&gt; &gt; &gt; +    // We don&apos;t want to do this on iOS because scroll position restoration is baked into the transaction.
&gt; &gt; &gt; +    m_snapshotRemovalTracker.cancelOutstandingEvent(SnapshotRemovalTracker::ScrollPositionRestoration);
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; This mentions Mac and iOS; not sure if other platforms would be more like
&gt; &gt; Mac or more like iOS.
&gt; 
&gt; You raise a good point. Really, this should be &quot;uses UI-side
&gt; compositing/transactional scrolling/something&quot;, and we&apos;d want the &quot;iOS&quot;
&gt; behavior if you were using UI-side compositing on Mac. We don&apos;t have a
&gt; fantastic way to tell right now, but we should. I&apos;ll come up with something.

... but in another patch, because it is going to be a sizable project to get ViewGestureController to work correctly based on DrawingArea implementation instead of platform ifdefs.

&gt; &gt; &gt; Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm:758
&gt; &gt; &gt; +{
&gt; &gt; &gt; +
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; I’d omit the blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145320</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-01 11:57:35 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/192898</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265434</attachid>
            <date>2015-11-12 14:24:50 -0800</date>
            <delta_ts>2015-11-12 14:38:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151224-20151112142444.patch</filename>
            <type>text/plain</type>
            <size>17163</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1YWNjZjRkMzZlOTdh
NzFiZDc1ZDM1OWJmNTE3MTllZTA0Y2JlOC4uNmQzMzhkMjgzNDBlNTEyNzg4MWIzMjM0M2IwOWFm
M2UyNjBhNTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTExLTEyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lw
ZSBzbmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBp
cyBhbHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJv
bGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgRWFjaCB0
aW1lIHdlIHRyeSB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24sIHNlZSBpZiB0aGUgcmVx
dWVzdGVkCisgICAgICAgIHNjcm9sbCBwb3NpdGlvbiBpcyBzb21ldGhpbmcgd2UgY2FuIHNjcm9s
bCB0byBieSBnb2luZyB0aHJvdWdoIFNjcm9sbFZpZXcncworICAgICAgICBzY3JvbGwgcG9zaXRp
b24gY29uc3RyYWludCBsb2dpYy4gSWYgd2UgY2FuIHNjcm9sbCB0aGVyZSwgdGVsbCBvdXIgY2xp
ZW50CisgICAgICAgIChhbmQgZXZlbnR1YWxseSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIpIHRoYXQg
d2Ugc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRoZQorICAgICAgICBzY3JvbGwgcG9zaXRpb24hCisK
IDIwMTUtMTEtMTAgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDcmFzaCBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvcGFyc2VyL3N0cmlwLXNj
cmlwdC1hdHRycy1vbi1pbnB1dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcyNTA2NTAxOWM2MDRmNWFm
ZDdkZjUyODA2Mjk1OTI3ZTUyMmNjMi4uMzY4MTY2YzI5ZTkwYmZlY2IzMjJlNTIyYzhkNzBjMDkx
YTg1NTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTExLTEyICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lwZSBz
bmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBpcyBh
bHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICBQbHVtYiBkaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24gdGhyb3VnaCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgKHlp
a2VzISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Ig
YW55IG1vcmUgbG9hZHMgaWYgd2UgZ2V0IHRvIGZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC4K
KworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZy
YW1lTG9hZFRlcm1pbmFsU3RhdGUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Igc2Nyb2xs
IHBvc2l0aW9uIHJlc3RvcmF0aW9uIGlmIHdlIG1ha2UgaXQgdG8gbWFpbiBmcmFtZSBsb2FkLAor
ICAgICAgICBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmNlIHdlIHdvbid0IGJlIGFibGUgdG8gcmVz
dG9yZSB0aGUgb2xkIHNjcm9sbCBwb3NpdGlvbiwgYW5kCisgICAgICAgIGJ5IG1haW4gZnJhbWUg
bG9hZCB0aW1lIHdlJ3ZlIHRyaWVkIGFzIGhhcmQgYXMgd2UncmUgZ29pbmcgdG8gdG8gcmVzdG9y
ZSBpdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2Vz
dHVyZSk6CisgICAgICAgIE1ha2Ugc29tZSBsZWdhY3ktc3R5bGUtb25seSBjb2RlIGNsZWFyZXIg
dGhhdCBpdCdzIGxlZ2FjeS1zdHlsZS1vbmx5LgorICAgICAgICBXYWl0IGZvciBzY3JvbGwgcG9z
aXRpb24gcmVzdG9yYXRpb24uCisKIDIwMTUtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHplcm8tZGVs
YXkgdGltZXIgZnJvbSBzd2lwZSBzbmFwc2hvdCByZW1vdmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDI4MjFjYmIzMTFjOTFkZGYzODkyZTUzN2Y3ZTI5
YzUxMjhlNjc5Y2UuLmFmNzFmMTI5YTJlNGQzMTU3MGM1OTYwMTgwYjMzMTExNGVlZGVmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNDgsNiArMzQ4
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgeyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5k
ZXggN2UwY2FiYTAyOGIyYzg4OTVmNjhjYjUzMjViZDZmYjZlZTNkNzY3Yy4uOTY2ZWZjZjMyZmQx
ZjA5M2JjMDkyOWVlNzg5ODM5Nzc1ZDIyYjM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0xNTMsMTAgKzE1MywyMCBAQCB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIERv
bid0IHJlc3RvcmUgc2Nyb2xsIHBvaW50IG9uIGlPUyBhcyBGcmFtZUxvYWRlckNsaWVudDo6cmVz
dG9yZVZpZXdTdGF0ZSgpIGRvZXMgdGhhdC4KICAgICBpZiAodmlldyAmJiAhdmlldy0+d2FzU2Ny
b2xsZWRCeVVzZXIoKSkgewogICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Cisg
ICAgICAgIGF1dG8gZGVzaXJlZFNjcm9sbFBvc2l0aW9uID0gbV9jdXJyZW50SXRlbS0+c2Nyb2xs
UG9pbnQoKTsKKwogICAgICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
bV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkpCi0gICAgICAgICAgICBwYWdlLT5zZXRQ
YWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52
aWV3U2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAg
ICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFj
dG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSwgZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJy
ZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3Np
dGlvbihkZXNpcmVkU2Nyb2xsUG9zaXRpb24pOworCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwg
cG9zaXRpb24gZG9lc24ndCBoYXZlIHRvIGJlIGNsYW1wZWQsIGNvbnNpZGVyIGl0IHN1Y2Nlc3Nm
dWxseSByZXN0b3JlZC4KKyAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAg
ICAgICAgICAgYXV0byBhZGp1c3RlZERlc2lyZWRTY3JvbGxQb3NpdGlvbiA9IHZpZXctPmFkanVz
dFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIGlmIChkZXNpcmVkU2Nyb2xsUG9zaXRpb24gPT0gYWRqdXN0ZWREZXNpcmVkU2Nyb2xs
UG9zaXRpb24pCisgICAgICAgICAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgfQorCiAgICAgfQogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDkwOWNjOTY3ZjU1ODFiOGI5MTYxYzExNTdiNjkyOGMz
MmNiNWNjZWEuLmNjOTg4ZTJjOGI4NWEyYjA1YjQwZDhhNThmNDEyN2M0ZGJkMzhkN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMDQsNiArMjA0LDcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3JiBmcmFt
ZVZpZXcKIAogYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKIHsKKyAgICBXVEZMb2dBbHdheXMoInJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSAlZCIsIHNjcm9sbFBvc2l0aW9uLnkoKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQobV9wYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaAppbmRleCAwYzE4ZDdiYjBjMzZhMGQwNzdmNjFlNmU1ZDk5OTE4NzVkNjkx
NjQwLi4xOGNmMThlZjViYzI3YzcwNTFlOGVjZWVlMGUxMjIxZjUxN2U0ZDUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDI0LDYgKzQyNCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
TlNFdmVudCAqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmVG
cm9tVmlld09ubHkoTlNFdmVudCAqKTsKIAorICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCk7CisKICAgICB2b2lkIHNldFRvdGFsSGVpZ2h0T2ZCYW5uZXJzKENHRmxvYXQgdG90YWxI
ZWlnaHRPZkJhbm5lcnMpIHsgbV90b3RhbEhlaWdodE9mQmFubmVycyA9IHRvdGFsSGVpZ2h0T2ZC
YW5uZXJzOyB9CiAgICAgQ0dGbG9hdCB0b3RhbEhlaWdodE9mQmFubmVycygpIGNvbnN0IHsgcmV0
dXJuIG1fdG90YWxIZWlnaHRPZkJhbm5lcnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGQxYmY1ZGVhMWI2Nzk0ZGRmN2Q5NWEwZTkx
OGU2YzNmYzE2MzFhMzQuLjlkOWExOTkxNDAyNjc3YzhkYWFkNDEwZDY4ZjdjMTIzZDc1MWE2NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTMyMTAsNiArMzIxMCwxMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RI
YW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQgKmV2ZW50KQogI2VuZGlmCiB9CiAK
K3ZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYg
KG1fZ2VzdHVyZUNvbnRyb2xsZXIpCisgICAgICAgIG1fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKICAgICBpZiAo
W2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IGVjM2Q3ZDEyYTZjMWYyMTVhMWI2OWMzM2QxNzMwMDhiMTNjZjAwMjcuLjIyZmNi
NDBlNjY5ZTZkMmI0NmQ4MTc5M2M4YzEzYzVkZDhjYjFjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaApAQCAtMzU5LDYgKzM1OSw4IEBAIHB1YmxpYzoKICNpZiBVU0UoR1NU
UkVBTUVSKQogICAgIHZpcnR1YWwgYm9vbCBkZWNpY2VQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01l
ZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QmKSA9IDA7CiAjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
aW5kZXggMmVhMmRkNzE5YTgzNDkxYzBhZDAwOTJiMWY5MDZjODI4MDg3NDllNi4uMzg0Y2JhMzg0
ZTQ2Mzc3MTlhNzljMGVkNWI0NTE2ZDA3YzEwNDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTg2LDEyICs4Niw5IEBA
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoKQogICAgIGlmICghbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmV2ZW50
T2NjdXJyZWQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6VmlzdWFsbHlOb25FbXB0eUxheW91dCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxP
dXRzdGFuZGluZ0V2ZW50KFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQpOwor
ICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGluZ0V2ZW50KFNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OlN1YnJlc291cmNlTG9hZHMpOwogICAgIG1fc25hcHNob3RSZW1v
dmFsVHJhY2tlci5zdGFydFdhdGNoZG9nKHN3aXBlU25hcHNob3RSZW1vdmFsV2F0Y2hkb2dBZnRl
ckZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dER1cmF0aW9uKTsKLQotICAgIC8vIEZJWE1FOiBJ
ZGVhbGx5LCB0aGlzIHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY2FuY2VsIHdhaXRpbmcgZm9yIHRo
ZSBtYWluIGZyYW1lIGxvYWQsCi0gICAgLy8gYW5kIHdvdWxkIG1ha2Ugc25hcHNob3QgcmVtb3Zh
bCBmYXN0ZXIsIGJ1dCB3ZSBuZWVkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbgotICAgIC8vIHRv
IGJlIHVzYWJsZS9hY2N1cmF0ZSBvbiBhbGwgcGxhdGZvcm1zIGJlZm9yZSBkb2luZyB0aGF0LCBv
ciB3ZSBnZXQgYSBmbGFzaAotICAgIC8vIG9mIHRoZSBuZXcgcGFnZSBpbiB0aGUgd3JvbmcgcG9z
aXRpb24uCiB9CiAKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZXBhaW50QWZ0ZXJO
YXZpZ2F0aW9uKCkKQEAgLTExOSw2ICsxMTYsMTUgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKQogICAgIC8vIGVub3VnaCBm
b3IgdXMgdG9vLgogICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGlu
Z0V2ZW50KFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwog
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIC8vIE9uIE1hYywgd2UgY2hlY2sgaWYgdGhlIHNjcm9s
bCBwb3NpdGlvbiByZXN0b3JhdGlvbiBzdWNjZWVkZWQgYnkgY29tcGFyaW5nIHRoZQorICAgIC8v
IHJlcXVlc3RlZCBhbmQgYWN0dWFsIHNjcm9sbCBwb3NpdGlvbi4gSXQncyBwb3NzaWJsZSB0aGF0
IHdlIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiByZXN0b3JpbmcKKyAgICAvLyB0aGUgZXhhY3Qgc2Ny
b2xsIHBvc2l0aW9uIHdlIHdhbnRlZCwgaW4gdGhlIGNhc2Ugb2YgYSBkeW5hbWljIHBhZ2UsIGJ1
dCB3ZSBrbm93IHRoYXQgYnkKKyAgICAvLyBtYWluIGZyYW1lIGxvYWQgdGltZSB0aGF0IHdlJ3Zl
IGdvdHRlbiBhcyBjbG9zZSBhcyB3ZSdyZSBnb2luZyB0byBnZXQsIHNvIHN0b3Agd2FpdGluZy4K
KyAgICAvLyBXZSBkb24ndCB3YW50IHRvIGRvIHRoaXMgb24gaU9TIGJlY2F1c2Ugc2Nyb2xsIHBv
c2l0aW9uIHJlc3RvcmF0aW9uIGlzIGJha2VkIGludG8gdGhlIHRyYW5zYWN0aW9uLgorICAgIG1f
c25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGluZ0V2ZW50KFNuYXBzaG90UmVt
b3ZhbFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pOworI2VuZGlmCisKICAgICBj
aGVja0ZvckFjdGl2ZUxvYWRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYzcxMmExYWE3M2RkNzg3NjI0MjU0OWEyNWQzNjQzM2IzZjZjNDU2
NC4uYjk3YzI2MGJjMWQ2NTMyNGIzNmY1MmQ5ZjM1MGNjNjEyZTE3ZjYwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYwODMsNCArNjA4Myw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KGJvb2wgc2hv
dWxkU2NhbGVWaWV3VG9GaXREb2N1CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KHNob3VsZFNjYWxlVmlld1RvRml0
RG9jdW1lbnQpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKQoreworICAgIG1fcGFnZUNsaWVudC5kaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTQyYmJiYjY1YzAwNzA4ZDBmOTliOTY4ZGRiODM2YTk1
NmEyMTY0MC4uNDkyYmRmMDc5MjEzMTdhOTdiMDU5MTJjNjZiMjRjMTExMmMzOWRjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTA4Myw2ICsxMDgzLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3QgbGF5b3V0TWlsZXN0b25lcyk7
CiAKKyAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworCiBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWludDY0X3QgcGFn
ZUlELCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDY0ZjBmZTk5YzIwZGFkMzllNTdkNTE5YzU0NzU3NDdmM2I4MTU0
ZTYuLmNjOWY0MTBlYjBhNDBhMDQ3YWM3MTdlY2VkNmY2MWU2MTM0OWUzNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQ1
LDQgKzQ0NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
cyhTdHJpbmcgZGV0YWlscywgU3RyaW5nIGRlc2NyaXB0aW9uKQogI2VuZGlmCisKKyAgICBEaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDRhOTFjMDQ5ODgxZTcwYTQ3ZWVhNDVmZDYwMDM3NzQz
YzMzYTQ0MWMuLmRjOGMwZGU1N2I0ZmU0MDUxMWYyY2YxMmM4NjljNTMxNGM1OWJhYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTI0MCw2
ICsyNDAsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHJlZlZpZXcoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZWaWV3KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCmluZGV4IDc1YzFjZWFiZWNlZDE4ZjhmZDJmM2E0NWJjYTFiMGM3MTZlYWY3M2Mu
LmUwNDY3MDFiM2FhMWFkYjIzOTY3Y2VlMjgwMjhmZWY4YTViYzRhYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtODM0LDYgKzgzNCwx
MSBAQCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqUGFnZUNsaWVudEltcGw6OnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KCkKIH0KICNlbmRpZgogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKQoreworICAgIG1faW1wbC0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbQppbmRleCA2NmM4YjBmOWRjOTk3NWJmMmY1ZGY3MDVjNWRlY2ZhZGRj
YjQ5MDAwLi41NWNmYWFiOGNhNGEzOWRiZTdjYTU2MjhkZGVlN2I1NTRmNDI0MjUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlck1hYy5tbQpAQCAtNzY1LDEwICs3NjUsMTEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAog
CiAgICAgbV9zd2lwZUNhbmNlbGxhdGlvblRyYWNrZXIgPSBudWxscHRyOwogCisjaWYgRU5BQkxF
KExFR0FDWV9TV0lQRV9TSEFET1dfU1RZTEUpCiAgICAgQ0FMYXllciAqcm9vdExheWVyID0gbV93
ZWJQYWdlUHJveHkuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpOwotCi0gICAgW3Jv
b3RMYXllciBzZXRTaGFkb3dPcGFjaXR5OjBdOwotICAgIFtyb290TGF5ZXIgc2V0U2hhZG93UmFk
aXVzOjBdOworICAgIHJvb3RMYXllci5zaGFkb3dPcGFjaXR5ID0gMDsKKyAgICByb290TGF5ZXIu
c2hhZG93UmFkaXVzID0gMDsKKyNlbmRpZgogCiAgICAgaWYgKGNhbmNlbGxlZCkgewogICAgICAg
ICByZW1vdmVTd2lwZVNuYXBzaG90KCk7CkBAIC03ODUsMTEgKzc4NiwxMCBAQCB2b2lkIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
IHRhcmdldEl0ZW0sCiAgICAgbV93ZWJQYWdlUHJveHkubmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQo
dHJ1ZSwgKnRhcmdldEl0ZW0pOwogICAgIG1fd2ViUGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0
ZW0odGFyZ2V0SXRlbSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW5j
bHVkZSBzY3JvbGwgcG9zaXRpb24gcmVzdG9yYXRpb24gaGVyZSwKLSAgICAvLyBhbmQgdGhlbiBj
YW4gYWRkcmVzcyB0aGUgRklYTUUgaW4gZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
TWFpbkZyYW1lLgogICAgIFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OkV2ZW50cyBkZXNpcmVkRXZl
bnRzID0gU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6VmlzdWFsbHlOb25FbXB0eUxheW91dAogICAg
ICAgICB8IFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQKLSAgICAgICAgfCBT
bmFwc2hvdFJlbW92YWxUcmFja2VyOjpTdWJyZXNvdXJjZUxvYWRzOworICAgICAgICB8IFNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OlN1YnJlc291cmNlTG9hZHMKKyAgICAgICAgfCBTbmFwc2hvdFJl
bW92YWxUcmFja2VyOjpTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uOwogICAgIGlmIChyZW5kZXJU
cmVlU2l6ZSkKICAgICAgICAgZGVzaXJlZEV2ZW50cyB8PSBTbmFwc2hvdFJlbW92YWxUcmFja2Vy
OjpSZW5kZXJUcmVlU2l6ZVRocmVzaG9sZDsKICAgICBtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIu
c3RhcnQoZGVzaXJlZEV2ZW50cywgW3RoaXNdIHsgdGhpcy0+Zm9yY2VSZXBhaW50SWZOZWVkZWQo
KTsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGJjNTk0MjZkMjRi
ODAzYzRjYjJjZTlkMTYxNDVkMzQzNzM2N2I1MDcuLmJkZWExMzg1M2FhYTAxOTdkZTk0NGU1N2U0
NDI1MjBmMDY3NDgzODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0x
NzIxLDQgKzE3MjEsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJlZmV0Y2hETlMo
Y29uc3QgU3RyaW5nJiBob3N0bmFtZSkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVm
ZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlBh
Z2UtPmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhY2I1NWNmNGU0NjNmZGUxYjI1
YzQ5MWM0YjE5OWY4M2ViOGU0OGE2Li5lNGE0MTU1MTczMDIwM2EwMGI2ZGJjZTE2ODE4ZWM0MjUw
Yzc4MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNDQsNiArMjQ0LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAKKyAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOworCiAg
ICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRyPFBsdWdpblZpZXc+IG1fcGx1Z2luVmll
dzsKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW5WaWV3OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ0YjA5ZmRlNzEwZWFi
MmRlOWJjOTJlZGQxOGI5MDJkZjMxN2QwNzUuLjEyOTgzYTBhOGYyZTU1NGQ4ZWYzMzE4NzQ4YzVm
ZGY1NTRiYWFmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTUwNzYsNCArNTA3Niw5IEBAIHZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hEaWRM
YXlvdXQoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzKQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkTGF5b3V0KG1pbGVzdG9uZXMpKTsKIH0KIAordm9pZCBX
ZWJQYWdlOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGYxMTRkYzFlM2FjMjJiYmY4YTkzYTA2ZjkyMGYzOTEwZmZiZGE4MjAuLmI5ZDI2
NWNhZTM5ZjBiYWZhZTAxM2NjNWI4NjQwZThjZGI4OWFmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTI5LDYgKzkyOSw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyk7
CiAKKyAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworCiBwcml2YXRlOgogICAg
IFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265436</attachid>
            <date>2015-11-12 14:38:46 -0800</date>
            <delta_ts>2015-11-13 10:19:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151224-20151112143840.patch</filename>
            <type>text/plain</type>
            <size>19606</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1YWNjZjRkMzZlOTdh
NzFiZDc1ZDM1OWJmNTE3MTllZTA0Y2JlOC4uNmQzMzhkMjgzNDBlNTEyNzg4MWIzMjM0M2IwOWFm
M2UyNjBhNTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTExLTEyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lw
ZSBzbmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBp
cyBhbHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJv
bGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgRWFjaCB0
aW1lIHdlIHRyeSB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24sIHNlZSBpZiB0aGUgcmVx
dWVzdGVkCisgICAgICAgIHNjcm9sbCBwb3NpdGlvbiBpcyBzb21ldGhpbmcgd2UgY2FuIHNjcm9s
bCB0byBieSBnb2luZyB0aHJvdWdoIFNjcm9sbFZpZXcncworICAgICAgICBzY3JvbGwgcG9zaXRp
b24gY29uc3RyYWludCBsb2dpYy4gSWYgd2UgY2FuIHNjcm9sbCB0aGVyZSwgdGVsbCBvdXIgY2xp
ZW50CisgICAgICAgIChhbmQgZXZlbnR1YWxseSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIpIHRoYXQg
d2Ugc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRoZQorICAgICAgICBzY3JvbGwgcG9zaXRpb24hCisK
IDIwMTUtMTEtMTAgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDcmFzaCBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvcGFyc2VyL3N0cmlwLXNj
cmlwdC1hdHRycy1vbi1pbnB1dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcyNTA2NTAxOWM2MDRmNWFm
ZDdkZjUyODA2Mjk1OTI3ZTUyMmNjMi4uMzY4MTY2YzI5ZTkwYmZlY2IzMjJlNTIyYzhkNzBjMDkx
YTg1NTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTExLTEyICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lwZSBz
bmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBpcyBh
bHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICBQbHVtYiBkaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24gdGhyb3VnaCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgKHlp
a2VzISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Ig
YW55IG1vcmUgbG9hZHMgaWYgd2UgZ2V0IHRvIGZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC4K
KworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZy
YW1lTG9hZFRlcm1pbmFsU3RhdGUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Igc2Nyb2xs
IHBvc2l0aW9uIHJlc3RvcmF0aW9uIGlmIHdlIG1ha2UgaXQgdG8gbWFpbiBmcmFtZSBsb2FkLAor
ICAgICAgICBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmNlIHdlIHdvbid0IGJlIGFibGUgdG8gcmVz
dG9yZSB0aGUgb2xkIHNjcm9sbCBwb3NpdGlvbiwgYW5kCisgICAgICAgIGJ5IG1haW4gZnJhbWUg
bG9hZCB0aW1lIHdlJ3ZlIHRyaWVkIGFzIGhhcmQgYXMgd2UncmUgZ29pbmcgdG8gdG8gcmVzdG9y
ZSBpdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2Vz
dHVyZSk6CisgICAgICAgIE1ha2Ugc29tZSBsZWdhY3ktc3R5bGUtb25seSBjb2RlIGNsZWFyZXIg
dGhhdCBpdCdzIGxlZ2FjeS1zdHlsZS1vbmx5LgorICAgICAgICBXYWl0IGZvciBzY3JvbGwgcG9z
aXRpb24gcmVzdG9yYXRpb24uCisKIDIwMTUtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHplcm8tZGVs
YXkgdGltZXIgZnJvbSBzd2lwZSBzbmFwc2hvdCByZW1vdmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDI4MjFjYmIzMTFjOTFkZGYzODkyZTUzN2Y3ZTI5
YzUxMjhlNjc5Y2UuLmFmNzFmMTI5YTJlNGQzMTU3MGM1OTYwMTgwYjMzMTExNGVlZGVmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNDgsNiArMzQ4
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgeyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5k
ZXggN2UwY2FiYTAyOGIyYzg4OTVmNjhjYjUzMjViZDZmYjZlZTNkNzY3Yy4uOTY2ZWZjZjMyZmQx
ZjA5M2JjMDkyOWVlNzg5ODM5Nzc1ZDIyYjM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0xNTMsMTAgKzE1MywyMCBAQCB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIERv
bid0IHJlc3RvcmUgc2Nyb2xsIHBvaW50IG9uIGlPUyBhcyBGcmFtZUxvYWRlckNsaWVudDo6cmVz
dG9yZVZpZXdTdGF0ZSgpIGRvZXMgdGhhdC4KICAgICBpZiAodmlldyAmJiAhdmlldy0+d2FzU2Ny
b2xsZWRCeVVzZXIoKSkgewogICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Cisg
ICAgICAgIGF1dG8gZGVzaXJlZFNjcm9sbFBvc2l0aW9uID0gbV9jdXJyZW50SXRlbS0+c2Nyb2xs
UG9pbnQoKTsKKwogICAgICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
bV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkpCi0gICAgICAgICAgICBwYWdlLT5zZXRQ
YWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52
aWV3U2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAg
ICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFj
dG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSwgZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJy
ZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3Np
dGlvbihkZXNpcmVkU2Nyb2xsUG9zaXRpb24pOworCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwg
cG9zaXRpb24gZG9lc24ndCBoYXZlIHRvIGJlIGNsYW1wZWQsIGNvbnNpZGVyIGl0IHN1Y2Nlc3Nm
dWxseSByZXN0b3JlZC4KKyAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAg
ICAgICAgICAgYXV0byBhZGp1c3RlZERlc2lyZWRTY3JvbGxQb3NpdGlvbiA9IHZpZXctPmFkanVz
dFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIGlmIChkZXNpcmVkU2Nyb2xsUG9zaXRpb24gPT0gYWRqdXN0ZWREZXNpcmVkU2Nyb2xs
UG9zaXRpb24pCisgICAgICAgICAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgfQorCiAgICAgfQogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDkwOWNjOTY3ZjU1ODFiOGI5MTYxYzExNTdiNjkyOGMz
MmNiNWNjZWEuLmNjOTg4ZTJjOGI4NWEyYjA1YjQwZDhhNThmNDEyN2M0ZGJkMzhkN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMDQsNiArMjA0LDcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3JiBmcmFt
ZVZpZXcKIAogYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKIHsKKyAgICBXVEZMb2dBbHdheXMoInJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSAlZCIsIHNjcm9sbFBvc2l0aW9uLnkoKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQobV9wYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaAppbmRleCAwYzE4ZDdiYjBjMzZhMGQwNzdmNjFlNmU1ZDk5OTE4NzVkNjkx
NjQwLi4xOGNmMThlZjViYzI3YzcwNTFlOGVjZWVlMGUxMjIxZjUxN2U0ZDUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDI0LDYgKzQyNCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
TlNFdmVudCAqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmVG
cm9tVmlld09ubHkoTlNFdmVudCAqKTsKIAorICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCk7CisKICAgICB2b2lkIHNldFRvdGFsSGVpZ2h0T2ZCYW5uZXJzKENHRmxvYXQgdG90YWxI
ZWlnaHRPZkJhbm5lcnMpIHsgbV90b3RhbEhlaWdodE9mQmFubmVycyA9IHRvdGFsSGVpZ2h0T2ZC
YW5uZXJzOyB9CiAgICAgQ0dGbG9hdCB0b3RhbEhlaWdodE9mQmFubmVycygpIGNvbnN0IHsgcmV0
dXJuIG1fdG90YWxIZWlnaHRPZkJhbm5lcnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGQxYmY1ZGVhMWI2Nzk0ZGRmN2Q5NWEwZTkx
OGU2YzNmYzE2MzFhMzQuLjlkOWExOTkxNDAyNjc3YzhkYWFkNDEwZDY4ZjdjMTIzZDc1MWE2NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTMyMTAsNiArMzIxMCwxMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RI
YW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQgKmV2ZW50KQogI2VuZGlmCiB9CiAK
K3ZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYg
KG1fZ2VzdHVyZUNvbnRyb2xsZXIpCisgICAgICAgIG1fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKICAgICBpZiAo
W2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuaAppbmRleCA0MTEyYTYyNzBiODAz
MDQ1N2UzMzUwZDU4ZDA1ZmZmN2JmMDkwNGVhLi5hZTRiODNjM2NhMThhNmE5OTlmYTk0ZGUzZTVi
YWQwNDFkOTE2YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5oCkBAIC0yMTQsNiArMjE0LDggQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZSB7
IH0KIAorICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlk
ZSB7IH0KKwogICAgIFdlYlZpZXdDbGllbnQgbV9jbGllbnQ7CiAgICAgUmVmUHRyPFdlYlBhZ2VQ
cm94eT4gbV9wYWdlOwogICAgIERlZmF1bHRVbmRvQ29udHJvbGxlciBtX3VuZG9Db250cm9sbGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZWMzZDdkMTJhNmMxZjIx
NWExYjY5YzMzZDE3MzAwOGIxM2NmMDAyNy4uMjJmY2I0MGU2NjllNmQyYjQ2ZDgxNzkzYzhjMTNj
NWRkOGNiMWNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zNTks
NiArMzU5LDggQEAgcHVibGljOgogI2lmIFVTRShHU1RSRUFNRVIpCiAgICAgdmlydHVhbCBib29s
IGRlY2ljZVBvbGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVl
c3QoSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCYpID0gMDsKICNl
bmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAppbmRleCAyZWEyZGQ3MTlhODM0OTFjMGFk
MDA5MmIxZjkwNmM4MjgwODc0OWU2Li4zODRjYmEzODRlNDYzNzcxOWE3OWMwZWQ1YjQ1MTZkMDdj
MTA0ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlld0dlc3R1cmVD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlld0dlc3R1cmVD
b250cm9sbGVyLmNwcApAQCAtODYsMTIgKzg2LDkgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgaWYg
KCFtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuZXZlbnRPY2N1cnJlZChTbmFwc2hvdFJlbW92YWxU
cmFja2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0KSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmNhbmNlbE91dHN0YW5kaW5nRXZlbnQoU25hcHNob3RS
ZW1vdmFsVHJhY2tlcjo6TWFpbkZyYW1lTG9hZCk7CisgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFj
a2VyLmNhbmNlbE91dHN0YW5kaW5nRXZlbnQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U3VicmVz
b3VyY2VMb2Fkcyk7CiAgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLnN0YXJ0V2F0Y2hkb2co
c3dpcGVTbmFwc2hvdFJlbW92YWxXYXRjaGRvZ0FmdGVyRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0RHVyYXRpb24pOwotCi0gICAgLy8gRklYTUU6IElkZWFsbHksIHRoaXMgd291bGQgYmUgc3Vm
ZmljaWVudCB0byBjYW5jZWwgd2FpdGluZyBmb3IgdGhlIG1haW4gZnJhbWUgbG9hZCwKLSAgICAv
LyBhbmQgd291bGQgbWFrZSBzbmFwc2hvdCByZW1vdmFsIGZhc3RlciwgYnV0IHdlIG5lZWQgZGlk
UmVzdG9yZVNjcm9sbFBvc2l0aW9uCi0gICAgLy8gdG8gYmUgdXNhYmxlL2FjY3VyYXRlIG9uIGFs
bCBwbGF0Zm9ybXMgYmVmb3JlIGRvaW5nIHRoYXQsIG9yIHdlIGdldCBhIGZsYXNoCi0gICAgLy8g
b2YgdGhlIG5ldyBwYWdlIGluIHRoZSB3cm9uZyBwb3NpdGlvbi4KIH0KIAogdm9pZCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmRpZFJlcGFpbnRBZnRlck5hdmlnYXRpb24oKQpAQCAtMTE5LDYgKzEx
NiwxNSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVMb2Fk
VGVybWluYWxTdGF0ZSgpCiAgICAgLy8gZW5vdWdoIGZvciB1cyB0b28uCiAgICAgbV9zbmFwc2hv
dFJlbW92YWxUcmFja2VyLmNhbmNlbE91dHN0YW5kaW5nRXZlbnQoU25hcHNob3RSZW1vdmFsVHJh
Y2tlcjo6VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAg
Ly8gT24gTWFjLCB3ZSBjaGVjayBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIHJlc3RvcmF0aW9uIHN1
Y2NlZWRlZCBieSBjb21wYXJpbmcgdGhlCisgICAgLy8gcmVxdWVzdGVkIGFuZCBhY3R1YWwgc2Ny
b2xsIHBvc2l0aW9uLiBJdCdzIHBvc3NpYmxlIHRoYXQgd2Ugd2lsbCBuZXZlciBzdWNjZWVkIGlu
IHJlc3RvcmluZworICAgIC8vIHRoZSBleGFjdCBzY3JvbGwgcG9zaXRpb24gd2Ugd2FudGVkLCBp
biB0aGUgY2FzZSBvZiBhIGR5bmFtaWMgcGFnZSwgYnV0IHdlIGtub3cgdGhhdCBieQorICAgIC8v
IG1haW4gZnJhbWUgbG9hZCB0aW1lIHRoYXQgd2UndmUgZ290dGVuIGFzIGNsb3NlIGFzIHdlJ3Jl
IGdvaW5nIHRvIGdldCwgc28gc3RvcCB3YWl0aW5nLgorICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
ZG8gdGhpcyBvbiBpT1MgYmVjYXVzZSBzY3JvbGwgcG9zaXRpb24gcmVzdG9yYXRpb24gaXMgYmFr
ZWQgaW50byB0aGUgdHJhbnNhY3Rpb24uCisgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmNh
bmNlbE91dHN0YW5kaW5nRXZlbnQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRp
b25SZXN0b3JhdGlvbik7CisjZW5kaWYKKwogICAgIGNoZWNrRm9yQWN0aXZlTG9hZHMoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjNzEyYTFh
YTczZGQ3ODc2MjQyNTQ5YTI1ZDM2NDMzYjNmNmM0NTY0Li5iOTdjMjYwYmMxZDY1MzI0YjM2ZjUy
ZDlmMzUwY2M2MTJlMTdmNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNjA4Myw0ICs2MDgzLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3Vs
ZFNjYWxlVmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91bGRTY2FsZVZpZXdUb0ZpdERvY3UKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNob3VsZFNjYWxlVmlld1Rv
Rml0RG9jdW1lbnQoc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCksIG1fcGFnZUlEKTsKIH0K
IAordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisgICAg
bV9wYWdlQ2xpZW50LmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBh
NDJiYmJiNjVjMDA3MDhkMGY5OWI5NjhkZGI4MzZhOTU2YTIxNjQwLi40OTJiZGYwNzkyMTMxN2E5
N2IwNTkxMmM2NmIyNGMxMTEyYzM5ZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xMDgzLDYgKzEwODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZExh
eW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzKTsKIAorICAgIHZvaWQgZGlkUmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQm
LCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjRmMGZl
OTljMjBkYWQzOWU1N2Q1MTljNTQ3NTc0N2YzYjgxNTRlNi4uY2M5ZjQxMGViMGE0MGEwNDdhYzcx
N2VjZWQ2ZjYxZTYxMzQ5ZTM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NDUsNCArNDQ1LDYgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAg
UmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKFN0cmluZyBkZXRhaWxzLCBTdHJpbmcg
ZGVzY3JpcHRpb24pCiAjZW5kaWYKKworICAgIERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCmluZGV4IGY0MTdmYWZi
NjE0NzcyMzk1ZjM3ZWE3NTU2YmFmMWJlYThjMjlmZDIuLmQxZWY4M2YwZDExNzc3OTQxNmU3MDg2
MmE4ZDgzNjU3YWRhZjhiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViVmlld0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
d0VmbC5oCkBAIC05Myw2ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZlZp
ZXcoKSBvdmVycmlkZSBmaW5hbCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZWaWV3KCkgb3Zl
cnJpZGUgZmluYWwgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCkgb3ZlcnJpZGUgZmluYWwgeyB9CisKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHZpcnR1
YWwgYm9vbCBkZWNpY2VQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGI4ZGJhZTY3OGY5
OWMxNjJlZDA5NGUxYTRjYTJhOWI3Y2YxNGI1NmMuLmI3YTZkZDVkMTVjZjU0ZjFiNWM5MjBiOGM0
YTJmOTYwZWRjZGE4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKQEAgLTE5MSw2ICsxOTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmVmlldygp
IG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
IG92ZXJyaWRlOworCiAgICAgV0tDb250ZW50VmlldyAqbV9jb250ZW50VmlldzsKICAgICBXS1dl
YlZpZXcgKm1fd2ViVmlldzsKICAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4g
bV91bmRvVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KaW5kZXggNjM3MjhmMDMxY2NkYmYxMDExYmNjOTI2ZTcwZWJkOTY5M2Jk
NDI3ZS4uYWM0ZWVlYjkyMmY3ZmIyN2FlNmYxZjRmYjVjNDIxNjc0NTk4NmI2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03
NTIsNiArNzUyLDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCiAgICAgW21f
d2ViVmlldyByZWxlYXNlXTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCkKK3sKKworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaAppbmRleCA0YTkxYzA0OTg4MWU3MGE0N2VlYTQ1ZmQ2MDAzNzc0M2MzM2E0NDFj
Li5kYzhjMGRlNTdiNGZlNDA1MTFmMmNmMTJjODY5YzUzMTRjNTliYWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0yNDAsNiArMjQwLDgg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQppbmRleCA3NWMxY2VhYmVjZWQxOGY4ZmQyZjNhNDViY2ExYjBjNzE2ZWFmNzNjLi5lMDQ2NzAx
YjNhYTFhZGIyMzk2N2NlZTI4MDI4ZmVmOGE1YmM0YWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTgzNCw2ICs4MzQsMTEgQEAgX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkgKlBhZ2VDbGllbnRJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3Ry
eSgpCiB9CiAjZW5kaWYKIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBv
c2l0aW9uKCkKK3sKKyAgICBtX2ltcGwtPmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXJNYWMubW0KaW5kZXggNjZjOGIwZjlkYzk5NzViZjJmNWRmNzA1YzVkZWNmYWRkY2I0OTAwMC4u
NTVjZmFhYjhjYTRhMzlkYmU3Y2E1NjI4ZGRlZTdiNTU0ZjQyNDI1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMu
bW0KQEAgLTc2NSwxMCArNzY1LDExIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRT
d2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKIAogICAgIG1f
c3dpcGVDYW5jZWxsYXRpb25UcmFja2VyID0gbnVsbHB0cjsKIAorI2lmIEVOQUJMRShMRUdBQ1lf
U1dJUEVfU0hBRE9XX1NUWUxFKQogICAgIENBTGF5ZXIgKnJvb3RMYXllciA9IG1fd2ViUGFnZVBy
b3h5LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKTsKLQotICAgIFtyb290TGF5ZXIg
c2V0U2hhZG93T3BhY2l0eTowXTsKLSAgICBbcm9vdExheWVyIHNldFNoYWRvd1JhZGl1czowXTsK
KyAgICByb290TGF5ZXIuc2hhZG93T3BhY2l0eSA9IDA7CisgICAgcm9vdExheWVyLnNoYWRvd1Jh
ZGl1cyA9IDA7CisjZW5kaWYKIAogICAgIGlmIChjYW5jZWxsZWQpIHsKICAgICAgICAgcmVtb3Zl
U3dpcGVTbmFwc2hvdCgpOwpAQCAtNzg1LDExICs3ODYsMTAgQEAgdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJ
dGVtLAogICAgIG1fd2ViUGFnZVByb3h5Lm5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKHRydWUsICp0
YXJnZXRJdGVtKTsKICAgICBtX3dlYlBhZ2VQcm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdl
dEl0ZW0pOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIGluY2x1ZGUgc2Ny
b2xsIHBvc2l0aW9uIHJlc3RvcmF0aW9uIGhlcmUsCi0gICAgLy8gYW5kIHRoZW4gY2FuIGFkZHJl
c3MgdGhlIEZJWE1FIGluIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFt
ZS4KICAgICBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpFdmVudHMgZGVzaXJlZEV2ZW50cyA9IFNu
YXBzaG90UmVtb3ZhbFRyYWNrZXI6OlZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKICAgICAgICAgfCBT
bmFwc2hvdFJlbW92YWxUcmFja2VyOjpNYWluRnJhbWVMb2FkCi0gICAgICAgIHwgU25hcHNob3RS
ZW1vdmFsVHJhY2tlcjo6U3VicmVzb3VyY2VMb2FkczsKKyAgICAgICAgfCBTbmFwc2hvdFJlbW92
YWxUcmFja2VyOjpTdWJyZXNvdXJjZUxvYWRzCisgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJh
Y2tlcjo6U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbjsKICAgICBpZiAocmVuZGVyVHJlZVNpemUp
CiAgICAgICAgIGRlc2lyZWRFdmVudHMgfD0gU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6UmVuZGVy
VHJlZVNpemVUaHJlc2hvbGQ7CiAgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLnN0YXJ0KGRl
c2lyZWRFdmVudHMsIFt0aGlzXSB7IHRoaXMtPmZvcmNlUmVwYWludElmTmVlZGVkKCk7IH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBiYzU5NDI2ZDI0YjgwM2M0Y2Iy
Y2U5ZDE2MTQ1ZDM0MzczNjdiNTA3Li5iZGVhMTM4NTNhYWEwMTk3ZGU5NDRlNTdlNDQyNTIwZjA2
NzQ4Mzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTcyMSw0ICsx
NzIxLDEzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByZWZldGNoRE5TKGNvbnN0IFN0
cmluZyYgaG9zdG5hbWUpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucHJlZmV0Y2hETlMo
aG9zdG5hbWUpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlU2Ny
b2xsUG9zaXRpb24oKQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7
CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJQYWdlLT5kaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYWNiNTVjZjRlNDYzZmRlMWIyNWM0OTFjNGIx
OTlmODNlYjhlNDhhNi4uZTRhNDE1NTE3MzAyMDNhMDBiNmRiY2UxNjgxOGVjNDI1MGM3ODA0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjQ0LDYgKzI0NCw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCisg
ICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKwogICAgIFdlYkZy
YW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAg
Ym9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkNGIwOWZkZTcxMGVhYjJkZTliYzky
ZWRkMThiOTAyZGYzMTdkMDc1Li4xMjk4M2EwYThmMmU1NTRkOGVmMzMxODc0OGM1ZmRmNTU0YmFh
ZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC01MDc2LDQgKzUwNzYsOSBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoRGlkTGF5b3V0KFdl
YkNvcmU6OkxheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcykKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZExheW91dChtaWxlc3RvbmVzKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6
ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCBmMTE0ZGMxZTNhYzIyYmJmOGE5M2EwNmY5MjBmMzkxMGZmYmRhODIwLi5iOWQyNjVjYWUzOWYw
YmFmYWUwMTNjYzViODY0MGU4Y2RiODlhZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTkyOSw2ICs5MjksOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRpc3BhdGNoRGlkTGF5b3V0KFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMpOwogCisgICAg
dm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265484</attachid>
            <date>2015-11-13 10:19:16 -0800</date>
            <delta_ts>2015-11-14 18:50:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151224-20151113101910.patch</filename>
            <type>text/plain</type>
            <size>20258</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1YWNjZjRkMzZlOTdh
NzFiZDc1ZDM1OWJmNTE3MTllZTA0Y2JlOC4uNmQzMzhkMjgzNDBlNTEyNzg4MWIzMjM0M2IwOWFm
M2UyNjBhNTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTExLTEyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lw
ZSBzbmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBp
cyBhbHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJv
bGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgRWFjaCB0
aW1lIHdlIHRyeSB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24sIHNlZSBpZiB0aGUgcmVx
dWVzdGVkCisgICAgICAgIHNjcm9sbCBwb3NpdGlvbiBpcyBzb21ldGhpbmcgd2UgY2FuIHNjcm9s
bCB0byBieSBnb2luZyB0aHJvdWdoIFNjcm9sbFZpZXcncworICAgICAgICBzY3JvbGwgcG9zaXRp
b24gY29uc3RyYWludCBsb2dpYy4gSWYgd2UgY2FuIHNjcm9sbCB0aGVyZSwgdGVsbCBvdXIgY2xp
ZW50CisgICAgICAgIChhbmQgZXZlbnR1YWxseSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIpIHRoYXQg
d2Ugc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRoZQorICAgICAgICBzY3JvbGwgcG9zaXRpb24hCisK
IDIwMTUtMTEtMTAgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDcmFzaCBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvcGFyc2VyL3N0cmlwLXNj
cmlwdC1hdHRycy1vbi1pbnB1dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcyNTA2NTAxOWM2MDRmNWFm
ZDdkZjUyODA2Mjk1OTI3ZTUyMmNjMi4uMzY4MTY2YzI5ZTkwYmZlY2IzMjJlNTIyYzhkNzBjMDkx
YTg1NTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTExLTEyICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzd2lwZSBz
bmFwc2hvdCBiZWZvcmUgbWFpbiBkb2N1bWVudCBsb2FkIGlmIHNjcm9sbCBwb3NpdGlvbiBpcyBh
bHJlYWR5IHJlc3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICBQbHVtYiBkaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24gdGhyb3VnaCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgKHlp
a2VzISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Ig
YW55IG1vcmUgbG9hZHMgaWYgd2UgZ2V0IHRvIGZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC4K
KworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZy
YW1lTG9hZFRlcm1pbmFsU3RhdGUpOgorICAgICAgICBDYW5jZWwgd2FpdGluZyBmb3Igc2Nyb2xs
IHBvc2l0aW9uIHJlc3RvcmF0aW9uIGlmIHdlIG1ha2UgaXQgdG8gbWFpbiBmcmFtZSBsb2FkLAor
ICAgICAgICBiZWNhdXNlIHRoZXJlIGlzIGEgY2hhbmNlIHdlIHdvbid0IGJlIGFibGUgdG8gcmVz
dG9yZSB0aGUgb2xkIHNjcm9sbCBwb3NpdGlvbiwgYW5kCisgICAgICAgIGJ5IG1haW4gZnJhbWUg
bG9hZCB0aW1lIHdlJ3ZlIHRyaWVkIGFzIGhhcmQgYXMgd2UncmUgZ29pbmcgdG8gdG8gcmVzdG9y
ZSBpdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2Vz
dHVyZSk6CisgICAgICAgIE1ha2Ugc29tZSBsZWdhY3ktc3R5bGUtb25seSBjb2RlIGNsZWFyZXIg
dGhhdCBpdCdzIGxlZ2FjeS1zdHlsZS1vbmx5LgorICAgICAgICBXYWl0IGZvciBzY3JvbGwgcG9z
aXRpb24gcmVzdG9yYXRpb24uCisKIDIwMTUtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHplcm8tZGVs
YXkgdGltZXIgZnJvbSBzd2lwZSBzbmFwc2hvdCByZW1vdmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDI4MjFjYmIzMTFjOTFkZGYzODkyZTUzN2Y3ZTI5
YzUxMjhlNjc5Y2UuLmFmNzFmMTI5YTJlNGQzMTU3MGM1OTYwMTgwYjMzMTExNGVlZGVmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNDgsNiArMzQ4
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkgeyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5k
ZXggN2UwY2FiYTAyOGIyYzg4OTVmNjhjYjUzMjViZDZmYjZlZTNkNzY3Yy4uOTY2ZWZjZjMyZmQx
ZjA5M2JjMDkyOWVlNzg5ODM5Nzc1ZDIyYjM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0xNTMsMTAgKzE1MywyMCBAQCB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIERv
bid0IHJlc3RvcmUgc2Nyb2xsIHBvaW50IG9uIGlPUyBhcyBGcmFtZUxvYWRlckNsaWVudDo6cmVz
dG9yZVZpZXdTdGF0ZSgpIGRvZXMgdGhhdC4KICAgICBpZiAodmlldyAmJiAhdmlldy0+d2FzU2Ny
b2xsZWRCeVVzZXIoKSkgewogICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Cisg
ICAgICAgIGF1dG8gZGVzaXJlZFNjcm9sbFBvc2l0aW9uID0gbV9jdXJyZW50SXRlbS0+c2Nyb2xs
UG9pbnQoKTsKKwogICAgICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
bV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkpCi0gICAgICAgICAgICBwYWdlLT5zZXRQ
YWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52
aWV3U2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAg
ICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFj
dG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSwgZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJy
ZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3Np
dGlvbihkZXNpcmVkU2Nyb2xsUG9zaXRpb24pOworCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwg
cG9zaXRpb24gZG9lc24ndCBoYXZlIHRvIGJlIGNsYW1wZWQsIGNvbnNpZGVyIGl0IHN1Y2Nlc3Nm
dWxseSByZXN0b3JlZC4KKyAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAg
ICAgICAgICAgYXV0byBhZGp1c3RlZERlc2lyZWRTY3JvbGxQb3NpdGlvbiA9IHZpZXctPmFkanVz
dFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIGlmIChkZXNpcmVkU2Nyb2xsUG9zaXRpb24gPT0gYWRqdXN0ZWREZXNpcmVkU2Nyb2xs
UG9zaXRpb24pCisgICAgICAgICAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgfQorCiAgICAgfQogI2VuZGlmCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDkwOWNjOTY3ZjU1ODFiOGI5MTYxYzExNTdiNjkyOGMz
MmNiNWNjZWEuLmNjOTg4ZTJjOGI4NWEyYjA1YjQwZDhhNThmNDEyN2M0ZGJkMzhkN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMDQsNiArMjA0LDcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3JiBmcmFt
ZVZpZXcKIAogYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKIHsKKyAgICBXVEZMb2dBbHdheXMoInJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSAlZCIsIHNjcm9sbFBvc2l0aW9uLnkoKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQobV9wYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNjEzMDNkNzQ5ZjNiMjg4NGQxMGQxNmI1ZGI1
OWVjYTcyNWMyZjlmMS4uNzhmYzY4ODUzYjY1MjE5NGY5YjY3YTgyYjY1YzM3OGFjNjk1OTgyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1w
bC5oCkBAIC0xMzksNiArMTM5LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmVmll
dygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKIAor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZSB7IH0K
KwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIGJvb2wgZGVjaWNlUG9saWN5Rm9ySW5z
dGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01l
ZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggMGMxOGQ3YmIwYzM2
YTBkMDc3ZjYxZTZlNWQ5OTkxODc1ZDY5MTY0MC4uMThjZjE4ZWY1YmMyN2M3MDUxZThlY2VlZTBl
MTIyMWY1MTdlNGQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgKQEAgLTQyNCw2ICs0MjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXN0dXJlRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CiAgICAgdm9pZCBnZXN0dXJlRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQgKik7CiAKKyAgICB2
b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworCiAgICAgdm9pZCBzZXRUb3RhbEhlaWdo
dE9mQmFubmVycyhDR0Zsb2F0IHRvdGFsSGVpZ2h0T2ZCYW5uZXJzKSB7IG1fdG90YWxIZWlnaHRP
ZkJhbm5lcnMgPSB0b3RhbEhlaWdodE9mQmFubmVyczsgfQogICAgIENHRmxvYXQgdG90YWxIZWln
aHRPZkJhbm5lcnMoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBk
MWJmNWRlYTFiNjc5NGRkZjdkOTVhMGU5MThlNmMzZmMxNjMxYTM0Li45ZDlhMTk5MTQwMjY3N2M4
ZGFhZDQxMGQ2OGY3YzEyM2Q3NTFhNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zMjEwLDYgKzMyMTAsMTIgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25seShOU0V2
ZW50ICpldmVudCkKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZXN0b3JlU2Ny
b2xsUG9zaXRpb24oKQoreworICAgIGlmIChtX2dlc3R1cmVDb250cm9sbGVyKQorICAgICAgICBt
X2dlc3R1cmVDb250cm9sbGVyLT5kaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKK30KKwogdm9p
ZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVu
dFdhc0hhbmRsZWQpCiB7CiAgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJW
aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJW
aWV3LmgKaW5kZXggNDExMmE2MjcwYjgwMzA0NTdlMzM1MGQ1OGQwNWZmZjdiZjA5MDRlYS4uYWU0
YjgzYzNjYTE4YTZhOTk5ZmE5NGRlM2U1YmFkMDQxZDkxNmIyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuaApAQCAt
MjE0LDYgKzIxNCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFj
a2dyb3VuZENvbG9yKCkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGUgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGUgeyB9CisKICAgICBXZWJWaWV3Q2xpZW50IG1fY2xp
ZW50OwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKICAgICBEZWZhdWx0VW5kb0Nv
bnRyb2xsZXIgbV91bmRvQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IGVjM2Q3ZDEyYTZjMWYyMTVhMWI2OWMzM2QxNzMwMDhiMTNjZjAwMjcuLjIyZmNi
NDBlNjY5ZTZkMmI0NmQ4MTc5M2M4YzEzYzVkZDhjYjFjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaApAQCAtMzU5LDYgKzM1OSw4IEBAIHB1YmxpYzoKICNpZiBVU0UoR1NU
UkVBTUVSKQogICAgIHZpcnR1YWwgYm9vbCBkZWNpY2VQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01l
ZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QmKSA9IDA7CiAjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
aW5kZXggMmVhMmRkNzE5YTgzNDkxYzBhZDAwOTJiMWY5MDZjODI4MDg3NDllNi4uMzg0Y2JhMzg0
ZTQ2Mzc3MTlhNzljMGVkNWI0NTE2ZDA3YzEwNDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTg2LDEyICs4Niw5IEBA
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoKQogICAgIGlmICghbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmV2ZW50
T2NjdXJyZWQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6VmlzdWFsbHlOb25FbXB0eUxheW91dCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxP
dXRzdGFuZGluZ0V2ZW50KFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQpOwor
ICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGluZ0V2ZW50KFNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OlN1YnJlc291cmNlTG9hZHMpOwogICAgIG1fc25hcHNob3RSZW1v
dmFsVHJhY2tlci5zdGFydFdhdGNoZG9nKHN3aXBlU25hcHNob3RSZW1vdmFsV2F0Y2hkb2dBZnRl
ckZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dER1cmF0aW9uKTsKLQotICAgIC8vIEZJWE1FOiBJ
ZGVhbGx5LCB0aGlzIHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY2FuY2VsIHdhaXRpbmcgZm9yIHRo
ZSBtYWluIGZyYW1lIGxvYWQsCi0gICAgLy8gYW5kIHdvdWxkIG1ha2Ugc25hcHNob3QgcmVtb3Zh
bCBmYXN0ZXIsIGJ1dCB3ZSBuZWVkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbgotICAgIC8vIHRv
IGJlIHVzYWJsZS9hY2N1cmF0ZSBvbiBhbGwgcGxhdGZvcm1zIGJlZm9yZSBkb2luZyB0aGF0LCBv
ciB3ZSBnZXQgYSBmbGFzaAotICAgIC8vIG9mIHRoZSBuZXcgcGFnZSBpbiB0aGUgd3JvbmcgcG9z
aXRpb24uCiB9CiAKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZXBhaW50QWZ0ZXJO
YXZpZ2F0aW9uKCkKQEAgLTExOSw2ICsxMTYsMTUgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKQogICAgIC8vIGVub3VnaCBm
b3IgdXMgdG9vLgogICAgIG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGlu
Z0V2ZW50KFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwog
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIC8vIE9uIE1hYywgd2UgY2hlY2sgaWYgdGhlIHNjcm9s
bCBwb3NpdGlvbiByZXN0b3JhdGlvbiBzdWNjZWVkZWQgYnkgY29tcGFyaW5nIHRoZQorICAgIC8v
IHJlcXVlc3RlZCBhbmQgYWN0dWFsIHNjcm9sbCBwb3NpdGlvbi4gSXQncyBwb3NzaWJsZSB0aGF0
IHdlIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiByZXN0b3JpbmcKKyAgICAvLyB0aGUgZXhhY3Qgc2Ny
b2xsIHBvc2l0aW9uIHdlIHdhbnRlZCwgaW4gdGhlIGNhc2Ugb2YgYSBkeW5hbWljIHBhZ2UsIGJ1
dCB3ZSBrbm93IHRoYXQgYnkKKyAgICAvLyBtYWluIGZyYW1lIGxvYWQgdGltZSB0aGF0IHdlJ3Zl
IGdvdHRlbiBhcyBjbG9zZSBhcyB3ZSdyZSBnb2luZyB0byBnZXQsIHNvIHN0b3Agd2FpdGluZy4K
KyAgICAvLyBXZSBkb24ndCB3YW50IHRvIGRvIHRoaXMgb24gaU9TIGJlY2F1c2Ugc2Nyb2xsIHBv
c2l0aW9uIHJlc3RvcmF0aW9uIGlzIGJha2VkIGludG8gdGhlIHRyYW5zYWN0aW9uLgorICAgIG1f
c25hcHNob3RSZW1vdmFsVHJhY2tlci5jYW5jZWxPdXRzdGFuZGluZ0V2ZW50KFNuYXBzaG90UmVt
b3ZhbFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pOworI2VuZGlmCisKICAgICBj
aGVja0ZvckFjdGl2ZUxvYWRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYzcxMmExYWE3M2RkNzg3NjI0MjU0OWEyNWQzNjQzM2IzZjZjNDU2
NC4uYjk3YzI2MGJjMWQ2NTMyNGIzNmY1MmQ5ZjM1MGNjNjEyZTE3ZjYwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYwODMsNCArNjA4Myw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KGJvb2wgc2hv
dWxkU2NhbGVWaWV3VG9GaXREb2N1CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KHNob3VsZFNjYWxlVmlld1RvRml0
RG9jdW1lbnQpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKQoreworICAgIG1fcGFnZUNsaWVudC5kaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTQyYmJiYjY1YzAwNzA4ZDBmOTliOTY4ZGRiODM2YTk1
NmEyMTY0MC4uNDkyYmRmMDc5MjEzMTdhOTdiMDU5MTJjNjZiMjRjMTExMmMzOWRjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTA4Myw2ICsxMDgzLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3QgbGF5b3V0TWlsZXN0b25lcyk7
CiAKKyAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOworCiBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWludDY0X3QgcGFn
ZUlELCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDY0ZjBmZTk5YzIwZGFkMzllNTdkNTE5YzU0NzU3NDdmM2I4MTU0
ZTYuLmNjOWY0MTBlYjBhNDBhMDQ3YWM3MTdlY2VkNmY2MWU2MTM0OWUzNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQ1
LDQgKzQ0NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
cyhTdHJpbmcgZGV0YWlscywgU3RyaW5nIGRlc2NyaXB0aW9uKQogI2VuZGlmCisKKyAgICBEaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlZpZXdFZmwuaAppbmRleCBmNDE3ZmFmYjYxNDc3MjM5NWYzN2VhNzU1NmJhZjFiZWE4YzI5ZmQy
Li5kMWVmODNmMGQxMTc3Nzk0MTZlNzA4NjJhOGQ4MzY1N2FkYWY4YmFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaApAQCAtOTMsNiArOTMsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGUgZmluYWwgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlIGZpbmFsIHsgfQogCisgICAgdmlydHVhbCB2
b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlIGZpbmFsIHsgfQorCiAjaWYg
VVNFKEdTVFJFQU1FUikKICAgICB2aXJ0dWFsIGJvb2wgZGVjaWNlUG9saWN5Rm9ySW5zdGFsbE1p
c3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gZmFsc2U7IH07
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAppbmRleCBiOGRiYWU2NzhmOTljMTYyZWQwOTRlMWE0Y2EyYTliN2NmMTRiNTZjLi5i
N2E2ZGQ1ZDE1Y2Y1NGYxYjVjOTIwYjhjNGEyZjk2MGVkY2RhODEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xOTEsNiArMTkx
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmVmlldygpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKwogICAgIFdLQ29udGVudFZpZXcg
Km1fY29udGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0YWluUHRy
PFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDYzNzI4ZjAzMWNj
ZGJmMTAxMWJjYzkyNmU3MGViZDk2OTNiZDQyN2UuLmFjNGVlZWI5MjJmN2ZiMjdhZTZmMWY0ZmI1
YzQyMTY3NDU5ODZiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNzUyLDYgKzc1MiwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkZXJlZlZpZXcoKQogICAgIFttX3dlYlZpZXcgcmVsZWFzZV07CiB9CiAKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNGE5MWMwNDk4ODFlNzBh
NDdlZWE0NWZkNjAwMzc3NDNjMzNhNDQxYy4uZGM4YzBkZTU3YjRmZTQwNTExZjJjZjEyYzg2OWM1
MzE0YzU5YmFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaApAQCAtMjQwLDYgKzI0MCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVmVmlldygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlk
ZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlk
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNzVjMWNlYWJlY2VkMThmOGZkMmYzYTQ1
YmNhMWIwYzcxNmVhZjczYy4uZTA0NjcwMWIzYWExYWRiMjM5NjdjZWUyODAyOGZlZjhhNWJjNGFh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CkBAIC04MzQsNiArODM0LDExIEBAIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpQYWdlQ2xpZW50
SW1wbDo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogfQogI2VuZGlmCiAKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7CisgICAgbV9pbXBsLT5kaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDY2YzhiMGY5ZGM5OTc1YmYy
ZjVkZjcwNWM1ZGVjZmFkZGNiNDkwMDAuLjU1Y2ZhYWI4Y2E0YTM5ZGJlN2NhNTYyOGRkZWU3YjU1
NGY0MjQyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC03NjUsMTAgKzc2NSwxMSBAQCB2b2lkIFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qIHRhcmdldEl0ZW0sCiAKICAgICBtX3N3aXBlQ2FuY2VsbGF0aW9uVHJhY2tlciA9IG51bGxw
dHI7CiAKKyNpZiBFTkFCTEUoTEVHQUNZX1NXSVBFX1NIQURPV19TVFlMRSkKICAgICBDQUxheWVy
ICpyb290TGF5ZXIgPSBtX3dlYlBhZ2VQcm94eS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExh
eWVyKCk7Ci0KLSAgICBbcm9vdExheWVyIHNldFNoYWRvd09wYWNpdHk6MF07Ci0gICAgW3Jvb3RM
YXllciBzZXRTaGFkb3dSYWRpdXM6MF07CisgICAgcm9vdExheWVyLnNoYWRvd09wYWNpdHkgPSAw
OworICAgIHJvb3RMYXllci5zaGFkb3dSYWRpdXMgPSAwOworI2VuZGlmCiAKICAgICBpZiAoY2Fu
Y2VsbGVkKSB7CiAgICAgICAgIHJlbW92ZVN3aXBlU25hcHNob3QoKTsKQEAgLTc4NSwxMSArNzg2
LDEwIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0
aW9uR2VzdHVyZURpZEVuZCh0cnVlLCAqdGFyZ2V0SXRlbSk7CiAgICAgbV93ZWJQYWdlUHJveHku
Z29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYmUgYWJsZSB0byBpbmNsdWRlIHNjcm9sbCBwb3NpdGlvbiByZXN0b3JhdGlvbiBoZXJlLAot
ICAgIC8vIGFuZCB0aGVuIGNhbiBhZGRyZXNzIHRoZSBGSVhNRSBpbiBkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUuCiAgICAgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6
RXZlbnRzIGRlc2lyZWRFdmVudHMgPSBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpWaXN1YWxseU5v
bkVtcHR5TGF5b3V0CiAgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6TWFpbkZyYW1l
TG9hZAotICAgICAgICB8IFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlN1YnJlc291cmNlTG9hZHM7
CisgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U3VicmVzb3VyY2VMb2FkcworICAg
ICAgICB8IFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb247
CiAgICAgaWYgKHJlbmRlclRyZWVTaXplKQogICAgICAgICBkZXNpcmVkRXZlbnRzIHw9IFNuYXBz
aG90UmVtb3ZhbFRyYWNrZXI6OlJlbmRlclRyZWVTaXplVGhyZXNob2xkOwogICAgIG1fc25hcHNo
b3RSZW1vdmFsVHJhY2tlci5zdGFydChkZXNpcmVkRXZlbnRzLCBbdGhpc10geyB0aGlzLT5mb3Jj
ZVJlcGFpbnRJZk5lZWRlZCgpOyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggYmM1OTQyNmQyNGI4MDNjNGNiMmNlOWQxNjE0NWQzNDM3MzY3YjUwNy4uYmRlYTEzODUz
YWFhMDE5N2RlOTQ0ZTU3ZTQ0MjUyMGYwNjc0ODM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTE3MjEsNCArMTcyMSwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnByZWZldGNoRE5TKGhvc3RuYW1lKTsKIH0KIAordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBXZWJQYWdlKiB3
ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgd2ViUGFnZS0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFj
YjU1Y2Y0ZTQ2M2ZkZTFiMjVjNDkxYzRiMTk5ZjgzZWI4ZTQ4YTYuLmU0YTQxNTUxNzMwMjAzYTAw
YjZkYmNlMTY4MThlYzQyNTBjNzgwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTI0NCw2ICsyNDQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwcmVmZXRjaEROUyhjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKIAorICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkgb3ZlcnJpZGU7CisKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICBSZWZQdHI8UGx1Z2lu
Vmlldz4gbV9wbHVnaW5WaWV3OwogICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpblZp
ZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZDRiMDlmZGU3MTBlYWIyZGU5YmM5MmVkZDE4YjkwMmRmMzE3ZDA3NS4uMTI5ODNhMGE4ZjJl
NTU0ZDhlZjMzMTg3NDhjNWZkZjU1NGJhYWY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTA3Niw0ICs1MDc2LDkgQEAgdm9pZCBXZWJQ
YWdlOjpkaXNwYXRjaERpZExheW91dChXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9u
ZXMpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRMYXlvdXQobWlsZXN0b25l
cykpOwogfQogCit2b2lkIFdlYlBhZ2U6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24o
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjExNGRjMWUzYWMyMmJiZjhhOTNhMDZmOTIwZjM5
MTBmZmJkYTgyMC4uYjlkMjY1Y2FlMzlmMGJhZmFlMDEzY2M1Yjg2NDBlOGNkYjg5YWY5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MjksNiAr
OTI5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaERpZExheW91dChXZWJDb3JlOjpM
YXlvdXRNaWxlc3RvbmVzKTsKIAorICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7
CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmKTsKIAo=
</data>
<flag name="review"
          id="290531"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>