<?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>173854</bug_id>
          
          <creation_ts>2017-06-26 15:52:16 -0700</creation_ts>
          <short_desc>[iOS DnD] Support dragging out of contenteditable areas without a prior selection</short_desc>
          <delta_ts>2017-06-27 17:36:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323000</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 15:52:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/32236827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323004</commentid>
    <comment_count>1</comment_count>
      <attachid>313873</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-26 16:41:23 -0700</bug_when>
    <thetext>Created attachment 313873
Depends on bug #173832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323267</commentid>
    <comment_count>2</comment_count>
      <attachid>313873</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-27 14:47:12 -0700</bug_when>
    <thetext>Comment on attachment 313873
Depends on bug #173832

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

r=me assuming it passes tests.

&gt; Source/WebCore/page/DragController.cpp:726
&gt; +    auto* renderer = image.renderer();
&gt; +    if (!is&lt;RenderImage&gt;(renderer))
&gt; +        return false;
&gt; +
&gt; +    auto* cachedImage = downcast&lt;RenderImage&gt;(*renderer).cachedImage();
&gt; +    return cachedImage &amp;&amp; !cachedImage-&gt;errorOccurred() &amp;&amp; cachedImage-&gt;imageForRenderer(renderer);

We need to be always careful when we rely on the existence of renderer(). Are we sure we&apos;ve updated the layout / style before getting here?

&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:579
&gt; +    IntPoint adjustedClientPosition;

We do we need to declare this upfront?

&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:584
&gt; +    {
&gt; +        FloatPoint adjustedClientPositionAsFloatPoint(clientPosition);
&gt; +        protectedFrame-&gt;nodeRespondingToClickEvents(clientPosition, adjustedClientPositionAsFloatPoint);
&gt; +        adjustedClientPosition = roundedIntPoint(adjustedClientPositionAsFloatPoint);
&gt; +    }

Why can&apos;t we get rid of the curly brackets and declare adjustedClientPosition right in the third line instead?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-target.html:1
&gt; +&lt;head&gt;

Missing DOCTYPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323280</commentid>
    <comment_count>3</comment_count>
      <attachid>313873</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-27 15:13:08 -0700</bug_when>
    <thetext>Comment on attachment 313873
Depends on bug #173832

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

&gt;&gt; Source/WebCore/page/DragController.cpp:726
&gt;&gt; +    return cachedImage &amp;&amp; !cachedImage-&gt;errorOccurred() &amp;&amp; cachedImage-&gt;imageForRenderer(renderer);
&gt; 
&gt; We need to be always careful when we rely on the existence of renderer(). Are we sure we&apos;ve updated the layout / style before getting here?

I see. We have always accessed the renderer here (see DragController::draggableElement), but it doesn&apos;t seem like we update layout/style from all call sites (even on Mac), which seems problematic! I&apos;ll fix it for iOS first by making sure that we update layout/style when starting a drag.

&gt;&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:579
&gt;&gt; +    IntPoint adjustedClientPosition;
&gt; 
&gt; We do we need to declare this upfront?

Right -- I cleaned this up as a part of my second patch.

&gt;&gt; Source/WebCore/page/ios/EventHandlerIOS.mm:584
&gt;&gt; +    }
&gt; 
&gt; Why can&apos;t we get rid of the curly brackets and declare adjustedClientPosition right in the third line instead?

👍

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-target.html:1
&gt;&gt; +&lt;head&gt;
&gt; 
&gt; Missing DOCTYPE.

Added!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323292</commentid>
    <comment_count>4</comment_count>
      <attachid>313953</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-27 15:30:18 -0700</bug_when>
    <thetext>Created attachment 313953
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323342</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-27 17:36:59 -0700</bug_when>
    <thetext>Committed r218855: &lt;http://trac.webkit.org/changeset/218855&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313873</attachid>
            <date>2017-06-26 16:41:23 -0700</date>
            <delta_ts>2017-06-27 14:47:12 -0700</delta_ts>
            <desc>Depends on bug #173832</desc>
            <filename>bug-173854-20170626164123.patch</filename>
            <type>text/plain</type>
            <size>25489</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNhNWRjMjMwZTJhOTFh
