<?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>193539</bug_id>
          
          <creation_ts>2019-01-17 10:43:51 -0800</creation_ts>
          <short_desc>Implement asynchronous frame scrolling for iOS</short_desc>
          <delta_ts>2019-01-22 00:52:19 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1495533</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-17 10:43:51 -0800</bug_when>
    <thetext>Make iframes scrollable on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495534</commentid>
    <comment_count>1</comment_count>
      <attachid>359389</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-17 10:44:23 -0800</bug_when>
    <thetext>Created attachment 359389
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495538</commentid>
    <comment_count>2</comment_count>
      <attachid>359389</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-17 10:51:53 -0800</bug_when>
    <thetext>Comment on attachment 359389
wip

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3421
&gt; +                m_clipLayer = m_scrollLayer;

Hmm, this seems like it could lead to programming mistakes. I don&apos;t think any other code considers the fact that these could be the same layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495551</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-17 11:12:23 -0800</bug_when>
    <thetext>Not sure how different this bug is, but FYI I had patches in bug 173833, bug 192303, bug 182868 with various tests that were pending review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495769</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 01:27:51 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #3)
&gt; Not sure how different this bug is, but FYI I had patches in bug 173833, bug
&gt; 192303, bug 182868 with various tests that were pending review.

Interesting! I wasn&apos;t aware of that patch. Looks very similar. The main differences seem to be

- this patch ties to asyncFrameScrollingEnabled internal setting and doesn&apos;t enable the feature by default
- eliminates the unnecessary clip layer in async scrolling case (UIScrollView clips).
- uses the same ScrolliongTreeFrameScrollingNode type for both main frame and subframe, switching operation based on the scroll layer type (so the setting also works)
- is missing some of the bug fixes
- doesn&apos;t add tests