Njc1ZDE3MWFhNWVkYWU5MzAxZmJhYWM5Zi4uOTRjYjM4ODI4MTI5YTdjMDlkOGZmODZlZDhhMWQx
NTljMDEyMjZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE3LTA2LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgRG5EXSBT
dXBwb3J0IGRyYWdnaW5nIG91dCBvZiBjb250ZW50ZWRpdGFibGUgYXJlYXMgd2l0aG91dCBhIHBy
aW9yIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTczODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIzNjgyNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvd3MgZWxlbWVudHMg
dG8gYmUgZHJhZ2dlZCBmcm9tIGNvbnRlbnRlZGl0YWJsZSBhcmVhcyBmb3IgYm90aCBXZWJLaXQx
IGFuZCBXZWJLaXQyIGlPUy4gVGhlcmUgYXJlIHR3byBtYWluCisgICAgICAgIGNoYW5nZXMgaW4g
V2ViQ29yZTogbW92ZSB0aGUgdG91Y2ggcG9pbnQgYWRqdXN0bWVudCBjb2RlIGludG8gRXZlbnRI
YW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCwgc28KKyAgICAgICAgdGhh
dCB0aGUgY2xpZW50UG9zaXRpb24gc3BlY2lmaWVkIHdpbGwgYmUgYWRqdXN0ZWQgdG8gYW4gYXBw
cm9wcmlhdGUgY2xpY2thYmxlIG5vZGUgaWYgbmVlZGVkLiBUaGlzIGlzIG5lY2Vzc2FyeQorICAg
ICAgICBiZWNhdXNlIFVJV2ViRG9jdW1lbnRWaWV3IGFuZCBXS0NvbnRlbnRWaWV3IG5vIGxvbmdl
ciBzZW5kIGFkanVzdGVkIHBvaW50cyB0byBXZWJDb3JlIHdoZW4gcmVxdWVzdGluZyBkcmFnCisg
ICAgICAgIHN0YXJ0LiBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzM4NTU+IGZvciBhIGZvbGxvd3VwIHJlZ2FyZGluZyB0aGUgZ2xvYmFsUG9zaXRpb24gYW5k
CisgICAgICAgIGNsaWVudFBvc2l0aW9ucyBwYXNzZWQgaW4gdG8gdGhlIE1vdXNlRXZlbnRzIHdo
ZW4gcGVyZm9ybWluZyBhIGRyYWcgb3Igc3ludGhldGljIGNsaWNrLgorCisgICAgICAgIFNlY29u
ZGx5LCBpbWFnZSBlbGVtZW50cyBpbiBNYWlsJ3MgY29udGVudGVkaXRhYmxlIGFyZWEgYXJlIG5v
dCBkcmFnZ2FibGUgdW5sZXNzIHRoZSBoZXVyaXN0aWMgaW4KKyAgICAgICAgRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdnYWJsZUVsZW1lbnQgaXMgdHdlYWtlZCB0byBub3QgcmVqZWN0IGltYWdlIGRyYWdn
aW5nIGFjcm9zcyB0aGUgYm9hcmQgaWYgdGhlCisgICAgICAgIGxvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSBzZXR0aW5nIGlzIHR1cm5lZCBvZmYuIEluc3RlYWQsIGV2ZW4gaWYgaW1hZ2VzIGFyZSBu
b3QgYXV0b21hdGljYWxseSBsb2FkZWQsIGFsbG93IHRoZQorICAgICAgICBpbWFnZSBkcmFnIHRv
IGNvbW1lbmNlIGlmIHRoZSBpbWFnZSByZW5kZXJlciBhbHJlYWR5IGhhcyBhIGNhY2hlZCBpbWFn
ZS4KKworICAgICAgICBUZXN0OiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5EcmFnSW1hZ2VGcm9tQ29u
dGVudEVkaXRhYmxlCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmltYWdlRWxlbWVudElzRHJhZ2dhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnZ2FibGVFbGVtZW50KToKKyAgICAgICAgKiBwYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRyeVRv
QmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KToKKworMjAxNy0wNi0yNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSZWZhY3RvciBkcmFnIHN0YXJ0
IGNvZGVwYXRocyB0byBwbHVtYiBhIERyYWdJdGVtIHRvIGNsaWVudCBsYXllcnMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzgzMgogICAgICAgICBX
b3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMyMjM2ODI3PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDljZTQwNThiOTQ3YmQyNGMxN2Q2OTA3YjJjOGIzNTM2YzAyZTcyMzEuLjg4NzU3NWE4MzVjNjdl
Njk4MzQ5YWIzYWY0MWNmYTkwYzg2NGYwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
NiBAQAogMjAxNy0wNi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAorICAgICAgICBbaU9TIERuRF0gU3VwcG9ydCBkcmFnZ2luZyBvdXQgb2YgY29udGVudGVkaXRh
YmxlIGFyZWFzIHdpdGhvdXQgYSBwcmlvciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzIyMzY4Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVmVuZHMgc29tZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEcmFnSXRlbSBwYXNzZWQgaW50
byAtW1dlYlZpZXcgX3N0YXJ0RHJhZzpdIHRocm91Z2ggdGhlIFdlYlZpZXcgYXMgU1BJIGZvcgor
ICAgICAgICBXZWJLaXQxIGNsaWVudHMuIE5vIGJlaGF2aW9yIGNoYW5nZSB3aXRoIHRoZXNlIGNo
YW5nZXMgYWxvbmUgLS0gc2VlIDxyZGFyOi8vcHJvYmxlbS8zMjk5MTA2Mj4gZm9yIG1vcmUgZGV0
YWlsLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9zdGFydERyYWc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RyYWdTb3VyY2VBY3Rpb25dKToK
KyAgICAgICAgKC1bV2ViVmlldyBfZHJhZ2dlZExpbmtUaXRsZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9kcmFnZ2VkTGlua1VSTF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9kcmFnZ2VkRWxlbWVu
dEJvdW5kc10pOgorICAgICAgICAoLVtXZWJWaWV3IF9lbmRlZERhdGFJbnRlcmFjdGlvbjpnbG9i
YWw6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaDoKKworMjAxNy0wNi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSZWZhY3RvciBkcmFnIHN0YXJ0IGNvZGVwYXRo
cyB0byBwbHVtYiBhIERyYWdJdGVtIHRvIGNsaWVudCBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzgzMgogICAgICAgICBXb3JrIHRvd2Fy
ZHMgPHJkYXI6Ly9wcm9ibGVtLzMyMjM2ODI3PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhMzdiZDc1NDkzNWU5
MzFiMmQ3MTM3Zjc0YjQ2N2M2NDBhYmZiYjIuLmY0YWE0MTA2NjlkYmY2Yjc3ZGYzZWZkNjkxY2Ew
MjlmNTdkMDFlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNCBAQAogMjAxNy0wNi0yNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBbaU9TIERuRF0g
U3VwcG9ydCBkcmFnZ2luZyBvdXQgb2YgY29udGVudGVkaXRhYmxlIGFyZWFzIHdpdGhvdXQgYSBw
cmlvciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3Mzg1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzIyMzY4Mjc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhbGxv
d2luZyBhIGRyYWcgdG8gb2NjdXIgb25seSBpZiBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVl
c3QgZGlzY292ZXJzIGEgY2xpY2thYmxlIG5vZGUsIHJlbW92ZQorICAgICAgICB0aGUgcG9zaXRp
b24gaW5mb3JtYXRpb24gcmVxdWVzdCBlbnRpcmVseSBhbmQganVzdCBjYWxsIGludG8gV2ViQ29y
ZSB0byB0cnkgYW5kIGJlZ2luIHRoZSBkcmFnLiBDdXJyZW50bHksIHRoZQorICAgICAgICBwb3Np
dGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IHNlcnZlcyB0d28gcHVycG9zZXM6CisgICAgICAgIDEu
IFRvIGFkanVzdCB0aGUgaGl0LXRlc3QgbG9jYXRpb24gdG8gYWNjb3VudCBmb3IgbmVhcmJ5IGNs
aWNrYWJsZSBub2Rlcy4KKyAgICAgICAgMi4gVG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBjb250ZW50IGJlaW5nIGRyYWdnZWQuCisKKyAgICAgICAgVGhlIGZpcnN0IHJlcXVpcmVtZW50
IGlzIGZ1bGZpbGxlZCBieSBwZXJmb3JtaW5nIHRoZSBkcmFnIGxvY2F0aW9uIGFkanVzdG1lbnQg
aW4gV2ViQ29yZSBpbnN0ZWFkIChzZWUKKyAgICAgICAgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRh
aWwpLiBUaGUgc2Vjb25kIHJlcXVpcmVtZW50IGlzIGZ1bGZpbGxlZCBieSByZWZhY3RvcmluZyBp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODMy
IHRvIGZvbGQgYWxsIGluZm9ybWF0aW9uIHJlbGV2YW50IHRvIHN0YXJ0aW5nIGEgZHJhZyBpbnRv
IHRoZQorICAgICAgICBEcmFnSXRlbSBzdHJ1Y3QsIGFuZCB0aGVuIHByb3BhZ2F0aW5nIHRoZSBE
cmFnSXRlbSBzdHJ1Y3QuIFRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwb3NpdGlv
bgorICAgICAgICBpbmZvcm1hdGlvbiB1cGRhdGUgaXMgbm93IHBvcHVsYXRlZCB3aGVuIHRoZSBV
SSBwcm9jZXNzIHJlY2VpdmVzIHRoZSBkcmFnIHN0YXJ0IHJlc3BvbnNlLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc3RhcnREcmFnOml0ZW06XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29t
cHV0ZUNsaWVudEFuZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOm91dENsaWVudFBvaW50Om91
dEdsb2JhbFBvaW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kcmFnSW50ZXJhY3Rp
b246cHJlcGFyZUZvclNlc3Npb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfYXBpX2Ryb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkRW50ZXI6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2FwaV9kcm9wSW50ZXJhY3Rpb246c2Vzc2lvbkRpZFVwZGF0ZTpdKToK
KyAgICAgICAgKHBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlvbik6IERl
bGV0ZWQuCisKKzIwMTctMDYtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKICAgICAgICAgUmVmYWN0b3IgZHJhZyBzdGFydCBjb2RlcGF0aHMgdG8gcGx1bWIgYSBE
cmFnSXRlbSB0byBjbGllbnQgbGF5ZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzM4MzIKICAgICAgICAgV29yayB0b3dhcmRzIDxyZGFyOi8vcHJv
YmxlbS8zMjIzNjgyNz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXgg
ZTA4ZGZlYjMxNTI1YWI4NmU1OGFlMTg1Njk1ZmMyYzBlMzRiM2E0YS4uYTg1ZTdhZTJiYjYxZWE2
YTBkZGQ2ZWJiZDJlYWM4MmI3YzMwYzhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKQEAgLTcxMyw2ICs3MTMsMTkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhU
TUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ09wZXJhdGlvbiYgb3BlcmEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaW1hZ2VFbGVtZW50SXNEcmFnZ2FibGUo
Y29uc3QgSFRNTEltYWdlRWxlbWVudCYgaW1hZ2UsIGNvbnN0IEZyYW1lJiBzb3VyY2VGcmFtZSkK
K3sKKyAgICBpZiAoc291cmNlRnJhbWUuc2V0dGluZ3MoKS5sb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvKiByZW5kZXJlciA9IGltYWdl
LnJlbmRlcmVyKCk7CisgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBjYWNoZWRJbWFnZSA9IGRvd25jYXN0PFJlbmRl
ckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgcmV0dXJuIGNhY2hlZEltYWdl
ICYmICFjYWNoZWRJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpICYmIGNhY2hlZEltYWdlLT5pbWFnZUZv
clJlbmRlcmVyKHJlbmRlcmVyKTsKK30KKwogRWxlbWVudCogRHJhZ0NvbnRyb2xsZXI6OmRyYWdn
YWJsZUVsZW1lbnQoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1lLCBFbGVtZW50KiBzdGFydEVsZW1l
bnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBEcmFnU3RhdGUmIHN0YXRlKSBjb25zdAog
ewogICAgIHN0YXRlLnR5cGUgPSAoc291cmNlRnJhbWUtPnNlbGVjdGlvbigpLmNvbnRhaW5zKGRy
YWdPcmlnaW4pKSA/IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24gOiBEcmFnU291cmNlQWN0aW9u
Tm9uZTsKQEAgLTc0OCw3ICs3NjEsNyBAQCBFbGVtZW50KiBEcmFnQ29udHJvbGxlcjo6ZHJhZ2dh
YmxlRWxlbWVudChjb25zdCBGcmFtZSogc291cmNlRnJhbWUsIEVsZW1lbnQqIHN0YQogICAgICAg
ICBpZiAoZHJhZ01vZGUgPT0gRFJBR19BVVRPKSB7CiAgICAgICAgICAgICBpZiAoKG1fZHJhZ1Nv
dXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSkKICAgICAgICAgICAgICAgICAmJiBp
czxIVE1MSW1hZ2VFbGVtZW50PigqZWxlbWVudCkKLSAgICAgICAgICAgICAgICAmJiBzb3VyY2VG
cmFtZS0+c2V0dGluZ3MoKS5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSkgeworICAgICAgICAg
ICAgICAgICYmIGltYWdlRWxlbWVudElzRHJhZ2dhYmxlKGRvd25jYXN0PEhUTUxJbWFnZUVsZW1l
bnQ+KCplbGVtZW50KSwgKnNvdXJjZUZyYW1lKSkgewogICAgICAgICAgICAgICAgIHN0YXRlLnR5
cGUgPSBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihzdGF0ZS50eXBlIHwgRHJhZ1NvdXJj
ZUFjdGlvbkltYWdlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA5
NjczYmM1ZTkwZWMwYjU4NmFkYjNmZmNmYjQ2ZTg0NzAwNWRmZDI1Li4yNmU3NDU5NDYzNDg3NzJl
M2M5NmViOWQwYjM1MTgzMDEyZTg4MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZl
bnRIYW5kbGVySU9TLm1tCkBAIC01NzYsMTUgKzU3NiwyMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6
dHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoY29uc3QgSW50UG9pbnQmIGNsaWVudFBv
c2l0aQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKLSAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VQcmVzc0V2ZW50KGNsaWVudFBvc2l0aW9u
LCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2Vk
LCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXAp
OwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudChjbGllbnRQ
b3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBO
b1RhcCk7CisgICAgSW50UG9pbnQgYWRqdXN0ZWRDbGllbnRQb3NpdGlvbjsKKyAgICB7CisgICAg
ICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRDbGllbnRQb3NpdGlvbkFzRmxvYXRQb2ludChjbGllbnRQ
b3NpdGlvbik7CisgICAgICAgIHByb3RlY3RlZEZyYW1lLT5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tF
dmVudHMoY2xpZW50UG9zaXRpb24sIGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQp
OworICAgICAgICBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOworICAgIH0KKworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBzeW50aGV0aWNNb3VzZVByZXNzRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwg
Z2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsK
KyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRD
bGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgp
LCAwLCBOb1RhcCk7CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
KTsKICAgICBhdXRvIGRvY3VtZW50UG9pbnQgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpID8gcHJv
dGVjdGVkRnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhzeW50aGV0aWNNb3VzZU1vdmVF
dmVudC5wb3NpdGlvbigpKSA6IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCk7CiAg
ICAgYXV0byBoaXRUZXN0ZWRNb3VzZUV2ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5wcmVwYXJl
TW91c2VFdmVudChyZXF1ZXN0LCBkb2N1bWVudFBvaW50LCBzeW50aGV0aWNNb3VzZU1vdmVFdmVu
dCk7CiAKICAgICBSZWZQdHI8RnJhbWU+IHN1YmZyYW1lID0gc3ViZnJhbWVGb3JIaXRUZXN0UmVz
dWx0KGhpdFRlc3RlZE1vdXNlRXZlbnQpOwotICAgIGlmIChzdWJmcmFtZSAmJiBzdWJmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkudHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoY2xpZW50UG9z
aXRpb24sIGdsb2JhbFBvc2l0aW9uKSkKKyAgICBpZiAoc3ViZnJhbWUgJiYgc3ViZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGFkanVzdGVkQ2xp
ZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBiZSByZWZhY3RvcmVkLCBhbG9uZyB3aXRoIGhhbmRs
ZU1vdXNlUHJlc3NFdmVudCBhbmQgaGFuZGxlTW91c2VNb3ZlRXZlbnQsIHNvIHRoYXQgc3RhdGUg
YXNzb2NpYXRlZCBvbmx5IHdpdGggZHJhZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCBjYWIzNmE5Mzk4MTg2ZDNjMjM2NzIxMDAxY2JhNWEyYjcyY2VjZWJiLi4wNzFm
ODI4NGEwNWMxZjNkYWMyZWNhMmI4YzE2N2JjNGNmM2FlNmQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0xODM4LDYgKzE4MzgsMTAgQEAgLSAodm9pZClfc3RhcnREcmFn
Oihjb25zdCBEcmFnSXRlbSYpZHJhZ0l0ZW0KICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0
b3JEYXRhID0gYWRvcHROUyhbW1dlYlVJVGV4dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRo
SW1hZ2U6aW1hZ2UgdGV4dEluZGljYXRvckRhdGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxl
Ol9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXSk7CiAgICAgZWxzZQogICAgICAg
ICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5kaWNh
dG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOworICAgIF9wcml2YXRlLT5kcmFnZ2VkTGlua1VSTCA9IGRy
YWdJdGVtLnVybC5pc0VtcHR5KCkgPyBuaWwgOiAoTlNVUkwgKilkcmFnSXRlbS51cmw7CisgICAg
X3ByaXZhdGUtPmRyYWdnZWRMaW5rVGl0bGUgPSBkcmFnSXRlbS50aXRsZS5pc0VtcHR5KCkgPyBu
aWwgOiAoTlNTdHJpbmcgKilkcmFnSXRlbS50aXRsZTsKKyAgICBfcHJpdmF0ZS0+ZHJhZ2dlZEVs
ZW1lbnRCb3VuZHMgPSBkcmFnSXRlbS5lbGVtZW50Qm91bmRzOworICAgIF9wcml2YXRlLT5kcmFn
U291cmNlQWN0aW9uID0gc3RhdGljX2Nhc3Q8V2ViRHJhZ1NvdXJjZUFjdGlvbj4oZHJhZ0l0ZW0u
c291cmNlQWN0aW9uKTsKIH0KIAogLSAoQ0dSZWN0KV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QK
QEAgLTE4NTMsNiArMTg1NywyNiBAQCAtIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2RhdGFP
cGVyYXRpb25UZXh0SW5kaWNhdG9yCiAgICAgcmV0dXJuIF9wcml2YXRlLT5kYXRhT3BlcmF0aW9u
VGV4dEluZGljYXRvci5nZXQoKTsKIH0KIAorLSAoV2ViRHJhZ1NvdXJjZUFjdGlvbilfZHJhZ1Nv
dXJjZUFjdGlvbgoreworICAgIHJldHVybiBfcHJpdmF0ZS0+ZHJhZ1NvdXJjZUFjdGlvbjsKK30K
KworLSAoTlNTdHJpbmcgKilfZHJhZ2dlZExpbmtUaXRsZQoreworICAgIHJldHVybiBfcHJpdmF0
ZS0+ZHJhZ2dlZExpbmtUaXRsZS5nZXQoKTsKK30KKworLSAoTlNVUkwgKilfZHJhZ2dlZExpbmtV
UkwKK3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPmRyYWdnZWRMaW5rVVJMLmdldCgpOworfQorCist
IChDR1JlY3QpX2RyYWdnZWRFbGVtZW50Qm91bmRzCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5k
cmFnZ2VkRWxlbWVudEJvdW5kczsKK30KKwogLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9n
ZXREYXRhSW50ZXJhY3Rpb25EYXRhCiB7CiAgICAgcmV0dXJuIF9wcml2YXRlLT50ZXh0SW5kaWNh
dG9yRGF0YS5nZXQoKTsKQEAgLTE5MDYsNiArMTkzMCwxMCBAQCAtICh2b2lkKV9lbmRlZERhdGFJ
bnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFs
UG9zaQogICAgIFdlYlRocmVhZExvY2soKTsKICAgICBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRy
b2xsZXIoKS5kcmFnRW5kZWQoKTsKICAgICBfcHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRp
Y2F0b3IgPSBudWxscHRyOworICAgIF9wcml2YXRlLT5kcmFnZ2VkRWxlbWVudEJvdW5kcyA9IENH
UmVjdE51bGw7CisgICAgX3ByaXZhdGUtPmRyYWdTb3VyY2VBY3Rpb24gPSBXZWJEcmFnU291cmNl
QWN0aW9uTm9uZTsKKyAgICBfcHJpdmF0ZS0+ZHJhZ2dlZExpbmtUaXRsZSA9IG5pbDsKKyAgICBf
cHJpdmF0ZS0+ZHJhZ2dlZExpbmtVUkwgPSBuaWw7CiB9CiAKIC0gKHZvaWQpX2RpZENvbmNsdWRl
RWRpdERhdGFJbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5o
CmluZGV4IDBlNmRmMjdhYWIwMWY1NzE1MjE2M2IyNzY2MDJiMjhjYTg4ODhhNzUuLmZiZWNjZmZk
NjUwNjFjNWNiOWUzYThmMzBhNjEzZDM1OTAzNGIxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdEYXRhLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2ltcG9ydCAiV2ViVHlwZXNJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCIK
KyNpbXBvcnQgIldlYlVJRGVsZWdhdGUuaCIKICNpZiBIQVZFKFRPVUNIX0JBUikKICNpbXBvcnQg
PFdlYkNvcmUvQVZLaXRTUEkuaD4KICNlbmRpZgpAQCAtMzAwLDYgKzMwMSwxMCBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIFJldGFpblB0cjxXZWJVSVRleHRJ
bmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yRGF0YTsKICAgICBSZXRhaW5QdHI8V2ViVUlUZXh0
SW5kaWNhdG9yRGF0YT4gZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3I7CisgICAgQ0dSZWN0IGRy
YWdnZWRFbGVtZW50Qm91bmRzOworICAgIFdlYkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFj
dGlvbjsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IGRyYWdnZWRMaW5rVVJMOworICAgIFJldGFpblB0
cjxOU1N0cmluZz4gZHJhZ2dlZExpbmtUaXRsZTsKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCAwOWFhNzAyMmNhMGQ4NWZhZWMzMWRl
OTc4ZmFkNzM0ZmI2YjNhNDE2Li40YmJmZTk2NGUyYjAxNzdiOGQ3NjNlZTI4YjRjMDBjNjFhNDEz
NGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC00
NzMsNiArNDczLDEwIEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogLSAoQk9P
TClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGds
b2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uOwogLSAoV2ViVUlUZXh0SW5kaWNh
dG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRhOwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBzdHJvbmcsIGdldHRlcj1fZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IpIFdl
YlVJVGV4dEluZGljYXRvckRhdGEgKmRhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VJbnRlZ2VyIF9kcmFnU291cmNlQWN0aW9uOwor
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgcmVhZG9ubHkpIE5TU3RyaW5nICpfZHJhZ2dl
ZExpbmtUaXRsZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHJlYWRvbmx5KSBOU1VS
TCAqX2RyYWdnZWRMaW5rVVJMOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1Jl
Y3QgX2RyYWdnZWRFbGVtZW50Qm91bmRzOwogLSAodWludDY0X3QpX2VudGVyZWREYXRhSW50ZXJh
Y3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQ
b3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRf
dClvcGVyYXRpb247CiAtICh1aW50NjRfdClfdXBkYXRlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJ
RHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2Jh
bDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsK
IC0gKHZvaWQpX2V4aXRlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Np
b24gY2xpZW50OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQ
b3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5k
ZXggODdiOGNhMmM1ZmE5MDFiNDlmMWJkNGY5OWFiZDUzNzkyNzQzMzkyYi4uNDgyODY3MjBjNDMy
NDg2MGNjZDMyN2QxMzFhNzljYmM3YTllYWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQyMjgs
NiArNDIyOCwxMCBAQCAtICh2b2lkKV9zdGFydERyYWc6KFJldGFpblB0cjxDR0ltYWdlUmVmPilp
bWFnZSBpdGVtOihjb25zdCBEcmFnSXRlbSYpaXRlbQogICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0
ZS5pbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Uu
Z2V0KCkgc2NhbGU6X3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkgb3JpZW50YXRpb246VUlJbWFn
ZU9yaWVudGF0aW9uVXBdKTsKICAgICBfZGF0YUludGVyYWN0aW9uU3RhdGUuaW5kaWNhdG9yRGF0
YSA9IGl0ZW0uaW1hZ2UuaW5kaWNhdG9yRGF0YSgpOwogICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0
ZS5zb3VyY2VBY3Rpb24gPSBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihpdGVtLnNvdXJj
ZUFjdGlvbik7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmFkanVzdGVkT3JpZ2luID0gaXRl
bS5ldmVudFBvc2l0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXM7CisgICAgX2RhdGFJbnRlcmFjdGlv
blN0YXRlLmVsZW1lbnRCb3VuZHMgPSBpdGVtLmVsZW1lbnRCb3VuZHM7CisgICAgX2RhdGFJbnRl
cmFjdGlvblN0YXRlLmxpbmtUaXRsZSA9IGl0ZW0udGl0bGU7CisgICAgX2RhdGFJbnRlcmFjdGlv
blN0YXRlLmxpbmtVUkwgPSBpdGVtLnVybDsKIH0KIAogLSAodm9pZClfZGlkSGFuZGxlU3RhcnRE
YXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQKQEAgLTQ1MDAsMTEgKzQ1MDQsNiBA
QCAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJv
cFNlc3Npb246KGlkIDxVSURyb3BTZXNzaQogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueSAmIH5XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CiB9CiAKLXN0YXRpYyBCT09M
IHBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgcG9zaXRpb25JbmZvcm1hdGlvbikKLXsKLSAgICBy
ZXR1cm4gcG9zaXRpb25JbmZvcm1hdGlvbi5pc0ltYWdlIHx8IHBvc2l0aW9uSW5mb3JtYXRpb24u
aXNMaW5rIHx8IHBvc2l0aW9uSW5mb3JtYXRpb24uaXNBdHRhY2htZW50IHx8IHBvc2l0aW9uSW5m
b3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQb3NpdGlvbjsKLX0KLQogLSAoaWQgPFVJRHJhZ0Ryb3BT
ZXNzaW9uPiljdXJyZW50RHJhZ09yRHJvcFNlc3Npb24KIHsKICAgICBpZiAoX2RhdGFJbnRlcmFj
dGlvblN0YXRlLmRyb3BTZXNzaW9uKQpAQCAtNDUyNiwyOCArNDUyNSwxMiBAQCAtICh2b2lkKV9k
cmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJlcGFyZUZv
clNlc3Npb246KGlkCiAKICAgICBbc2VsZiBjbGVhblVwRHJhZ1NvdXJjZVNlc3Npb25TdGF0ZV07
CiAKLSAgICBDR1BvaW50IGRyYWdPcmlnaW4gPSBbc2Vzc2lvbiBsb2NhdGlvbkluVmlldzpzZWxm
XTsKLSAgICBSZXRhaW5QdHI8V0tDb250ZW50Vmlldz4gcmV0YWluZWRTZWxmKHNlbGYpOwotCi0g
ICAgW3NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W3JldGFpbmVkU2VsZiwg
c2Vzc2lvbiwgZHJhZ09yaWdpbiwgY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uKV0gKEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHBvc2l0aW9uSW5mb3JtYXRp
b24pIHsKLSAgICAgICAgaWYgKCFwb3NpdGlvbkluZm9ybWF0aW9uTWF5U3RhcnREYXRhSW50ZXJh
Y3Rpb24ocG9zaXRpb25JbmZvcm1hdGlvbikpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKERy
YWdBbmREcm9wLCAiRHJhZyBzZXNzaW9uIGZhaWxlZDogJXAgKG5vIGRyYWdnYWJsZSBjb250ZW50
IGF0IHslLjFmLCAlLjFmfSkiLCBzZXNzaW9uLCBkcmFnT3JpZ2luLngsIGRyYWdPcmlnaW4ueSk7
Ci0gICAgICAgICAgICBjYXB0dXJlZEJsb2NrKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KKyAgICBhdXRvIGRyYWdPcmlnaW4gPSByb3VuZGVkSW50UG9pbnQoW3Nlc3Npb24gbG9j
YXRpb25JblZpZXc6c2VsZl0pOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5kcmFnU3RhcnRD
b21wbGV0aW9uQmxvY2sgPSBjb21wbGV0aW9uOworICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5k
cmFnU2Vzc2lvbiA9IHNlc3Npb247CisgICAgX3BhZ2UtPnJlcXVlc3RTdGFydERhdGFJbnRlcmFj
dGlvbihkcmFnT3JpZ2luLCBkcmFnT3JpZ2luKTsKIAotICAgICAgICBhdXRvJiBzdGF0ZSA9IHJl
dGFpbmVkU2VsZi0+X2RhdGFJbnRlcmFjdGlvblN0YXRlOwotICAgICAgICBzdGF0ZS5kcmFnU3Rh
cnRDb21wbGV0aW9uQmxvY2sgPSBjYXB0dXJlZEJsb2NrOwotICAgICAgICBzdGF0ZS5hZGp1c3Rl
ZE9yaWdpbiA9IHJldGFpbmVkU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24uYWRqdXN0ZWRQb2lu
dEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50czsKLSAgICAgICAgc3RhdGUuZWxlbWVudEJv
dW5kcyA9IHJldGFpbmVkU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzOwotICAgICAg
ICBzdGF0ZS5saW5rVGl0bGUgPSByZXRhaW5lZFNlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9uLnRp
dGxlOwotICAgICAgICBzdGF0ZS5saW5rVVJMID0gcmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZv
cm1hdGlvbi51cmw7Ci0gICAgICAgIHN0YXRlLmRyYWdTZXNzaW9uID0gc2Vzc2lvbjsKLSAgICAg
ICAgcmV0YWluZWRTZWxmLT5fcGFnZS0+cmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKHJvdW5k
ZWRJbnRQb2ludChzdGF0ZS5hZGp1c3RlZE9yaWdpbiksIHJvdW5kZWRJbnRQb2ludChbcmV0YWlu
ZWRTZWxmIGNvbnZlcnRQb2ludDpzdGF0ZS5hZGp1c3RlZE9yaWdpbiB0b1ZpZXc6W3JldGFpbmVk
U2VsZiB3aW5kb3ddXSkpOwotCi0gICAgICAgIGF1dG8gZWxlbWVudEJvdW5kcyA9IHN0YXRlLmVs
ZW1lbnRCb3VuZHM7Ci0gICAgICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBzZXNz
aW9uIHJlcXVlc3RlZDogJXAgYXQgZWxlbWVudCBib3VuZHM6IHt7JS4xZiwgJS4xZn0sIHslLjFm
LCAlLjFmfX0iLCBzZXNzaW9uLCBlbGVtZW50Qm91bmRzLm9yaWdpbi54LCBlbGVtZW50Qm91bmRz
Lm9yaWdpbi55LCBlbGVtZW50Qm91bmRzLnNpemUud2lkdGgsIGVsZW1lbnRCb3VuZHMuc2l6ZS5o
ZWlnaHQpOwotICAgIH0gZm9yUmVxdWVzdDpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChy
b3VuZGVkSW50UG9pbnQoZHJhZ09yaWdpbikpXTsKKyAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJv
cCwgIkRyYWcgc2Vzc2lvbiByZXF1ZXN0ZWQ6ICVwIGF0IG9yaWdpbjogeyVkLCAlZH0iLCBzZXNz
aW9uLCBkcmFnT3JpZ2luLngoKSwgZHJhZ09yaWdpbi55KCkpOwogfQogCiAtIChOU0FycmF5PFVJ
RHJhZ0l0ZW0gKj4gKilkcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJh
Y3Rpb24gaXRlbXNGb3JCZWdpbm5pbmdTZXNzaW9uOihpZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lv
bgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVk
NDc4MjQ1MzkwZTg0ZmY2ZjkxZTFkNTg0MjllNGY0ZTg5MmYzNWUuLmIwNWU2MmZlMGU1NDdlZDBh
N2Y0OGRlMzliMGMyNGNhOTdhNmRiODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wNi0yNiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gU3VwcG9y
dCBkcmFnZ2luZyBvdXQgb2YgY29udGVudGVkaXRhYmxlIGFyZWFzIHdpdGhvdXQgYSBwcmlvciBz
ZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Mzg1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzIyMzY4Mjc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IHRvIGNo
ZWNrIHRoYXQgYW4gaW1hZ2UgY2FuIGJlIGRyYWdnZWQgb3V0IG9mIGEgY29udGVudGVkaXRhYmxl
IGFuZCBkcm9wcGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNi0yMiAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTg0MTkpOiA3
IGxlYWtzIGluIFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcy5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5ZDc3N2U4NDA0ZWFjOWNhZTE2ZGIzYjFjZTI0YmM2YTZmNDhkYmFkLi44YTZmYjQw
ODM1ODUwYmZmZjI3Y2NjMTRhYjU2NDQwMzBjZGRiNWRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjQyLDYgKzY0Miw3IEBACiAJCUY0NTM4RUY3MUU4NDczRTYwMEI1Qzk1MyAvKiBsYXJn
ZS1yZWQtc3F1YXJlLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDUzOEVGMDFFODQ2QjQxMDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFy
ZS5wbmcgKi87IH07CiAJCUY0Njg0OUJFMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRU
ZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAqLzsgfTsKIAkJ
RjQ2ODQ5QzAxRUVGNUVGMzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY4NDlC
RjFFRUY1RURDMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1sICovOyB9OworCQlG
NDY5RkIyNDFGMDE4MDRCMDA0MDE1MzkgLyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDY5RkIyMzFGMDE4MDM1MDA0MDE1MzkgLyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRt
bCAqLzsgfTsKIAkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRBQTU1IC8qIGFwcGxlLmdpZiBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdEMzBFQjFF
RDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICovOyB9OwogCQlGNDZBMDk1QjFFRDhBNkU2MDBE
NEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3RDMwRUQxRUQyOEE2QzAwMDQ4MkUxIC8q
IGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovOyB9OwogCQlGNDc3Mjg5OTFFNEFFM0MxMDA3QUJG
NkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NzcyODk4MUU0QUUzQUQwMDdBQkY2
QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CkBAIC03MjcsNiArNzI4
LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZv
bGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJRjQ2OUZCMjQxRjAxODA0QjAwNDAxNTM5
IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlwIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAvKiBhdXRv
Zm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQx
QUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE2MDksNiArMTYxMSw3IEBACiAJCUY0NTM4
RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJs
YXJnZS1yZWQtc3F1YXJlLnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Njg0
OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFVJUGFzdGVib2FyZFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDY4NDlCRjFFRUY1RURDMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gInJpY2gtYW5kLXBsYWluLXRleHQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0NjlGQjIzMUYwMTgwMzUwMDQwMTUzOSAvKiBjb250ZW50ZWRpdGFibGUt
YW5kLXRhcmdldC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDc3Mjg5ODFFNEFFM0FEMDA3QUJG
NkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0N0QzMEVCMUVEMjg2MTkwMDA0ODJFMSAvKiBhcHBsZS5naWYgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5naWY7
IHBhdGggPSBhcHBsZS5naWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0QzMEVE
MUVEMjhBNkMwMDA0ODJFMSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJn
aWYtYW5kLWZpbGUtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA4LDYgKzIwMTEsNyBAQAogCQkJCUY0QjgyNUQ2MUVGNERCRDQwMDZFNDE3RiAvKiBjb21wcmVz
c2VkLWZpbGVzLnppcCAqLywKIAkJCQlGNDFBQjk5ODFFRjQ2OTJDMDA4M0ZBMDggLyogYXV0b2Zv
Y3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sICovLAogCQkJCUY0MUFCOTk3MUVGNDY5MkMwMDgzRkEw
OCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQ2OUZC
MjMxRjAxODAzNTAwNDAxNTM5IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgKi8s
CiAJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4
dGFyZWEuaHRtbCAqLywKIAkJCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1s
YXJnZS1pbWFnZS5odG1sICovLAogCQkJCUY0MUFCOTlCMUVGNDY5MkMwMDgzRkEwOCAvKiBmaWxl
LXVwbG9hZGluZy5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDJmY2EyZDEzZjM0ZjE0ODk0NzFhZTA5N2M5Yzg1N2U0ZDBjMjcz
MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2NvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGhl
YWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICB3aWR0aDog
MTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMDsK
KyAgICAgICAgfQorCisgICAgICAgIGltZyB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgICB9CisKKyAgICAgICAgI3NvdXJjZSwgI3RhcmdldCB7CisgICAgICAgICAgICB3aWR0
aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBmb250LXNp
emU6IDE1MHB4OworICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAgICAgICAg
IGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIH0KKworICAgICAgICAjdGFyZ2V0IHsK
KyAgICAgICAgICAgIGJvcmRlcjogZ3JlZW4gMXB4IGRhc2hlZDsKKyAgICAgICAgICAgIGNvbG9y
OiBncmVlbjsKKyAgICAgICAgICAgIGJvcmRlci13aWR0aDogNXB4OworICAgICAgICB9CisgICAg
ICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxl
IGlkPSJzb3VyY2UiPjxpbWcgc3JjPSJpY29uLnBuZyI+PC9pbWc+PC9kaXY+CisgICAgPGNvZGU+
PGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj48L2NvZGU+CisgICAgPHNjcmlwdD4KKyAgICB0YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1
bHQoKSk7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZXZlbnQgPT4g
ZXZlbnQucHJldmVudERlZmF1bHQoKSk7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRy
b3AiLCBldmVudCA9PiB7CisgICAgICAgIHRhcmdldC50ZXh0Q29udGVudCA9ICJQQVNTIjsKKyAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRl
cmFjdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVy
YWN0aW9uVGVzdHMubW0KaW5kZXggNzZhZmI4OThkNGY0NmYzN2YwN2YzNTVhZDA0ZTVlMDU1OWJj
NTgzMS4uNzZmZGI2YjM4MWZjZGQ0MDRlYTc4MDk4ZjUyNGU1ZmQ0OWQxMDczMiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMu
bW0KQEAgLTI3NCw2ICsyNzQsMTcgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgQ29udGVu
dEVkaXRhYmxlTW92ZVBhcmFncmFwaHMpCiAgICAgY2hlY2tTZWxlY3Rpb25SZWN0c1dpdGhMb2dn
aW5nKEBbIG1ha2VDR1JlY3RWYWx1ZSgxOTAsIDEwMCwgMTMwLCAyMCksIG1ha2VDR1JlY3RWYWx1
ZSgwLCAxMjAsIDMyMCwgMTAwKSwgbWFrZUNHUmVjdFZhbHVlKDAsIDIyMCwgMjUyLCAyMCkgXSwg
W2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBmaW5hbFNlbGVjdGlvblJlY3RzXSk7CiB9CiAKK1RF
U1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIERyYWdJbWFnZUZyb21Db250ZW50RWRpdGFibGUpCit7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBhdXRvIGRhdGFJbnRl
cmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxs
b2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CisKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJjb250ZW50ZWRpdGFibGUtYW5kLXRhcmdldCJd
OworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgxMDAs
IDEwMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKKworICAgIEVYUEVDVF9XS19TVFJFUSgi
UEFTUyIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0YXJnZXQudGV4
dENvbnRlbnQiXSk7Cit9CisKIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIFRleHRBcmVhVG9J
bnB1dCkKIHsKICAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7Cg==
</data>
<flag name="review"
          id="334836"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313953</attachid>
            <date>2017-06-27 15:30:18 -0700</date>
            <delta_ts>2017-06-27 17:08:45 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-173854-20170627153017.patch</filename>
            <type>text/plain</type>
            <size>26573</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTEyMDlmNDUzMDIwODZl
MTE1Nzk5MDQ5NzZhNDU4ZWJhM2U4ZmU5ZS4uYThjMjc3Nzc2MGM3ODI5ZDQzMTYzNDQ1MjBmOTRh
MzUyM2U5ODAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE3LTA2LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgRG5EXSBT
dXBwb3J0IGRyYWdnaW5nIG91dCBvZiBjb250ZW50ZWRpdGFibGUgYXJlYXMgd2l0aG91dCBhIHBy
aW9yIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTczODU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIzNjgyNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvd3MgZWxlbWVudHMg
dG8gYmUgZHJhZ2dlZCBmcm9tIGNvbnRlbnRlZGl0YWJsZSBhcmVhcyBmb3IgYm90aCBXZWJLaXQx
IGFuZCBXZWJLaXQyIGlPUy4gVGhlcmUgYXJlIHR3byBtYWluCisgICAgICAgIGNoYW5nZXMgaW4g
V2ViQ29yZTogbW92ZSB0aGUgdG91Y2ggcG9pbnQgYWRqdXN0bWVudCBjb2RlIGludG8gRXZlbnRI
YW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCwgc28KKyAgICAgICAgdGhh
dCB0aGUgY2xpZW50UG9zaXRpb24gc3BlY2lmaWVkIHdpbGwgYmUgYWRqdXN0ZWQgdG8gYW4gYXBw
cm9wcmlhdGUgY2xpY2thYmxlIG5vZGUgaWYgbmVlZGVkLiBUaGlzIGlzIG5lY2Vzc2FyeQorICAg
ICAgICBiZWNhdXNlIFVJV2ViRG9jdW1lbnRWaWV3IGFuZCBXS0NvbnRlbnRWaWV3IG5vIGxvbmdl
ciBzZW5kIGFkanVzdGVkIHBvaW50cyB0byBXZWJDb3JlIHdoZW4gcmVxdWVzdGluZyBkcmFnCisg
ICAgICAgIHN0YXJ0LiBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzM4NTU+IGZvciBhIGZvbGxvd3VwIHJlZ2FyZGluZyB0aGUgZ2xvYmFsUG9zaXRpb24gYW5k
CisgICAgICAgIGNsaWVudFBvc2l0aW9ucyBwYXNzZWQgaW4gdG8gdGhlIE1vdXNlRXZlbnRzIHdo
ZW4gcGVyZm9ybWluZyBhIGRyYWcgb3Igc3ludGhldGljIGNsaWNrLgorCisgICAgICAgIFNlY29u
ZGx5LCBpbWFnZSBlbGVtZW50cyBpbiBNYWlsJ3MgY29udGVudGVkaXRhYmxlIGFyZWEgYXJlIG5v
dCBkcmFnZ2FibGUgdW5sZXNzIHRoZSBoZXVyaXN0aWMgaW4KKyAgICAgICAgRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdnYWJsZUVsZW1lbnQgaXMgdHdlYWtlZCB0byBub3QgcmVqZWN0IGltYWdlIGRyYWdn
aW5nIGFjcm9zcyB0aGUgYm9hcmQgaWYgdGhlCisgICAgICAgIGxvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSBzZXR0aW5nIGlzIHR1cm5lZCBvZmYuIEluc3RlYWQsIGV2ZW4gaWYgaW1hZ2VzIGFyZSBu
b3QgYXV0b21hdGljYWxseSBsb2FkZWQsIGFsbG93IHRoZQorICAgICAgICBpbWFnZSBkcmFnIHRv
IGNvbW1lbmNlIGlmIHRoZSBpbWFnZSByZW5kZXJlciBhbHJlYWR5IGhhcyBhIGNhY2hlZCBpbWFn
ZS4KKworICAgICAgICBUZXN0OiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5EcmFnSW1hZ2VGcm9tQ29u
dGVudEVkaXRhYmxlCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmltYWdlRWxlbWVudElzRHJhZ2dhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnZ2FibGVFbGVtZW50KToKKyAgICAgICAgKiBwYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRyeVRv
QmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KToKKworMjAxNy0wNi0yNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSZWZhY3RvciBkcmFnIHN0YXJ0
IGNvZGVwYXRocyB0byBwbHVtYiBhIERyYWdJdGVtIHRvIGNsaWVudCBsYXllcnMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzgzMgogICAgICAgICBX
b3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMyMjM2ODI3PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGNjMmU2NDMxMDZlYWI4NDhlODZjNGZlZmM1NWY0NTI1OTc4NGQ2NjMuLjBlYTg1ODUyMjQxZWVi
OGEyNGNmYzczNWE3YzE1MzRjMWI5NjkzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
NiBAQAogMjAxNy0wNi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAorICAgICAgICBbaU9TIERuRF0gU3VwcG9ydCBkcmFnZ2luZyBvdXQgb2YgY29udGVudGVkaXRh
YmxlIGFyZWFzIHdpdGhvdXQgYSBwcmlvciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzIyMzY4Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVmVuZHMgc29tZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEcmFnSXRlbSBwYXNzZWQgaW50
byAtW1dlYlZpZXcgX3N0YXJ0RHJhZzpdIHRocm91Z2ggdGhlIFdlYlZpZXcgYXMgU1BJIGZvcgor
ICAgICAgICBXZWJLaXQxIGNsaWVudHMuIE5vIGJlaGF2aW9yIGNoYW5nZSB3aXRoIHRoZXNlIGNo
YW5nZXMgYWxvbmUgLS0gc2VlIDxyZGFyOi8vcHJvYmxlbS8zMjk5MTA2Mj4gZm9yIG1vcmUgZGV0
YWlsLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9zdGFydERyYWc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RyYWdTb3VyY2VBY3Rpb25dKToK
KyAgICAgICAgKC1bV2ViVmlldyBfZHJhZ2dlZExpbmtUaXRsZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9kcmFnZ2VkTGlua1VSTF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9kcmFnZ2VkRWxlbWVu
dEJvdW5kc10pOgorICAgICAgICAoLVtXZWJWaWV3IF9lbmRlZERhdGFJbnRlcmFjdGlvbjpnbG9i
YWw6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaDoKKworMjAxNy0wNi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSZWZhY3RvciBkcmFnIHN0YXJ0IGNvZGVwYXRo
cyB0byBwbHVtYiBhIERyYWdJdGVtIHRvIGNsaWVudCBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzgzMgogICAgICAgICBXb3JrIHRvd2Fy
ZHMgPHJkYXI6Ly9wcm9ibGVtLzMyMjM2ODI3PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlmNDJjMmIwNjQ5YWZm
YTY0MTg2YmNjYTZhNDIyNTFjZTdiMTVhZGQuLjRiZGM3MWI4MTE1ZTQ3NDA4YjVmZDFkNzM1M2Vi
OWNiYWVlYmI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNCBAQAogMjAxNy0wNi0yNyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBbaU9TIERuRF0g
U3VwcG9ydCBkcmFnZ2luZyBvdXQgb2YgY29udGVudGVkaXRhYmxlIGFyZWFzIHdpdGhvdXQgYSBw
cmlvciBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3Mzg1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzIyMzY4Mjc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhbGxv
d2luZyBhIGRyYWcgdG8gb2NjdXIgb25seSBpZiBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVl
c3QgZGlzY292ZXJzIGEgY2xpY2thYmxlIG5vZGUsIHJlbW92ZQorICAgICAgICB0aGUgcG9zaXRp
b24gaW5mb3JtYXRpb24gcmVxdWVzdCBlbnRpcmVseSBhbmQganVzdCBjYWxsIGludG8gV2ViQ29y
ZSB0byB0cnkgYW5kIGJlZ2luIHRoZSBkcmFnLiBDdXJyZW50bHksIHRoZQorICAgICAgICBwb3Np
dGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IHNlcnZlcyB0d28gcHVycG9zZXM6CisgICAgICAgIDEu
IFRvIGFkanVzdCB0aGUgaGl0LXRlc3QgbG9jYXRpb24gdG8gYWNjb3VudCBmb3IgbmVhcmJ5IGNs
aWNrYWJsZSBub2Rlcy4KKyAgICAgICAgMi4gVG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBjb250ZW50IGJlaW5nIGRyYWdnZWQuCisKKyAgICAgICAgVGhlIGZpcnN0IHJlcXVpcmVtZW50
IGlzIGZ1bGZpbGxlZCBieSBwZXJmb3JtaW5nIHRoZSBkcmFnIGxvY2F0aW9uIGFkanVzdG1lbnQg
aW4gV2ViQ29yZSBpbnN0ZWFkIChzZWUKKyAgICAgICAgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRh
aWwpLiBUaGUgc2Vjb25kIHJlcXVpcmVtZW50IGlzIGZ1bGZpbGxlZCBieSByZWZhY3RvcmluZyBp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODMy
IHRvIGZvbGQgYWxsIGluZm9ybWF0aW9uIHJlbGV2YW50IHRvIHN0YXJ0aW5nIGEgZHJhZyBpbnRv
IHRoZQorICAgICAgICBEcmFnSXRlbSBzdHJ1Y3QsIGFuZCB0aGVuIHByb3BhZ2F0aW5nIHRoZSBE
cmFnSXRlbSBzdHJ1Y3QuIFRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwb3NpdGlv
bgorICAgICAgICBpbmZvcm1hdGlvbiB1cGRhdGUgaXMgbm93IHBvcHVsYXRlZCB3aGVuIHRoZSBV
SSBwcm9jZXNzIHJlY2VpdmVzIHRoZSBkcmFnIHN0YXJ0IHJlc3BvbnNlLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc3RhcnREcmFnOml0ZW06XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY29t
cHV0ZUNsaWVudEFuZEdsb2JhbFBvaW50c0ZvckRyb3BTZXNzaW9uOm91dENsaWVudFBvaW50Om91
dEdsb2JhbFBvaW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kcmFnSW50ZXJhY3Rp
b246cHJlcGFyZUZvclNlc3Npb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfYXBpX2Ryb3BJbnRlcmFjdGlvbjpzZXNzaW9uRGlkRW50ZXI6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2FwaV9kcm9wSW50ZXJhY3Rpb246c2Vzc2lvbkRpZFVwZGF0ZTpdKToK
KyAgICAgICAgKHBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlvbik6IERl
bGV0ZWQuCisKKzIwMTctMDYtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKICAgICAgICAgUmVmYWN0b3IgZHJhZyBzdGFydCBjb2RlcGF0aHMgdG8gcGx1bWIgYSBE
cmFnSXRlbSB0byBjbGllbnQgbGF5ZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzM4MzIKICAgICAgICAgV29yayB0b3dhcmRzIDxyZGFyOi8vcHJv
YmxlbS8zMjIzNjgyNz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXgg
ZTA4ZGZlYjMxNTI1YWI4NmU1OGFlMTg1Njk1ZmMyYzBlMzRiM2E0YS4uYTg1ZTdhZTJiYjYxZWE2
YTBkZGQ2ZWJiZDJlYWM4MmI3YzMwYzhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKQEAgLTcxMyw2ICs3MTMsMTkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhU
TUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ09wZXJhdGlvbiYgb3BlcmEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaW1hZ2VFbGVtZW50SXNEcmFnZ2FibGUo
Y29uc3QgSFRNTEltYWdlRWxlbWVudCYgaW1hZ2UsIGNvbnN0IEZyYW1lJiBzb3VyY2VGcmFtZSkK
K3sKKyAgICBpZiAoc291cmNlRnJhbWUuc2V0dGluZ3MoKS5sb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvKiByZW5kZXJlciA9IGltYWdl
LnJlbmRlcmVyKCk7CisgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBjYWNoZWRJbWFnZSA9IGRvd25jYXN0PFJlbmRl
ckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgcmV0dXJuIGNhY2hlZEltYWdl
ICYmICFjYWNoZWRJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpICYmIGNhY2hlZEltYWdlLT5pbWFnZUZv
clJlbmRlcmVyKHJlbmRlcmVyKTsKK30KKwogRWxlbWVudCogRHJhZ0NvbnRyb2xsZXI6OmRyYWdn
YWJsZUVsZW1lbnQoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1lLCBFbGVtZW50KiBzdGFydEVsZW1l
bnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBEcmFnU3RhdGUmIHN0YXRlKSBjb25zdAog
ewogICAgIHN0YXRlLnR5cGUgPSAoc291cmNlRnJhbWUtPnNlbGVjdGlvbigpLmNvbnRhaW5zKGRy
YWdPcmlnaW4pKSA/IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24gOiBEcmFnU291cmNlQWN0aW9u
Tm9uZTsKQEAgLTc0OCw3ICs3NjEsNyBAQCBFbGVtZW50KiBEcmFnQ29udHJvbGxlcjo6ZHJhZ2dh
YmxlRWxlbWVudChjb25zdCBGcmFtZSogc291cmNlRnJhbWUsIEVsZW1lbnQqIHN0YQogICAgICAg
ICBpZiAoZHJhZ01vZGUgPT0gRFJBR19BVVRPKSB7CiAgICAgICAgICAgICBpZiAoKG1fZHJhZ1Nv
dXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSkKICAgICAgICAgICAgICAgICAmJiBp
czxIVE1MSW1hZ2VFbGVtZW50PigqZWxlbWVudCkKLSAgICAgICAgICAgICAgICAmJiBzb3VyY2VG
cmFtZS0+c2V0dGluZ3MoKS5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSkgeworICAgICAgICAg
ICAgICAgICYmIGltYWdlRWxlbWVudElzRHJhZ2dhYmxlKGRvd25jYXN0PEhUTUxJbWFnZUVsZW1l
bnQ+KCplbGVtZW50KSwgKnNvdXJjZUZyYW1lKSkgewogICAgICAgICAgICAgICAgIHN0YXRlLnR5
cGUgPSBzdGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihzdGF0ZS50eXBlIHwgRHJhZ1NvdXJj
ZUFjdGlvbkltYWdlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA5
NjczYmM1ZTkwZWMwYjU4NmFkYjNmZmNmYjQ2ZTg0NzAwNWRmZDI1Li44MDY0NGI3ZmQ4MjNkYmJm
MjA1ZDI5MmIwMGIzNmNjZGZkODQyN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZl
bnRIYW5kbGVySU9TLm1tCkBAIC01NzIsMTkgKzU3MiwzMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6
ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVn
aW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKQorYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRv
QmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9m
cmFtZSk7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VQcmVzc0V2ZW50
KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRp
bWUoKSwgMCwgTm9UYXApOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3VzZU1v
dmVFdmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJy
ZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCisgICAg
RmxvYXRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uQXNGbG9hdFBvaW50KGNsaWVudFBvc2l0
aW9uKTsKKyAgICBwcm90ZWN0ZWRGcmFtZS0+bm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKGNs
aWVudFBvc2l0aW9uLCBhZGp1c3RlZENsaWVudFBvc2l0aW9uQXNGbG9hdFBvaW50KTsKKyAgICBJ
bnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVk
Q2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOworICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFs
UG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVz
dGVkQ2xpZW50UG9zaXRpb24pOworCisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01v
dXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0
aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRp
b24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAw
LCBOb1RhcCk7CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsK
ICAgICBhdXRvIGRvY3VtZW50UG9pbnQgPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpID8gcHJvdGVj
dGVkRnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhzeW50aGV0aWNNb3VzZU1vdmVFdmVu
dC5wb3NpdGlvbigpKSA6IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCk7Ci0gICAg
YXV0byBoaXRUZXN0ZWRNb3VzZUV2ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5wcmVwYXJlTW91
c2VFdmVudChyZXF1ZXN0LCBkb2N1bWVudFBvaW50LCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudCk7
CisgICAgYXV0byBoaXRUZXN0ZWRNb3VzZUV2ZW50ID0gZG9jdW1lbnQtPnByZXBhcmVNb3VzZUV2
ZW50KHJlcXVlc3QsIGRvY3VtZW50UG9pbnQsIHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KTsKIAog
ICAgIFJlZlB0cjxGcmFtZT4gc3ViZnJhbWUgPSBzdWJmcmFtZUZvckhpdFRlc3RSZXN1bHQoaGl0
VGVzdGVkTW91c2VFdmVudCk7Ci0gICAgaWYgKHN1YmZyYW1lICYmIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS50cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludChjbGllbnRQb3NpdGlvbiwg
Z2xvYmFsUG9zaXRpb24pKQorICAgIGlmIChzdWJmcmFtZSAmJiBzdWJmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkudHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoYWRqdXN0ZWRDbGllbnRQb3Np
dGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYmUgcmVmYWN0b3JlZCwgYWxvbmcgd2l0aCBoYW5k
bGVNb3VzZVByZXNzRXZlbnQgYW5kIGhhbmRsZU1vdXNlTW92ZUV2ZW50LCBzbyB0aGF0IHN0YXRl
IGFzc29jaWF0ZWQgb25seSB3aXRoIGRyYWdnaW5nCkBAIC01OTcsNyArNjA4LDYgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBv
aW50JiBjbGllbnRQb3NpdGkKICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSBudWxscHRyOwogICAg
IGRyYWdTdGF0ZSgpLmRyYWdnZWRDb250ZW50UmFuZ2UgPSBudWxscHRyOwogICAgIG1fbW91c2VE
b3duUG9zID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhzeW50aGV0
aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigpKTsKLSAgICBwcm90ZWN0ZWRGcmFtZS0+ZG9jdW1l
bnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgcmV0dXJuIGhhbmRsZU1vdXNlRHJh
Z2dlZEV2ZW50KGhpdFRlc3RlZE1vdXNlRXZlbnQsIERvbnRDaGVja0RyYWdIeXN0ZXJlc2lzKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjOGIzY2Q2MmZlMWQ3ZmRk
ZGU2YzdhNDFmNDBkMmI0ZGVkMjgxMmY4Li43ODI2ZmI0NzhlZTMwNTQ5MTg1ZTU3NzRlZWE3NTZj
MmUxNTIyZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xODQwLDYg
KzE4NDAsMTAgQEAgLSAodm9pZClfc3RhcnREcmFnOihjb25zdCBEcmFnSXRlbSYpZHJhZ0l0ZW0K
ICAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhID0gYWRvcHROUyhbW1dlYlVJVGV4
dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRoSW1hZ2U6aW1hZ2UgdGV4dEluZGljYXRvckRh
dGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpXSk7CiAgICAgZWxzZQogICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRh
dGEgPSBhZG9wdE5TKFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFn
ZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0pOworICAg
IF9wcml2YXRlLT5kcmFnZ2VkTGlua1VSTCA9IGRyYWdJdGVtLnVybC5pc0VtcHR5KCkgPyBuaWwg
OiAoTlNVUkwgKilkcmFnSXRlbS51cmw7CisgICAgX3ByaXZhdGUtPmRyYWdnZWRMaW5rVGl0bGUg
PSBkcmFnSXRlbS50aXRsZS5pc0VtcHR5KCkgPyBuaWwgOiAoTlNTdHJpbmcgKilkcmFnSXRlbS50
aXRsZTsKKyAgICBfcHJpdmF0ZS0+ZHJhZ2dlZEVsZW1lbnRCb3VuZHMgPSBkcmFnSXRlbS5lbGVt
ZW50Qm91bmRzOworICAgIF9wcml2YXRlLT5kcmFnU291cmNlQWN0aW9uID0gc3RhdGljX2Nhc3Q8
V2ViRHJhZ1NvdXJjZUFjdGlvbj4oZHJhZ0l0ZW0uc291cmNlQWN0aW9uKTsKIH0KIAogLSAoQ0dS
ZWN0KV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QKQEAgLTE4NTUsNiArMTg1OSwyNiBAQCAtIChX
ZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2RhdGFPcGVyYXRpb25UZXh0SW5kaWNhdG9yCiAgICAg
cmV0dXJuIF9wcml2YXRlLT5kYXRhT3BlcmF0aW9uVGV4dEluZGljYXRvci5nZXQoKTsKIH0KIAor
LSAoV2ViRHJhZ1NvdXJjZUFjdGlvbilfZHJhZ1NvdXJjZUFjdGlvbgoreworICAgIHJldHVybiBf
cHJpdmF0ZS0+ZHJhZ1NvdXJjZUFjdGlvbjsKK30KKworLSAoTlNTdHJpbmcgKilfZHJhZ2dlZExp
bmtUaXRsZQoreworICAgIHJldHVybiBfcHJpdmF0ZS0+ZHJhZ2dlZExpbmtUaXRsZS5nZXQoKTsK
K30KKworLSAoTlNVUkwgKilfZHJhZ2dlZExpbmtVUkwKK3sKKyAgICByZXR1cm4gX3ByaXZhdGUt
PmRyYWdnZWRMaW5rVVJMLmdldCgpOworfQorCistIChDR1JlY3QpX2RyYWdnZWRFbGVtZW50Qm91
bmRzCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5kcmFnZ2VkRWxlbWVudEJvdW5kczsKK30KKwog
LSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRhCiB7CiAg
ICAgcmV0dXJuIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yRGF0YS5nZXQoKTsKQEAgLTE5MDgsNiAr
MTkzMiwxMCBAQCAtICh2b2lkKV9lbmRlZERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQ
b3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaQogICAgIFdlYlRocmVhZExvY2soKTsK
ICAgICBfcHJpdmF0ZS0+cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW5kZWQoKTsKICAgICBf
cHJpdmF0ZS0+ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IgPSBudWxscHRyOworICAgIF9wcml2
YXRlLT5kcmFnZ2VkRWxlbWVudEJvdW5kcyA9IENHUmVjdE51bGw7CisgICAgX3ByaXZhdGUtPmRy
YWdTb3VyY2VBY3Rpb24gPSBXZWJEcmFnU291cmNlQWN0aW9uTm9uZTsKKyAgICBfcHJpdmF0ZS0+
ZHJhZ2dlZExpbmtUaXRsZSA9IG5pbDsKKyAgICBfcHJpdmF0ZS0+ZHJhZ2dlZExpbmtVUkwgPSBu
aWw7CiB9CiAKIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IDBlNmRmMjdhYWIwMWY1NzE1MjE2
M2IyNzY2MDJiMjhjYTg4ODhhNzUuLmZiZWNjZmZkNjUwNjFjNWNiOWUzYThmMzBhNjEzZDM1OTAz
NGIxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRGVs
ZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCIKKyNpbXBvcnQgIldlYlVJRGVsZWdhdGUuaCIK
ICNpZiBIQVZFKFRPVUNIX0JBUikKICNpbXBvcnQgPFdlYkNvcmUvQVZLaXRTUEkuaD4KICNlbmRp
ZgpAQCAtMzAwLDYgKzMwMSwxMCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogICAgIFJldGFpblB0cjxXZWJVSVRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9y
RGF0YTsKICAgICBSZXRhaW5QdHI8V2ViVUlUZXh0SW5kaWNhdG9yRGF0YT4gZGF0YU9wZXJhdGlv
blRleHRJbmRpY2F0b3I7CisgICAgQ0dSZWN0IGRyYWdnZWRFbGVtZW50Qm91bmRzOworICAgIFdl
YkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbjsKKyAgICBSZXRhaW5QdHI8TlNVUkw+
IGRyYWdnZWRMaW5rVVJMOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gZHJhZ2dlZExpbmtUaXRs
ZTsKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUu
aAppbmRleCAwOWFhNzAyMmNhMGQ4NWZhZWMzMWRlOTc4ZmFkNzM0ZmI2YjNhNDE2Li40YmJmZTk2
NGUyYjAxNzdiOGQ3NjNlZTI4YjRjMDBjNjFhNDEzNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC00NzMsNiArNDczLDEwIEBAIENvdWxkIGJlIHdv
cnRoIGFkZGluZyB0byB0aGUgQVBJLgogLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0
aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2Jh
bFBvc2l0aW9uOwogLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rp
b25EYXRhOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBzdHJvbmcsIGdldHRlcj1f
ZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IpIFdlYlVJVGV4dEluZGljYXRvckRhdGEgKmRhdGFP
cGVyYXRpb25UZXh0SW5kaWNhdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U1VJbnRlZ2VyIF9kcmFnU291cmNlQWN0aW9uOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
ZywgcmVhZG9ubHkpIE5TU3RyaW5nICpfZHJhZ2dlZExpbmtUaXRsZTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzdHJvbmcsIHJlYWRvbmx5KSBOU1VSTCAqX2RyYWdnZWRMaW5rVVJMOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2RyYWdnZWRFbGVtZW50Qm91bmRzOwog
LSAodWludDY0X3QpX2VudGVyZWREYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilz
ZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xv
YmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247CiAtICh1aW50NjRfdClf
dXBkYXRlZERhdGFJbnRlcmFjdGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50
OihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBv
cGVyYXRpb246KHVpbnQ2NF90KW9wZXJhdGlvbjsKIC0gKHZvaWQpX2V4aXRlZERhdGFJbnRlcmFj
dGlvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gY2xpZW50OihDR1BvaW50KWNsaWVudFBv
c2l0aW9uIGdsb2JhbDooQ0dQb2ludClnbG9iYWxQb3NpdGlvbiBvcGVyYXRpb246KHVpbnQ2NF90
KW9wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggODFiOWYxODc1YzAxNjExYzU2MDBmZTA5
NzZmODhlYWE1MTc2N2MyYi4uZmYyNWVjNThhODM1MmQzODMxOTAzODBkNjg0NTFlM2U3NDE1YmQ5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQyMjgsNiArNDIyOCwxMCBAQCAtICh2b2lkKV9zdGFy
dERyYWc6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFnZSBpdGVtOihjb25zdCBEcmFnSXRlbSYp
aXRlbQogICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5pbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdl
IGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6aW1hZ2UuZ2V0KCkgc2NhbGU6X3BhZ2UtPmRldmljZVNj
YWxlRmFjdG9yKCkgb3JpZW50YXRpb246VUlJbWFnZU9yaWVudGF0aW9uVXBdKTsKICAgICBfZGF0
YUludGVyYWN0aW9uU3RhdGUuaW5kaWNhdG9yRGF0YSA9IGl0ZW0uaW1hZ2UuaW5kaWNhdG9yRGF0
YSgpOwogICAgIF9kYXRhSW50ZXJhY3Rpb25TdGF0ZS5zb3VyY2VBY3Rpb24gPSBzdGF0aWNfY2Fz
dDxEcmFnU291cmNlQWN0aW9uPihpdGVtLnNvdXJjZUFjdGlvbik7CisgICAgX2RhdGFJbnRlcmFj
dGlvblN0YXRlLmFkanVzdGVkT3JpZ2luID0gaXRlbS5ldmVudFBvc2l0aW9uSW5Db250ZW50Q29v
cmRpbmF0ZXM7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmVsZW1lbnRCb3VuZHMgPSBpdGVt
LmVsZW1lbnRCb3VuZHM7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmxpbmtUaXRsZSA9IGl0
ZW0udGl0bGUuaXNFbXB0eSgpID8gbmlsIDogKE5TU3RyaW5nICopaXRlbS50aXRsZTsKKyAgICBf
ZGF0YUludGVyYWN0aW9uU3RhdGUubGlua1VSTCA9IGl0ZW0udXJsLmlzRW1wdHkoKSA/IG5pbCA6
IChOU1VSTCAqKWl0ZW0udXJsOwogfQogCiAtICh2b2lkKV9kaWRIYW5kbGVTdGFydERhdGFJbnRl
cmFjdGlvblJlcXVlc3Q6KEJPT0wpc3RhcnRlZApAQCAtNDUwMCwxMSArNDUwNCw2IEBAIC0gKFdL
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV9kcmFnRGVzdGluYXRpb25BY3Rpb25Gb3JEcm9wU2Vzc2lv
bjooaWQgPFVJRHJvcFNlc3NpCiAgICAgcmV0dXJuIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55
ICYgfldLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZDsKIH0KIAotc3RhdGljIEJPT0wgcG9zaXRp
b25JbmZvcm1hdGlvbk1heVN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uJiBwb3NpdGlvbkluZm9ybWF0aW9uKQotewotICAgIHJldHVybiBw
b3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UgfHwgcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmsg
fHwgcG9zaXRpb25JbmZvcm1hdGlvbi5pc0F0dGFjaG1lbnQgfHwgcG9zaXRpb25JbmZvcm1hdGlv
bi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwotfQotCiAtIChpZCA8VUlEcmFnRHJvcFNlc3Npb24+
KWN1cnJlbnREcmFnT3JEcm9wU2Vzc2lvbgogewogICAgIGlmIChfZGF0YUludGVyYWN0aW9uU3Rh
dGUuZHJvcFNlc3Npb24pCkBAIC00NTI4LDI4ICs0NTI3LDEyIEBAIC0gKHZvaWQpX2RyYWdJbnRl
cmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmVwYXJlRm9yU2Vzc2lv
bjooaWQKIAogICAgIFtzZWxmIGNsZWFuVXBEcmFnU291cmNlU2Vzc2lvblN0YXRlXTsKIAotICAg
IENHUG9pbnQgZHJhZ09yaWdpbiA9IFtzZXNzaW9uIGxvY2F0aW9uSW5WaWV3OnNlbGZdOwotICAg
IFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiByZXRhaW5lZFNlbGYoc2VsZik7Ci0KLSAgICBbc2Vs
ZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbcmV0YWluZWRTZWxmLCBzZXNzaW9u
LCBkcmFnT3JpZ2luLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pXSAo
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbikgewot
ICAgICAgICBpZiAoIXBvc2l0aW9uSW5mb3JtYXRpb25NYXlTdGFydERhdGFJbnRlcmFjdGlvbihw
b3NpdGlvbkluZm9ybWF0aW9uKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERy
b3AsICJEcmFnIHNlc3Npb24gZmFpbGVkOiAlcCAobm8gZHJhZ2dhYmxlIGNvbnRlbnQgYXQgeyUu
MWYsICUuMWZ9KSIsIHNlc3Npb24sIGRyYWdPcmlnaW4ueCwgZHJhZ09yaWdpbi55KTsKLSAgICAg
ICAgICAgIGNhcHR1cmVkQmxvY2soKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQor
ICAgIGF1dG8gZHJhZ09yaWdpbiA9IHJvdW5kZWRJbnRQb2ludChbc2Vzc2lvbiBsb2NhdGlvbklu
VmlldzpzZWxmXSk7CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTdGFydENvbXBsZXRp
b25CbG9jayA9IGNvbXBsZXRpb247CisgICAgX2RhdGFJbnRlcmFjdGlvblN0YXRlLmRyYWdTZXNz
aW9uID0gc2Vzc2lvbjsKKyAgICBfcGFnZS0+cmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGRy
YWdPcmlnaW4sIGRyYWdPcmlnaW4pOwogCi0gICAgICAgIGF1dG8mIHN0YXRlID0gcmV0YWluZWRT
ZWxmLT5fZGF0YUludGVyYWN0aW9uU3RhdGU7Ci0gICAgICAgIHN0YXRlLmRyYWdTdGFydENvbXBs
ZXRpb25CbG9jayA9IGNhcHR1cmVkQmxvY2s7Ci0gICAgICAgIHN0YXRlLmFkanVzdGVkT3JpZ2lu
ID0gcmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5hZGp1c3RlZFBvaW50Rm9yTm9k
ZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzOwotICAgICAgICBzdGF0ZS5lbGVtZW50Qm91bmRzID0g
cmV0YWluZWRTZWxmLT5fcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHM7Ci0gICAgICAgIHN0YXRl
LmxpbmtUaXRsZSA9IHJldGFpbmVkU2VsZi0+X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGU7Ci0g
ICAgICAgIHN0YXRlLmxpbmtVUkwgPSByZXRhaW5lZFNlbGYtPl9wb3NpdGlvbkluZm9ybWF0aW9u
LnVybDsKLSAgICAgICAgc3RhdGUuZHJhZ1Nlc3Npb24gPSBzZXNzaW9uOwotICAgICAgICByZXRh
aW5lZFNlbGYtPl9wYWdlLT5yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24ocm91bmRlZEludFBv
aW50KHN0YXRlLmFkanVzdGVkT3JpZ2luKSwgcm91bmRlZEludFBvaW50KFtyZXRhaW5lZFNlbGYg
Y29udmVydFBvaW50OnN0YXRlLmFkanVzdGVkT3JpZ2luIHRvVmlldzpbcmV0YWluZWRTZWxmIHdp
bmRvd11dKSk7Ci0KLSAgICAgICAgYXV0byBlbGVtZW50Qm91bmRzID0gc3RhdGUuZWxlbWVudEJv
dW5kczsKLSAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gcmVx
dWVzdGVkOiAlcCBhdCBlbGVtZW50IGJvdW5kczoge3slLjFmLCAlLjFmfSwgeyUuMWYsICUuMWZ9
fSIsIHNlc3Npb24sIGVsZW1lbnRCb3VuZHMub3JpZ2luLngsIGVsZW1lbnRCb3VuZHMub3JpZ2lu
LnksIGVsZW1lbnRCb3VuZHMuc2l6ZS53aWR0aCwgZWxlbWVudEJvdW5kcy5zaXplLmhlaWdodCk7
Ci0gICAgfSBmb3JSZXF1ZXN0OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KHJvdW5kZWRJ
bnRQb2ludChkcmFnT3JpZ2luKSldOworICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJh
ZyBzZXNzaW9uIHJlcXVlc3RlZDogJXAgYXQgb3JpZ2luOiB7JWQsICVkfSIsIHNlc3Npb24sIGRy
YWdPcmlnaW4ueCgpLCBkcmFnT3JpZ2luLnkoKSk7CiB9CiAKIC0gKE5TQXJyYXk8VUlEcmFnSXRl
bSAqPiAqKWRyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBp
dGVtc0ZvckJlZ2lubmluZ1Nlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDFhYjk1ODlj
YTI3ODgxODY2ZjRmZjhhYjUxMTU2MDcwZDdjYjhlNy4uNjZkMTU0OGRmN2ZjMzlmNzAzYTU2YjJh
ODU2Y2JhYjg4MmNmMzhkYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA2LTI2ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0IGRyYWdn
aW5nIG91dCBvZiBjb250ZW50ZWRpdGFibGUgYXJlYXMgd2l0aG91dCBhIHByaW9yIHNlbGVjdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODU0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIzNjgyNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IHRlc3QgdG8gY2hlY2sgdGhh
dCBhbiBpbWFnZSBjYW4gYmUgZHJhZ2dlZCBvdXQgb2YgYSBjb250ZW50ZWRpdGFibGUgYW5kIGRy
b3BwZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9jb250ZW50ZWRpdGFibGUtYW5kLXRhcmdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE3LTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjE4
NzgzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZDc3N2U4NDA0ZWFjOWNhZTE2ZGIzYjFj
ZTI0YmM2YTZmNDhkYmFkLi44YTZmYjQwODM1ODUwYmZmZjI3Y2NjMTRhYjU2NDQwMzBjZGRiNWRj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQyLDYgKzY0Miw3IEBACiAJCUY0NTM4RUY3
MUU4NDczRTYwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUzOEVGMDFFODQ2QjQxMDBC
NUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgKi87IH07CiAJCUY0Njg0OUJFMUVFRjU4RTQw
MEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3Rl
Ym9hcmRUZXN0cy5tbSAqLzsgfTsKIAkJRjQ2ODQ5QzAxRUVGNUVGMzAwQjkzN0ZFIC8qIHJpY2gt
YW5kLXBsYWluLXRleHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDY4NDlCRjFFRUY1RURDMDBCOTM3RkUgLyogcmljaC1hbmQtcGxh
aW4tdGV4dC5odG1sICovOyB9OworCQlGNDY5RkIyNDFGMDE4MDRCMDA0MDE1MzkgLyogY29udGVu
dGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY5RkIyMzFGMDE4MDM1MDA0MDE1MzkgLyogY29udGVu
dGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCAqLzsgfTsKIAkJRjQ2QTA5NUExRUQ4QTZFNjAwRDRB
QTU1IC8qIGFwcGxlLmdpZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDdEMzBFQjFFRDI4NjE5MDAwNDgyRTEgLyogYXBwbGUuZ2lmICovOyB9
OwogCQlGNDZBMDk1QjFFRDhBNkU2MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
RDMwRUQxRUQyOEE2QzAwMDQ4MkUxIC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sICovOyB9Owog
CQlGNDc3Mjg5OTFFNEFFM0MxMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0NzcyODk4MUU0QUUzQUQwMDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0
bWwgKi87IH07CkBAIC03MjcsNiArNzI4LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJ
LnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJ
RjQ2OUZCMjQxRjAxODA0QjAwNDAxNTM5IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8q
IGNvbXByZXNzZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOTlG
MUVGNDY5NkIwMDgzRkEwOCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tncm91
bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE2
MDksNiArMTYxMSw3IEBACiAJCUY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAvKiBsYXJnZS1yZWQt
c3F1YXJlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJsYXJnZS1yZWQtc3F1YXJlLnBuZyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9h
cmRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJUGFzdGVib2FyZFRlc3RzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDY4NDlCRjFFRUY1RURDMDBCOTM3RkUgLyog
cmljaC1hbmQtcGxhaW4tdGV4dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInJpY2gtYW5kLXBsYWluLXRleHQu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NjlGQjIzMUYwMTgwMzUwMDQw
MTUzOSAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRhcmdldC5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNvbnRl
bnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDc3Mjg5ODFFNEFFM0FEMDA3QUJGNkEgLyogZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtcGFnZS1jb250ZW50ZWRpdGFi
bGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0QzMEVCMUVEMjg2MTkw
MDA0ODJFMSAvKiBhcHBsZS5naWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS5naWY7IHBhdGggPSBhcHBsZS5naWY7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0N0QzMEVEMUVEMjhBNkMwMDA0ODJFMSAvKiBnaWYtYW5kLWZpbGUt
aW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDA4LDYgKzIwMTEsNyBAQAogCQkJCUY0QjgyNUQ2MUVG
NERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCAqLywKIAkJCQlGNDFBQjk5ODFF
RjQ2OTJDMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sICovLAogCQkJ
CUY0MUFCOTk3MUVGNDY5MkMwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlu
cHV0Lmh0bWwgKi8sCisJCQkJRjQ2OUZCMjMxRjAxODAzNTAwNDAxNTM5IC8qIGNvbnRlbnRlZGl0
YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgKi8sCiAJCQkJRjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8q
IGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAqLywKIAkJCQlGNDFBQjk5RTFFRjQ2
OTJDMDA4M0ZBMDggLyogZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sICovLAogCQkJCUY0MUFCOTlC
MUVGNDY5MkMwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1sICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY29udGVudGVkaXRhYmxlLWFu
ZC10YXJnZXQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Nv
bnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZkNGM3NTEyMmQzOWRk
NWI0M2QzNDY4ZTJlYmE2YjE1OWU0YjdiMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0
bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAg
ICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAg
IH0KKworICAgICAgICBpbWcgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
fQorCisgICAgICAgICNzb3VyY2UsICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgZm9udC1zaXplOiAxNTBw
eDsKKyAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgICAgICBib3gtc2l6
aW5nOiBib3JkZXItYm94OworICAgICAgICB9CisKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAg
ICAgICBib3JkZXI6IGdyZWVuIDFweCBkYXNoZWQ7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47
CisgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweDsKKyAgICAgICAgfQorICAgICAgICA8L3N0
eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0ic291
cmNlIj48aW1nIHNyYz0iaWNvbi5wbmciPjwvaW1nPjwvZGl2PgorICAgIDxjb2RlPjxkaXYgaWQ9
InRhcmdldCI+PC9kaXY+PC9jb2RlPgorICAgIDxzY3JpcHQ+CisgICAgdGFyZ2V0LmFkZEV2ZW50
TGlzdGVuZXIoImRyYWdlbnRlciIsIGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpOwor
ICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIGV2ZW50ID0+IGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCkpOworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZXZl
bnQgPT4geworICAgICAgICB0YXJnZXQudGV4dENvbnRlbnQgPSAiUEFTUyI7CisgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRl
cmFjdGlvblRlc3RzLm1tCmluZGV4IDc2YWZiODk4ZDRmNDZmMzdmMDdmMzU1YWQwNGU1ZTA1NTli
YzU4MzEuLjc2ZmRiNmIzODFmY2RkNDA0ZWE3ODA5OGY1MjRlNWZkNDlkMTA3MzIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3Rz
Lm1tCkBAIC0yNzQsNiArMjc0LDE3IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIENvbnRl
bnRFZGl0YWJsZU1vdmVQYXJhZ3JhcGhzKQogICAgIGNoZWNrU2VsZWN0aW9uUmVjdHNXaXRoTG9n
Z2luZyhAWyBtYWtlQ0dSZWN0VmFsdWUoMTkwLCAxMDAsIDEzMCwgMjApLCBtYWtlQ0dSZWN0VmFs
dWUoMCwgMTIwLCAzMjAsIDEwMCksIG1ha2VDR1JlY3RWYWx1ZSgwLCAyMjAsIDI1MiwgMjApIF0s
IFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgZmluYWxTZWxlY3Rpb25SZWN0c10pOwogfQogCitU
RVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBEcmFnSW1hZ2VGcm9tQ29udGVudEVkaXRhYmxlKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBkYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFs
bG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworCisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQi
XTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMTAw
LCAxMDApIHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
IlBBU1MiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAidGFyZ2V0LnRl
eHRDb250ZW50Il0pOworfQorCiBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBUZXh0QXJlYVRv
SW5wdXQpCiB7CiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOwo=
</data>
<flag name="review"
          id="334841"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>