I propose we land this version as a starting point that can be experimented with and then work towards integrating your tests and bug fixes. How does that sound?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495770</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-18 01:33:46 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)
&gt; (In reply to Frédéric Wang (:fredw) from comment #3)
&gt; &gt; Not sure how different this bug is, but FYI I had patches in bug 173833, bug
&gt; &gt; 192303, bug 182868 with various tests that were pending review.
&gt; 
&gt; Interesting! I wasn&apos;t aware of that patch. Looks very similar. The main
&gt; differences seem to be
&gt; 
&gt; - this patch ties to asyncFrameScrollingEnabled internal setting and doesn&apos;t
&gt; enable the feature by default
&gt; - eliminates the unnecessary clip layer in async scrolling case
&gt; (UIScrollView clips).
&gt; - uses the same ScrolliongTreeFrameScrollingNode type for both main frame
&gt; and subframe, switching operation based on the scroll layer type (so the
&gt; setting also works)
&gt; - is missing some of the bug fixes
&gt; - doesn&apos;t add tests
&gt; 
&gt; I propose we land this version as a starting point that can be experimented
&gt; with and then work towards integrating your tests and bug fixes. How does
&gt; that sound?

OK, that sounds good to me. I think the two last points are important to have at some point :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495774</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-18 02:03:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/47379873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495777</commentid>
    <comment_count>7</comment_count>
      <attachid>359465</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 02:28:16 -0800</bug_when>
    <thetext>Created attachment 359465
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495778</commentid>
    <comment_count>8</comment_count>
      <attachid>359466</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 03:10:27 -0800</bug_when>
    <thetext>Created attachment 359466
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495798</commentid>
    <comment_count>9</comment_count>
      <attachid>359474</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 05:01:31 -0800</bug_when>
    <thetext>Created attachment 359474
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495799</commentid>
    <comment_count>10</comment_count>
      <attachid>359475</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 05:03:22 -0800</bug_when>
    <thetext>Created attachment 359475
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495800</commentid>
    <comment_count>11</comment_count>
      <attachid>359476</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 05:05:28 -0800</bug_when>
    <thetext>Created attachment 359476
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495801</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-18 05:07:44 -0800</bug_when>
    <thetext>Attachment 359476 did not pass style-queue:


ERROR: Source/WebCore/page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:64:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 14 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>1495805</commentid>
    <comment_count>13</comment_count>
      <attachid>359478</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 05:11:17 -0800</bug_when>
    <thetext>Created attachment 359478
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495930</commentid>
    <comment_count>14</comment_count>
      <attachid>359478</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-18 10:59:33 -0800</bug_when>
    <thetext>Comment on attachment 359478
patch

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3415
&gt; +#if PLATFORM(IOS)

if PLATFORM(IOS_FAMILY)

Ideally this wouldn&apos;t be a platform #ifdef, but something else.

&gt; LayoutTests/platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:46
&gt; -                  (coverage rect 0.00, 0.00 300.00 x 150.00)
&gt; +                  (coverage rect -10.00, -10.00 800.00 x 600.00)

This seems odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495938</commentid>
    <comment_count>15</comment_count>
      <attachid>359513</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 11:11:17 -0800</bug_when>
    <thetext>Created attachment 359513
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495943</commentid>
    <comment_count>16</comment_count>
      <attachid>359514</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 11:23:48 -0800</bug_when>
    <thetext>Created attachment 359514
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495963</commentid>
    <comment_count>17</comment_count>
      <attachid>359514</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 12:07:50 -0800</bug_when>
    <thetext>Comment on attachment 359514
patch

Clearing flags on attachment: 359514

Committed r240162: &lt;https://trac.webkit.org/changeset/240162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495964</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-18 12:07:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496722</commentid>
    <comment_count>19</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-22 00:52:19 -0800</bug_when>
    <thetext>*** Bug 173833 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359389</attachid>
            <date>2019-01-17 10:44:23 -0800</date>
            <delta_ts>2019-01-18 02:28:16 -0800</delta_ts>
            <desc>wip</desc>
            <filename>frame-scroll-ios-3.patch</filename>
            <type>text/plain</type>
            <size>22186</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAkocmV2aXNp
b24gMjQwMTA2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQs
OSBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUz4gY3JlYXRlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdO
b2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TKCk7CiAKIHByb3RlY3RlZDoKQEAgLTU1LDE1ICs1NSwxNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChjb25z
dCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVMYXllcnNBZnRlckFuY2Vz
dG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2RlJiBjaGFuZ2VkTm9kZSwgY29uc3QgRmxv
YXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVs
dGEpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KSBvdmVycmlkZTsKIAog
ICAgIEZsb2F0UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgRmxvYXRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAot
cHJpdmF0ZToKLSAgICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChjb25zdCBGbG9h
dFBvaW50Jik7Citwcm90ZWN0ZWQ6CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CisgICAgdm9pZCB1cGRhdGVDaGlsZE5vZGVz
QWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpOwogCitwcml2YXRlOgogICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX3Njcm9sbExheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2NvdW50
ZXJTY3JvbGxpbmdMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9oZWFkZXJMYXllcjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCShyZXZp
c2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA0LDYg
KzEwNCwxMSBAQCBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vCiAgICAg
cmV0dXJuIC1tX3Njcm9sbExheWVyLmdldCgpLnBvc2l0aW9uOwogfQogCit2b2lkIFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQoreworICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKK30KKwogdm9pZCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRD
b250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQog
ewogICAgIGlmIChzaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9uU3luY2hyb25vdXNseSgp
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MDUsMTcg
KzM0MDUsMjUgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYQogICAg
ICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAgICAgICAgICAgIG1fb3ZlcmZs
b3dDb250cm9sc0hvc3RMYXllci0+c2V0TmFtZSgib3ZlcmZsb3cgY29udHJvbHMgaG9zdCIpOwog
Ci0gICAgICAgICAgICAvLyBDcmVhdGUgYSBjbGlwcGluZyBsYXllciBpZiB0aGlzIGlzIGFuIGlm
cmFtZQotICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3Jh
cGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwotICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNl
dE5hbWUoImZyYW1lIGNsaXBwaW5nIik7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TWFz
a3NUb0JvdW5kcyh0cnVlKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9zY3JvbGxMYXll
ciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7
CisgICAgICAgICAgICBhdXRvIHNjcm9sbExheWVyVHlwZSA9IG1fcmVuZGVyVmlldy5zZXR0aW5n
cygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkgPyBHcmFwaGljc0xheWVyOjpUeXBlOjpT
Y3JvbGxpbmcgOiBHcmFwaGljc0xheWVyOjpUeXBlOjpOb3JtYWw7CisKKyAgICAgICAgICAgIG1f
c2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMsIHNjcm9sbExheWVyVHlwZSk7CiAgICAgICAgICAgICBtX3Njcm9sbExheWVyLT5z
ZXROYW1lKCJmcmFtZSBzY3JvbGxpbmciKTsKIAorICAgICAgICAgICAgaWYgKHNjcm9sbExheWVy
VHlwZSA9PSBHcmFwaGljc0xheWVyOjpUeXBlOjpOb3JtYWwpIHsKKyAgICAgICAgICAgICAgICBt
X2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgp
LCAqdGhpcyk7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE5hbWUoImZyYW1lIGNs
aXBwaW5nIik7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMo
dHJ1ZSk7CisKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xs
TGF5ZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTY3JvbGwg
bGF5ZXIgY2xpcHMuCisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBtX3Njcm9sbExheWVy
OworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAvLyBIb29rIHRoZW0gdXAKICAgICAgICAg
ICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGQoKm1fY2xpcExheWVyKTsK
LSAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGlsZCgqbV9zY3JvbGxMYXllcik7CisKICAg
ICAgICAgICAgIG1fc2Nyb2xsTGF5ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5ZXIpOwog
CiAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCkuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5o
PgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZUlPUy5oPgogI2Vsc2UKQEAgLTExNSw3ICsxMTYsNyBAQCBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyCiAgICAgY2FzZSBTY3JvbGxpbmdOb2Rl
VHlwZTo6TWFpbkZyYW1lOgogICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6OlN1YmZyYW1lOgog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOworICAg
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3Jl
YXRlKCp0aGlzLCBub2RlVHlwZSwgbm9kZUlEKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVU
eXBlLCBub2RlSUQpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkg
QEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjbwogICAgICAgICAgICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVO
b2RlOjpTY3JvbGxMYXllcikpCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNl
dExheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUubGF5ZXIo
KSkpOwogCisgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikp
CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldFNjcm9sbGVkQ29udGVudHNM
YXllcihsYXllclRyZWVIb3N0LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGVk
Q29udGVudHNMYXllcigpKSk7CisKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpDb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIpKQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5z
ZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGlu
Z1N0YXRlTm9kZS5jb3VudGVyU2Nyb2xsaW5nTGF5ZXIoKSkpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1MuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOworCitjbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJ
T1MgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUz4gY3JlYXRlKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2aXJ0dWFs
IH5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKCk7CisKK3ByaXZhdGU6
CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCk7CisKKyAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3Qg
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3Zl
cnJpZGU7CisKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQp
IG92ZXJyaWRlOworLy8gICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRn
ZUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBvdmVycmlkZTsKKworICAg
IHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpIG92ZXJyaWRlIHsgfQorICAg
IHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pIG92ZXJyaWRlOworCisgICAgdm9pZCB1cGRhdGVMYXll
cnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlJiBj
aGFuZ2VkTm9kZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVu
dCYpIG92ZXJyaWRlIHsgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M+IG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0JKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCIKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKworI2ltcG9y
dCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M+IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1M6OmNyZWF0ZShXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TKHNjcm9sbGluZ1RyZWUsIG5vZGVUeXBlLCBub2RlSUQpKTsKK30K
KworU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiBzY3Jv
bGxpbmdUcmVlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKKyAgICA6IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJRCkKKyAgICAsIG1fc2Nyb2xs
aW5nTm9kZURlbGVnYXRlKG51bGxwdHIpCit7Cit9CisKK1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TKCkKK3sKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1M6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGlmIChz
dGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
U2Nyb2xsTGF5ZXIpKSB7CisgICAgICAgIGlmIChzY3JvbGxMYXllcigpICYmIFtbc2Nyb2xsTGF5
ZXIoKSBkZWxlZ2F0ZV0gaXNLaW5kT2ZDbGFzczpbVUlTY3JvbGxWaWV3IHNlbGZdXSkKKyAgICAg
ICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlID0gc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TPigqdGhpcyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlID0gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURl
bGVnYXRlLT5jb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGRvd25jYXN0PFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKSk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNj
cm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOworCisg
ICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAgICBtX3Njcm9sbGluZ05vZGVE
ZWxlZ2F0ZS0+Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGRvd25jYXN0PFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKSk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShj
b25zdCBTY3JvbGxpbmdUcmVlTm9kZSYgY2hhbmdlZE5vZGUsIGNvbnN0IEZsb2F0UmVjdCYgZml4
ZWRQb3NpdGlvblJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKQoreworICAg
IGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVE
ZWxlZ2F0ZS0+dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjaGFuZ2VkTm9kZSwgZml4
ZWRQb3NpdGlvblJlY3QsIGN1bXVsYXRpdmVEZWx0YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0
ZXJBbmNlc3RvckNoYW5nZShjaGFuZ2VkTm9kZSwgZml4ZWRQb3NpdGlvblJlY3QsIGN1bXVsYXRp
dmVEZWx0YSk7Cit9CisKK0Zsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZUlPUzo6c2Nyb2xsUG9zaXRpb24oKSBjb25zdAoreworICAgIGlmIChtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5z
Y3JvbGxQb3NpdGlvbigpOworCisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1M6OnNjcm9sbFBvc2l0aW9uKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCkK
K3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpIHsKKyAgICAgICAgbV9zY3JvbGxp
bmdOb2RlRGVsZWdhdGUtPnNldFNjcm9sbExheWVyUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGxheW91dFZpZXdw
b3J0KTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Ojp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbikKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpIHsKKyAgICAg
ICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChz
Y3JvbGxQb3NpdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwo
c2Nyb2xsUG9zaXRpb24pOworfQorCit9CisKKyNlbmRpZgorI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE2MSw2ICsxNjEsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlKQogeworICAgIGlmICghc2Nyb2xsTGF5ZXIo
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFu
Z2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogICAgIGlmIChzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsTGF5ZXIpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTU4NSw2ICsxNTg1LDggQEAKIAkJRTFEMjZBNTMx
NzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQx
IC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVE
NjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFG
OENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTQw
QzFGOTQyMUYwQjk2RTAwNTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLmggKi87IH07CisJCUU0MEMxRjk2MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi87IH07CiAJCUU0
MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMxQURCNjAwMzQ1
MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFBNzUyM0IwMEIx
MTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggKi87
IH07CkBAIC00NDQxLDYgKzQ0NDMsOCBAQAogCQlFNDA0OTA3MzIxREU2NUY3MDAzN0YwREIgLyog
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDc0MjFERTY1RjcwMDM3
RjBEQiAvKiBTY3JvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNjcm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0
OTA3NTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTQwQzFGOTMyMUYwQjk2RTAwNTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFNDBDMUY5NTIxRjBCOTdGMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBO
ZXR3b3JrQ2FjaGVFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrQ2FjaGVFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFB
QzFBRjlEMDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hl
SU9DaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNo
ZUlPQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg0NCw3ICs0ODQ4
LDYgQEAKIAkJCQkxQTUzQzJBNTFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5o
ICovLAogCQkJCTVDNDZDMEFDMjFCNzE5OEIwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNUM0NkMwQUQyMUI3MTk4QzAwQkM1OTkxIC8qIFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggKi8sCi0JCQkJNDExOERDMUIyMUU2RDExQTAwREUw
NEM3IC8qIFdlYnNpdGVEYXRhU3RvcmVRdW90YU1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gV2Vic2l0ZURhdGE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTUxMyw2ICs1
NTE2LDggQEAKIAkJCQkyREMxOEZCMTIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVl
Vmlld3MuaCAqLywKIAkJCQkyREMxOEZCMjIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW0gKi8sCiAJCQkJMEYwQzM2NUIxOEMwNUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi8sCisJCQkJRTQwQzFGOTMyMUYwQjk2RTAw
NTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCAqLywK
KwkJCQlFNDBDMUY5NTIxRjBCOTdGMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5tbSAqLywKIAkJCQkwRjkzMUMxQTE4QzU3MTE5MDBEQkE3QzMgLyog
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oICovLAogCQkJCTBGOTMxQzFC
MThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
Lm1tICovLAogCQkJCTBGOTMxQzFBMThDNTcxMTkwMERCQjhENCAvKiBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmggKi8sCkBAIC05Mjc0LDYgKzkyNzksNyBAQAogCQkJCTFB
MjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0
cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQwQzFGOTQyMUYwQjk2RTAwNTMw
NzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzMTNGN0VFMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNo
VGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzRjk2NDRFMUZBMEY3NkUwMEM0Nzc1MCAvKiBT
aGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ2N0Iz
MzkyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggaW4gSGVhZGVycyAq
LywKQEAgLTk4MzAsNyArOTgzNiw2IEBACiAJCQkJMURCMDE5NDMyMTFDRjAwMjAwOUZCM0U4IC8q
IFdLU2hhcmVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRTQ2MkQxQUQ4Mzc1NjAwMTYy
MzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTE4REMxRjIxRTdCRjVEMDBERTA0QzcgLyogV0tTdG9yYWdl
UXVvdGFEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA2MTI0RkYw
MjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUExMjRG
RjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5OTgw
MTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MTA3OTEsNiArMTA3OTYsNyBAQAogCQkJCTJEMTFCNzY3MjEyNkEyODIwMDZGODg3OCAvKiBVbmlm
aWVkU291cmNlMTItbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc2ODIxMjZBMjgyMDA2
Rjg4NzggLyogVW5pZmllZFNvdXJjZTEyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzY5
MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMTMtbW0ubW0gaW4gU291cmNlcyAqLywK
KwkJCQlFNDBDMUY5NjIxRjBCOTdGMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzZBMjEyNkEyODIw
MDZGODg3OCAvKiBVbmlmaWVkU291cmNlMTMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3
NkIyMTI2QTI4MjAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxNC1tbS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJEMTFCNzZDMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMTQuY3BwIGlu
IFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359465</attachid>
            <date>2019-01-18 02:28:16 -0800</date>
            <delta_ts>2019-01-18 03:10:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-7.patch</filename>
            <type>text/plain</type>
            <size>29112</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgVUlTY3JvbGxWaWV3IGJh
c2VkIGZyYW1lIHNjcm9sbGluZyBvbiBpT1MsIGVuYWJsZWQgYnkgdGhlICJBc3luYyBGcmFtZSBT
Y3JvbGxpbmciCisgICAgICAgIGludGVybmFsIHNldHRpbmcgKHN0aWxsIG9mZiBieSBkZWZhdWx0
KS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlSU9TLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlSU9TOjpzY3JvbGxMYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRT
Y3JvbGxQb3NpdGlvbik6CisKKyAgICAgICAgRXhwb3J0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1MuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJl
Y3RGb3JMYXllckZsdXNoaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlkQ2hhbmdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcpOgorCisgICAg
ICAgIElmIHdlIGRvbid0IGhhdmUgYSBzZXBhcmF0ZSBjbGlwIGxheWVyIGp1c3QgcmVzaXplIGFu
ZCBwb3NpdGlvbiB0aGUgc2Nyb2xsIGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXll
cik6CisKKyAgICAgICAgVXNlIEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUg
c2Nyb2xsIGxheWVyIHR5cGUgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4K
KyAgICAgICAgRG9uJ3QgY3JlYXRlIGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Ny
b2xsIGxheWVyIHdpbGwgaGFuZGxlIGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNs
YXNzZXMgZm9yIG92ZXJmbG93IHNjcm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3Mv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xB
U1MgQ0FMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlSU9TIDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUyA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1M+IGNyZWF0ZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCk7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlSU9TPiBjcmVhdGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQpOwogICAgIHZpcnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1MoKTsKIAogcHJvdGVjdGVkOgpAQCAtNTUsMTUgKzU1LDE3IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQm
KSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29u
c3QgU2Nyb2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVk
UG9zaXRpb25SZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNv
bnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2lu
dCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50
IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRlOgotICAg
IHZvaWQgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKK3By
b3RlY3RlZDoKICAgICBDQUxheWVyICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsTGF5ZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChj
b25zdCBGbG9hdFBvaW50Jik7CiAKK3ByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1f
c2Nyb2xsTGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xh
eWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2hlYWRlckxheWVyOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDEwNikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBAIEZs
b2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1fc2Ny
b2xsTGF5ZXIuZ2V0KCkucG9zaXRpb247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24pCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29u
c3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYgKHNo
b3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ3LDggKzQ0Nyw4IEBAIEZsb2F0
UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZpc2libGUKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHJldHVybiBmcmFtZVZpZXcuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQot
ICAgIC8vIEhhdmluZyBhIG1fY2xpcExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNj
cm9sbGluZyB2aWEgR3JhcGhpY3NMYXllcnMuCi0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0g
bV9jbGlwTGF5ZXIgPyBGbG9hdFJlY3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250
ZW50KCkpIDogZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpOworICAgIC8vIEhhdmluZyBh
IG1fc2Nyb2xsTGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBH
cmFwaGljc0xheWVycy4KKyAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbExheWVy
ID8gRmxvYXRSZWN0KHsgfSwgZnJhbWVWaWV3LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZy
YW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKTsKIAogICAgIGlmIChmcmFtZVZpZXcudmlld0V4
cG9zZWRSZWN0KCkpCiAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmll
d0V4cG9zZWRSZWN0KCkudmFsdWUoKSk7CkBAIC0xNzg2LDExICsxNzg2LDggQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZAogICAgIGlmIChhdXRvKiBsYXllciA9IG1f
cmVuZGVyVmlldy5sYXllcigpKQogICAgICAgICBsYXllci0+c2V0TmVlZHNDb21wb3NpdGluZ0dl
b21ldHJ5VXBkYXRlKCk7CiAKLSAgICBpZiAobV9jbGlwTGF5ZXIpIHsKLSAgICAgICAgY29uc3Qg
RnJhbWVWaWV3JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7Ci0gICAgICAg
IG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7
Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigp
KTsKLQorICAgIGlmIChtX3Njcm9sbExheWVyKSB7CisgICAgICAgIHVwZGF0ZVNjcm9sbExheWVy
Q2xpcHBpbmcoKTsKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xsKCk7CiAgICAgICAgIHVwZGF0
ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIApAQCAtMTgyMiw2ICsxODE5LDE2IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGwKICAgICAgICAgZml4ZWRCYWNrZ3Jv
dW5kTGF5ZXItPnNldFBvc2l0aW9uKGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9z
aXRpb24oKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxM
YXllckNsaXBwaW5nKCkKK3sKKyAgICBhdXRvKiBsYXllckZvckNsaXBwaW5nID0gdGhpcy0+bGF5
ZXJGb3JDbGlwcGluZygpOworICAgIGlmICghbGF5ZXJGb3JDbGlwcGluZykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbGF5ZXJGb3JDbGlwcGluZy0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOworICAgIGxheWVyRm9yQ2xpcHBpbmctPnNl
dFBvc2l0aW9uKHBvc2l0aW9uRm9yQ2xpcExheWVyKCkpOworfQorCiBGbG9hdFBvaW50IFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdAogewogICAgIGF1
dG8mIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKQEAgLTIwNTcsMTAgKzIw
NjQsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9vdExhCiAgICAgICAg
IG1fcm9vdENvbnRlbnRMYXllci0+c2V0UG9zaXRpb24obV9yZW5kZXJWaWV3LmZyYW1lVmlldygp
LnBvc2l0aW9uRm9yUm9vdENvbnRlbnRMYXllcigpKTsKICAgICAgICAgbV9yb290Q29udGVudExh
eWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAgICAgfQotICAgIGlmIChtX2Ns
aXBMYXllcikgewotICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJh
bWVWaWV3KCkuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2NsaXBMYXllci0+
c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0gICAgfQorCisgICAgdXBkYXRl
U2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
IGlmIChtX2NvbnRlbnRTaGFkb3dMYXllciAmJiBtX3Jvb3RDb250ZW50TGF5ZXIpIHsKQEAgLTMy
OTMsNyArMzI5OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVPdmVyZmwK
IAogICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgb3ZlcmhhbmcgYXJlYXMgbGF5ZXIgdG8gYmUg
cG9zaXRpb25lZCBiZWxvdyB0aGUgZnJhbWUgY29udGVudHMsCiAgICAgICAgICAgICAvLyBzbyBp
bnNlcnQgaXQgYmVsb3cgdGhlIGNsaXAgbGF5ZXIuCi0gICAgICAgICAgICBtX292ZXJmbG93Q29u
dHJvbHNIb3N0TGF5ZXItPmFkZENoaWxkQmVsb3coKm1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLCBt
X2NsaXBMYXllci5nZXQoKSk7CisgICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5
ZXItPmFkZENoaWxkQmVsb3coKm1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLCBsYXllckZvckNsaXBw
aW5nKCkpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIEdyYXBoaWNzTGF5ZXI6OnVu
cGFyZW50QW5kQ2xlYXIobV9sYXllckZvck92ZXJoYW5nQXJlYXMpOwpAQCAtMzQwNSwyMyArMzQx
MCwzMCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdExhCiAgICAgICAg
ICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgICAgICAgICAgbV9vdmVyZmxvd0Nv
bnRyb2xzSG9zdExheWVyLT5zZXROYW1lKCJvdmVyZmxvdyBjb250cm9scyBob3N0Iik7CiAKLSAg
ICAgICAgICAgIC8vIENyZWF0ZSBhIGNsaXBwaW5nIGxheWVyIGlmIHRoaXMgaXMgYW4gaWZyYW1l
Ci0gICAgICAgICAgICBtX2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFt
ZSgiZnJhbWUgY2xpcHBpbmciKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRNYXNrc1Rv
Qm91bmRzKHRydWUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBtX3Njcm9sbExheWVyID0g
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKKyAg
ICAgICAgICAgIGF1dG8gc2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6Tm9y
bWFsOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIGlmIChtX3JlbmRlclZpZXcuc2V0
dGluZ3MoKS5hc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgIHNj
cm9sbExheWVyVHlwZSA9IEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZzsKKyNlbmRpZgor
ICAgICAgICAgICAgbV9zY3JvbGxMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCAqdGhpcywgc2Nyb2xsTGF5ZXJUeXBlKTsKICAgICAgICAgICAgIG1f
c2Nyb2xsTGF5ZXItPnNldE5hbWUoImZyYW1lIHNjcm9sbGluZyIpOwogCi0gICAgICAgICAgICAv
LyBIb29rIHRoZW0gdXAKLSAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+
YWRkQ2hpbGQoKm1fY2xpcExheWVyKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGls
ZCgqbV9zY3JvbGxMYXllcik7Ci0gICAgICAgICAgICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZCgq
bV9yb290Q29udGVudExheWVyKTsKKyAgICAgICAgICAgIGlmIChzY3JvbGxMYXllclR5cGUgPT0g
R3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xsaW5nKSB7CisgICAgICAgICAgICAgICAgLy8gU2Ny
b2xsIGxheWVyIGNsaXBzIHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEgc2VwYXJhdGUgY2xpcHBp
bmcgbGF5ZXIuCisgICAgICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5h
ZGRDaGlsZCgqbV9zY3JvbGxMYXllcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJG
YWN0b3J5KCksICp0aGlzKTsKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFtZSgi
ZnJhbWUgY2xpcHBpbmciKTsKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TWFza3NU
b0JvdW5kcyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9p
bnQoRmxvYXRQb2ludDNEKCkpOwogCi0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6ZSht
X3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAg
ICAgICAgbV9jbGlwTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yQ2xpcExheWVyKCkpOwot
ICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsK
KyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xsTGF5ZXIpOwor
ICAgICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGQoKm1f
Y2xpcExheWVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+
YWRkQ2hpbGQoKm1fcm9vdENvbnRlbnRMYXllcik7CiAKKyAgICAgICAgICAgIHVwZGF0ZVNjcm9s
bExheWVyQ2xpcHBpbmcoKTsKICAgICAgICAgICAgIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXll
cnMoKTsKIAogICAgICAgICAgICAgaWYgKGhhc0Nvb3JkaW5hdGVkU2Nyb2xsaW5nKCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6
CiAgICAgR3JhcGhpY3NMYXllciogY2xpcExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGlwTGF5
ZXIuZ2V0KCk7IH0KICAgICBHcmFwaGljc0xheWVyKiByb290Q29udGVudExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9yb290Q29udGVudExheWVyLmdldCgpOyB9CiAKKyAgICBHcmFwaGljc0xheWVy
KiBsYXllckZvckNsaXBwaW5nKCkgY29uc3QgeyAgcmV0dXJuIG1fY2xpcExheWVyID8gbV9jbGlw
TGF5ZXIuZ2V0KCkgOiBtX3Njcm9sbExheWVyLmdldCgpOyAgfQogCiAjaWYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQogICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9sYXllckZvckhlYWRlci5nZXQoKTsgfQpAQCAtNDMzLDYgKzQzNCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCk7CiAKICAgICB2b2lkIHVw
ZGF0ZVNjcm9sbExheWVyUG9zaXRpb24oKTsKKyAgICB2b2lkIHVwZGF0ZVNjcm9sbExheWVyQ2xp
cHBpbmcoKTsKIAogICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdDsK
IApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDE0MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTktMDEtMTggIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhc3luY2hyb25v
dXMgZnJhbWUgc2Nyb2xsaW5nIGZvciBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MzUzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIHNjcm9sbGluZyBub2RlIHR5cGUgdGhhdCBjYW4gaGFu
ZGxlIFVJU2Nyb2xsVmlldyBiYWNrZWQgZnJhbWVzLgorICAgICAgICBJdCBiYXNpY2FsbHkganVz
dCBpbnN0YW50aWF0ZXMgYW5kIGZvcndhcmRzIHRvIHRoZSBleGlzdGluZyBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLgorCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OmNvbm5lY3RTdGF0ZU5vZGVMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OlNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MpOgorICAgICAgICAoV2ViS2l0
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp+U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFu
Y2VzdG9yQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUzo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzZXRTY3JvbGxMYXll
clBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwpOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTAxLTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIENvbnRl
bnQgb2Zmc2V0IGp1bXBzIGVycmF0aWNhbGx5IHdoZW4gYXV0b3Njcm9sbGluZyBuZWFyIHNjcm9s
bCB2aWV3IGNvbnRlbnQgaW5zZXQgYXJlYXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJl
dmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNDU0LDYgKzQ1NCw3IEBAIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGluZ1QKIAogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlSG9zdElPUy5tbQogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQorVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQogVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5t
bQogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCShy
ZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmg+CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVJT1MuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlSU9TLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlSU9TLmg+CiAjZWxzZQpAQCAtMTE1LDcgKzExNiw3IEBAIFJlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHIKICAgICBjYXNlIFNjcm9sbGluZ05vZGVUeXBlOjpNYWlu
RnJhbWU6CiAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6U3ViZnJhbWU6CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZVR5cGUsIG5vZGVJRCk7CisgICAgICAgIHJldHVy
biBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjcmVhdGUoKnRoaXMs
IG5vZGVUeXBlLCBub2RlSUQpOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OmNyZWF0ZSgqdGhpcywgbm9kZVR5cGUsIG5vZGVJ
RCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0JKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQCB2b2lkIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvCiAgICAgICAgICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9s
bExheWVyKSkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUuc2V0TGF5ZXIobGF5
ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5sYXllcigpKSk7CiAKKyAg
ICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkKKyAgICAgICAg
ICAgICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUuc2V0U2Nyb2xsZWRDb250ZW50c0xheWVyKGxheWVy
VHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsZWRDb250ZW50c0xh
eWVyKCkpKTsKKwogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkNvdW50ZXJTY3JvbGxp
bmdMYXllcikpCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldENvdW50ZXJT
Y3JvbGxpbmdMYXllcihsYXllclRyZWVIb3N0LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2Rl
LmNvdW50ZXJTY3JvbGxpbmdMYXllcigpKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRl
IDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M7CisKK2NsYXNzIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MgOiBw
dWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TPiBjcmVhdGUoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworICAgIHZpcnR1YWwgflNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MoKTsKKworcHJpdmF0ZToKKyAgICBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
KTsKKworICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKKwor
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsK
KworICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCkgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKSBvdmVycmlkZSB7
IH0KKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSBvdmVycmlkZTsKKworICAgIHZvaWQgdXBk
YXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
Tm9kZSYgY2hhbmdlZE5vZGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlv
blJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBvdmVycmlk
ZTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TPiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0JKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uz4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKFNjcm9s
bGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUs
IG5vZGVJRCkpOworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKFNjcm9sbGluZ1RyZWUm
IHNjcm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKQorICAgIDogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyhzY3Jv
bGxpbmdUcmVlLCBub2RlVHlwZSwgbm9kZUlEKQoreworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUygpCit7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5v
ZGUmIHN0YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
Ojpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAoc3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9s
bExheWVyKSkgeworICAgICAgICBpZiAoc2Nyb2xsTGF5ZXIoKSAmJiBbW3Njcm9sbExheWVyKCkg
ZGVsZWdhdGVdIGlzS2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBzZWxmXV0pCisgICAgICAgICAg
ICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4oKnRoaXMpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYg
KG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0
ZS0+Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU+KHN0YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxp
bmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGlm
IChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdh
dGUtPmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU+KHN0YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3Qg
U2Nyb2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9z
aXRpb25SZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkKK3sKKyAgICBpZiAo
bV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpIHsKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdh
dGUtPnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9z
aXRpb25SZWN0LCBjdW11bGF0aXZlRGVsdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5j
ZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBjdW11bGF0aXZlRGVs
dGEpOworfQorCitGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2Rl
RGVsZWdhdGUpCisgICAgICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2Nyb2xs
UG9zaXRpb24oKTsKKworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
SU9TOjpzY3JvbGxQb3NpdGlvbigpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpCit7Cisg
ICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLT5zZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
OjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydCk7
Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBk
YXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24pCit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1f
c2Nyb2xsaW5nTm9kZURlbGVnYXRlLT51cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoc2Nyb2xs
UG9zaXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9s
bFBvc2l0aW9uKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwMTA2KQorKysgU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMTU5Myw2ICsxNTkzLDcgQEAKIAkJRTQ0MzZFQ0YxQTBEMDQwQjAwRUFEMjA0IC8qIE5l
dHdvcmtDYWNoZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0NDM2RUMyMUEwQ0ZEQjIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdl
LmggKi87IH07CiAJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2Rl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODlE
Mjg1MUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCAqLzsgfTsKIAkJRTQ5
RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlENDBENjFBRDNGQjE3
MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCAqLzsgfTsKKwkJRTRENTREMDQy
MUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MEMx
RjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLmggKi87IH07CiAJCUU0RTU3RjZCMjFBODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXll
clRyZWVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovOyB9
OwogCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEUxQjE2NzNGQjAw
QzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFE
QTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9OwpAQCAtNDQ0MSw2ICs0NDQyLDggQEAK
IAkJRTQwNDkwNzMyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDA0OTA3NDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlck1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzUyMURFNjVGNzAwMzdGMERCIC8qIFNj
cm9sbGVyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyTWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcx
OCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwQzFGOTUyMUYwQjk3
RjAwNTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdv
cmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIx
QUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NDQsNyArNDg0Nyw2IEBACiAJCQkJMUE1M0MyQTUxQTMyNTY5
RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQk1QzQ2QzBBQzIxQjcxOThC
MDBCQzU5OTEgLyogV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTVD
NDZDMEFEMjFCNzE5OEMwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
ICovLAotCQkJCTQxMThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVv
dGFNYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTU1MTMsNiArNTUxNSw4IEBACiAJCQkJMkRDMThGQjEyMThB
NkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi8sCiAJCQkJMkRDMThGQjIy
MThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tICovLAogCQkJCTBGMEMz
NjVCMThDMDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9T
Lm1tICovLAorCQkJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi8sCisJCQkJRTQwQzFGOTUyMUYwQjk3RjAwNTMw
NzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8sCiAJ
CQkJMEY5MzFDMUExOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVJT1MuaCAqLywKIAkJCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRjkzMUMxQTE4QzU3
MTE5MDBEQkI4RDQgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oICov
LApAQCAtODg1Miw2ICs4ODU2LDcgQEAKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyog
X1dLVmlzaXRlZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODUxOEJENjcz
QTAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFFMjg2NzgxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4
NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBDODM1MUU1Qjc0QjkwMDI1QjI1MCAvKiBf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODMw
LDcgKzk4MzUsNiBAQAogCQkJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1No
YXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjU0OUI0
MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDExOERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdh
dGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEg
LyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIw
QSAvKiBXS1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAw
ODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359466</attachid>
            <date>2019-01-18 03:10:27 -0800</date>
            <delta_ts>2019-01-18 05:01:31 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-9.patch</filename>
            <type>text/plain</type>
            <size>29617</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBVSVNjcm9sbFZpZXcgYmFzZWQgZnJhbWUgc2Nyb2xsaW5nIG9u
IGlPUywgZW5hYmxlZCBieSB0aGUgIkFzeW5jIEZyYW1lIFNjcm9sbGluZyIKKyAgICAgICAgaW50
ZXJuYWwgc2V0dGluZyAoc3RpbGwgb2ZmIGJ5IGRlZmF1bHQpLgorCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNjcm9sbExh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKworICAg
ICAgICBFeHBvcnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRDaGFuZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZyk6CisKKyAgICAgICAgSWYgd2UgZG9uJ3QgaGF2ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIsIGp1c3QgcmVzaXplIGFuZCBwb3NpdGlvbiB0aGUgc2Nyb2xs
IGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisKKyAgICAgICAgVXNlIEdy
YXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUgc2Nyb2xsIGxheWVyIHR5cGUgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgRG9uJ3QgY3JlYXRl
IGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Nyb2xsIGxheWVyIHdpbGwgaGFuZGxl
IGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
OgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNsYXNzZXMgZm9yIG92ZXJmbG93IHNj
cm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
IDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M+IGNyZWF0ZShT
Y3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MoKTsKIAogcHJvdGVjdGVk
OgpAQCAtNTUsMTUgKzU1LDE3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBG
bG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9s
bExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0
Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRlOgotICAgIHZvaWQgdXBkYXRlQ2hpbGROb2Rl
c0FmdGVyU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKK3Byb3RlY3RlZDoKICAgICBDQUxheWVy
ICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KKyAg
ICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChjb25zdCBGbG9hdFBvaW50Jik7CiAK
K3ByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAgICAgUmV0
YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwogICAgIFJldGFpblB0cjxD
QUxheWVyPiBtX2hlYWRlckxheWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1fc2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRp
b247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNl
dFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAyNDAxMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDQ3LDggKzQ0Nyw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnZpc2libGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBmcmFt
ZVZpZXcuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQotICAgIC8vIEhhdmluZyBhIG1fY2xp
cExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNjcm9sbGluZyB2aWEgR3JhcGhpY3NM
YXllcnMuCi0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9jbGlwTGF5ZXIgPyBGbG9hdFJl
Y3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpIDogZnJhbWVWaWV3LnZp
c2libGVDb250ZW50UmVjdCgpOworICAgIC8vIEhhdmluZyBhIG1fc2Nyb2xsTGF5ZXIgaW5kaWNh
dGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4KKyAgICBG
bG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbExheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJh
bWVWaWV3LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVu
dFJlY3QoKTsKIAogICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCiAgICAgICAg
IHZpc2libGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkudmFsdWUo
KSk7CkBAIC0xNzg2LDE4ICsxNzg2LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpm
cmFtZVZpZXdEaWQKICAgICBpZiAoYXV0byogbGF5ZXIgPSBtX3JlbmRlclZpZXcubGF5ZXIoKSkK
ICAgICAgICAgbGF5ZXItPnNldE5lZWRzQ29tcG9zaXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogCi0g
ICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwotICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6
ZShmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2NsaXBMYXll
ci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0KKyAgICBpZiAobV9zY3Jv
bGxMYXllcikgeworICAgICAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAgICAgICAg
IGZyYW1lVmlld0RpZFNjcm9sbCgpOwogICAgICAgICB1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5
ZXJzKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgICAgIGlmIChtX2xheWVy
Rm9yT3ZlcmhhbmdBcmVhcykgeworICAgICAgICAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5k
ZXJWaWV3LmZyYW1lVmlldygpOwogICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMt
PnNldFNpemUoZnJhbWVWaWV3LmZyYW1lUmVjdCgpLnNpemUoKSk7Ci0gICAgICAgICAgICBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCBtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkudG9wQ29udGVudEluc2V0KCkpKTsKKyAgICAgICAgICAgIG1fbGF5ZXJG
b3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIGZyYW1lVmlldy50b3BD
b250ZW50SW5zZXQoKSkpOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9CkBAIC0xODIyLDYgKzE4
MjAsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbAogICAgICAg
ICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oZnJhbWVWaWV3LnNjcm9sbFBvc2l0
aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKQoreworICAgIGF1dG8qIGxheWVyRm9yQ2xpcHBp
bmcgPSB0aGlzLT5sYXllckZvckNsaXBwaW5nKCk7CisgICAgaWYgKCFsYXllckZvckNsaXBwaW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRTaXplKG1fcmVu
ZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7CisgICAgbGF5ZXJG
b3JDbGlwcGluZy0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Cit9CisKIEZs
b2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNv
bnN0CiB7CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwpA
QCAtMjA1NywxMCArMjA2NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVS
b290TGEKICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRQb3NpdGlvbihtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkucG9zaXRpb25Gb3JSb290Q29udGVudExheWVyKCkpOwogICAgICAgICBt
X3Jvb3RDb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKICAgICB9
Ci0gICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKG1f
cmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7Ci0gICAgICAg
IG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigpKTsKLSAgICB9
CisKKyAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKG1fY29udGVudFNoYWRvd0xheWVyICYmIG1fcm9vdENvbnRlbnRM
YXllcikgewpAQCAtMzI5Myw3ICszMjk5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZU92ZXJmbAogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBvdmVyaGFuZyBhcmVh
cyBsYXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBjb250ZW50cywKICAgICAg
ICAgICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXllci4KLSAgICAgICAgICAg
IG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92
ZXJoYW5nQXJlYXMsIG1fY2xpcExheWVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3dD
b250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92ZXJoYW5nQXJlYXMs
IGxheWVyRm9yQ2xpcHBpbmcoKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgR3Jh
cGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyk7CkBA
IC0zNDA1LDIzICszNDExLDMwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVS
b290TGEKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgICAgICAg
ICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPnNldE5hbWUoIm92ZXJmbG93IGNvbnRyb2xz
IGhvc3QiKTsKIAotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgY2xpcHBpbmcgbGF5ZXIgaWYgdGhp
cyBpcyBhbiBpZnJhbWUKLSAgICAgICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKLSAgICAgICAgICAgIG1fY2xp
cExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOwotICAgICAgICAgICAgbV9jbGlwTGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
c2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpOworICAgICAgICAgICAgYXV0byBzY3JvbGxMYXllclR5cGUgPSBHcmFwaGljc0xh
eWVyOjpUeXBlOjpOb3JtYWw7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgaWYgKG1f
cmVuZGVyVmlldy5zZXR0aW5ncygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkpCisgICAg
ICAgICAgICAgICAgc2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xs
aW5nOworI2VuZGlmCisgICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzLCBzY3JvbGxMYXllclR5cGUpOwog
ICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiZnJhbWUgc2Nyb2xsaW5nIik7CiAK
LSAgICAgICAgICAgIC8vIEhvb2sgdGhlbSB1cAotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRy
b2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOwotICAgICAgICAgICAgbV9jbGlw
TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5
ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5ZXIpOworICAgICAgICAgICAgaWYgKHNjcm9s
bExheWVyVHlwZSA9PSBHcmFwaGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcpIHsKKyAgICAgICAg
ICAgICAgICAvLyBTY3JvbGwgbGF5ZXIgY2xpcHMgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBz
ZXBhcmF0ZSBjbGlwcGluZyBsYXllci4KKyAgICAgICAgICAgICAgICBtX292ZXJmbG93Q29udHJv
bHNIb3N0TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVy
LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAKLSAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRl
bnQoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JD
bGlwTGF5ZXIoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludDNEKCkpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGlsZCgqbV9z
Y3JvbGxMYXllcik7CisgICAgICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVy
LT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBt
X3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290Q29udGVudExheWVyKTsKIAorICAgICAgICAg
ICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogICAgICAgICAgICAgdXBkYXRlT3ZlcmZs
b3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3Jv
bGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIz
Niw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaXBMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250ZW50
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCk7IH0KIAorICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yQ2xpcHBpbmcoKSBjb25zdCB7ICByZXR1cm4gbV9jbGlw
TGF5ZXIgPyBtX2NsaXBMYXllci5nZXQoKSA6IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9CiAKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOyB9CkBAIC00MzMsNiArNDM0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsK
IAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbigpOworICAgIHZvaWQgdXBkYXRl
U2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckNsaXBM
YXllcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQwMTQwKQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0w
MS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGFzeW5jaHJvbm91cyBmcmFtZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzM3OTg3Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBzY3JvbGxpbmcgbm9kZSB0eXBlIHRoYXQgY2FuIGhhbmRsZSBVSVNj
cm9sbFZpZXcgYmFja2VkIGZyYW1lcy4KKyAgICAgICAgSXQgYmFzaWNhbGx5IGp1c3QgaW5zdGFu
dGlhdGVzIGFuZCBmb3J3YXJkcyB0byB0aGUgZXhpc3RpbmcgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25uZWN0
U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6
Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNo
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6OnNjcm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDb250ZW50IG9mZnNl
dCBqdW1wcyBlcnJhdGljYWxseSB3aGVuIGF1dG9zY3JvbGxpbmcgbmVhciBzY3JvbGwgdmlldyBj
b250ZW50IGluc2V0IGFyZWFzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAy
NDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTQ1NCw2ICs0NTQsNyBAQCBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxp
bmdUCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHlJT1MubW0KK1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MubW0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24g
MjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlP
Uy5oPgogI2Vsc2UKQEAgLTExNSw3ICsxMTYsNyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJl
bW90ZVNjcm9sbGluZ1RyCiAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6TWFpbkZyYW1lOgog
ICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6OlN1YmZyYW1lOgogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
OjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOworICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlw
ZSwgbm9kZUlEKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpjbwogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikp
CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldExheWVyKGxheWVyVHJlZUhv
c3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUubGF5ZXIoKSkpOwogCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCisgICAgICAgICAgICAgICAg
c2Nyb2xsaW5nU3RhdGVOb2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllclRyZWVIb3N0
LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGVkQ29udGVudHNMYXllcigpKSk7
CisKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpDb3VudGVyU2Nyb2xsaW5nTGF5ZXIp
KQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRDb3VudGVyU2Nyb2xsaW5n
TGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5jb3VudGVy
U2Nyb2xsaW5nTGF5ZXIoKSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOworCitj
bGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TIDogcHVibGljIFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gY3Jl
YXRlKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKCk7CisKK3ByaXZhdGU6CisgICAgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisKKyAg
ICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisKKyAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2
b2lkIHNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpIG92ZXJyaWRlOworCisgICAg
dm9pZCB1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSkgb3ZlcnJpZGUgeyB9CisgICAg
dm9pZCB1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHVwZGF0ZUxheWVy
c0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGUmIGNo
YW5nZWROb2RlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4g
bV9zY3JvbGxpbmdOb2RlRGVsZWdhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKworI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5oIgorI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M+IFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNyZWF0ZShTY3JvbGxpbmdUcmVl
JiBzY3JvbGxpbmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKHNjcm9sbGluZ1RyZWUsIG5vZGVUeXBlLCBub2RlSUQp
KTsKK30KKworU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhTY3JvbGxpbmdUcmVlJiBzY3JvbGxp
bmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKKyAgICA6IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1Moc2Nyb2xsaW5nVHJl
ZSwgbm9kZVR5cGUsIG5vZGVJRCkKK3sKK30KKworU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mo
KQoreworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6
OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0
ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0
U3RhdGVCZWZvcmVDaGlsZHJlbihzdGF0ZU5vZGUpOworCisgICAgaWYgKHN0YXRlTm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxMYXllcikp
IHsKKyAgICAgICAgaWYgKHNjcm9sbExheWVyKCkgJiYgW1tzY3JvbGxMYXllcigpIGRlbGVnYXRl
XSBpc0tpbmRPZkNsYXNzOltVSVNjcm9sbFZpZXcgc2VsZl1dKQorICAgICAgICAgICAgbV9zY3Jv
bGxpbmdOb2RlRGVsZWdhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1M+KCp0aGlzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9z
Y3JvbGxpbmdOb2RlRGVsZWdhdGUgPSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3Njcm9s
bGluZ05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1p
dFN0YXRlQmVmb3JlQ2hpbGRyZW4oZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
PihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVO
b2RlJiBzdGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlP
Uzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAobV9zY3Jv
bGxpbmdOb2RlRGVsZWdhdGUpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5jb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
PihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGlu
Z1RyZWVOb2RlJiBjaGFuZ2VkTm9kZSwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVj
dCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpCit7CisgICAgaWYgKG1fc2Nyb2xs
aW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT51cGRh
dGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5nZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVj
dCwgY3VtdWxhdGl2ZURlbHRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hh
bmdlKGNoYW5nZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVjdCwgY3VtdWxhdGl2ZURlbHRhKTsKK30K
KworRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRl
KQorICAgICAgICByZXR1cm4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnNjcm9sbFBvc2l0aW9u
KCk7CisKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2Ny
b2xsUG9zaXRpb24oKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KQoreworICAgIGlmICht
X3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0
ZS0+c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnQpOworfQorCit2
b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVy
c0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQor
eworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAgICAgICBtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZS0+dXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChzY3JvbGxQb3NpdGlv
bik7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1
OTMsNiArMTU5Myw3IEBACiAJCUU0NDM2RUNGMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2Fj
aGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDQzNkVDMjFBMENGREIyMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlU3RvcmFnZS5oICovOyB9
OwogCQlFNDg5RDI4QzFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29kZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDg5RDI4NTFBMEEy
REI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29kZXJzLmggKi87IH07CiAJCUU0OUQ0MEQ3MUFE
M0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5
IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CisJCUU0RDU0RDA0MjFGMUQ3MkQw
MDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBC
OTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5o
ICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFNTdG
NkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKIAkJRTRF
ODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAv
KiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKQEAgLTQ0NDEsNiArNDQ0Miw4IEBACiAJCUU0MDQ5
MDczMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQwNDkwNzQyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDc1MjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlck1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlck1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcx
OCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1
OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVF
bnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQw
MEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00ODQ0LDcgKzQ4NDcsNiBAQAogCQkJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3
MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJNUM0NkMwQUMyMUI3MTk4QjAwQkM1OTkx
IC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCAqLywKIAkJCQk1QzQ2QzBBRDIx
QjcxOThDMDBCQzU5OTEgLyogV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCAqLywKLQkJ
CQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdl
ci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJzaXRlRGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC01NTEzLDYgKzU1MTUsOCBAQAogCQkJCTJEQzE4RkIxMjE4QTZFOUUwMDI1
QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oICovLAogCQkJCTJEQzE4RkIyMjE4QTZFOUUw
MDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSAqLywKIAkJCQkwRjBDMzY1QjE4QzA1
Q0ExMDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSAqLywK
KwkJCQlFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5oICovLAorCQkJCUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tICovLAogCQkJCTBGOTMx
QzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TLmggKi8sCiAJCQkJMEY5MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gKi8sCiAJCQkJMEY5MzFDMUExOEM1NzExOTAwREJC
OEQ0IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaCAqLywKQEAgLTg4
NTIsNiArODg1Niw3IEBACiAJCQkJMUE4MUIzODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0
ZWRMaW5rU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFCMzg1MThCRDY3M0EwMDA3RkRB
QyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RTI4Njc4MUM3RTc2NTEwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5
MkMwMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXplSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRkI0QzcyMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTIwQzgzNTFFNUI3NEI5MDAyNUIyNTAgLyogX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtOTgzMCw3ICs5ODM1
LDYgQEAKIAkJCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2Vy
dmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tT
dHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8q
IFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359474</attachid>
            <date>2019-01-18 05:01:31 -0800</date>
            <delta_ts>2019-01-18 05:03:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-11.patch</filename>
            <type>text/plain</type>
            <size>40748</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBVSVNjcm9sbFZpZXcgYmFzZWQgZnJhbWUgc2Nyb2xsaW5nIG9u
IGlPUywgZW5hYmxlZCBieSB0aGUgIkFzeW5jIEZyYW1lIFNjcm9sbGluZyIKKyAgICAgICAgaW50
ZXJuYWwgc2V0dGluZyAoc3RpbGwgb2ZmIGJ5IGRlZmF1bHQpLgorCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNjcm9sbExh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKworICAg
ICAgICBFeHBvcnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRDaGFuZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZyk6CisKKyAgICAgICAgSWYgd2UgZG9uJ3QgaGF2ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIsIGp1c3QgcmVzaXplIGFuZCBwb3NpdGlvbiB0aGUgc2Nyb2xs
IGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisKKyAgICAgICAgVXNlIEdy
YXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUgc2Nyb2xsIGxheWVyIHR5cGUgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgRG9uJ3QgY3JlYXRl
IGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Nyb2xsIGxheWVyIHdpbGwgaGFuZGxl
IGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
OgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNsYXNzZXMgZm9yIG92ZXJmbG93IHNj
cm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
IDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M+IGNyZWF0ZShT
Y3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MoKTsKIAogcHJvdGVjdGVk
OgpAQCAtNTUsMTUgKzU1LDE3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBG
bG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9s
bExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0
Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRlOgotICAgIHZvaWQgdXBkYXRlQ2hpbGROb2Rl
c0FmdGVyU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKK3Byb3RlY3RlZDoKICAgICBDQUxheWVy
ICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KKyAg
ICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChjb25zdCBGbG9hdFBvaW50Jik7CiAK
K3ByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAgICAgUmV0
YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwogICAgIFJldGFpblB0cjxD
QUxheWVyPiBtX2hlYWRlckxheWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1fc2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRp
b247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNl
dFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAyNDAxMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDQ3LDggKzQ0Nyw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnZpc2libGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBmcmFt
ZVZpZXcuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQotICAgIC8vIEhhdmluZyBhIG1fY2xp
cExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNjcm9sbGluZyB2aWEgR3JhcGhpY3NM
YXllcnMuCi0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9jbGlwTGF5ZXIgPyBGbG9hdFJl
Y3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpIDogZnJhbWVWaWV3LnZp
c2libGVDb250ZW50UmVjdCgpOworICAgIC8vIEhhdmluZyBhIG1fc2Nyb2xsTGF5ZXIgaW5kaWNh
dGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4KKyAgICBG
bG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbExheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJh
bWVWaWV3LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVu
dFJlY3QoKTsKIAogICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCiAgICAgICAg
IHZpc2libGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkudmFsdWUo
KSk7CkBAIC0xNzg2LDE4ICsxNzg2LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpm
cmFtZVZpZXdEaWQKICAgICBpZiAoYXV0byogbGF5ZXIgPSBtX3JlbmRlclZpZXcubGF5ZXIoKSkK
ICAgICAgICAgbGF5ZXItPnNldE5lZWRzQ29tcG9zaXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogCi0g
ICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwotICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6
ZShmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2NsaXBMYXll
ci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0KKyAgICBpZiAobV9zY3Jv
bGxMYXllcikgeworICAgICAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAgICAgICAg
IGZyYW1lVmlld0RpZFNjcm9sbCgpOwogICAgICAgICB1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5
ZXJzKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgICAgIGlmIChtX2xheWVy
Rm9yT3ZlcmhhbmdBcmVhcykgeworICAgICAgICAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5k
ZXJWaWV3LmZyYW1lVmlldygpOwogICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMt
PnNldFNpemUoZnJhbWVWaWV3LmZyYW1lUmVjdCgpLnNpemUoKSk7Ci0gICAgICAgICAgICBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCBtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkudG9wQ29udGVudEluc2V0KCkpKTsKKyAgICAgICAgICAgIG1fbGF5ZXJG
b3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIGZyYW1lVmlldy50b3BD
b250ZW50SW5zZXQoKSkpOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9CkBAIC0xODIyLDYgKzE4
MjAsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbAogICAgICAg
ICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oZnJhbWVWaWV3LnNjcm9sbFBvc2l0
aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKQoreworICAgIGF1dG8qIGxheWVyRm9yQ2xpcHBp
bmcgPSB0aGlzLT5sYXllckZvckNsaXBwaW5nKCk7CisgICAgaWYgKCFsYXllckZvckNsaXBwaW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRTaXplKG1fcmVu
ZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7CisgICAgbGF5ZXJG
b3JDbGlwcGluZy0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Cit9CisKIEZs
b2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNv
bnN0CiB7CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwpA
QCAtMjA1NywxMCArMjA2NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVS
b290TGEKICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRQb3NpdGlvbihtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkucG9zaXRpb25Gb3JSb290Q29udGVudExheWVyKCkpOwogICAgICAgICBt
X3Jvb3RDb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKICAgICB9
Ci0gICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKG1f
cmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7Ci0gICAgICAg
IG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigpKTsKLSAgICB9
CisKKyAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKG1fY29udGVudFNoYWRvd0xheWVyICYmIG1fcm9vdENvbnRlbnRM
YXllcikgewpAQCAtMzI5Myw3ICszMjk5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZU92ZXJmbAogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBvdmVyaGFuZyBhcmVh
cyBsYXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBjb250ZW50cywKICAgICAg
ICAgICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXllci4KLSAgICAgICAgICAg
IG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92
ZXJoYW5nQXJlYXMsIG1fY2xpcExheWVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3dD
b250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92ZXJoYW5nQXJlYXMs
IGxheWVyRm9yQ2xpcHBpbmcoKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgR3Jh
cGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyk7CkBA
IC0zNDA1LDIzICszNDExLDMwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVS
b290TGEKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgICAgICAg
ICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPnNldE5hbWUoIm92ZXJmbG93IGNvbnRyb2xz
IGhvc3QiKTsKIAotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgY2xpcHBpbmcgbGF5ZXIgaWYgdGhp
cyBpcyBhbiBpZnJhbWUKLSAgICAgICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKLSAgICAgICAgICAgIG1fY2xp
cExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOwotICAgICAgICAgICAgbV9jbGlwTGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
c2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpOworICAgICAgICAgICAgYXV0byBzY3JvbGxMYXllclR5cGUgPSBHcmFwaGljc0xh
eWVyOjpUeXBlOjpOb3JtYWw7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgaWYgKG1f
cmVuZGVyVmlldy5zZXR0aW5ncygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkpCisgICAg
ICAgICAgICAgICAgc2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xs
aW5nOworI2VuZGlmCisgICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzLCBzY3JvbGxMYXllclR5cGUpOwog
ICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiZnJhbWUgc2Nyb2xsaW5nIik7CiAK
LSAgICAgICAgICAgIC8vIEhvb2sgdGhlbSB1cAotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRy
b2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOwotICAgICAgICAgICAgbV9jbGlw
TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5
ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5ZXIpOworICAgICAgICAgICAgaWYgKHNjcm9s
bExheWVyVHlwZSA9PSBHcmFwaGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcpIHsKKyAgICAgICAg
ICAgICAgICAvLyBTY3JvbGwgbGF5ZXIgY2xpcHMgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBz
ZXBhcmF0ZSBjbGlwcGluZyBsYXllci4KKyAgICAgICAgICAgICAgICBtX292ZXJmbG93Q29udHJv
bHNIb3N0TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVy
LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAKLSAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRl
bnQoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JD
bGlwTGF5ZXIoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludDNEKCkpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGlsZCgqbV9z
Y3JvbGxMYXllcik7CisgICAgICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVy
LT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBt
X3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290Q29udGVudExheWVyKTsKIAorICAgICAgICAg
ICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogICAgICAgICAgICAgdXBkYXRlT3ZlcmZs
b3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3Jv
bGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIz
Niw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaXBMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250ZW50
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCk7IH0KIAorICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yQ2xpcHBpbmcoKSBjb25zdCB7ICByZXR1cm4gbV9jbGlw
TGF5ZXIgPyBtX2NsaXBMYXllci5nZXQoKSA6IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9CiAKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOyB9CkBAIC00MzMsNiArNDM0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsK
IAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbigpOworICAgIHZvaWQgdXBkYXRl
U2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckNsaXBM
YXllcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQwMTQwKQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0w
MS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGFzeW5jaHJvbm91cyBmcmFtZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzM3OTg3Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBzY3JvbGxpbmcgbm9kZSB0eXBlIHRoYXQgY2FuIGhhbmRsZSBVSVNj
cm9sbFZpZXcgYmFja2VkIGZyYW1lcy4KKyAgICAgICAgSXQgYmFzaWNhbGx5IGp1c3QgaW5zdGFu
dGlhdGVzIGFuZCBmb3J3YXJkcyB0byB0aGUgZXhpc3RpbmcgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25uZWN0
U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6
Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNo
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6OnNjcm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDb250ZW50IG9mZnNl
dCBqdW1wcyBlcnJhdGljYWxseSB3aGVuIGF1dG9zY3JvbGxpbmcgbmVhciBzY3JvbGwgdmlldyBj
b250ZW50IGluc2V0IGFyZWFzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAy
NDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTQ1NCw2ICs0NTQsNyBAQCBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxp
bmdUCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHlJT1MubW0KK1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MubW0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24g
MjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlP
Uy5oPgogI2Vsc2UKQEAgLTExNSw3ICsxMTYsNyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJl
bW90ZVNjcm9sbGluZ1RyCiAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6TWFpbkZyYW1lOgog
ICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6OlN1YmZyYW1lOgogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
OjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOworICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlw
ZSwgbm9kZUlEKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpjbwogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikp
CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldExheWVyKGxheWVyVHJlZUhv
c3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUubGF5ZXIoKSkpOwogCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCisgICAgICAgICAgICAgICAg
c2Nyb2xsaW5nU3RhdGVOb2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllclRyZWVIb3N0
LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGVkQ29udGVudHNMYXllcigpKSk7
CisKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpDb3VudGVyU2Nyb2xsaW5nTGF5ZXIp
KQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRDb3VudGVyU2Nyb2xsaW5n
TGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5jb3VudGVy
U2Nyb2xsaW5nTGF5ZXIoKSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOworCitj
bGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TIDogcHVibGljIFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gY3Jl
YXRlKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKCk7CisKK3ByaXZhdGU6CisgICAgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisKKyAg
ICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisKKyAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KSBvdmVycmlkZTsKKworICAgIHZv
aWQgdXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0
ZXJBbmNlc3RvckNoYW5nZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZSYgY2hhbmdl
ZE5vZGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBvdmVycmlkZTsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TPiBtX3Nj
cm9sbGluZ05vZGVEZWxlZ2F0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTExIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKFNjcm9sbGluZ1RyZWUmIHNj
cm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJRCkpOwor
fQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1Ry
ZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQor
ICAgIDogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyhzY3JvbGxpbmdUcmVlLCBu
b2RlVHlwZSwgbm9kZUlEKQoreworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TOjp+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUygpCit7
Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29t
bWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9k
ZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAoc3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbExheWVyKSkgewor
ICAgICAgICBpZiAoc2Nyb2xsTGF5ZXIoKSAmJiBbW3Njcm9sbExheWVyKCkgZGVsZWdhdGVdIGlz
S2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBzZWxmXV0pCisgICAgICAgICAgICBtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUz4oKnRoaXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Njcm9s
bGluZ05vZGVEZWxlZ2F0ZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2Nyb2xsaW5n
Tm9kZURlbGVnYXRlKQorICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0
YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
IHN0YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpj
b21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGlmIChtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0
YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJl
ZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBj
b25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdO
b2RlRGVsZWdhdGUpIHsKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnVwZGF0ZUxh
eWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBj
dW11bGF0aXZlRGVsdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2Uo
Y2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBjdW11bGF0aXZlRGVsdGEpOworfQorCitG
bG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OnNjcm9s
bFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpCisg
ICAgICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2Nyb2xsUG9zaXRpb24oKTsK
KworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxQ
b3NpdGlvbigpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpCit7CisgICAgaWYgKG1fc2Ny
b2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5z
ZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxM
YXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydCk7Cit9CisKK3ZvaWQg
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0
ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7Cisg
ICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLT51cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoc2Nyb2xsUG9zaXRpb24pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsK
K30KKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTU5Myw2
ICsxNTkzLDcgQEAKIAkJRTQ0MzZFQ0YxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
NDM2RUMyMUEwQ0ZEQjIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmggKi87IH07CiAJ
CUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODlEMjg1MUEwQTJEQjgw
MDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCAqLzsgfTsKIAkJRTQ5RDQwRDcxQUQzRkIx
NzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlENDBENjFBRDNGQjE3MDA2NkI3QjkgLyog
TmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCAqLzsgfTsKKwkJRTRENTREMDQyMUYxRDcyRDAwN0Uz
QzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkzMjFGMEI5NkUw
MDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi87
IH07CiAJCUU0RTU3RjZCMjFBODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU1N0Y2QTIx
QTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovOyB9OwogCQlFNEU4NjQ5
MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZl
cnNpb25DaGVja3MuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oICovOyB9OwpAQCAtNDQ0MSw2ICs0NDQyLDggQEAKIAkJRTQwNDkwNzMy
MURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDA0OTA3NDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzUyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFB
QzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjEx
Njk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ4NDQsNyArNDg0Nyw2IEBACiAJCQkJMUE1M0MyQTUxQTMyNTY5RjAwNEU4QzcwIC8q
IFdlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQk1QzQ2QzBBQzIxQjcxOThCMDBCQzU5OTEgLyog
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTVDNDZDMEFEMjFCNzE5
OEMwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAotCQkJCTQx
MThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTU1MTMsNiArNTUxNSw4IEBACiAJCQkJMkRDMThGQjEyMThBNkU5RTAwMjVBODhE
IC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi8sCiAJCQkJMkRDMThGQjIyMThBNkU5RTAwMjVB
ODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tICovLAogCQkJCTBGMEMzNjVCMThDMDVDQTEw
MEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tICovLAorCQkJ
CUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLmggKi8sCisJCQkJRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8qIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8sCiAJCQkJMEY5MzFDMUEx
OEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1Mu
aCAqLywKIAkJCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRjkzMUMxQTE4QzU3MTE5MDBEQkI4RDQg
LyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oICovLApAQCAtODg1Miw2
ICs4ODU2LDcgQEAKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExp
bmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODUxOEJENjczQTAwMDdGREFDIC8q
IF9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMjg2
NzgxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4NjgwMUM3RjkyQzAw
MDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxMjBDODM1MUU1Qjc0QjkwMDI1QjI1MCAvKiBfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODMwLDcgKzk4MzUsNiBA
QAogCQkJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjU0OUI0MUUzMTc0QjcwMDBF
NzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEx
OERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmlu
Z0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tT
dHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5bmMtZnJhbWUtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL2NvbXBvc2l0aW5nL3RpbGluZy90aWxlZC1kcmF3aW5nLWFzeW5jLWZyYW1lLXNjcm9s
bGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0MDEwNikKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5bmMtZnJhbWUt
c2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDAsNTEgKzQwLDQxIEBA
CiAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAg
IChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgMTUw
LjAwKQogICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCiAgICAgICAg
ICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAg
ICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDAp
CisgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAtMTAuMDAsIC0xMC4wMCA4MDAuMDAg
eCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEp
CiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAg
ICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAg
ICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQorICAgICAg
ICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAg
IChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0
b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSBy
ZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChp
bnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAoY29udGVu
dHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAg
ICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0
MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHgg
MTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAz
MDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0
cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2lu
Z1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQg
MSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4w
MCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0
cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAg
KQpAQCAtMTE1LDUxICsxMDUsNDEgQEAKICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4w
MCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0
b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4w
MCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAw
LCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0
IC0zMTguMDAsIC0xMC4wMCA4MDAuMDAgeCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2Fs
ZSAyLjAwKQogICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0
YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAg
MC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwg
MC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMg
Y292ZXJhZ2UgcmVjdCAwKQorICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAw
KQorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAg
ICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAg
ICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNr
aW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAu
MDAgeCAzMDAuMDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVy
YWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4w
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0
MDAgeCAzMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEy
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdy
aWQgMSB4IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5k
cyA0MDAuMDAgMzAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFj
aGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
dmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAw
LjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMg
Y292ZXJhZ2UgcmVjdCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNv
dmVyYWdlIDAsIDAgNDAwIHggMzAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRp
bGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxl
ZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoaW4gd2luZG93IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4w
MCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJh
Z2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog
ICAgICAgICAgICAgICAgICAgICAgICAgKQpAQCAtMTkwLDUxICsxNzAsNDEgQEAKICAgICAgICAg
ICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAw
LjAwIDAuMDApCiAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAg
ICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAg
ICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAg
ICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAg
ICAgICAgICAgIChjb3ZlcmFnZSByZWN0IC0xMC4wMCwgLTE2OS4wMCA4MDAuMDAgeCA2MDAuMDAp
CiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAg
ICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAg
ICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAo
dmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAg
ICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAg
ICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQorICAgICAgICAgICAgICAg
ICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMg
NDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNo
ZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAw
LjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAs
IDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3Rz
IGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAy
LjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9y
IDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4w
MCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAw
LCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVy
YWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRp
bGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodG9w
IGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAx
NTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFn
ZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0
YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4w
MCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3Zl
cmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
YWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4w
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFn
ZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2Nh
bGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359475</attachid>
            <date>2019-01-18 05:03:22 -0800</date>
            <delta_ts>2019-01-18 05:05:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-12.patch</filename>
            <type>text/plain</type>
            <size>41441</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBVSVNjcm9sbFZpZXcgYmFzZWQgZnJhbWUgc2Nyb2xsaW5nIG9u
IGlPUywgZW5hYmxlZCBieSB0aGUgIkFzeW5jIEZyYW1lIFNjcm9sbGluZyIKKyAgICAgICAgaW50
ZXJuYWwgc2V0dGluZyAoc3RpbGwgb2ZmIGJ5IGRlZmF1bHQpLgorCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNjcm9sbExh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKworICAg
ICAgICBFeHBvcnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRDaGFuZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZyk6CisKKyAgICAgICAgSWYgd2UgZG9uJ3QgaGF2ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIsIGp1c3QgcmVzaXplIGFuZCBwb3NpdGlvbiB0aGUgc2Nyb2xs
IGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisKKyAgICAgICAgVXNlIEdy
YXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUgc2Nyb2xsIGxheWVyIHR5cGUgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgRG9uJ3QgY3JlYXRl
IGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Nyb2xsIGxheWVyIHdpbGwgaGFuZGxl
IGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
OgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNsYXNzZXMgZm9yIG92ZXJmbG93IHNj
cm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
IDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M+IGNyZWF0ZShT
Y3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MoKTsKIAogcHJvdGVjdGVk
OgpAQCAtNTUsMTUgKzU1LDE3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBG
bG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9s
bExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0
Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRlOgotICAgIHZvaWQgdXBkYXRlQ2hpbGROb2Rl
c0FmdGVyU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKK3Byb3RlY3RlZDoKICAgICBDQUxheWVy
ICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KKyAg
ICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChjb25zdCBGbG9hdFBvaW50Jik7CiAK
K3ByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAgICAgUmV0
YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwogICAgIFJldGFpblB0cjxD
QUxheWVyPiBtX2hlYWRlckxheWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1fc2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRp
b247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNl
dFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAyNDAxMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDQ3LDggKzQ0Nyw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnZpc2libGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBmcmFt
ZVZpZXcuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQotICAgIC8vIEhhdmluZyBhIG1fY2xp
cExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNjcm9sbGluZyB2aWEgR3JhcGhpY3NM
YXllcnMuCi0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9jbGlwTGF5ZXIgPyBGbG9hdFJl
Y3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpIDogZnJhbWVWaWV3LnZp
c2libGVDb250ZW50UmVjdCgpOworICAgIC8vIEhhdmluZyBhIG1fc2Nyb2xsTGF5ZXIgaW5kaWNh
dGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4KKyAgICBG
bG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbExheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJh
bWVWaWV3LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVu
dFJlY3QoKTsKIAogICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCiAgICAgICAg
IHZpc2libGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkudmFsdWUo
KSk7CkBAIC0xNzg2LDE4ICsxNzg2LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpm
cmFtZVZpZXdEaWQKICAgICBpZiAoYXV0byogbGF5ZXIgPSBtX3JlbmRlclZpZXcubGF5ZXIoKSkK
ICAgICAgICAgbGF5ZXItPnNldE5lZWRzQ29tcG9zaXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogCi0g
ICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwotICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6
ZShmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2NsaXBMYXll
ci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0KKyAgICBpZiAobV9zY3Jv
bGxMYXllcikgeworICAgICAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAgICAgICAg
IGZyYW1lVmlld0RpZFNjcm9sbCgpOwogICAgICAgICB1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5
ZXJzKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgICAgIGlmIChtX2xheWVy
Rm9yT3ZlcmhhbmdBcmVhcykgeworICAgICAgICAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5k
ZXJWaWV3LmZyYW1lVmlldygpOwogICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMt
PnNldFNpemUoZnJhbWVWaWV3LmZyYW1lUmVjdCgpLnNpemUoKSk7Ci0gICAgICAgICAgICBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCBtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkudG9wQ29udGVudEluc2V0KCkpKTsKKyAgICAgICAgICAgIG1fbGF5ZXJG
b3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIGZyYW1lVmlldy50b3BD
b250ZW50SW5zZXQoKSkpOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9CkBAIC0xODIyLDYgKzE4
MjAsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbAogICAgICAg
ICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oZnJhbWVWaWV3LnNjcm9sbFBvc2l0
aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKQoreworICAgIGF1dG8qIGxheWVyRm9yQ2xpcHBp
bmcgPSB0aGlzLT5sYXllckZvckNsaXBwaW5nKCk7CisgICAgaWYgKCFsYXllckZvckNsaXBwaW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRTaXplKG1fcmVu
ZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7CisgICAgbGF5ZXJG
b3JDbGlwcGluZy0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Cit9CisKIEZs
b2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNv
bnN0CiB7CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwpA
QCAtMjA1NywxMCArMjA2NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVS
b290TGEKICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRQb3NpdGlvbihtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkucG9zaXRpb25Gb3JSb290Q29udGVudExheWVyKCkpOwogICAgICAgICBt
X3Jvb3RDb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKICAgICB9
Ci0gICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKG1f
cmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7Ci0gICAgICAg
IG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigpKTsKLSAgICB9
CisKKyAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKG1fY29udGVudFNoYWRvd0xheWVyICYmIG1fcm9vdENvbnRlbnRM
YXllcikgewpAQCAtMzI5Myw3ICszMjk5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZU92ZXJmbAogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBvdmVyaGFuZyBhcmVh
cyBsYXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBjb250ZW50cywKICAgICAg
ICAgICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXllci4KLSAgICAgICAgICAg
IG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92
ZXJoYW5nQXJlYXMsIG1fY2xpcExheWVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3dD
b250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92ZXJoYW5nQXJlYXMs
IGxheWVyRm9yQ2xpcHBpbmcoKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgR3Jh
cGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcyk7CkBA
IC0zNDA1LDIzICszNDExLDMwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVS
b290TGEKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgICAgICAg
ICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPnNldE5hbWUoIm92ZXJmbG93IGNvbnRyb2xz
IGhvc3QiKTsKIAotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgY2xpcHBpbmcgbGF5ZXIgaWYgdGhp
cyBpcyBhbiBpZnJhbWUKLSAgICAgICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKLSAgICAgICAgICAgIG1fY2xp
cExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOwotICAgICAgICAgICAgbV9jbGlwTGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
c2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpOworICAgICAgICAgICAgYXV0byBzY3JvbGxMYXllclR5cGUgPSBHcmFwaGljc0xh
eWVyOjpUeXBlOjpOb3JtYWw7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgaWYgKG1f
cmVuZGVyVmlldy5zZXR0aW5ncygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkpCisgICAg
ICAgICAgICAgICAgc2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xs
aW5nOworI2VuZGlmCisgICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzLCBzY3JvbGxMYXllclR5cGUpOwog
ICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiZnJhbWUgc2Nyb2xsaW5nIik7CiAK
LSAgICAgICAgICAgIC8vIEhvb2sgdGhlbSB1cAotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRy
b2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOwotICAgICAgICAgICAgbV9jbGlw
TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5
ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5ZXIpOworICAgICAgICAgICAgaWYgKHNjcm9s
bExheWVyVHlwZSA9PSBHcmFwaGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcpIHsKKyAgICAgICAg
ICAgICAgICAvLyBTY3JvbGwgbGF5ZXIgY2xpcHMgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBz
ZXBhcmF0ZSBjbGlwcGluZyBsYXllci4KKyAgICAgICAgICAgICAgICBtX292ZXJmbG93Q29udHJv
bHNIb3N0TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUo
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVy
LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAKLSAgICAgICAgICAgIG1fY2xpcExh
eWVyLT5zZXRTaXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRl
bnQoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JD
bGlwTGF5ZXIoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludDNEKCkpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGlsZCgqbV9z
Y3JvbGxMYXllcik7CisgICAgICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVy
LT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBt
X3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290Q29udGVudExheWVyKTsKIAorICAgICAgICAg
ICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogICAgICAgICAgICAgdXBkYXRlT3ZlcmZs
b3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3Jv
bGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIz
Niw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaXBMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250ZW50
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCk7IH0KIAorICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yQ2xpcHBpbmcoKSBjb25zdCB7ICByZXR1cm4gbV9jbGlw
TGF5ZXIgPyBtX2NsaXBMYXllci5nZXQoKSA6IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9CiAKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOyB9CkBAIC00MzMsNiArNDM0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsK
IAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbigpOworICAgIHZvaWQgdXBkYXRl
U2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckNsaXBM
YXllcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQwMTQwKQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0w
MS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGFzeW5jaHJvbm91cyBmcmFtZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzM3OTg3Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBzY3JvbGxpbmcgbm9kZSB0eXBlIHRoYXQgY2FuIGhhbmRsZSBVSVNj
cm9sbFZpZXcgYmFja2VkIGZyYW1lcy4KKyAgICAgICAgSXQgYmFzaWNhbGx5IGp1c3QgaW5zdGFu
dGlhdGVzIGFuZCBmb3J3YXJkcyB0byB0aGUgZXhpc3RpbmcgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25uZWN0
U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6
Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNlc3RvckNo
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6OnNjcm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDb250ZW50IG9mZnNl
dCBqdW1wcyBlcnJhdGljYWxseSB3aGVuIGF1dG9zY3JvbGxpbmcgbmVhciBzY3JvbGwgdmlldyBj
b250ZW50IGluc2V0IGFyZWFzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAy
NDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTQ1NCw2ICs0NTQsNyBAQCBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxp
bmdUCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHlJT1MubW0KK1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MubW0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24g
MjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlP
Uy5oPgogI2Vsc2UKQEAgLTExNSw3ICsxMTYsNyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJl
bW90ZVNjcm9sbGluZ1RyCiAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6TWFpbkZyYW1lOgog
ICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6OlN1YmZyYW1lOgogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
OjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOworICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlw
ZSwgbm9kZUlEKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpjbwogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikp
CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldExheWVyKGxheWVyVHJlZUhv
c3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUubGF5ZXIoKSkpOwogCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCisgICAgICAgICAgICAgICAg
c2Nyb2xsaW5nU3RhdGVOb2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllclRyZWVIb3N0
LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGVkQ29udGVudHNMYXllcigpKSk7
CisKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpDb3VudGVyU2Nyb2xsaW5nTGF5ZXIp
KQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRDb3VudGVyU2Nyb2xsaW5n
TGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5jb3VudGVy
U2Nyb2xsaW5nTGF5ZXIoKSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOworCitj
bGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TIDogcHVibGljIFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gY3Jl
YXRlKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKCk7CisKK3ByaXZhdGU6CisgICAgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisKKyAg
ICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisKKyAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KSBvdmVycmlkZTsKKworICAgIHZv
aWQgdXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0
ZXJBbmNlc3RvckNoYW5nZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZSYgY2hhbmdl
ZE5vZGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBvdmVycmlkZTsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TPiBtX3Nj
cm9sbGluZ05vZGVEZWxlZ2F0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1MubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTExIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKFNjcm9sbGluZ1RyZWUmIHNj
cm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJRCkpOwor
fQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1Ry
ZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQor
ICAgIDogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyhzY3JvbGxpbmdUcmVlLCBu
b2RlVHlwZSwgbm9kZUlEKQoreworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TOjp+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUygpCit7
Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29t
bWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9k
ZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAoc3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbExheWVyKSkgewor
ICAgICAgICBpZiAoc2Nyb2xsTGF5ZXIoKSAmJiBbW3Njcm9sbExheWVyKCkgZGVsZWdhdGVdIGlz
S2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBzZWxmXV0pCisgICAgICAgICAgICBtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUz4oKnRoaXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Njcm9s
bGluZ05vZGVEZWxlZ2F0ZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2Nyb2xsaW5n
Tm9kZURlbGVnYXRlKQorICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0
YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
IHN0YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpj
b21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGlmIChtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0
YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJl
ZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBj
b25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdO
b2RlRGVsZWdhdGUpIHsKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnVwZGF0ZUxh
eWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBj
dW11bGF0aXZlRGVsdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2Uo
Y2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBjdW11bGF0aXZlRGVsdGEpOworfQorCitG
bG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OnNjcm9s
bFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpCisg
ICAgICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2Nyb2xsUG9zaXRpb24oKTsK
KworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxQ
b3NpdGlvbigpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpCit7CisgICAgaWYgKG1fc2Ny
b2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5z
ZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxM
YXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydCk7Cit9CisKK3ZvaWQg
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0
ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7Cisg
ICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9k
ZURlbGVnYXRlLT51cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoc2Nyb2xsUG9zaXRpb24pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsK
K30KKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTU5Myw2
ICsxNTkzLDcgQEAKIAkJRTQ0MzZFQ0YxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
NDM2RUMyMUEwQ0ZEQjIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmggKi87IH07CiAJ
CUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODlEMjg1MUEwQTJEQjgw
MDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCAqLzsgfTsKIAkJRTQ5RDQwRDcxQUQzRkIx
NzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlENDBENjFBRDNGQjE3MDA2NkI3QjkgLyog
TmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCAqLzsgfTsKKwkJRTRENTREMDQyMUYxRDcyRDAwN0Uz
QzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkzMjFGMEI5NkUw
MDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi87
IH07CiAJCUU0RTU3RjZCMjFBODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU1N0Y2QTIx
QTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovOyB9OwogCQlFNEU4NjQ5
MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZl
cnNpb25DaGVja3MuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oICovOyB9OwpAQCAtNDQ0MSw2ICs0NDQyLDggQEAKIAkJRTQwNDkwNzMy
MURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDA0OTA3NDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzUyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFB
QzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjEx
Njk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ4NDQsNyArNDg0Nyw2IEBACiAJCQkJMUE1M0MyQTUxQTMyNTY5RjAwNEU4QzcwIC8q
IFdlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQk1QzQ2QzBBQzIxQjcxOThCMDBCQzU5OTEgLyog
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTVDNDZDMEFEMjFCNzE5
OEMwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAotCQkJCTQx
MThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5hZ2VyLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTU1MTMsNiArNTUxNSw4IEBACiAJCQkJMkRDMThGQjEyMThBNkU5RTAwMjVBODhE
IC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi8sCiAJCQkJMkRDMThGQjIyMThBNkU5RTAwMjVB
ODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tICovLAogCQkJCTBGMEMzNjVCMThDMDVDQTEw
MEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tICovLAorCQkJ
CUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLmggKi8sCisJCQkJRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8qIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8sCiAJCQkJMEY5MzFDMUEx
OEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1Mu
aCAqLywKIAkJCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRjkzMUMxQTE4QzU3MTE5MDBEQkI4RDQg
LyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oICovLApAQCAtODg1Miw2
ICs4ODU2LDcgQEAKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExp
bmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODUxOEJENjczQTAwMDdGREFDIC8q
IF9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMjg2
NzgxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4NjgwMUM3RjkyQzAw
MDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxMjBDODM1MUU1Qjc0QjkwMDI1QjI1MCAvKiBfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODMwLDcgKzk4MzUsNiBA
QAogCQkJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjU0OUI0MUUzMTc0QjcwMDBF
NzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEx
OERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmlu
Z0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tT
dHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDE0MCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE5LTAxLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgYXN5bmNocm9ub3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90aWxpbmcv
dGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OgorCiAyMDE5
LTAxLTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIENvbnRlbnQgb2Zmc2V0IGp1bXBzIGVycmF0aWNhbGx5IHdoZW4gYXV0b3Njcm9sbGlu
ZyBuZWFyIHNjcm9sbCB2aWV3IGNvbnRlbnQgaW5zZXQgYXJlYXMKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5bmMt
ZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5nL3RpbGluZy90aWxlZC1kcmF3aW5nLWFzeW5jLWZy
YW1lLXNjcm9sbGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0MDEwNikKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5
bmMtZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDAsNTEg
KzQwLDQxIEBACiAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAg
ICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAg
ICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgKGJvdW5kcyAz
MDAuMDAgMTUwLjAwKQogICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEp
CiAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUw
LjAwKQotICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAg
eCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAtMTAuMDAsIC0xMC4w
MCA4MDAuMDAgeCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFn
ZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAg
ICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKLSAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAx
NTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAw
KQorICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAg
ICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChj
b3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAg
ICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CiAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hl
ZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAg
MzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVj
dCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAw
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHgg
MTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4w
MCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
aW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAw
IHggMzAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1
MTIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRp
bGVzIGdyaWQgMSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93
IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
aW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgICAgICAgKQpAQCAtMTE1LDUxICsxMDUsNDEgQEAKICAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAoY292ZXJhZ2Ug
cmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgIChjb3Zl
cmFnZSByZWN0IC0zMTguMDAsIC0xMC4wMCA4MDAuMDAgeCA2MDAuMDApCiAgICAgICAgICAgICAg
ICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAoY29u
dGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAoYmFja2lu
Z1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAu
MDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJl
Y3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGlu
dGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQorICAgICAgICAgICAgICAgICAgICAgIChhbmNob3Ig
MC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkK
KyAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHgg
MzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3Qg
MSkKICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAo
dmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4
IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwg
MC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNl
Y3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJh
Z2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUg
NTEyIHggNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAw
IHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cg
MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdT
dG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHgg
MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAs
IDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlu
dGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxl
IGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRh
Y2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgKQpAQCAtMTkwLDUxICsxNzAsNDEgQEAK
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAg
KGFuY2hvciAwLjAwIDAuMDApCiAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAu
MDApCiAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAg
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAg
ICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkK
KyAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IC0xMC4wMCwgLTE2OS4wMCA4MDAuMDAg
eCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEp
CiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAg
ICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAg
ICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQorICAgICAg
ICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAg
IChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0
b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSBy
ZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChp
bnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAoY29udGVu
dHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAg
ICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0
MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHgg
MTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAz
MDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0
cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2lu
Z1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQg
MSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4w
MCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0
cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAg
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359476</attachid>
            <date>2019-01-18 05:05:28 -0800</date>
            <delta_ts>2019-01-18 05:11:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-13.patch</filename>
            <type>text/plain</type>
            <size>41390</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBVSVNjcm9sbFZpZXcgYmFzZWQgZnJhbWUgc2Nyb2xsaW5nIG9u
IGlPUywgZW5hYmxlZCBieSB0aGUgIkFzeW5jIEZyYW1lIFNjcm9sbGluZyIKKyAgICAgICAgaW50
ZXJuYWwgc2V0dGluZyAoc3RpbGwgb2ZmIGJ5IGRlZmF1bHQpLgorCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNjcm9sbExh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKworICAg
ICAgICBFeHBvcnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRDaGFuZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZyk6CisKKyAgICAgICAgSWYgd2UgZG9uJ3QgaGF2ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIsIGp1c3QgcmVzaXplIGFuZCBwb3NpdGlvbiB0aGUgc2Nyb2xs
IGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisKKyAgICAgICAgVXNlIEdy
YXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUgc2Nyb2xsIGxheWVyIHR5cGUgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgRG9uJ3QgY3JlYXRl
IGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Nyb2xsIGxheWVyIHdpbGwgaGFuZGxl
IGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
OgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNsYXNzZXMgZm9yIG92ZXJmbG93IHNj
cm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
IDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M+IGNyZWF0ZShT
Y3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MoKTsKIAogcHJvdGVjdGVk
OgpAQCAtNTUsMTQgKzU1LDE2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBG
bG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9s
bExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0
Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpOwotICAgIENBTGF5ZXIg
KnNjcm9sbExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQogCiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5
ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBAIEZsb2F0UG9pbnQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1fc2Nyb2xsTGF5ZXIuZ2V0KCku
cG9zaXRpb247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6
c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7Cisg
ICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJ
T1M6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9s
bExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAyNDAx
MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQ3LDggKzQ0Nyw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnZpc2libGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVy
biBmcmFtZVZpZXcuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQotICAgIC8vIEhhdmluZyBh
IG1fY2xpcExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNjcm9sbGluZyB2aWEgR3Jh
cGhpY3NMYXllcnMuCi0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9jbGlwTGF5ZXIgPyBG
bG9hdFJlY3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpIDogZnJhbWVW
aWV3LnZpc2libGVDb250ZW50UmVjdCgpOworICAgIC8vIEhhdmluZyBhIG1fc2Nyb2xsTGF5ZXIg
aW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4K
KyAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbExheWVyID8gRmxvYXRSZWN0KHsg
fSwgZnJhbWVWaWV3LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxl
Q29udGVudFJlY3QoKTsKIAogICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCiAg
ICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCku
dmFsdWUoKSk7CkBAIC0xNzg2LDE4ICsxNzg2LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpmcmFtZVZpZXdEaWQKICAgICBpZiAoYXV0byogbGF5ZXIgPSBtX3JlbmRlclZpZXcubGF5
ZXIoKSkKICAgICAgICAgbGF5ZXItPnNldE5lZWRzQ29tcG9zaXRpbmdHZW9tZXRyeVVwZGF0ZSgp
OwogCi0gICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIGNvbnN0IEZyYW1lVmlldyYgZnJh
bWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwotICAgICAgICBtX2NsaXBMYXllci0+
c2V0U2l6ZShmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2Ns
aXBMYXllci0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0KKyAgICBpZiAo
bV9zY3JvbGxMYXllcikgeworICAgICAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAg
ICAgICAgIGZyYW1lVmlld0RpZFNjcm9sbCgpOwogICAgICAgICB1cGRhdGVPdmVyZmxvd0NvbnRy
b2xzTGF5ZXJzKCk7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgICAgIGlmICht
X2xheWVyRm9yT3ZlcmhhbmdBcmVhcykgeworICAgICAgICAgICAgYXV0byYgZnJhbWVWaWV3ID0g
bV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5n
QXJlYXMtPnNldFNpemUoZnJhbWVWaWV3LmZyYW1lUmVjdCgpLnNpemUoKSk7Ci0gICAgICAgICAg
ICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCBtX3Jl
bmRlclZpZXcuZnJhbWVWaWV3KCkudG9wQ29udGVudEluc2V0KCkpKTsKKyAgICAgICAgICAgIG1f
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDAsIGZyYW1lVmll
dy50b3BDb250ZW50SW5zZXQoKSkpOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9CkBAIC0xODIy
LDYgKzE4MjAsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbAog
ICAgICAgICBmaXhlZEJhY2tncm91bmRMYXllci0+c2V0UG9zaXRpb24oZnJhbWVWaWV3LnNjcm9s
bFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKQoreworICAgIGF1dG8qIGxheWVyRm9y
Q2xpcHBpbmcgPSB0aGlzLT5sYXllckZvckNsaXBwaW5nKCk7CisgICAgaWYgKCFsYXllckZvckNs
aXBwaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRTaXpl
KG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7CisgICAg
bGF5ZXJGb3JDbGlwcGluZy0+c2V0UG9zaXRpb24ocG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSk7Cit9
CisKIEZsb2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXll
cigpIGNvbnN0CiB7CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmll
dygpOwpAQCAtMjA1NywxMCArMjA2NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1
cGRhdGVSb290TGEKICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRQb3NpdGlvbihtX3Jl
bmRlclZpZXcuZnJhbWVWaWV3KCkucG9zaXRpb25Gb3JSb290Q29udGVudExheWVyKCkpOwogICAg
ICAgICBtX3Jvb3RDb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsK
ICAgICB9Ci0gICAgaWYgKG1fY2xpcExheWVyKSB7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRT
aXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7Ci0g
ICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigpKTsK
LSAgICB9CisKKyAgICB1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCk7CiAKICNpZiBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKG1fY29udGVudFNoYWRvd0xheWVyICYmIG1fcm9vdENv
bnRlbnRMYXllcikgewpAQCAtMzI5Myw3ICszMjk5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZU92ZXJmbAogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBvdmVyaGFu
ZyBhcmVhcyBsYXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBjb250ZW50cywK
ICAgICAgICAgICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXllci4KLSAgICAg
ICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXll
ckZvck92ZXJoYW5nQXJlYXMsIG1fY2xpcExheWVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fb3Zl
cmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGRCZWxvdygqbV9sYXllckZvck92ZXJoYW5n
QXJlYXMsIGxheWVyRm9yQ2xpcHBpbmcoKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAg
ICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX2xheWVyRm9yT3ZlcmhhbmdBcmVh
cyk7CkBAIC0zNDA1LDIzICszNDExLDMwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpl
bnN1cmVSb290TGEKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllciA9IEdy
YXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAg
ICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPnNldE5hbWUoIm92ZXJmbG93IGNv
bnRyb2xzIGhvc3QiKTsKIAotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgY2xpcHBpbmcgbGF5ZXIg
aWYgdGhpcyBpcyBhbiBpZnJhbWUKLSAgICAgICAgICAgIG1fY2xpcExheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKLSAgICAgICAgICAg
IG1fY2xpcExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOwotICAgICAgICAgICAgbV9j
bGlwTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIG1fc2Nyb2xsTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSwgKnRoaXMpOworICAgICAgICAgICAgYXV0byBzY3JvbGxMYXllclR5cGUgPSBHcmFw
aGljc0xheWVyOjpUeXBlOjpOb3JtYWw7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAg
aWYgKG1fcmVuZGVyVmlldy5zZXR0aW5ncygpLmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkp
CisgICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6
U2Nyb2xsaW5nOworI2VuZGlmCisgICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzLCBzY3JvbGxMYXllclR5
cGUpOwogICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0TmFtZSgiZnJhbWUgc2Nyb2xsaW5n
Iik7CiAKLSAgICAgICAgICAgIC8vIEhvb2sgdGhlbSB1cAotICAgICAgICAgICAgbV9vdmVyZmxv
d0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOwotICAgICAgICAgICAg
bV9jbGlwTGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKLSAgICAgICAgICAgIG1fc2Ny
b2xsTGF5ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5ZXIpOworICAgICAgICAgICAgaWYg
KHNjcm9sbExheWVyVHlwZSA9PSBHcmFwaGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcpIHsKKyAg
ICAgICAgICAgICAgICAvLyBTY3JvbGwgbGF5ZXIgY2xpcHMgc28gdGhlcmUgaXMgbm8gbmVlZCBm
b3IgYSBzZXBhcmF0ZSBjbGlwcGluZyBsYXllci4KKyAgICAgICAgICAgICAgICBtX292ZXJmbG93
Q29udHJvbHNIb3N0TGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVyKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpj
cmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOworICAgICAgICAgICAgICAgIG1f
Y2xpcExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIpOworICAgICAgICAgICAgICAgIG1f
Y2xpcExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fY2xp
cExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAKLSAgICAgICAgICAgIG1f
Y2xpcExheWVyLT5zZXRTaXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zaXplRm9yVmlzaWJs
ZUNvbnRlbnQoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0UG9zaXRpb24ocG9zaXRp
b25Gb3JDbGlwTGF5ZXIoKSk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9p
bnQoRmxvYXRQb2ludDNEKCkpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGls
ZCgqbV9zY3JvbGxMYXllcik7CisgICAgICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9z
dExheWVyLT5hZGRDaGlsZCgqbV9jbGlwTGF5ZXIpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290Q29udGVudExheWVyKTsKIAorICAg
ICAgICAgICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogICAgICAgICAgICAgdXBkYXRl
T3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0
ZWRTY3JvbGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2
LDYgKzIzNiw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyKiBjbGlwTGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX2NsaXBMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RD
b250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCk7IH0K
IAorICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yQ2xpcHBpbmcoKSBjb25zdCB7ICByZXR1cm4g
bV9jbGlwTGF5ZXIgPyBtX2NsaXBMYXllci5nZXQoKSA6IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9
CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgR3JhcGhpY3NMYXllciogaGVhZGVy
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOyB9CkBAIC00MzMs
NiArNDM0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXll
cnMoKTsKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbigpOworICAgIHZvaWQg
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZv
ckNsaXBMYXllcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQwMTQwKQorKysg
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAor
MjAxOS0wMS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IGFzeW5jaHJvbm91cyBmcmFtZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzM3OTg3Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBzY3JvbGxpbmcgbm9kZSB0eXBlIHRoYXQgY2FuIGhhbmRs
ZSBVSVNjcm9sbFZpZXcgYmFja2VkIGZyYW1lcy4KKyAgICAgICAgSXQgYmFzaWNhbGx5IGp1c3Qg
aW5zdGFudGlhdGVzIGFuZCBmb3J3YXJkcyB0byB0aGUgZXhpc3RpbmcgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNj
cm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpj
b25uZWN0U3RhdGVOb2RlTGF5ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVu
KToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJBbmNl
c3RvckNoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVJT1M6OnNjcm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMS0xNyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDb250ZW50
IG9mZnNldCBqdW1wcyBlcnJhdGljYWxseSB3aGVuIGF1dG9zY3JvbGxpbmcgbmVhciBzY3JvbGwg
dmlldyBjb250ZW50IGluc2V0IGFyZWFzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZp
c2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1NCw2ICs0NTQsNyBAQCBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9T
Y3JvbGxpbmdUCiAKIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJl
ZUhvc3RJT1MubW0KIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KK1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0K
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MubW0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkocmV2
aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oPgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUy5oPgogI2Vsc2UKQEAgLTExNSw3ICsxMTYsNyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5v
ZGU+IFJlbW90ZVNjcm9sbGluZ1RyCiAgICAgY2FzZSBTY3JvbGxpbmdOb2RlVHlwZTo6TWFpbkZy
YW1lOgogICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6OlN1YmZyYW1lOgogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlSU9TOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQpOworICAgICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKCp0aGlzLCBu
b2RlVHlwZSwgbm9kZUlEKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVUeXBlLCBub2RlSUQp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjbwogICAgICAgICAgICAgaWYgKHNjcm9sbGlu
Z1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxM
YXllcikpCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldExheWVyKGxheWVy
VHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUubGF5ZXIoKSkpOwogCisgICAg
ICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpCisgICAgICAgICAg
ICAgICAgc2Nyb2xsaW5nU3RhdGVOb2RlLnNldFNjcm9sbGVkQ29udGVudHNMYXllcihsYXllclRy
ZWVIb3N0LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGVkQ29udGVudHNMYXll
cigpKSk7CisKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpDb3VudGVyU2Nyb2xsaW5n
TGF5ZXIpKQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRDb3VudGVyU2Ny
b2xsaW5nTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5j
b3VudGVyU2Nyb2xsaW5nTGF5ZXIoKSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
OworCitjbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TIDogcHVi
bGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uz4gY3JlYXRlKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
VHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2aXJ0dWFsIH5TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKCk7CisKK3ByaXZhdGU6CisgICAgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
JiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7
CisKKyAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisKKyAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlTGF5
ZXJzQWZ0ZXJBbmNlc3RvckNoYW5nZShjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZSYg
Y2hhbmdlZE5vZGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBvdmVycmlkZTsKKwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
PiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTExIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW1wb3J0ICJTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUz4gU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y3JlYXRlKFNjcm9sbGluZ1Ry
ZWUmIHNjcm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQgbm9kZUlEKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJ
RCkpOworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKFNjcm9sbGluZ1RyZWUmIHNjcm9s
bGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQorICAgIDogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyhzY3JvbGxpbmdU
cmVlLCBub2RlVHlwZSwgbm9kZUlEKQoreworfQorCitTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TOjp+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
UygpCit7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0
YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjb21t
aXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAoc3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbExheWVy
KSkgeworICAgICAgICBpZiAoc2Nyb2xsTGF5ZXIoKSAmJiBbW3Njcm9sbExheWVyKCkgZGVsZWdh
dGVdIGlzS2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBzZWxmXV0pCisgICAgICAgICAgICBtX3Nj
cm9sbGluZ05vZGVEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUz4oKnRoaXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2Ny
b2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+Y29t
bWl0U3RhdGVCZWZvcmVDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+KHN0YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUmIHN0YXRlTm9kZSkKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
SU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGlmIChtX3Nj
cm9sbGluZ05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNv
bW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+KHN0YXRlTm9kZSkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xs
aW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25S
ZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkKK3sKKyAgICBpZiAobV9zY3Jv
bGxpbmdOb2RlRGVsZWdhdGUpIHsKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnVw
ZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25S
ZWN0LCBjdW11bGF0aXZlRGVsdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JD
aGFuZ2UoY2hhbmdlZE5vZGUsIGZpeGVkUG9zaXRpb25SZWN0LCBjdW11bGF0aXZlRGVsdGEpOwor
fQorCitGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6
OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdh
dGUpCisgICAgICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2Nyb2xsUG9zaXRp
b24oKTsKKworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpz
Y3JvbGxQb3NpdGlvbigpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQpCit7CisgICAgaWYg
KG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVn
YXRlLT5zZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRT
Y3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydCk7Cit9CisK
K3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6dXBkYXRlTGF5
ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24p
Cit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xs
aW5nTm9kZURlbGVnYXRlLT51cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoc2Nyb2xsUG9zaXRp
b24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9sbFBvc2l0
aW9uKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTU5Myw2ICsxNTkzLDcgQEAKIAkJRTQ0MzZFQ0YxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtD
YWNoZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0NDM2RUMyMUEwQ0ZEQjIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmggKi87
IH07CiAJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODlEMjg1MUEw
QTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCAqLzsgfTsKIAkJRTQ5RDQwRDcx
QUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlENDBENjFBRDNGQjE3MDA2NkI3
QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCAqLzsgfTsKKwkJRTRENTREMDQyMUYxRDcy
RDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkzMjFG
MEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
LmggKi87IH07CiAJCUU0RTU3RjZCMjFBODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU1
N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovOyB9OwogCQlF
NEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQw
IC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9OwpAQCAtNDQ0MSw2ICs0NDQyLDggQEAKIAkJRTQw
NDkwNzMyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDA0OTA3NDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlck1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzUyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVy
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyTWFjLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwQzFGOTUyMUYwQjk3RjAwNTMw
NzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEz
RjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVu
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNo
ZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQw
RDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ4NDQsNyArNDg0Nyw2IEBACiAJCQkJMUE1M0MyQTUxQTMyNTY5RjAwNEU4
QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQk1QzQ2QzBBQzIxQjcxOThCMDBCQzU5
OTEgLyogV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTVDNDZDMEFE
MjFCNzE5OEMwMEJDNTk5MSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oICovLAot
CQkJCTQxMThEQzFCMjFFNkQxMUEwMERFMDRDNyAvKiBXZWJzaXRlRGF0YVN0b3JlUXVvdGFNYW5h
Z2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTU1MTMsNiArNTUxNSw4IEBACiAJCQkJMkRDMThGQjEyMThBNkU5RTAw
MjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLmggKi8sCiAJCQkJMkRDMThGQjIyMThBNkU5
RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tICovLAogCQkJCTBGMEMzNjVCMThD
MDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tICov
LAorCQkJCUU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLmggKi8sCisJCQkJRTQwQzFGOTUyMUYwQjk3RjAwNTMwNzE4IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gKi8sCiAJCQkJMEY5
MzFDMUExOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MuaCAqLywKIAkJCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLywKIAkJCQkwRjkzMUMxQTE4QzU3MTE5MDBE
QkI4RDQgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oICovLApAQCAt
ODg1Miw2ICs4ODU2LDcgQEAKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlz
aXRlZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODUxOEJENjczQTAwMDdG
REFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMjg2NzgxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4NjgwMUM3
RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBDODM1MUU1Qjc0QjkwMDI1QjI1MCAvKiBfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODMwLDcgKzk4
MzUsNiBAQAogCQkJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjU0OUI0MUUzMTc0
QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDExOERDMUYyMUU3QkY1RDAwREUwNEM3IC8qIFdLU3RvcmFnZVF1b3RhRGVsZWdhdGVQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tT
dHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBX
S1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYg
LyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0
MDE0MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDE5LTAxLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9ub3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90
aWxpbmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Ogor
CiAyMDE5LTAxLTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIENvbnRlbnQgb2Zmc2V0IGp1bXBzIGVycmF0aWNhbGx5IHdoZW4gYXV0b3Nj
cm9sbGluZyBuZWFyIHNjcm9sbCB2aWV3IGNvbnRlbnQgaW5zZXQgYXJlYXMKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmct
YXN5bmMtZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5nL3RpbGluZy90aWxlZC1kcmF3aW5nLWFz
eW5jLWZyYW1lLXNjcm9sbGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0MDEwNikKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdp
bmctYXN5bmMtZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNTEgKzQwLDQxIEBACiAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAg
ICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgKGJv
dW5kcyAzMDAuMDAgMTUwLjAwKQogICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFj
aGVkIDEpCiAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAw
IHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAz
MDAuMDAgeCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAtMTAuMDAs
IC0xMC4wMCA4MDAuMDAgeCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBj
b3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQog
ICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkK
LSAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAu
MDApCi0gICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAu
MDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2Ug
cmVjdCAwKQorICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAg
ICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlz
aWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAg
ICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAg
ICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVB
dHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJh
Z2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAu
MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3Qg
MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAg
MzAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAw
LjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJl
Y3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2Ug
cmVjdCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4w
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAs
IDAgNDAwIHggMzAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAw
LCAwIHRpbGVzIGdyaWQgMSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4g
d2luZG93IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHgg
MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICAgICAgICAgICAgICAgKQpAQCAtMTE1LDUxICsxMDUsNDEgQEAKICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDAp
CiAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAgICAgICAgICAg
ICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAoY292
ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAg
IChjb3ZlcmFnZSByZWN0IC0zMTguMDAsIC0xMC4wMCA4MDAuMDAgeCA2MDAuMDApCiAgICAgICAg
ICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAg
ICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAg
ICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgKGNvdmVy
YWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAg
ICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQorICAgICAgICAgICAgICAgICAgICAgIChh
bmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMw
MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAg
ICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAw
LjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdl
IHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAg
ICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4w
MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4w
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQw
MC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3Qg
MC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChp
bnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUg
Y292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxl
IHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGls
ZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3
aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJh
Y2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlz
aWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAw
LjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3Rv
cmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgKQpAQCAtMTkwLDUxICsxNzAs
NDEgQEAKICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAg
KGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAg
ICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4w
MCAxNTAuMDApCiAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAg
ICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDAp
Ci0gICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1
MC4wMCkKKyAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IC0xMC4wMCwgLTE2OS4wMCA4
MDAuMDAgeCA2MDAuMDApCiAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSBy
ZWN0IDEpCiAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
LSAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAg
ICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAu
MDApCi0gICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQor
ICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYmFj
a2luZ1N0b3JlQXR0YWNoZWQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0
IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb3Zl
cmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAg
ICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgICAgICAo
Y29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAg
ICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJv
dW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAx
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAw
LjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZp
c2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgMSB4IDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUw
LjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwg
MC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHgg
MzAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG9wIGxlZnQgdGlsZSAwLCAwIHRpbGVz
IGdyaWQgMSB4IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAw
IDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg
ICAgICAgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359478</attachid>
            <date>2019-01-18 05:11:17 -0800</date>
            <delta_ts>2019-01-18 11:11:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-14.patch</filename>
            <type>text/plain</type>
            <size>41640</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW1wbGVtZW50cyBVSVNjcm9sbFZpZXcgYmFzZWQgZnJhbWUgc2Nyb2xsaW5nIG9u
IGlPUywgZW5hYmxlZCBieSB0aGUgIkFzeW5jIEZyYW1lIFNjcm9sbGluZyIKKyAgICAgICAgaW50
ZXJuYWwgc2V0dGluZyAoc3RpbGwgb2ZmIGJ5IGRlZmF1bHQpLgorCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNjcm9sbExh
eWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKworICAg
ICAgICBFeHBvcnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRDaGFuZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZyk6CisKKyAgICAgICAgSWYgd2UgZG9uJ3QgaGF2ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIsIGp1c3QgcmVzaXplIGFuZCBwb3NpdGlvbiB0aGUgc2Nyb2xs
IGxheWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisKKyAgICAgICAgVXNlIEdy
YXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyBhcyB0aGUgc2Nyb2xsIGxheWVyIHR5cGUgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgRG9uJ3QgY3JlYXRl
IGEgc2VwYXJhdGUgY2xpcCBsYXllciBzaW5jZSB0aGUgc2Nyb2xsIGxheWVyIHdpbGwgaGFuZGxl
IGNsaXBwaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
OgorCiAyMDE5LTAxLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0dWIgb3V0IHNjcm9sbGluZyB0cmVlIGNsYXNzZXMgZm9yIG92ZXJmbG93IHNj
cm9sbGluZyBub2RlcyBvbiBtYWNPUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUy5oCShyZXZpc2lvbiAyNDAxMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw5ICszNCw5IEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
IDogcHVibGljIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M+IGNyZWF0ZShT
Y3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MoKTsKIAogcHJvdGVjdGVk
OgpAQCAtNTUsMTQgKzU1LDE2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgU2Nyb2xsaW5nVHJlZU5vZGUm
IGNoYW5nZWROb2RlLCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBG
bG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9s
bExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0
Vmlld3BvcnQpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNoaWxkTm9kZXNBZnRlclNjcm9sbChjb25zdCBG
bG9hdFBvaW50Jik7Ci0gICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbExheWVyLmdldCgpOyB9CiAKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxM
YXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5tbQkocmV2aXNp
b24gMjQwMTA2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsx
MDQsMTEgQEAgRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdObwogICAgIHJl
dHVybiAtbV9zY3JvbGxMYXllci5nZXQoKS5wb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbikKK3sKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlOjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Cit9CisKIHZvaWQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29u
dGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsK
ICAgICBpZiAoc2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSkg
ewpAQCAtMjEwLDYgKzIxNSwxMSBAQCBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCitDQUxheWVyICpTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0Nyw4ICs0NDcsOCBA
QCBGbG9hdFJlY3QgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICByZXR1cm4gZnJhbWVWaWV3LmV4cG9zZWRDb250ZW50UmVjdCgpOwog
I2Vsc2UKLSAgICAvLyBIYXZpbmcgYSBtX2NsaXBMYXllciBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBk
b2luZyBzY3JvbGxpbmcgdmlhIEdyYXBoaWNzTGF5ZXJzLgotICAgIEZsb2F0UmVjdCB2aXNpYmxl
UmVjdCA9IG1fY2xpcExheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJhbWVWaWV3LnNpemVGb3JWaXNp
YmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKTsKKyAgICAvLyBI
YXZpbmcgYSBtX3Njcm9sbExheWVyIGluZGljYXRlcyB0aGF0IHdlJ3JlIGRvaW5nIHNjcm9sbGlu
ZyB2aWEgR3JhcGhpY3NMYXllcnMuCisgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9zY3Jv
bGxMYXllciA/IEZsb2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRlbnQo
KSkgOiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKICAgICBpZiAoZnJhbWVWaWV3
LnZpZXdFeHBvc2VkUmVjdCgpKQogICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoZnJhbWVW
aWV3LnZpZXdFeHBvc2VkUmVjdCgpLnZhbHVlKCkpOwpAQCAtMTc4NiwxOCArMTc4NiwxNiBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlkCiAgICAgaWYgKGF1dG8qIGxh
eWVyID0gbV9yZW5kZXJWaWV3LmxheWVyKCkpCiAgICAgICAgIGxheWVyLT5zZXROZWVkc0NvbXBv
c2l0aW5nR2VvbWV0cnlVcGRhdGUoKTsKIAotICAgIGlmIChtX2NsaXBMYXllcikgewotICAgICAg
ICBjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsK
LSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFNpemUoZnJhbWVWaWV3LnNpemVGb3JWaXNpYmxlQ29u
dGVudCgpKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yQ2xp
cExheWVyKCkpOwotCisgICAgaWYgKG1fc2Nyb2xsTGF5ZXIpIHsKKyAgICAgICAgdXBkYXRlU2Ny
b2xsTGF5ZXJDbGlwcGluZygpOwogICAgICAgICBmcmFtZVZpZXdEaWRTY3JvbGwoKTsKICAgICAg
ICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgICAgICBpZiAobV9sYXllckZvck92ZXJoYW5nQXJlYXMpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKICAgICAgICAg
ICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRTaXplKGZyYW1lVmlldy5mcmFtZVJlY3Qo
KS5zaXplKCkpOwotICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMtPnNldFBvc2l0
aW9uKEZsb2F0UG9pbnQoMCwgbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnRvcENvbnRlbnRJbnNl
dCgpKSk7CisgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24o
RmxvYXRQb2ludCgwLCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKICAgICAgICAgfQog
I2VuZGlmCiAgICAgfQpAQCAtMTgyMiw2ICsxODIwLDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVTY3JvbGwKICAgICAgICAgZml4ZWRCYWNrZ3JvdW5kTGF5ZXItPnNldFBv
c2l0aW9uKGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKSk7CiB9CiAK
K3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxMYXllckNsaXBwaW5nKCkK
K3sKKyAgICBhdXRvKiBsYXllckZvckNsaXBwaW5nID0gdGhpcy0+bGF5ZXJGb3JDbGlwcGluZygp
OworICAgIGlmICghbGF5ZXJGb3JDbGlwcGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5
ZXJGb3JDbGlwcGluZy0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuc2l6ZUZvclZp
c2libGVDb250ZW50KCkpOworICAgIGxheWVyRm9yQ2xpcHBpbmctPnNldFBvc2l0aW9uKHBvc2l0
aW9uRm9yQ2xpcExheWVyKCkpOworfQorCiBGbG9hdFBvaW50IFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdAogewogICAgIGF1dG8mIGZyYW1lVmlldyA9
IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKQEAgLTIwNTcsMTAgKzIwNjUsOCBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9vdExhCiAgICAgICAgIG1fcm9vdENvbnRlbnRM
YXllci0+c2V0UG9zaXRpb24obV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnBvc2l0aW9uRm9yUm9v
dENvbnRlbnRMYXllcigpKTsKICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRBbmNob3JQ
b2ludChGbG9hdFBvaW50M0QoKSk7CiAgICAgfQotICAgIGlmIChtX2NsaXBMYXllcikgewotICAg
ICAgICBtX2NsaXBMYXllci0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuc2l6ZUZv
clZpc2libGVDb250ZW50KCkpOwotICAgICAgICBtX2NsaXBMYXllci0+c2V0UG9zaXRpb24ocG9z
aXRpb25Gb3JDbGlwTGF5ZXIoKSk7Ci0gICAgfQorCisgICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlw
cGluZygpOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChtX2NvbnRlbnRT
aGFkb3dMYXllciAmJiBtX3Jvb3RDb250ZW50TGF5ZXIpIHsKQEAgLTMyOTMsNyArMzI5OSw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVPdmVyZmwKIAogICAgICAgICAgICAg
Ly8gV2Ugd2FudCB0aGUgb3ZlcmhhbmcgYXJlYXMgbGF5ZXIgdG8gYmUgcG9zaXRpb25lZCBiZWxv
dyB0aGUgZnJhbWUgY29udGVudHMsCiAgICAgICAgICAgICAvLyBzbyBpbnNlcnQgaXQgYmVsb3cg
dGhlIGNsaXAgbGF5ZXIuCi0gICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIt
PmFkZENoaWxkQmVsb3coKm1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLCBtX2NsaXBMYXllci5nZXQo
KSk7CisgICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPmFkZENoaWxkQmVs
b3coKm1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLCBsYXllckZvckNsaXBwaW5nKCkpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlCiAgICAgICAgIEdyYXBoaWNzTGF5ZXI6OnVucGFyZW50QW5kQ2xlYXIo
bV9sYXllckZvck92ZXJoYW5nQXJlYXMpOwpAQCAtMzQwNSwyMyArMzQxMSwzMCBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZW5zdXJlUm9vdExhCiAgICAgICAgICAgICBtX292ZXJmbG93
Q29udHJvbHNIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSwgKnRoaXMpOwogICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVy
LT5zZXROYW1lKCJvdmVyZmxvdyBjb250cm9scyBob3N0Iik7CiAKLSAgICAgICAgICAgIC8vIENy
ZWF0ZSBhIGNsaXBwaW5nIGxheWVyIGlmIHRoaXMgaXMgYW4gaWZyYW1lCi0gICAgICAgICAgICBt
X2NsaXBMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgp
LCAqdGhpcyk7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFtZSgiZnJhbWUgY2xpcHBp
bmciKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKKyAgICAgICAgICAgIGF1dG8g
c2Nyb2xsTGF5ZXJUeXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6Tm9ybWFsOworI2lmIFBMQVRG
T1JNKElPUykKKyAgICAgICAgICAgIGlmIChtX3JlbmRlclZpZXcuc2V0dGluZ3MoKS5hc3luY0Zy
YW1lU2Nyb2xsaW5nRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgIHNjcm9sbExheWVyVHlwZSA9
IEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZzsKKyNlbmRpZgorICAgICAgICAgICAgbV9z
Y3JvbGxMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgp
LCAqdGhpcywgc2Nyb2xsTGF5ZXJUeXBlKTsKICAgICAgICAgICAgIG1fc2Nyb2xsTGF5ZXItPnNl
dE5hbWUoImZyYW1lIHNjcm9sbGluZyIpOwogCi0gICAgICAgICAgICAvLyBIb29rIHRoZW0gdXAK
LSAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGQoKm1fY2xp
cExheWVyKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5hZGRDaGlsZCgqbV9zY3JvbGxMYXll
cik7Ci0gICAgICAgICAgICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290Q29udGVudExh
eWVyKTsKKyAgICAgICAgICAgIGlmIChzY3JvbGxMYXllclR5cGUgPT0gR3JhcGhpY3NMYXllcjo6
VHlwZTo6U2Nyb2xsaW5nKSB7CisgICAgICAgICAgICAgICAgLy8gU2Nyb2xsIGxheWVyIGNsaXBz
IHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEgc2VwYXJhdGUgY2xpcHBpbmcgbGF5ZXIuCisgICAg
ICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9zY3Jv
bGxMYXllcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1fY2xpcExh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlz
KTsKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TmFtZSgiZnJhbWUgY2xpcHBpbmci
KTsKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsK
KyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNE
KCkpOwogCi0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0U2l6ZShtX3JlbmRlclZpZXcuZnJh
bWVWaWV3KCkuc2l6ZUZvclZpc2libGVDb250ZW50KCkpOwotICAgICAgICAgICAgbV9jbGlwTGF5
ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yQ2xpcExheWVyKCkpOwotICAgICAgICAgICAgbV9j
bGlwTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKKyAgICAgICAgICAgICAg
ICBtX2NsaXBMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xsTGF5ZXIpOworICAgICAgICAgICAgICAg
IG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hpbGQoKm1fY2xpcExheWVyKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+YWRkQ2hpbGQoKm1fcm9v
dENvbnRlbnRMYXllcik7CiAKKyAgICAgICAgICAgIHVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmco
KTsKICAgICAgICAgICAgIHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIAogICAgICAg
ICAgICAgaWYgKGhhc0Nvb3JkaW5hdGVkU2Nyb2xsaW5nKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCShyZXZpc2lvbiAyNDAx
MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NM
YXllciogY2xpcExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGlwTGF5ZXIuZ2V0KCk7IH0KICAg
ICBHcmFwaGljc0xheWVyKiByb290Q29udGVudExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290
Q29udGVudExheWVyLmdldCgpOyB9CiAKKyAgICBHcmFwaGljc0xheWVyKiBsYXllckZvckNsaXBw
aW5nKCkgY29uc3QgeyAgcmV0dXJuIG1fY2xpcExheWVyID8gbV9jbGlwTGF5ZXIuZ2V0KCkgOiBt
X3Njcm9sbExheWVyLmdldCgpOyAgfQogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
IEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckZvckhl
YWRlci5nZXQoKTsgfQpAQCAtNDMzLDYgKzQzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCk7CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbExheWVy
UG9zaXRpb24oKTsKKyAgICB2b2lkIHVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKTsKIAogICAg
IEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdDsKIApJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI0MDE0MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDEtMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhc3luY2hyb25vdXMgZnJhbWUgc2Nyb2xs
aW5nIGZvciBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MzUzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDczNzk4NzM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgc2Nyb2xsaW5nIG5v
ZGUgdHlwZSB0aGF0IGNhbiBoYW5kbGUgVUlTY3JvbGxWaWV3IGJhY2tlZCBmcmFtZXMuCisgICAg
ICAgIEl0IGJhc2ljYWxseSBqdXN0IGluc3RhbnRpYXRlcyBhbmQgZm9yd2FyZHMgdG8gdGhlIGV4
aXN0aW5nIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyk6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAg
ICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29t
bWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6Cisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6
OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3NpdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVn
YXRlZFNjcm9sbCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTktMDEtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gQ29udGVudCBvZmZzZXQganVtcHMgZXJyYXRpY2FsbHkgd2hlbiBhdXRv
c2Nyb2xsaW5nIG5lYXIgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldCBhcmVhcwpJbmRleDogU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NTQsNiArNDU0LDcgQEAgVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVAogCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCitVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlSU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZVN0
aWNreU5vZGUuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIgogI2luY2x1ZGUgIlNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaD4KICNlbHNlCkBAIC0xMTUsNyArMTE2LDcg
QEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcgogICAgIGNhc2UgU2Ny
b2xsaW5nTm9kZVR5cGU6Ok1haW5GcmFtZToKICAgICBjYXNlIFNjcm9sbGluZ05vZGVUeXBlOjpT
dWJmcmFtZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlwZSwgbm9k
ZUlEKTsKKyAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZVR5cGUsIG5vZGVJRCk7CiAjZWxzZQogICAgICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6Y3JlYXRlKCp0
aGlzLCBub2RlVHlwZSwgbm9kZUlEKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQkocmV2aXNpb24g
MjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw2ICs2OCw5IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y28KICAg
ICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0
YXRlTm9kZS5zZXRMYXllcihsYXllclRyZWVIb3N0LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVO
b2RlLmxheWVyKCkpKTsKIAorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENvbnRl
bnRzTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRTY3JvbGxl
ZENvbnRlbnRzTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRlTm9k
ZS5zY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSkpOworCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdT
dGF0ZU5vZGUuc2V0Q291bnRlclNjcm9sbGluZ0xheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJ
RChzY3JvbGxpbmdTdGF0ZU5vZGUuY291bnRlclNjcm9sbGluZ0xheWVyKCkpKTsKIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlSU9TIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M+IGNyZWF0ZShXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7Cisg
ICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUygpOwor
Citwcml2YXRlOgorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQpOworCisgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxk
cmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOworICAgIHZv
aWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
Tm9kZSYpIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRW
aWV3cG9ydCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVk
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGN1bXVsYXRp
dmVEZWx0YSkgb3ZlcnJpZGU7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKworI2ltcG9y
dCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1M+IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1M6OmNyZWF0ZShTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlw
ZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKHNjcm9sbGlu
Z1RyZWUsIG5vZGVUeXBlLCBub2RlSUQpKTsKK30KKworU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
UyhTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKKyAgICA6IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJRCkKK3sKK30KKworU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MoKQoreworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihzdGF0ZU5vZGUpOwor
CisgICAgaWYgKHN0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxMYXllcikpIHsKKyAgICAgICAgaWYgKHNjcm9sbExheWVyKCkgJiYg
W1tzY3JvbGxMYXllcigpIGRlbGVnYXRlXSBpc0tpbmRPZkNsYXNzOltVSVNjcm9sbFZpZXcgc2Vs
Zl1dKQorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M+KCp0aGlzKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUgPSBudWxscHRyOwor
ICAgIH0KKworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3Jv
bGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oZG93bmNhc3Q8U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKHN0YXRl
Tm9kZSk7CisKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpCisgICAgICAgIG1fc2Ny
b2xsaW5nTm9kZURlbGVnYXRlLT5jb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oZG93bmNhc3Q8U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFuY2Vz
dG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2RlJiBjaGFuZ2VkTm9kZSwgY29uc3QgRmxv
YXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVs
dGEpCit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1fc2Ny
b2xsaW5nTm9kZURlbGVnYXRlLT51cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5n
ZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVjdCwgY3VtdWxhdGl2ZURlbHRhKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRh
dGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5nZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVj
dCwgY3VtdWxhdGl2ZURlbHRhKTsKK30KKworRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgaWYg
KG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAgICByZXR1cm4gbV9zY3JvbGxpbmdOb2Rl
RGVsZWdhdGUtPnNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsUG9zaXRpb24oKTsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGxheW91
dFZpZXdwb3J0KQoreworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAgICAg
ICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwg
bGF5b3V0Vmlld3BvcnQpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0
ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+dXBkYXRlQ2hpbGROb2Rlc0Fm
dGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVn
YXRlZFNjcm9sbChzY3JvbGxQb3NpdGlvbik7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI0MDEwNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE1OTMsNiArMTU5Myw3IEBACiAJCUU0NDM2RUNGMUEwRDA0
MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQzNkVDMjFBMENGREIyMDBFQUQyMDQgLyogTmV0
d29ya0NhY2hlU3RvcmFnZS5oICovOyB9OwogCQlFNDg5RDI4QzFBMEEyREI4MDA3OEMwNkEgLyog
TmV0d29ya0NhY2hlQ29kZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDg5RDI4NTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29kZXJz
LmggKi87IH07CiAJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9i
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87
IH07CisJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVG
M0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVy
VHJlZU5vZGUuaCAqLzsgfTsKIAkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25D
aGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJCUU1MkNG
NTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVD
M0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKQEAgLTQ0
NDEsNiArNDQ0Miw4IEBACiAJCUU0MDQ5MDczMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzQyMURFNjVGNzAwMzdGMERCIC8qIFNj
cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Ny
b2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDc1MjFERTY1
RjcwMDM3RjBEQiAvKiBTY3JvbGxlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JvbGxlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDBDMUY5
MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNo
ZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVu
dHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0
NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODQ0LDcgKzQ4NDcsNiBAQAogCQkJ
CTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJCQkJ
NUM0NkMwQUMyMUI3MTk4QjAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmNwcCAqLywKIAkJCQk1QzQ2QzBBRDIxQjcxOThDMDBCQzU5OTEgLyogV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaCAqLywKLQkJCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyogV2Vi
c2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJzaXRl
RGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01NTEzLDYgKzU1MTUsOCBAQAog
CQkJCTJEQzE4RkIxMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5oICov
LAogCQkJCTJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5t
bSAqLywKIAkJCQkwRjBDMzY1QjE4QzA1Q0ExMDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eUlPUy5tbSAqLywKKwkJCQlFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyog
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovLAorCQkJCUU0MEMx
Rjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLm1tICovLAogCQkJCTBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggKi8sCiAJCQkJMEY5MzFDMUIxOEM1NzExOTAw
REJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gKi8sCiAJ
CQkJMEY5MzFDMUExOEM1NzExOTAwREJCOEQ0IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MuaCAqLywKQEAgLTg4NTIsNiArODg1Niw3IEBACiAJCQkJMUE4MUIzODExOEJE
NjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBODFCMzg1MThCRDY3M0EwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4Njc4MUM3RTc2NTEwMDY5QUM0RiAvKiBfV0tXZWJz
aXRlRGF0YVNpemUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0Mz
NiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXpl
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkI0QzcyMUFERjE1NUQwMEIzMzMzOSAv
KiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIwQzgzNTFFNUI3
NEI5MDAyNUIyNTAgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtOTgzMCw3ICs5ODM1LDYgQEAKIAkJCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIz
RTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNFNDYyRDFBRDgzNzU2
MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBXS1N0
b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYx
QTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNDAxNDApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMS0xOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGFzeW5jaHJvbm91cyBmcmFt
ZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzM3OTg3Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5bmMtZnJhbWUtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wMS0xNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDb250ZW50IG9mZnNldCBqdW1wcyBl
cnJhdGljYWxseSB3aGVuIGF1dG9zY3JvbGxpbmcgbmVhciBzY3JvbGwgdmlldyBjb250ZW50IGlu
c2V0IGFyZWFzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5n
L3RpbGluZy90aWxlZC1kcmF3aW5nLWFzeW5jLWZyYW1lLXNjcm9sbGluZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90
aWxpbmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyNDAxMDYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0
aW5nL3RpbGluZy90aWxlZC1kcmF3aW5nLWFzeW5jLWZyYW1lLXNjcm9sbGluZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQwLDUxICs0MCw0MSBAQAogICAgICAgICAgICAgICAoY29u
dGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkK
ICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAwIDE1MC4wMCkKICAgICAgICAgICAgICAg
ICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQogICAgICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgIChjb3Zl
cmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAgICAgICAg
KGNvdmVyYWdlIHJlY3QgLTEwLjAwLCAtMTAuMDAgODAwLjAwIHggNjAwLjAwKQogICAgICAgICAg
ICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAg
KGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAg
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgKGJh
Y2tpbmdTdG9yZUF0dGFjaGVkIDApCi0gICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVj
dCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFn
ZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAg
IChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5j
aG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAu
MDApCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCisgICAg
ICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4w
MCkKKyAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4w
MCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSBy
ZWN0IDEpCiAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAg
ICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAu
MDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAu
MDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250
ZW50c1NjYWxlIDIuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNv
dmVyYWdlIDAsIDAgNDAwIHggMzAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBz
aXplIDUxMiB4IDUxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvcCBsZWZ0IHRpbGUg
MCwgMCB0aWxlcyBncmlkIDEgeCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2lu
ZG93IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNr
aW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2li
bGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4w
MCB4IDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb250ZW50c1NjYWxlIDIuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDQwMCB4IDMwMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDEgeCAxKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAxKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3Jl
QXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICkKQEAgLTExNSw1MSArMTA1LDQx
IEBACiAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAg
ICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAg
MTUwLjAwKQogICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCiAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQot
ICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAu
MDApCisgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAtMzE4LjAwLCAtMTAuMDAgODAw
LjAwIHggNjAwLjAwKQogICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVj
dCAxKQogICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0g
ICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCi0gICAgICAgICAg
ICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAw
KQotICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tp
bmdTdG9yZUF0dGFjaGVkIDEpCisgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAw
LjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoY292ZXJh
Z2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAg
ICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4w
MCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4w
MCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAsIDAgNDAwIHggMzAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDEgeCAxKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4w
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAu
MDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVy
c2VjdHMgY292ZXJhZ2UgcmVjdCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJh
Y2tpbmdTdG9yZUF0dGFjaGVkIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlz
aWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDQwMCB4IDMw
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBn
cmlkIDEgeCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAxKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAz
MDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVy
c2VjdHMgY292ZXJhZ2UgcmVjdCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjb250ZW50c1NjYWxlIDIuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg
ICAgICkKQEAgLTE5MCw1MSArMTcwLDQxIEBACiAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxl
IDIuMDApCiAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAzMDAuMDAgMTUwLjAwKQogICAgICAgICAgICAgICAgICAgKGJhY2tp
bmdTdG9yZUF0dGFjaGVkIDEpCiAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3Qg
MC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAoY292ZXJhZ2Ug
cmVjdCAtMTAuMDAsIC0xNjkuMDAgODAwLjAwIHggNjAwLjAwKQogICAgICAgICAgICAgICAgICAg
KGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9y
ZUF0dGFjaGVkIDApCi0gICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAw
LjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAu
MDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNl
Y3RzIGNvdmVyYWdlIHJlY3QgMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAg
MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCisgICAgICAgICAgICAg
ICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4w
MCkKKyAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChib3VuZHMgNDAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2li
bGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAu
MDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAg
NDAwLjAwIHggMzAwLjAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBj
b3ZlcmFnZSByZWN0IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxl
IDIuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aWxlIGNhY2hlIGNvdmVyYWdlIDAs
IDAgNDAwIHggMzAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBzaXplIDUxMiB4
IDUxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxl
cyBncmlkIDEgeCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW4gd2luZG93IDEpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
b3VuZHMgNDAwLjAwIDMwMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVB
dHRhY2hlZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAw
LjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAw
IDQwMC4wMCB4IDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNl
Y3RzIGNvdmVyYWdlIHJlY3QgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250
ZW50c1NjYWxlIDIuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNo
ZSBjb3ZlcmFnZSAwLCAwIDQwMCB4IDMwMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0aWxlIHNpemUgNTEyIHggNTEyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRv
cCBsZWZ0IHRpbGUgMCwgMCB0aWxlcyBncmlkIDEgeCAxKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGluIHdpbmRvdyAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQg
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAs
IDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
dmVyYWdlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgICAgICAgICAgICkK
</data>
<flag name="review"
          id="376230"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359513</attachid>
            <date>2019-01-18 11:11:17 -0800</date>
            <delta_ts>2019-01-18 11:23:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-15.patch</filename>
            <type>text/plain</type>
            <size>41641</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgVUlTY3JvbGxWaWV3IGJhc2VkIGZyYW1lIHNjcm9sbGluZyBvbiBp
T1MsIGVuYWJsZWQgYnkgdGhlICJBc3luYyBGcmFtZSBTY3JvbGxpbmciCisgICAgICAgIGludGVy
bmFsIHNldHRpbmcgKHN0aWxsIG9mZiBieSBkZWZhdWx0KS4KKworICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxMYXll
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbik6CisKKyAgICAg
ICAgRXhwb3J0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlk
Q2hhbmdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcpOgorCisgICAgICAgIElmIHdlIGRvbid0IGhhdmUgYSBz
ZXBhcmF0ZSBjbGlwIGxheWVyLCBqdXN0IHJlc2l6ZSBhbmQgcG9zaXRpb24gdGhlIHNjcm9sbCBs
YXllci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVS
b290TGF5ZXJQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIpOgorCisgICAgICAgIFVzZSBHcmFw
aGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcgYXMgdGhlIHNjcm9sbCBsYXllciB0eXBlIHdoZW4g
YXN5bmMgZnJhbWUgc2Nyb2xsaW5nIGlzIGVuYWJsZWQuCisgICAgICAgIERvbid0IGNyZWF0ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIgc2luY2UgdGhlIHNjcm9sbCBsYXllciB3aWxsIGhhbmRsZSBj
bGlwcGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoK
KwogMjAxOS0wMS0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdHViIG91dCBzY3JvbGxpbmcgdHJlZSBjbGFzc2VzIGZvciBvdmVyZmxvdyBzY3Jv
bGxpbmcgbm9kZXMgb24gbWFjT1MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1MuaAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsOSArMzQsOSBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6
IHB1YmxpYyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgOiBwdWJsaWMgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIHN0
YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUz4gY3JlYXRlKFNjcm9s
bGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICB2aXJ0
dWFsIH5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TKCk7CiAKIHByb3RlY3RlZDoK
QEAgLTU1LDE0ICs1NSwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVMYXllcnNBZnRl
ckRlbGVnYXRlZFNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1
cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2RlJiBj
aGFuZ2VkTm9kZSwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgRmxv
YXRTaXplJiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTY3JvbGxM
YXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFJlY3QmIGxheW91dFZp
ZXdwb3J0KSBvdmVycmlkZTsKIAogICAgIEZsb2F0UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAorICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYpOwotICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxMYXllci5nZXQoKTsgfQogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5
ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9u
IDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0
LDExIEBAIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1
cm4gLW1fc2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRpb247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lkIFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRl
bnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAg
ICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsK
QEAgLTIxMCw2ICsyMTUsMTEgQEAgRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdObwogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KIAorQ0FMYXllciAqU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X3Njcm9sbExheWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDcsOCArNDQ3LDggQEAg
RmxvYXRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgcmV0dXJuIGZyYW1lVmlldy5leHBvc2VkQ29udGVudFJlY3QoKTsKICNl
bHNlCi0gICAgLy8gSGF2aW5nIGEgbV9jbGlwTGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9p
bmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4KLSAgICBGbG9hdFJlY3QgdmlzaWJsZVJl
Y3QgPSBtX2NsaXBMYXllciA/IEZsb2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJs
ZUNvbnRlbnQoKSkgOiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CisgICAgLy8gSGF2
aW5nIGEgbV9zY3JvbGxMYXllciBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBkb2luZyBzY3JvbGxpbmcg
dmlhIEdyYXBoaWNzTGF5ZXJzLgorICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IG1fc2Nyb2xs
TGF5ZXIgPyBGbG9hdFJlY3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkp
IDogZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpOwogCiAgICAgaWYgKGZyYW1lVmlldy52
aWV3RXhwb3NlZFJlY3QoKSkKICAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KGZyYW1lVmll
dy52aWV3RXhwb3NlZFJlY3QoKS52YWx1ZSgpKTsKQEAgLTE3ODYsMTggKzE3ODYsMTYgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZAogICAgIGlmIChhdXRvKiBsYXll
ciA9IG1fcmVuZGVyVmlldy5sYXllcigpKQogICAgICAgICBsYXllci0+c2V0TmVlZHNDb21wb3Np
dGluZ0dlb21ldHJ5VXBkYXRlKCk7CiAKLSAgICBpZiAobV9jbGlwTGF5ZXIpIHsKLSAgICAgICAg
Y29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7Ci0g
ICAgICAgIG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRl
bnQoKSk7Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBM
YXllcigpKTsKLQorICAgIGlmIChtX3Njcm9sbExheWVyKSB7CisgICAgICAgIHVwZGF0ZVNjcm9s
bExheWVyQ2xpcHBpbmcoKTsKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xsKCk7CiAgICAgICAg
IHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKICAgICAgICAgaWYgKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKSB7CisgICAgICAgICAg
ICBhdXRvJiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAgICAgICAgICAg
ICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0U2l6ZShmcmFtZVZpZXcuZnJhbWVSZWN0KCku
c2l6ZSgpKTsKLSAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlv
bihGbG9hdFBvaW50KDAsIG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS50b3BDb250ZW50SW5zZXQo
KSkpOworICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMtPnNldFBvc2l0aW9uKEZs
b2F0UG9pbnQoMCwgZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpKSk7CiAgICAgICAgIH0KICNl
bmRpZgogICAgIH0KQEAgLTE4MjIsNiArMTgyMCwxNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlU2Nyb2xsCiAgICAgICAgIGZpeGVkQmFja2dyb3VuZExheWVyLT5zZXRQb3Np
dGlvbihmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkpOwogfQogCit2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpCit7
CisgICAgYXV0byogbGF5ZXJGb3JDbGlwcGluZyA9IHRoaXMtPmxheWVyRm9yQ2xpcHBpbmcoKTsK
KyAgICBpZiAoIWxheWVyRm9yQ2xpcHBpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGxheWVy
Rm9yQ2xpcHBpbmctPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JWaXNp
YmxlQ29udGVudCgpKTsKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRQb3NpdGlvbihwb3NpdGlv
bkZvckNsaXBMYXllcigpKTsKK30KKwogRmxvYXRQb2ludCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnBvc2l0aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKIHsKICAgICBhdXRvJiBmcmFtZVZpZXcgPSBt
X3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CkBAIC0yMDU3LDEwICsyMDY1LDggQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYQogICAgICAgICBtX3Jvb3RDb250ZW50TGF5
ZXItPnNldFBvc2l0aW9uKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wb3NpdGlvbkZvclJvb3RD
b250ZW50TGF5ZXIoKSk7CiAgICAgICAgIG1fcm9vdENvbnRlbnRMYXllci0+c2V0QW5jaG9yUG9p
bnQoRmxvYXRQb2ludDNEKCkpOwogICAgIH0KLSAgICBpZiAobV9jbGlwTGF5ZXIpIHsKLSAgICAg
ICAgbV9jbGlwTGF5ZXItPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JW
aXNpYmxlQ29udGVudCgpKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0
aW9uRm9yQ2xpcExheWVyKCkpOwotICAgIH0KKworICAgIHVwZGF0ZVNjcm9sbExheWVyQ2xpcHBp
bmcoKTsKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAobV9jb250ZW50U2hh
ZG93TGF5ZXIgJiYgbV9yb290Q29udGVudExheWVyKSB7CkBAIC0zMjkzLDcgKzMyOTksNyBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsCiAKICAgICAgICAgICAgIC8v
IFdlIHdhbnQgdGhlIG92ZXJoYW5nIGFyZWFzIGxheWVyIHRvIGJlIHBvc2l0aW9uZWQgYmVsb3cg
dGhlIGZyYW1lIGNvbnRlbnRzLAogICAgICAgICAgICAgLy8gc28gaW5zZXJ0IGl0IGJlbG93IHRo
ZSBjbGlwIGxheWVyLgotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5h
ZGRDaGlsZEJlbG93KCptX2xheWVyRm9yT3ZlcmhhbmdBcmVhcywgbV9jbGlwTGF5ZXIuZ2V0KCkp
OworICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZEJlbG93
KCptX2xheWVyRm9yT3ZlcmhhbmdBcmVhcywgbGF5ZXJGb3JDbGlwcGluZygpKTsKICAgICAgICAg
fQogICAgIH0gZWxzZQogICAgICAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFyKG1f
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKTsKQEAgLTM0MDUsMjMgKzM0MTEsMzAgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYQogICAgICAgICAgICAgbV9vdmVyZmxvd0Nv
bnRyb2xzSG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksICp0aGlzKTsKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+
c2V0TmFtZSgib3ZlcmZsb3cgY29udHJvbHMgaG9zdCIpOwogCi0gICAgICAgICAgICAvLyBDcmVh
dGUgYSBjbGlwcGluZyBsYXllciBpZiB0aGlzIGlzIGFuIGlmcmFtZQotICAgICAgICAgICAgbV9j
bGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
KnRoaXMpOwotICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE5hbWUoImZyYW1lIGNsaXBwaW5n
Iik7Ci0gICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgbV9zY3JvbGxMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CisgICAgICAgICAgICBhdXRvIHNj
cm9sbExheWVyVHlwZSA9IEdyYXBoaWNzTGF5ZXI6OlR5cGU6Ok5vcm1hbDsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgICAgICAgICAgaWYgKG1fcmVuZGVyVmlldy5zZXR0aW5ncygpLmFz
eW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXJU
eXBlID0gR3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xsaW5nOworI2VuZGlmCisgICAgICAgICAg
ICBtX3Njcm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksICp0aGlzLCBzY3JvbGxMYXllclR5cGUpOwogICAgICAgICAgICAgbV9zY3JvbGxMYXll
ci0+c2V0TmFtZSgiZnJhbWUgc2Nyb2xsaW5nIik7CiAKLSAgICAgICAgICAgIC8vIEhvb2sgdGhl
bSB1cAotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZCgq
bV9jbGlwTGF5ZXIpOwotICAgICAgICAgICAgbV9jbGlwTGF5ZXItPmFkZENoaWxkKCptX3Njcm9s
bExheWVyKTsKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5ZXItPmFkZENoaWxkKCptX3Jvb3RDb250
ZW50TGF5ZXIpOworICAgICAgICAgICAgaWYgKHNjcm9sbExheWVyVHlwZSA9PSBHcmFwaGljc0xh
eWVyOjpUeXBlOjpTY3JvbGxpbmcpIHsKKyAgICAgICAgICAgICAgICAvLyBTY3JvbGwgbGF5ZXIg
Y2xpcHMgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBzZXBhcmF0ZSBjbGlwcGluZyBsYXllci4K
KyAgICAgICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPmFkZENoaWxkKCpt
X3Njcm9sbExheWVyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9j
bGlwTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
KnRoaXMpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlw
cGluZyIpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRy
dWUpOworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBv
aW50M0QoKSk7CisKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+YWRkQ2hpbGQoKm1fc2Ny
b2xsTGF5ZXIpOworICAgICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+
YWRkQ2hpbGQoKm1fY2xpcExheWVyKTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgbV9j
bGlwTGF5ZXItPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JWaXNpYmxl
Q29udGVudCgpKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlv
bkZvckNsaXBMYXllcigpKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRBbmNob3JQb2lu
dChGbG9hdFBvaW50M0QoKSk7CisgICAgICAgICAgICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZCgq
bV9yb290Q29udGVudExheWVyKTsKIAorICAgICAgICAgICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlw
cGluZygpOwogICAgICAgICAgICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAg
ICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9u
IDI0MDEwNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIzNiw3IEBAIHB1YmxpYzoKICAgICBHcmFw
aGljc0xheWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaXBMYXllci5nZXQoKTsg
fQogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCk7IH0KIAorICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
Q2xpcHBpbmcoKSBjb25zdCB7ICByZXR1cm4gbV9jbGlwTGF5ZXIgPyBtX2NsaXBMYXllci5nZXQo
KSA6IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcp
CiAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
Rm9ySGVhZGVyLmdldCgpOyB9CkBAIC00MzMsNiArNDM0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xs
TGF5ZXJQb3NpdGlvbigpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwog
CiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0OwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMjQwMTQwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMS0xOCAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGFzeW5jaHJvbm91cyBmcmFtZSBz
Y3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzM3OTg3Mz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGEgc2Nyb2xsaW5n
IG5vZGUgdHlwZSB0aGF0IGNhbiBoYW5kbGUgVUlTY3JvbGxWaWV3IGJhY2tlZCBmcmFtZXMuCisg
ICAgICAgIEl0IGJhc2ljYWxseSBqdXN0IGluc3RhbnRpYXRlcyBhbmQgZm9yd2FyZHMgdG8gdGhl
IGV4aXN0aW5nIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUyk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6
Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1M6OnVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRl
bGVnYXRlZFNjcm9sbCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTktMDEtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gQ29udGVudCBvZmZzZXQganVtcHMgZXJyYXRpY2FsbHkgd2hlbiBh
dXRvc2Nyb2xsaW5nIG5lYXIgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldCBhcmVhcwpJbmRleDog
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NTQsNiArNDU0LDcgQEAgVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVAogCiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCitVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVt
b3RlSU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJl
ZVN0aWNreU5vZGUuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIgogI2luY2x1ZGUgIlNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaD4KICNlbHNlCkBAIC0xMTUsNyArMTE2
LDcgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcgogICAgIGNhc2Ug
U2Nyb2xsaW5nTm9kZVR5cGU6Ok1haW5GcmFtZToKICAgICBjYXNlIFNjcm9sbGluZ05vZGVUeXBl
OjpTdWJmcmFtZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICByZXR1cm4gU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlwZSwg
bm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZVR5cGUsIG5vZGVJRCk7CiAjZWxzZQogICAgICAg
ICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6Y3JlYXRl
KCp0aGlzLCBub2RlVHlwZSwgbm9kZUlEKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQkocmV2aXNp
b24gMjQwMTA2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02OCw2ICs2OCw5IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y28K
ICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAgICAgIHNjcm9sbGlu
Z1N0YXRlTm9kZS5zZXRMYXllcihsYXllclRyZWVIb3N0LmxheWVyRm9ySUQoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmxheWVyKCkpKTsKIAorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxlZENv
bnRlbnRzTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRTY3Jv
bGxlZENvbnRlbnRzTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXllckZvcklEKHNjcm9sbGluZ1N0YXRl
Tm9kZS5zY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSkpOworCiAgICAgICAgICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkKICAgICAgICAgICAgICAgICBzY3JvbGxp
bmdTdGF0ZU5vZGUuc2V0Q291bnRlclNjcm9sbGluZ0xheWVyKGxheWVyVHJlZUhvc3QubGF5ZXJG
b3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUuY291bnRlclNjcm9sbGluZ0xheWVyKCkpKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlSU9TLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZUlPUy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlSU9TIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M+IGNyZWF0ZShXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
JiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7
CisgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUygp
OworCitwcml2YXRlOgorICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworCisgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlTm9kZSYpIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3Np
dGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlv
dXRWaWV3cG9ydCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdh
dGVkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2RlLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGN1bXVs
YXRpdmVEZWx0YSkgb3ZlcnJpZGU7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKworI2lt
cG9ydCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIgorI2ltcG9ydCA8
V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVJT1M+IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1M6OmNyZWF0ZShTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKHNjcm9s
bGluZ1RyZWUsIG5vZGVUeXBlLCBub2RlSUQpKTsKK30KKworU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUyhTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKKyAgICA6IFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5cGUsIG5vZGVJRCkKK3sKK30KKwor
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6flNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MoKQoreworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihzdGF0ZU5vZGUp
OworCisgICAgaWYgKHN0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxMYXllcikpIHsKKyAgICAgICAgaWYgKHNjcm9sbExheWVyKCkg
JiYgW1tzY3JvbGxMYXllcigpIGRlbGVnYXRlXSBpc0tpbmRPZkNsYXNzOltVSVNjcm9sbFZpZXcg
c2VsZl1dKQorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M+KCp0aGlzKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUgPSBudWxscHRy
OworICAgIH0KKworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkKKyAgICAgICAgbV9z
Y3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKHN0
YXRlTm9kZSk7CisKKyAgICBpZiAobV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUpCisgICAgICAgIG1f
c2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5jb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpKTsKK30KKwordm9pZCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFu
Y2VzdG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2RlJiBjaGFuZ2VkTm9kZSwgY29uc3Qg
RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZl
RGVsdGEpCit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKSB7CisgICAgICAgIG1f
c2Nyb2xsaW5nTm9kZURlbGVnYXRlLT51cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNo
YW5nZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVjdCwgY3VtdWxhdGl2ZURlbHRhKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1
cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5nZWROb2RlLCBmaXhlZFBvc2l0aW9u
UmVjdCwgY3VtdWxhdGl2ZURlbHRhKTsKK30KKworRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAg
aWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAgICByZXR1cm4gbV9zY3JvbGxpbmdO
b2RlRGVsZWdhdGUtPnNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsUG9zaXRpb24oKTsKK30KKwordm9pZCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzZXRTY3JvbGxMYXllclBvc2l0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGxh
eW91dFZpZXdwb3J0KQoreworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAg
ICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgbGF5b3V0Vmlld3BvcnQpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChtX3Njcm9sbGluZ05vZGVEZWxl
Z2F0ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+dXBkYXRlQ2hpbGROb2Rl
c0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRl
bGVnYXRlZFNjcm9sbChzY3JvbGxQb3NpdGlvbik7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI0MDEwNikKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1OTMsNiArMTU5Myw3IEBACiAJCUU0NDM2RUNGMUEw
RDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQzNkVDMjFBMENGREIyMDBFQUQyMDQgLyog
TmV0d29ya0NhY2hlU3RvcmFnZS5oICovOyB9OwogCQlFNDg5RDI4QzFBMEEyREI4MDA3OEMwNkEg
LyogTmV0d29ya0NhY2hlQ29kZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDg5RDI4NTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29k
ZXJzLmggKi87IH07CiAJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVC
bG9iU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmgg
Ki87IH07CisJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAz
NDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxh
eWVyVHJlZU5vZGUuaCAqLzsgfTsKIAkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNp
b25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJCUU1
MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBB
MzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKQEAg
LTQ0NDEsNiArNDQ0Miw4IEBACiAJCUU0MDQ5MDczMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzQyMURFNjVGNzAwMzdGMERCIC8q
IFNjcm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDc1MjFE
RTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JvbGxlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDBD
MUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNo
ZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQw
MDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5u
ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFu
bmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODQ0LDcgKzQ4NDcsNiBAQAog
CQkJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi8sCiAJ
CQkJNUM0NkMwQUMyMUI3MTk4QjAwQkM1OTkxIC8qIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmNwcCAqLywKIAkJCQk1QzQ2QzBBRDIxQjcxOThDMDBCQzU5OTEgLyogV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaCAqLywKLQkJCQk0MTE4REMxQjIxRTZEMTFBMDBERTA0QzcgLyog
V2Vic2l0ZURhdGFTdG9yZVF1b3RhTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJz
aXRlRGF0YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01NTEzLDYgKzU1MTUsOCBA
QAogCQkJCTJEQzE4RkIxMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5o
ICovLAogCQkJCTJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3
cy5tbSAqLywKIAkJCQkwRjBDMzY1QjE4QzA1Q0ExMDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eUlPUy5tbSAqLywKKwkJCQlFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTgg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovLAorCQkJCUU0
MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TLm1tICovLAogCQkJCTBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggKi8sCiAJCQkJMEY5MzFDMUIxOEM1NzEx
OTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gKi8s
CiAJCQkJMEY5MzFDMUExOEM1NzExOTAwREJCOEQ0IC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MuaCAqLywKQEAgLTg4NTIsNiArODg1Niw3IEBACiAJCQkJMUE4MUIzODEx
OEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBODFCMzg1MThCRDY3M0EwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4Njc4MUM3RTc2NTEwMDY5QUM0RiAvKiBfV0tX
ZWJzaXRlRGF0YVNpemUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0RDU0RDA0MjFGMUQ3MkQwMDdF
M0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFT
aXplSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkI0QzcyMUFERjE1NUQwMEIzMzMz
OSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIwQzgzNTFF
NUI3NEI5MDAyNUIyNTAgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtOTgzMCw3ICs5ODM1LDYgQEAKIAkJCQkxREIwMTk0MzIxMUNGMDAyMDA5
RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNFNDYyRDFBRDgz
NzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMThEQzFGMjFFN0JGNUQwMERFMDRDNyAvKiBX
S1N0b3JhZ2VRdW90YURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2
MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQw
NzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAxNDApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMS0xOCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGFzeW5jaHJvbm91cyBm
cmFtZSBzY3JvbGxpbmcgZm9yIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzM3OTg3Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3Mtd2syL2NvbXBvc2l0aW5nL3RpbGluZy90aWxlZC1kcmF3aW5nLWFzeW5jLWZyYW1lLXNj
cm9sbGluZy1leHBlY3RlZC50eHQ6CisKIDIwMTktMDEtMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQ29udGVudCBvZmZzZXQganVtcHMg
ZXJyYXRpY2FsbHkgd2hlbiBhdXRvc2Nyb2xsaW5nIG5lYXIgc2Nyb2xsIHZpZXcgY29udGVudCBp
bnNldCBhcmVhcwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGlu
Zy90aWxpbmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcv
dGlsaW5nL3RpbGVkLWRyYXdpbmctYXN5bmMtZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjQwMTA2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3Np
dGluZy90aWxpbmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MCw1MSArNDAsNDEgQEAKICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDAp
CiAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAgICAgICAgICAg
ICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAgICh2aXNpYmxl
IHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAoY292
ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAg
IChjb3ZlcmFnZSByZWN0IC0xMC4wMCwgLTEwLjAwIDgwMC4wMCB4IDYwMC4wMCkKICAgICAgICAg
ICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAg
IChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAg
ICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgIChi
YWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoY292ZXJh
Z2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCisgICAgICAgICAgICAgICAgICAgICAgKGFu
Y2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQorICAg
ICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAu
MDApCisgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAu
MDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2Ug
cmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAg
ICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAw
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAw
LjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlu
dGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u
dGVudHNTY2FsZSAyLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNoZSBj
b3ZlcmFnZSAwLCAwIDQwMCB4IDMwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUg
c2l6ZSA1MTIgeCA1MTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxl
IDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGluIHdp
bmRvdyAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFj
a2luZ1N0b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAu
MDAgeCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3Qg
MC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9y
ZUF0dGFjaGVkIDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICApCkBAIC0xMTUsNTEgKzEwNSw0
MSBAQAogICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAo
Y2hpbGRyZW4gMQogICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAg
ICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAw
IDE1MC4wMCkKICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQogICAg
ICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkK
LSAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUw
LjAwKQorICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgLTMxOC4wMCwgLTEwLjAwIDgw
MC4wMCB4IDYwMC4wMCkKICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJl
Y3QgMSkKICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgot
ICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAg
ICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4w
MCkKLSAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCisg
ICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChiYWNr
aW5nU3RvcmVBdHRhY2hlZCAxKQorICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGNvdmVy
YWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAg
ICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgIChj
b250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAg
ICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91
bmRzIDQwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAu
MDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAu
MDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodmlz
aWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDQwMCB4IDMwMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAxKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAu
MDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRl
cnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
YWNraW5nU3RvcmVBdHRhY2hlZCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZp
c2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAz
MDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMg
Z3JpZCAxIHggMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAg
MzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRl
cnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg
ICAgICApCkBAIC0xOTAsNTEgKzE3MCw0MSBAQAogICAgICAgICAgICAgICAoY29udGVudHNTY2Fs
ZSAyLjAwKQogICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAg
ICAgICAgICAgIChib3VuZHMgMzAwLjAwIDE1MC4wMCkKICAgICAgICAgICAgICAgICAgIChiYWNr
aW5nU3RvcmVBdHRhY2hlZCAxKQogICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAw
LCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0
IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAgICAgICAgKGNvdmVyYWdl
IHJlY3QgLTEwLjAwLCAtMTY5LjAwIDgwMC4wMCB4IDYwMC4wMCkKICAgICAgICAgICAgICAgICAg
IChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgIChjb250ZW50
c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3Rv
cmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAw
LjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJz
ZWN0cyBjb3ZlcmFnZSByZWN0IDApCisgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAw
IDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAg
ICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQorICAgICAgICAgICAg
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAu
MDApCisgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQog
ICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNp
YmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAw
IDQwMC4wMCB4IDMwMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMg
Y292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2Fs
ZSAyLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAw
LCAwIDQwMCB4IDMwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIg
eCA1MTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGls
ZXMgZ3JpZCAxIHggMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAxKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Ym91bmRzIDQwMC4wMCAzMDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3Jl
QXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAw
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4w
MCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJz
ZWN0cyBjb3ZlcmFnZSByZWN0IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u
dGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2Fj
aGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodGlsZSBzaXplIDUxMiB4IDUxMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChpbiB3aW5kb3cgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVk
IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAw
LCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
b3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgICAgICAgICApCg==
</data>
<flag name="commit-queue"
          id="376270"
          type_id="3"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359514</attachid>
            <date>2019-01-18 11:23:48 -0800</date>
            <delta_ts>2019-01-18 12:07:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>frame-scroll-ios-16.patch</filename>
            <type>text/plain</type>
            <size>40723</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXN5bmNocm9u
b3VzIGZyYW1lIHNjcm9sbGluZyBmb3IgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3Mzc5
ODczPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgVUlTY3JvbGxWaWV3IGJhc2VkIGZyYW1lIHNjcm9sbGluZyBvbiBp
T1MsIGVuYWJsZWQgYnkgdGhlICJBc3luYyBGcmFtZSBTY3JvbGxpbmciCisgICAgICAgIGludGVy
bmFsIHNldHRpbmcgKHN0aWxsIG9mZiBieSBkZWZhdWx0KS4KKworICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxMYXll
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbik6CisKKyAgICAg
ICAgRXhwb3J0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlk
Q2hhbmdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcpOgorCisgICAgICAgIElmIHdlIGRvbid0IGhhdmUgYSBz
ZXBhcmF0ZSBjbGlwIGxheWVyLCBqdXN0IHJlc2l6ZSBhbmQgcG9zaXRpb24gdGhlIHNjcm9sbCBs
YXllci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVS
b290TGF5ZXJQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIpOgorCisgICAgICAgIFVzZSBHcmFw
aGljc0xheWVyOjpUeXBlOjpTY3JvbGxpbmcgYXMgdGhlIHNjcm9sbCBsYXllciB0eXBlIHdoZW4g
YXN5bmMgZnJhbWUgc2Nyb2xsaW5nIGlzIGVuYWJsZWQuCisgICAgICAgIERvbid0IGNyZWF0ZSBh
IHNlcGFyYXRlIGNsaXAgbGF5ZXIgc2luY2UgdGhlIHNjcm9sbCBsYXllciB3aWxsIGhhbmRsZSBj
bGlwcGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoK
KwogMjAxOS0wMS0xOCAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
RmV0Y2hSZXNwb25zZTo6dXJsIHNob3VsZCByZXR1cm4gdGhlIGVtcHR5IHN0cmluZyBmb3IgdGFp
bnRlZCByZXNwb25zZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1MuaAkocmV2aXNpb24gMjQwMTU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaAkod29ya2luZyBjb3B5
KQpAQCAtMzQsOSArMzQsOSBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUyA6IHB1Ymxp
YyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JU
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoU2Nyb2xsaW5n
VHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIHN0YXRpYyBS
ZWY8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUz4gY3JlYXRlKFNjcm9sbGluZ1Ry
ZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICB2aXJ0dWFsIH5T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TKCk7CiAKIHByb3RlY3RlZDoKQEAgLTU1
LDE0ICs1NSwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVMYXllcnNBZnRlckRlbGVn
YXRlZFNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVM
YXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2RlJiBjaGFuZ2Vk
Tm9kZSwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgRmxvYXRTaXpl
JiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllclBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0
KSBvdmVycmlkZTsKIAogICAgIEZsb2F0UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25z
dCBvdmVycmlkZTsKIAorICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3Q7CisKIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXRQb2lu
dCYpOwotICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxM
YXllci5nZXQoKTsgfQogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ0xheWVyOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
aW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MubW0JKHJldmlzaW9uIDI0MDE1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDExIEBA
IEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm8KICAgICByZXR1cm4gLW1f
c2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRpb247CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24pCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdl
Q29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgaWYg
KHNob3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKQEAgLTIx
MCw2ICsyMTUsMTEgQEAgRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdObwog
ICAgIHJldHVybiBwb3NpdGlvbjsKIH0KIAorQ0FMYXllciAqU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZUlPUzo6c2Nyb2xsTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9s
bExheWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJ
KHJldmlzaW9uIDI0MDE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDcsOCArNDQ3LDggQEAgRmxvYXRS
ZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZQogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgcmV0dXJuIGZyYW1lVmlldy5leHBvc2VkQ29udGVudFJlY3QoKTsKICNlbHNlCi0g
ICAgLy8gSGF2aW5nIGEgbV9jbGlwTGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Ny
b2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4KLSAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBt
X2NsaXBMYXllciA/IEZsb2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRl
bnQoKSkgOiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CisgICAgLy8gSGF2aW5nIGEg
bV9zY3JvbGxMYXllciBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBkb2luZyBzY3JvbGxpbmcgdmlhIEdy
YXBoaWNzTGF5ZXJzLgorICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IG1fc2Nyb2xsTGF5ZXIg
PyBGbG9hdFJlY3QoeyB9LCBmcmFtZVZpZXcuc2l6ZUZvclZpc2libGVDb250ZW50KCkpIDogZnJh
bWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpOwogCiAgICAgaWYgKGZyYW1lVmlldy52aWV3RXhw
b3NlZFJlY3QoKSkKICAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KGZyYW1lVmlldy52aWV3
RXhwb3NlZFJlY3QoKS52YWx1ZSgpKTsKQEAgLTE3ODYsMTggKzE3ODYsMTYgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZAogICAgIGlmIChhdXRvKiBsYXllciA9IG1f
cmVuZGVyVmlldy5sYXllcigpKQogICAgICAgICBsYXllci0+c2V0TmVlZHNDb21wb3NpdGluZ0dl
b21ldHJ5VXBkYXRlKCk7CiAKLSAgICBpZiAobV9jbGlwTGF5ZXIpIHsKLSAgICAgICAgY29uc3Qg
RnJhbWVWaWV3JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7Ci0gICAgICAg
IG1fY2xpcExheWVyLT5zZXRTaXplKGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSk7
Ci0gICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNsaXBMYXllcigp
KTsKLQorICAgIGlmIChtX3Njcm9sbExheWVyKSB7CisgICAgICAgIHVwZGF0ZVNjcm9sbExheWVy
Q2xpcHBpbmcoKTsKICAgICAgICAgZnJhbWVWaWV3RGlkU2Nyb2xsKCk7CiAgICAgICAgIHVwZGF0
ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
ICAgICAgICAgaWYgKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKSB7CisgICAgICAgICAgICBhdXRv
JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAgICAgICAgICAgICBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0U2l6ZShmcmFtZVZpZXcuZnJhbWVSZWN0KCkuc2l6ZSgp
KTsKLSAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRQb3NpdGlvbihGbG9h
dFBvaW50KDAsIG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS50b3BDb250ZW50SW5zZXQoKSkpOwor
ICAgICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMtPnNldFBvc2l0aW9uKEZsb2F0UG9p
bnQoMCwgZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpKSk7CiAgICAgICAgIH0KICNlbmRpZgog
ICAgIH0KQEAgLTE4MjIsNiArMTgyMCwxNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
dXBkYXRlU2Nyb2xsCiAgICAgICAgIGZpeGVkQmFja2dyb3VuZExheWVyLT5zZXRQb3NpdGlvbihm
cmFtZVZpZXcuc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCkpOwogfQogCit2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpCit7CisgICAg
YXV0byogbGF5ZXJGb3JDbGlwcGluZyA9IHRoaXMtPmxheWVyRm9yQ2xpcHBpbmcoKTsKKyAgICBp
ZiAoIWxheWVyRm9yQ2xpcHBpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGxheWVyRm9yQ2xp
cHBpbmctPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JWaXNpYmxlQ29u
dGVudCgpKTsKKyAgICBsYXllckZvckNsaXBwaW5nLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNs
aXBMYXllcigpKTsKK30KKwogRmxvYXRQb2ludCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0
aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKIHsKICAgICBhdXRvJiBmcmFtZVZpZXcgPSBtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCk7CkBAIC0yMDUxLDEwICsyMDU5LDggQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYQogICAgICAgICBtX3Jvb3RDb250ZW50TGF5ZXItPnNl
dFBvc2l0aW9uKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wb3NpdGlvbkZvclJvb3RDb250ZW50
TGF5ZXIoKSk7CiAgICAgICAgIG1fcm9vdENvbnRlbnRMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludDNEKCkpOwogICAgIH0KLSAgICBpZiAobV9jbGlwTGF5ZXIpIHsKLSAgICAgICAgbV9j
bGlwTGF5ZXItPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JWaXNpYmxl
Q29udGVudCgpKTsKLSAgICAgICAgbV9jbGlwTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9y
Q2xpcExheWVyKCkpOwotICAgIH0KKworICAgIHVwZGF0ZVNjcm9sbExheWVyQ2xpcHBpbmcoKTsK
IAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAobV9jb250ZW50U2hhZG93TGF5
ZXIgJiYgbV9yb290Q29udGVudExheWVyKSB7CkBAIC0zMjg3LDcgKzMyOTMsNyBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsCiAKICAgICAgICAgICAgIC8vIFdlIHdh
bnQgdGhlIG92ZXJoYW5nIGFyZWFzIGxheWVyIHRvIGJlIHBvc2l0aW9uZWQgYmVsb3cgdGhlIGZy
YW1lIGNvbnRlbnRzLAogICAgICAgICAgICAgLy8gc28gaW5zZXJ0IGl0IGJlbG93IHRoZSBjbGlw
IGxheWVyLgotICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGls
ZEJlbG93KCptX2xheWVyRm9yT3ZlcmhhbmdBcmVhcywgbV9jbGlwTGF5ZXIuZ2V0KCkpOworICAg
ICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZEJlbG93KCptX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcywgbGF5ZXJGb3JDbGlwcGluZygpKTsKICAgICAgICAgfQogICAg
IH0gZWxzZQogICAgICAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFyKG1fbGF5ZXJG
b3JPdmVyaGFuZ0FyZWFzKTsKQEAgLTMzOTksMjMgKzM0MDUsMzAgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYQogICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xz
SG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
ICp0aGlzKTsKICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+c2V0TmFt
ZSgib3ZlcmZsb3cgY29udHJvbHMgaG9zdCIpOwogCi0gICAgICAgICAgICAvLyBDcmVhdGUgYSBj
bGlwcGluZyBsYXllciBpZiB0aGlzIGlzIGFuIGlmcmFtZQotICAgICAgICAgICAgbV9jbGlwTGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMp
OwotICAgICAgICAgICAgbV9jbGlwTGF5ZXItPnNldE5hbWUoImZyYW1lIGNsaXBwaW5nIik7Ci0g
ICAgICAgICAgICBtX2NsaXBMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgbV9zY3JvbGxMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShn
cmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CisgICAgICAgICAgICBhdXRvIHNjcm9sbExh
eWVyVHlwZSA9IEdyYXBoaWNzTGF5ZXI6OlR5cGU6Ok5vcm1hbDsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgICAgICAgICAgaWYgKG1fcmVuZGVyVmlldy5zZXR0aW5ncygpLmFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXJUeXBlID0g
R3JhcGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xsaW5nOworI2VuZGlmCisgICAgICAgICAgICBtX3Nj
cm9sbExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
ICp0aGlzLCBzY3JvbGxMYXllclR5cGUpOwogICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+c2V0
TmFtZSgiZnJhbWUgc2Nyb2xsaW5nIik7CiAKLSAgICAgICAgICAgIC8vIEhvb2sgdGhlbSB1cAot
ICAgICAgICAgICAgbV9vdmVyZmxvd0NvbnRyb2xzSG9zdExheWVyLT5hZGRDaGlsZCgqbV9jbGlw
TGF5ZXIpOwotICAgICAgICAgICAgbV9jbGlwTGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbExheWVy
KTsKLSAgICAgICAgICAgIG1fc2Nyb2xsTGF5ZXItPmFkZENoaWxkKCptX3Jvb3RDb250ZW50TGF5
ZXIpOworICAgICAgICAgICAgaWYgKHNjcm9sbExheWVyVHlwZSA9PSBHcmFwaGljc0xheWVyOjpU
eXBlOjpTY3JvbGxpbmcpIHsKKyAgICAgICAgICAgICAgICAvLyBTY3JvbGwgbGF5ZXIgY2xpcHMg
c28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBzZXBhcmF0ZSBjbGlwcGluZyBsYXllci4KKyAgICAg
ICAgICAgICAgICBtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXItPmFkZENoaWxkKCptX3Njcm9s
bExheWVyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jbGlwTGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMp
OworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXROYW1lKCJmcmFtZSBjbGlwcGluZyIp
OworICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwor
ICAgICAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0Qo
KSk7CisKKyAgICAgICAgICAgICAgICBtX2NsaXBMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xsTGF5
ZXIpOworICAgICAgICAgICAgICAgIG1fb3ZlcmZsb3dDb250cm9sc0hvc3RMYXllci0+YWRkQ2hp
bGQoKm1fY2xpcExheWVyKTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgbV9jbGlwTGF5
ZXItPnNldFNpemUobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnNpemVGb3JWaXNpYmxlQ29udGVu
dCgpKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNs
aXBMYXllcigpKTsKLSAgICAgICAgICAgIG1fY2xpcExheWVyLT5zZXRBbmNob3JQb2ludChGbG9h
dFBvaW50M0QoKSk7CisgICAgICAgICAgICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZCgqbV9yb290
Q29udGVudExheWVyKTsKIAorICAgICAgICAgICAgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygp
OwogICAgICAgICAgICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAg
ICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDI0MDE1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIzNiw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xh
eWVyKiBjbGlwTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaXBMYXllci5nZXQoKTsgfQogICAg
IEdyYXBoaWNzTGF5ZXIqIHJvb3RDb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RD
b250ZW50TGF5ZXIuZ2V0KCk7IH0KIAorICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yQ2xpcHBp
bmcoKSBjb25zdCB7ICByZXR1cm4gbV9jbGlwTGF5ZXIgPyBtX2NsaXBMYXllci5nZXQoKSA6IG1f
c2Nyb2xsTGF5ZXIuZ2V0KCk7ICB9CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAg
R3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyRm9ySGVh
ZGVyLmdldCgpOyB9CkBAIC00MzIsNiArNDMzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKTsKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJQ
b3NpdGlvbigpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsTGF5ZXJDbGlwcGluZygpOwogCiAgICAg
RmxvYXRQb2ludCBwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjQwMTU5KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGFzeW5jaHJvbm91cyBmcmFtZSBzY3JvbGxp
bmcgZm9yIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkzNTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzM3OTg3Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGEgc2Nyb2xsaW5nIG5vZGUg
dHlwZSB0aGF0IGNhbiBoYW5kbGUgVUlTY3JvbGxWaWV3IGJhY2tlZCBmcmFtZXMuCisgICAgICAg
IEl0IGJhc2ljYWxseSBqdXN0IGluc3RhbnRpYXRlcyBhbmQgZm9yd2FyZHMgdG8gdGhlIGV4aXN0
aW5nIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZUlPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyk6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1M6On5TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TKToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0
U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6CisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OnVw
ZGF0ZUxheWVyc0FmdGVyQW5jZXN0b3JDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3NpdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRl
ZFNjcm9sbCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTktMDEtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHNvbWUgbGFzdCB2ZXN0aWdlcyBvZiBhc3Npc3RlZCBub2RlIHRlcm1pbm9s
b2d5IGluIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjQwMTU5
KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
NTQsNiArNDU0LDcgQEAgVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVAog
CiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1t
CiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5SU9TLm1tCitVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDI0MDE1
OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaD4KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1MuaD4K
ICNlbHNlCkBAIC0xMTUsNyArMTE2LDcgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVT
Y3JvbGxpbmdUcgogICAgIGNhc2UgU2Nyb2xsaW5nTm9kZVR5cGU6Ok1haW5GcmFtZToKICAgICBj
YXNlIFNjcm9sbGluZ05vZGVUeXBlOjpTdWJmcmFtZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y3Jl
YXRlKCp0aGlzLCBub2RlVHlwZSwgbm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZVR5cGUsIG5v
ZGVJRCk7CiAjZWxzZQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlVHlwZSwgbm9kZUlEKTsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eUlPUy5tbQkocmV2aXNpb24gMjQwMTU5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw5IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6Y28KICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAg
ICAgICAgICAgICAgIHNjcm9sbGluZ1N0YXRlTm9kZS5zZXRMYXllcihsYXllclRyZWVIb3N0Lmxh
eWVyRm9ySUQoc2Nyb2xsaW5nU3RhdGVOb2RlLmxheWVyKCkpKTsKIAorICAgICAgICAgICAgaWYg
KHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxlZENvbnRlbnRzTGF5ZXIpKQorICAgICAgICAgICAgICAgIHNjcm9s
bGluZ1N0YXRlTm9kZS5zZXRTY3JvbGxlZENvbnRlbnRzTGF5ZXIobGF5ZXJUcmVlSG9zdC5sYXll
ckZvcklEKHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSkpOworCiAg
ICAgICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkKICAg
ICAgICAgICAgICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUuc2V0Q291bnRlclNjcm9sbGluZ0xheWVy
KGxheWVyVHJlZUhvc3QubGF5ZXJGb3JJRChzY3JvbGxpbmdTdGF0ZU5vZGUuY291bnRlclNjcm9s
bGluZ0xheWVyKCkpKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzsKKworY2xhc3Mg
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyA6IHB1YmxpYyBXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M+IGNyZWF0ZShX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCk7CisgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZUlPUygpOworCitwcml2YXRlOgorICAgIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworCisgICAgdm9p
ZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
Tm9kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0
U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHVw
ZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyQW5j
ZXN0b3JDaGFuZ2UoY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGUmIGNoYW5nZWROb2Rl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CisKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4gbV9zY3JvbGxp
bmdOb2RlRGVsZWdhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZUlPUy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykKKworI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5oIgorI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVm
PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M+IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNyZWF0ZShTY3JvbGxpbmdUcmVlJiBzY3JvbGxp
bmdUcmVlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TKHNjcm9sbGluZ1RyZWUsIG5vZGVUeXBlLCBub2RlSUQpKTsKK30KKwor
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6U2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUyhTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlLCBT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKKyAgICA6
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1Moc2Nyb2xsaW5nVHJlZSwgbm9kZVR5
cGUsIG5vZGVJRCkKK3sKK30KKworU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUzo6flNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MoKQoreworfQor
Cit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1pdFN0
YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7
CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVCZWZv
cmVDaGlsZHJlbihzdGF0ZU5vZGUpOworCisgICAgaWYgKHN0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxMYXllcikpIHsKKyAgICAg
ICAgaWYgKHNjcm9sbExheWVyKCkgJiYgW1tzY3JvbGxMYXllcigpIGRlbGVnYXRlXSBpc0tpbmRP
ZkNsYXNzOltVSVNjcm9sbFZpZXcgc2VsZl1dKQorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2Rl
RGVsZWdhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1M+KCp0aGlzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zY3JvbGxpbmdO
b2RlRGVsZWdhdGUgPSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3Njcm9sbGluZ05vZGVE
ZWxlZ2F0ZSkKKyAgICAgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4oZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5v
ZGUpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0
ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0
U3RhdGVBZnRlckNoaWxkcmVuKHN0YXRlTm9kZSk7CisKKyAgICBpZiAobV9zY3JvbGxpbmdOb2Rl
RGVsZWdhdGUpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5jb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5v
ZGUpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Ojp1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNvbnN0IFNjcm9sbGluZ1RyZWVOb2Rl
JiBjaGFuZ2VkTm9kZSwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgY29uc3Qg
RmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpCit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURl
bGVnYXRlKSB7CisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT51cGRhdGVMYXllcnNB
ZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5nZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVjdCwgY3VtdWxh
dGl2ZURlbHRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckFuY2VzdG9yQ2hhbmdlKGNoYW5n
ZWROb2RlLCBmaXhlZFBvc2l0aW9uUmVjdCwgY3VtdWxhdGl2ZURlbHRhKTsKK30KKworRmxvYXRQ
b2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjpzY3JvbGxQb3Np
dGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQorICAgICAg
ICByZXR1cm4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnNjcm9sbFBvc2l0aW9uKCk7CisKKyAg
ICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsUG9zaXRp
b24oKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
OjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0KQoreworICAgIGlmIChtX3Njcm9sbGlu
Z05vZGVEZWxlZ2F0ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+c2V0U2Ny
b2xsTGF5ZXJQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnQpOworfQorCit2b2lkIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyRGVs
ZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQoreworICAgIGlm
IChtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZSkgeworICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxl
Z2F0ZS0+dXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9T
Ojp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChzY3JvbGxQb3NpdGlvbik7Cit9CisK
K30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MDE1OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1OTQsNiArMTU5
NCw3IEBACiAJCUU0NDM2RUNGMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQzNkVD
MjFBMENGREIyMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlU3RvcmFnZS5oICovOyB9OwogCQlFNDg5
RDI4QzFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29kZXJzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDg5RDI4NTFBMEEyREI4MDA3OEMw
NkEgLyogTmV0d29ya0NhY2hlQ29kZXJzLmggKi87IH07CiAJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2
QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdv
cmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CisJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAv
KiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBCOTZFMDA1MzA3
MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovOyB9Owog
CQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFNTdGNkEyMUE4M0Ix
MTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKIAkJRTRFODY0OTMxQjE2
NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9u
Q2hlY2tzLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlz
dFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25QaWNrZXIuaCAqLzsgfTsKQEAgLTQ0NDUsNiArNDQ0Niw4IEBACiAJCUU0MDQ5MDczMjFERTY1
RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkw
NzQyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MDQ5MDc1MjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlck1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlck1hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURC
NjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAv
KiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01NTE3LDYgKzU1MjAsOCBAQAogCQkJCTJEQzE4RkIxMjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1v
dGVMYXllclRyZWVWaWV3cy5oICovLAogCQkJCTJEQzE4RkIyMjE4QTZFOUUwMDI1QTg4RCAvKiBS
ZW1vdGVMYXllclRyZWVWaWV3cy5tbSAqLywKIAkJCQkwRjBDMzY1QjE4QzA1Q0ExMDBGNjA3RDcg
LyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSAqLywKKwkJCQlFNDBDMUY5
MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUy5oICovLAorCQkJCUU0MEMxRjk1MjFGMEI5N0YwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tICovLAogCQkJCTBGOTMxQzFBMThDNTcxMTkw
MERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggKi8sCiAJ
CQkJMEY5MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVJT1MubW0gKi8sCiAJCQkJMEY5MzFDMUExOEM1NzExOTAwREJCOEQ0IC8qIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaCAqLywKQEAgLTg4NTgsNiArODg2Myw3
IEBACiAJCQkJMUE4MUIzODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFCMzg1MThCRDY3M0EwMDA3RkRBQyAvKiBfV0tWaXNp
dGVkTGlua1N0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4Njc4MUM3RTc2
NTEwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0
RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYg
LyogX1dLV2Vic2l0ZURhdGFTaXplSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkI0
QzcyMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTIwQzgzNTFFNUI3NEI5MDAyNUIyNTAgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQwMTU5KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTktMDEtMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBhc3luY2hyb25vdXMgZnJhbWUgc2Nyb2xsaW5nIGZvciBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzUzOQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDczNzk4NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90aWxpbmcvdGls
ZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OgorCiAyMDE5LTAx
LTE4ICBBbGkgSnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGZXRjaFJlc3Bv
bnNlOjp1cmwgc2hvdWxkIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nIGZvciB0YWludGVkIHJlc3Bv
bnNlcwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90aWxp
bmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvdGlsaW5n
L3RpbGVkLWRyYXdpbmctYXN5bmMtZnJhbWUtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjQwMTU5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy90
aWxpbmcvdGlsZWQtZHJhd2luZy1hc3luYy1mcmFtZS1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC00MCw1MSArNDAsNDEgQEAKICAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMi4wMCkKICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCiAgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAxNTAuMDApCiAgICAgICAgICAgICAgICAgICAo
YmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3Qg
MC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAoY292ZXJhZ2Ug
cmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgIChjb3Zl
cmFnZSByZWN0IC0xMC4wMCwgLTEwLjAwIDgwMC4wMCB4IDYwMC4wMCkKICAgICAgICAgICAgICAg
ICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgIChjb250
ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5n
U3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4w
MCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVj
dCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCisgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAw
LjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQorICAgICAgICAg
ICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisg
ICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAz
MDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAx
KQogICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAg
ICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICh2
aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHgg
MzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDQwMC4wMCB4IDMwMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2Vj
dHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNT
Y2FsZSAyLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFn
ZSAwLCAwIDQwMCB4IDMwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1
MTIgeCA1MTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAg
dGlsZXMgZ3JpZCAxIHggMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAx
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0
b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwg
MC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Y29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUg
Y2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFj
aGVkIDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAw
LjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICApCkBAIC0xMTUsNTEgKzEwNSw0MSBAQAog
ICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQogICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQogICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAo
YW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAwIDE1MC4w
MCkKICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQogICAgICAgICAg
ICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAg
ICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQor
ICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgLTMxOC4wMCwgLTEwLjAwIDgwMC4wMCB4
IDYwMC4wMCkKICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkK
ICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAg
ICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQotICAgICAgICAgICAgICAg
ICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCisgICAgICAg
ICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAgICAg
KGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3Rv
cmVBdHRhY2hlZCAxKQorICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJl
Y3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGlu
dGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50
c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAg
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQw
MC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAx
NTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAu
MDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4wMCB4IDMwMC4wMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDQwMCB4IDMwMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGluIHdpbmRvdyAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNoZWQgMSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMw
MC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3Rz
IGNvdmVyYWdlIHJlY3QgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5n
U3RvcmVBdHRhY2hlZCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBjb3ZlcmFnZSByZWN0IDApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAx
IHggMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbiB3aW5kb3cgMSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAw
IHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcnNlY3Rz
IGNvdmVyYWdlIHJlY3QgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u
dGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KQogICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAp
CkBAIC0xOTAsNTEgKzE3MCw0MSBAQAogICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAw
KQogICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCi0gICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKICAgICAgICAgICAgICAg
ICAgIChib3VuZHMgMzAwLjAwIDE1MC4wMCkKICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3Rv
cmVBdHRhY2hlZCAxKQogICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAw
IDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgIChjb3ZlcmFnZSByZWN0IDAuMDAs
IDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3Qg
LTEwLjAwLCAtMTY5LjAwIDgwMC4wMCB4IDYwMC4wMCkKICAgICAgICAgICAgICAgICAgIChpbnRl
cnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKICAgICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxl
IDIuMDApCiAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRh
Y2hlZCAwKQotICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAw
LjAwIHggMC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAw
LjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBj
b3ZlcmFnZSByZWN0IDApCisgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDAp
CisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAgMzAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAxKQorICAgICAgICAgICAgICAgICAg
ICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisgICAgICAgICAg
ICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAuMDAgeCAzMDAuMDApCisg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAxKQogICAgICAg
ICAgICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCiAgICAgICAgICAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDQwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tp
bmdTdG9yZUF0dGFjaGVkIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJl
Y3QgMC4wMCwgMC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IChjb3ZlcmFnZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgNDAwLjAwIHggMzAwLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY292ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDQwMC4w
MCB4IDMwMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyc2VjdHMgY292ZXJh
Z2UgcmVjdCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAw
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCAwIDQw
MCB4IDMwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0aWxlIDAsIDAgdGlsZXMgZ3Jp
ZCAxIHggMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGluIHdpbmRvdyAxKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRz
IDQwMC4wMCAzMDAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja2luZ1N0b3JlQXR0YWNo
ZWQgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCAzMDAuMDAgeCAxNTAuMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY292
ZXJhZ2UgcmVjdCAwLjAwLCAwLjAwIDMwMC4wMCB4IDE1MC4wMCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChiYWNraW5nU3RvcmVBdHRhY2hlZCAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvdmVyYWdlIHJlY3QgMC4wMCwgMC4wMCA0MDAu
MDAgeCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJzZWN0cyBj
b3ZlcmFnZSByZWN0IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNT
Y2FsZSAyLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbGUgY2FjaGUgY292
ZXJhZ2UgMCwgMCA0MDAgeCAzMDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGls
ZSBzaXplIDUxMiB4IDUxMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVm
dCB0aWxlIDAsIDAgdGlsZXMgZ3JpZCAxIHggMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpbiB3aW5kb3cgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJl
biAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tpbmdTdG9yZUF0dGFjaGVkIDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAw
IDAuMDAgeCAwLjAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3ZlcmFn
ZSByZWN0IDAuMDAsIDAuMDAgMzAwLjAwIHggMTUwLjAwKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAyLjAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg
ICAgICAgICAgICAgICAgICAgICAgICApCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>