<?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>167579</bug_id>
          
          <creation_ts>2017-01-30 02:06:40 -0800</creation_ts>
          <short_desc>[GTK] WTR: Native HTML form validation popover is not supported</short_desc>
          <delta_ts>2022-01-27 08:32:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local 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>Gtk, LayoutTestFailure</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>234629</dependson>
    
    <dependson>235303</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          <cc>aboya</cc>
    
    <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>magomez</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1271208</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-30 02:06:40 -0800</bug_when>
    <thetext>This is causing several tests to timeout in the bots:

fast/forms/validation-bubble-disappears-when-input-detached.html
fast/forms/validation-bubble-disappears-when-input-moved.html
fast/forms/validation-bubble-disappears-when-input-no-longer-visible.html
fast/forms/validation-custom-message.html
fast/forms/validation-message-detached-iframe.html
fast/forms/validation-message-detached-iframe2.html
fast/forms/validation-messages.html

I don&apos;t know if we really want to implement them or not, I guess it looks better using a GtkPopover instead of the Shadow DOM based UI, and it&apos;s easy to implement. For now I&apos;ll just skip these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271210</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-30 02:12:22 -0800</bug_when>
    <thetext>Skipped in r211359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482947</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2018-11-29 07:57:22 -0800</bug_when>
    <thetext>Four new tests have started timing out since r238038

fast/forms/validation-message-on-checkbox.html [ Timeout ]
fast/forms/validation-message-on-listbox.html [ Timeout ]
fast/forms/validation-message-on-menulist.html [ Timeout ]
fast/forms/validation-message-on-radio.html [ Timeout ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827215</commentid>
    <comment_count>3</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-29 18:14:20 -0800</bug_when>
    <thetext>Even after closing bug 234629, tests related to the validation bubble would keep failing due to missing JS APIs for the test runner (e.g., UIController.contentsOfUserInterfaceItem). We may want to add those interfaces here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832052</commentid>
    <comment_count>4</comment_count>
      <attachid>449488</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-19 09:04:08 -0800</bug_when>
    <thetext>Created attachment 449488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832053</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-19 09:06:58 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832277</commentid>
    <comment_count>6</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-19 16:28:16 -0800</bug_when>
    <thetext>Hrm... Why do mac/ios ports complain about a changeset for the GTK port? -_-a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832366</commentid>
    <comment_count>7</comment_count>
      <attachid>449488</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-20 00:25:32 -0800</bug_when>
    <thetext>Comment on attachment 449488
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        This change enables form-validation-related tests. To this end, two APIs called
&gt; +        overridePreference and contentsOfUserInterfaceItem are added to UIScriptController.
&gt; +        The two APIs need some private interface of JavaScriptCore so we suppress
&gt; +        compiler complains that happen when accessing JSC headers directly in the test runner.

I think we can just use the C API from WTR instead of the glib one.

&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:70
&gt; +void WKViewSetMinimumFontSize(WKViewRef viewRef, double fontSize)
&gt; +{
&gt; +    webkitWebViewBaseSetMinimumFontSize(toImpl(viewRef), fontSize);
&gt; +}

WKPreferences is exposed in the C API, I could just add WKPreferencesSetMinimumFontSize() instead

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:1649
&gt; +    if (!g_strcmp0(userInterfaceItem, &quot;validationBubble&quot;)) {

I would add an early return instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832664</commentid>
    <comment_count>8</comment_count>
      <attachid>449488</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-20 20:12:51 -0800</bug_when>
    <thetext>Comment on attachment 449488
Patch

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

Thanks for your review. I am not sure if I effectively addressed your comments. Please have a look at the new patch and let me know if it needs more improvement. We can take another cycle.

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        compiler complains that happen when accessing JSC headers directly in the test runner.
&gt; 
&gt; I think we can just use the C API from WTR instead of the glib one.

Sorry, I am not sure if I understand correctly. Are you talking about the dictionary implementation in WebKitWebViewBase.cpp (i.e., webkitWebViewBaseContentsOfUserInterfaceItem)?

&gt;&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:70
&gt;&gt; +}
&gt; 
&gt; WKPreferences is exposed in the C API, I could just add WKPreferencesSetMinimumFontSize() instead

O.K. I get the preference by using these APIs, WKPageGroupGetPreferences(WKPageGetPageGroup(WKViewGetPage(viewRef))). Do you think this is the most efficient way to get the WKPreferences here? If you know a better way, please let me know.

&gt;&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:1649
&gt;&gt; +    if (!g_strcmp0(userInterfaceItem, &quot;validationBubble&quot;)) {
&gt; 
&gt; I would add an early return instead.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832665</commentid>
    <comment_count>9</comment_count>
      <attachid>449635</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-20 20:13:21 -0800</bug_when>
    <thetext>Created attachment 449635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832714</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-21 02:15:37 -0800</bug_when>
    <thetext>(In reply to ChangSeok Oh from comment #8)
&gt; Comment on attachment 449488 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449488&amp;action=review
&gt; 
&gt; Thanks for your review. I am not sure if I effectively addressed your
&gt; comments. Please have a look at the new patch and let me know if it needs
&gt; more improvement. We can take another cycle.
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt;&gt; +        compiler complains that happen when accessing JSC headers directly in the test runner.
&gt; &gt; 
&gt; &gt; I think we can just use the C API from WTR instead of the glib one.
&gt; 
&gt; Sorry, I am not sure if I understand correctly. Are you talking about the
&gt; dictionary implementation in WebKitWebViewBase.cpp (i.e.,
&gt; webkitWebViewBaseContentsOfUserInterfaceItem)?

No, I mean we can use the JSC C API, that is already used by WTR, instead of the JSC glib API and then we don&apos;t need the changes in jsc headers.

&gt; &gt;&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:70
&gt; &gt;&gt; +}
&gt; &gt; 
&gt; &gt; WKPreferences is exposed in the C API, I could just add WKPreferencesSetMinimumFontSize() instead
&gt; 
&gt; O.K. I get the preference by using these APIs,
&gt; WKPageGroupGetPreferences(WKPageGetPageGroup(WKViewGetPage(viewRef))). Do
&gt; you think this is the most efficient way to get the WKPreferences here? If
&gt; you know a better way, please let me know.

That&apos;s fine, you can also use TestController::platformPreferences().

&gt; &gt;&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:1649
&gt; &gt;&gt; +    if (!g_strcmp0(userInterfaceItem, &quot;validationBubble&quot;)) {
&gt; &gt; 
&gt; &gt; I would add an early return instead.
&gt; 
&gt; Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832715</commentid>
    <comment_count>11</comment_count>
      <attachid>449635</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-21 02:19:23 -0800</bug_when>
    <thetext>Comment on attachment 449635
Patch

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

&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:72
&gt; +void WKViewSetMinimumFontSize(WKViewRef viewRef, double fontSize)
&gt; +{
&gt; +    auto preferences = WKPageGroupGetPreferences(WKPageGetPageGroup(WKViewGetPage(viewRef)));
&gt; +    WKPreferencesSetMinimumFontSize(preferences, static_cast&lt;uint32_t&gt;(fontSize));
&gt; +}

We don&apos;t need to expose WKViewSetMinimumFontSize, WTR can use WKPreferencesSetMinimumFontSize directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832918</commentid>
    <comment_count>12</comment_count>
      <attachid>449703</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-21 15:39:03 -0800</bug_when>
    <thetext>Created attachment 449703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832919</commentid>
    <comment_count>13</comment_count>
      <attachid>449635</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-21 15:39:38 -0800</bug_when>
    <thetext>Comment on attachment 449635
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:72
&gt;&gt; +}
&gt; 
&gt; We don&apos;t need to expose WKViewSetMinimumFontSize, WTR can use WKPreferencesSetMinimumFontSize directly.

O.K.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832920</commentid>
    <comment_count>14</comment_count>
      <attachid>449488</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-21 15:40:48 -0800</bug_when>
    <thetext>Comment on attachment 449488
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt;&gt;&gt; +        compiler complains that happen when accessing JSC headers directly in the test runner.
&gt;&gt;&gt; 
&gt;&gt;&gt; I think we can just use the C API from WTR instead of the glib one.
&gt;&gt; 
&gt;&gt; Sorry, I am not sure if I understand correctly. Are you talking about the dictionary implementation in WebKitWebViewBase.cpp (i.e., webkitWebViewBaseContentsOfUserInterfaceItem)?
&gt; 
&gt; No, I mean we can use the JSC C API, that is already used by WTR, instead of the JSC glib API and then we don&apos;t need the changes in jsc headers.

I understood.

&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/gtk/WKView.cpp:70
&gt;&gt;&gt;&gt; +}
&gt;&gt;&gt; 
&gt;&gt;&gt; WKPreferences is exposed in the C API, I could just add WKPreferencesSetMinimumFontSize() instead
&gt;&gt; 
&gt;&gt; O.K. I get the preference by using these APIs, WKPageGroupGetPreferences(WKPageGetPageGroup(WKViewGetPage(viewRef))). Do you think this is the most efficient way to get the WKPreferences here? If you know a better way, please let me know.
&gt; 
&gt; That&apos;s fine, you can also use TestController::platformPreferences().

platformPreferences is private so I had to make it public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833840</commentid>
    <comment_count>15</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-25 13:45:00 -0800</bug_when>
    <thetext>@KaL, would you have a look at the new patch once again? If possible, I&apos;d like to close this bug this week and move on to another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834038</commentid>
    <comment_count>16</comment_count>
      <attachid>449703</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-26 03:20:14 -0800</bug_when>
    <thetext>Comment on attachment 449703
Patch

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

&gt; Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:177
&gt; +static Ref&lt;JSON::Object&gt; toJSONObject(GVariant* variant)

Since we always want the string representation, this could return a String instead of the JSON object.

&gt; Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:201
&gt; +static JSStringRef toJSStringRef(GVariant* contentDictionary)
&gt; +{
&gt; +    auto jsonObject = toJSONObject(contentDictionary);
&gt; +    return JSStringCreateWithUTF8CString(jsonObject-&gt;toJSONString().utf8().data());
&gt; +}

And then we don&apos;t need this, because we can use WTR::createString()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834358</commentid>
    <comment_count>17</comment_count>
      <attachid>450084</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-26 16:58:04 -0800</bug_when>
    <thetext>Created attachment 450084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834363</commentid>
    <comment_count>18</comment_count>
      <attachid>449703</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-26 17:01:34 -0800</bug_when>
    <thetext>Comment on attachment 449703
Patch

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

&gt;&gt; Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:177
&gt;&gt; +static Ref&lt;JSON::Object&gt; toJSONObject(GVariant* variant)
&gt; 
&gt; Since we always want the string representation, this could return a String instead of the JSON object.

This function is recursive so it needs to return JSON::Object. Please see line 188.

&gt;&gt; Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:201
&gt;&gt; +}
&gt; 
&gt; And then we don&apos;t need this, because we can use WTR::createString()

Maybe WTR::createJSString() you mean? This function is removed anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834414</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-26 22:17:45 -0800</bug_when>
    <thetext>Committed r288666 (246472@main): &lt;https://commits.webkit.org/246472@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450084.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834538</commentid>
    <comment_count>20</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-27 08:32:39 -0800</bug_when>
    <thetext>*** Bug 202232 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449488</attachid>
            <date>2022-01-19 09:04:08 -0800</date>
            <delta_ts>2022-01-20 20:13:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167579-20220119120407.patch</filename>
            <type>text/plain</type>
            <size>22783</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NWExYzZhNDFjMDQ5NWZjM2I3ODQwOTg3MDZmNDFjMzM2NDBjNTU1Li42NzFiNTcxYmJiNGQzODAx
ZGUyNzNkYmUzYTViZmM0NTRhZDcxYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMS0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgW0dUS10gTmF0aXZlIEhUTUwgZm9ybSB2YWxpZGF0aW9uIHBvcG92ZXIg
aXMgbm90IHN1cHBvcnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgZW5hYmxlcyBmb3JtLXZhbGlkYXRpb24tcmVsYXRlZCB0ZXN0
cy4gVG8gdGhpcyBlbmQsIHR3byBBUElzIGNhbGxlZAorICAgICAgICBvdmVycmlkZVByZWZlcmVu
Y2UgYW5kIGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSBhcmUgYWRkZWQgdG8gVUlTY3JpcHRD
b250cm9sbGVyLgorICAgICAgICBUaGUgdHdvIEFQSXMgbmVlZCBzb21lIHByaXZhdGUgaW50ZXJm
YWNlIG9mIEphdmFTY3JpcHRDb3JlIHNvIHdlIHN1cHByZXNzCisgICAgICAgIGNvbXBpbGVyIGNv
bXBsYWlucyB0aGF0IGhhcHBlbiB3aGVuIGFjY2Vzc2luZyBKU0MgaGVhZGVycyBkaXJlY3RseSBp
biB0aGUgdGVzdCBydW5uZXIuCisKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NDbGFzcy5oOgorICAg
ICAgICAqIEFQSS9nbGliL0pTQ0NvbnRleHQuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NEZWZp
bmVzLmg6CisgICAgICAgICogQVBJL2dsaWIvSlNDRXhjZXB0aW9uLmg6CisgICAgICAgICogQVBJ
L2dsaWIvSlNDVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5o
OgorCiAyMDIyLTAxLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVXNlIGMrKzJhIGluc3RlYWQgb2YgZ251KysyYSBmb3IgQ29jb2EgYnVp
bGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDJmNzI3ZjA5ZjU1MWFhZjg4NTk1NjczMzg3NjUxMmVjMGVjMDY1MWEu
LjBlMGNmYWRmZDExMjcyMmNlMzg4ODI1ZWY4YWQzNzg2ZGRmZmY4YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMjItMDEtMTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtHVEtdIE5hdGl2ZSBIVE1MIGZvcm0gdmFsaWRhdGlvbiBwb3BvdmVy
IGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NzU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIGVuYWJsZXMgZm9ybS12YWxpZGF0aW9uLXJlbGF0ZWQgdGVz
dHMuIFRvIHRoaXMgZW5kLCB0d28gQVBJcyBjYWxsZWQKKyAgICAgICAgb3ZlcnJpZGVQcmVmZXJl
bmNlIGFuZCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gYXJlIGFkZGVkIHRvIFVJU2NyaXB0
Q29udHJvbGxlci4KKworICAgICAgICBXZWJLaXRXZWJWaWV3QmFzZSBpbXBsZW1lbnRzIHR3byBp
bnRlcm5hbCBBUElzIHRoYXQgYWN0dWFsbHkgaW1wbGVtZW50IG92ZXJyaWRlUHJlZmVyZW5jZQor
ICAgICAgICBhbmQgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGZvciBVSVNjcmlwdENvbnRy
b2xsZXIgbmVjZXNzYXJ5IGZvciB3ZWJraXQgdGVzdHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IHNpbmNlIHRoaXMgY2hhbmdlIGlzIHRoZSBlbmFibGVyIG9mIGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwOgorICAgICAgICAoV0tWaWV3
U2V0TWluaW11bUZvbnRTaXplKToKKyAgICAgICAgKFdLVmlld0NvbnRlbnRzT2ZVc2VySW50ZXJm
YWNlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAg
ICAgICAod2Via2l0V2ViVmlld0Jhc2VTZXRNaW5pbXVtRm9udFNpemUpOgorICAgICAgICAod2Vi
a2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorCiAyMDIyLTAxLTE4
ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJ
bXBsZW1lbnQgbmF0aXZlIGZvcm0gdmFsaWRhdGlvbiBidWJibGVzIGZvciBHVEs0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3MuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5oCmluZGV4IDg3NzQxOTY0ZWZhZmY5ODE0
NTUyZTVjMDc1NjI3ODIyNjBlZDY1MDguLjk2Y2NlNDZmNzY4MWUwNjkzYzNhYWZmZjcwOWY3NGUx
NjMxYjQ5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0ND
bGFzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5oCkBA
IC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0j
aWYgIWRlZmluZWQoX19KU0NfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoSlNDX0NPTVBJTEFUSU9O
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVkKF9fSlNDX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lU
Ml9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUX1RFU1RfUlVOTkVSX0NPTVBJTEFUSU9O
KQogI2Vycm9yICJPbmx5IDxqc2MvanNjLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0Nv
bnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmgKaW5k
ZXggMDY3M2ZmYTU4OWJlNTY1MDI0NTE0MjA2YTQ3NWI3ZDY0NTEyMDEzMS4uOWU3NDFiZTlhOWQ1
NTEyMmMwYzUxYzUxZjMzMmYzMTBmZDM0NTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDQ29udGV4dC5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWYgIWRlZmluZWQoX19KU0NfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9O
KQorI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxB
VElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lU
X1RFU1RfUlVOTkVSX0NPTVBJTEFUSU9OKQogI2Vycm9yICJPbmx5IDxqc2MvanNjLmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQ0RlZmluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NEZWZpbmVzLmgKaW5kZXggYzNmZmEyYjRmZGJhOWZlZWYyNjU5NzA2ZmFjZGVl
ZmFmYWNjOTk2Ni4uYTgyYzdmMDhmZDgxYjFjYjAzNTNlNTZhZWNkMjY0NWI2NDhiYzJiYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0RlZmluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDRGVmaW5lcy5oCkBAIC0yMyw3ICsy
Myw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmICFk
ZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikKKyNp
ZiAhZGVmaW5lZChfX0pTQ19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChKU0NfQ09NUElMQVRJT04p
ICYmICFkZWZpbmVkKFdFQktJVF9URVNUX1JVTk5FUl9DT01QSUxBVElPTikKICNlcnJvciAiT25s
eSA8anNjL2pzYy5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaAppbmRleCA0NWViMGFh
Yzk1NjQ5YmQxMGY0YzA5Mzc5ZWU3OWExZDg3NzY2YmFhLi4xMGE1YzMxMTI2MDhjOWU5MWI5YzJh
MzM2YTUyMDEzYzgyMGEyN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDRXhjZXB0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQ0V4Y2VwdGlvbi5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KICAqLwogCi0jaWYgIWRlZmluZWQoX19KU0NfSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lm
ICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUX1RFU1Rf
UlVOTkVSX0NPTVBJTEFUSU9OKQogI2Vycm9yICJPbmx5IDxqc2MvanNjLmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDVmFsdWUuaAppbmRleCA1ZjY1NDk3MjViMGVlZjY0ZmZlZjIwNjFkNDYzZmNhODczNmJlYmFk
Li5lOTkyYjFkY2U2MTM2YzJlZmIxM2Y3N2JmYjY4ZDA2M2UwOTk3ZTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuaApAQCAtMTcsNyArMTcsNyBAQAogICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNpZiAhZGVmaW5lZChfX0pTQ19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChK
U0NfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZp
bmVkKFdFQktJVF9URVNUX1JVTk5FUl9DT01QSUxBVElPTikKICNlcnJvciAiT25seSA8anNjL2pz
Yy5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmgKaW5kZXggMDgzYzZh
OTM0MmE2OGY2ODM0ZmYxZTEzYzY3N2YwYzM4NjhkZGFmNC4uNmI4Zjk5YmE0YzdkZmMxNzA1Y2Ew
OGU2YTY1NDExMmY1ZWU3MTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmgKQEAgLTE3LDcgKzE3LDcgQEAKICAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZiAhZGVmaW5lZChfX0pTQ19IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChKU0NfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElM
QVRJT04pCisjaWYgIWRlZmluZWQoX19KU0NfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoSlNDX0NP
TVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChX
RUJLSVRfVEVTVF9SVU5ORVJfQ09NUElMQVRJT04pCiAjZXJyb3IgIk9ubHkgPGpzYy9qc2MuaD4g
Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCmluZGV4IDUwMWMxNjRjMDA5ZDJlN2I0YWYyMzVi
MmU3ODg3NDM3NWQ1N2Y1MzUuLjc4MDQzN2M2M2JjMDI1MzYwNjJlNTcwZDkyZjYyNWY0ZjhiYjUz
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCkBA
IC02MywzICs2MywxMyBAQCBib29sIFdLVmlld0NvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyhX
S1ZpZXdSZWYgdmlld1JlZikKIHsKICAgICByZXR1cm4gd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0
ZUJhY2tTd2lwZUZvclRlc3RpbmcodG9JbXBsKHZpZXdSZWYpKTsKIH0KKwordm9pZCBXS1ZpZXdT
ZXRNaW5pbXVtRm9udFNpemUoV0tWaWV3UmVmIHZpZXdSZWYsIGRvdWJsZSBmb250U2l6ZSkKK3sK
KyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldE1pbmltdW1Gb250U2l6ZSh0b0ltcGwodmlld1JlZiks
IGZvbnRTaXplKTsKK30KKworR1ZhcmlhbnQqIFdLVmlld0NvbnRlbnRzT2ZVc2VySW50ZXJmYWNl
SXRlbShXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgY2hhciogdXNlckludGVyZmFjZUl0ZW0pCit7
CisgICAgcmV0dXJuIHdlYmtpdFdlYlZpZXdCYXNlQ29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
KHRvSW1wbCh2aWV3UmVmKSwgdXNlckludGVyZmFjZUl0ZW0pOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmgKaW5kZXggYWFmZDY1NzUz
MjhlNDA5NzI2ZTNlMDFiMzhiYmIwNWJhMjIwZGJhMS4uZGNkMTFiYzAwYjdlMzUxMjZjMTAwY2M3
YTJjNjZiOGQ3NDJkNjk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvZ3RrL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9ndGsvV0tWaWV3UHJpdmF0ZS5oCkBAIC00MCw2ICs0MCwxMCBAQCBXS19FWFBPUlQgYm9vbCBX
S1ZpZXdCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdSZWYpOwogCiBXS19F
WFBPUlQgYm9vbCBXS1ZpZXdDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZp
ZXdSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRNaW5pbXVtRm9udFNpemUoV0tWaWV3
UmVmIHZpZXdSZWYsIGRvdWJsZSBmb250U2l6ZSk7CisKK1dLX0VYUE9SVCBHVmFyaWFudCogV0tW
aWV3Q29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdLVmlld1JlZiB2aWV3UmVmLCBjb25zdCBj
aGFyKiB1c2VySW50ZXJmYWNlSXRlbSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCmluZGV4IDU1OWE4OWJmYzAyNzllMTZhN2E3YjIzMjFkMGI4OTMxZjIyNGQzMzIu
LmZmZDQyMzQ1YmY5MTBhODllNzJjZTA2ZmY0ZWRjNDFlY2QyMjNmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBA
IC0xNjM4LDYgKzE2MzgsMzMgQEAgYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3
aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UKICAgICByZXR1cm4g
RkFMU0U7CiB9CiAKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRNaW5pbXVtRm9udFNpemUoV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBkb3VibGUgZm9udFNpemUpCit7CisgICAgYXV0
byYgcHJlZmVyZW5jZXMgPSB3ZWJWaWV3QmFzZS0+cHJpdi0+cGFnZVByb3h5LT5wcmVmZXJlbmNl
cygpOworICAgIHByZWZlcmVuY2VzLnNldE1pbmltdW1Gb250U2l6ZShmb250U2l6ZSk7Cit9CisK
K0dWYXJpYW50KiB3ZWJraXRXZWJWaWV3QmFzZUNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShX
ZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0IGNoYXIqIHVzZXJJbnRlcmZhY2VJ
dGVtKQoreworICAgIGlmICghZ19zdHJjbXAwKHVzZXJJbnRlcmZhY2VJdGVtLCAidmFsaWRhdGlv
bkJ1YmJsZSIpKSB7CisgICAgICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlZpZXdCYXNlLT5w
cml2LT5wYWdlUHJveHkuZ2V0KCk7CisgICAgICAgIGF1dG8qIHZhbGlkYXRpb25CdWJibGUgPSBw
YWdlLT52YWxpZGF0aW9uQnViYmxlKCk7CisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gdmFsaWRh
dGlvbkJ1YmJsZSA/IHZhbGlkYXRpb25CdWJibGUtPm1lc3NhZ2UoKSA6IGVtcHR5U3RyaW5nKCk7
CisgICAgICAgIGRvdWJsZSBmb250U2l6ZSA9IHZhbGlkYXRpb25CdWJibGUgPyB2YWxpZGF0aW9u
QnViYmxlLT5mb250U2l6ZSgpIDogMDsKKworICAgICAgICBHVmFyaWFudEJ1aWxkZXIgc3ViQnVp
bGRlcjsKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmc3ViQnVpbGRlciwgR19WQVJJ
QU5UX1RZUEVfVkFSRElDVCk7CisgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmc3ViQnVp
bGRlciwgIntzdn0iLCAibWVzc2FnZSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG1lc3NhZ2UudXRm
OCgpLmRhdGEoKSkpOworICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJnN1YkJ1aWxkZXIs
ICJ7c3Z9IiwgImZvbnRTaXplIiwgZ192YXJpYW50X25ld19kb3VibGUoZm9udFNpemUpKTsKKwor
ICAgICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZ192YXJpYW50X2J1aWxk
ZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCk7CisgICAgICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCB1c2VySW50ZXJmYWNlSXRlbSwgZ192
YXJpYW50X2J1aWxkZXJfZW5kKCZzdWJCdWlsZGVyKSk7CisgICAgICAgIHJldHVybiBnX3Zhcmlh
bnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
Kwogc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlUXVlcnlUb29sdGlwKEd0a1dpZGdl
dCogd2lkZ2V0LCBnaW50IC8qIHggKi8sIGdpbnQgLyogeSAqLywgZ2Jvb2xlYW4ga2V5Ym9hcmRN
b2RlLCBHdGtUb29sdGlwKiB0b29sdGlwKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCktPnByaXY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUuaAppbmRleCAxODdkZjVlOTIyMTcwOTc3NjZhOTRhZDIxZWM2MzEyNzNhOTc2NGZhLi4w
OTNkOWQ4NDRkMzRiZWYwZDhkYzU1MTA3NTdjMzRmMWY3YjE0Njc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgKQEAgLTk1LDYgKzk1LDkgQEAgV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdl
YmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlYKIGJvb2wgd2Vi
a2l0V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2Uq
KTsKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV2Vi
S2l0V2ViVmlld0Jhc2UqKTsKIAordm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldE1pbmltdW1Gb250
U2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBmb250U2l6ZSk7CitHVmFyaWFudCogd2Vi
a2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oV2ViS2l0V2ViVmlld0Jh
c2UqLCBjb25zdCBjaGFyKiB1c2VySW50ZXJmYWNlSXRlbSk7CisKIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFz
ZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZURpZEZpbmlzaE5hdmlnYXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqLCBBUEk6Ok5hdmlnYXRpb24q
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1
ZTM3YWRiYmU0ZjM2OGE4NzIwMGI3OTM3ZWQxNWMxNTAwYzEyNDgzLi5lMTdhNDRhMGZlMmU5Y2Qy
MzQ2MTdmNThlYmJhOGJmNjgwNTk1MGJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjItMDEtMTggIENoYW5nU2Vv
ayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIE5hdGl2ZSBIVE1M
IGZvcm0gdmFsaWRhdGlvbiBwb3BvdmVyIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzU3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGVuYWJsZXMgZm9y
bS12YWxpZGF0aW9uLXJlbGF0ZWQgdGVzdHMuIFRvIHRoaXMgZW5kLCB0d28gQVBJcyBjYWxsZWQK
KyAgICAgICAgb3ZlcnJpZGVQcmVmZXJlbmNlIGFuZCBjb250ZW50c09mVXNlckludGVyZmFjZUl0
ZW0gYXJlIGFkZGVkIHRvIFVJU2NyaXB0Q29udHJvbGxlci4KKworICAgICAgICBVSVNjcmlwdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlIGFsbG93cyB1cyB0byBjb25maWd1cmUgdGhlIG1p
bmltdW0gZm9udCBzaXplIG9mIHRoZSB2YWxpZGF0aW9uIGJ1YmJsZXMKKyAgICAgICAgYW5kIFVJ
U2NyaXB0Q29udHJvbGxlci5jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gcmV0dXJucyBhbiBh
Y3R1YWwgYnViYmxlIG1lc3NhZ2UgYWxvbmcgd2l0aCBpdHMgbWluaW11bSBmb250IHNpemUuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckd0azo6b3ZlcnJpZGVQcmVmZXJlbmNlKToKKyAgICAg
ICAgKFdUUjo6dG9KU09OT2JqZWN0KToKKyAgICAgICAgKFdUUjo6dWlTY3JpcHRDb250cm9sbGVy
VmFsaWRhdGlvbkJ1YmJsZVRvSlNPTik6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
ckd0azo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGNvbnN0KToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaDoKKwogMjAyMi0wMS0xOCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1
aWxkIFdlYktpdFN3aWZ0IHdoZW4gYnVpbGRpbmcgd2l0aCBtYWtlIG9yIGJ1aWxkLXdlYmtpdApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNDRlYmJjMzAwMzM2
OTJmMTM1NDNmZGI1MGE4NmM5MjFkZWNkNmE5NC4uNzQxODc3N2JlNjExN2EzYjdhMDNmODc5MGNh
ZWY4Y2UzMzExNTkwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bUdUSy5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtl
CkBAIC02NSw0ICs2NSw1IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1
bmRsZV9JTkNMVURFX0RJUkVDVE9SSUVTCiBhZGRfZGVmaW5pdGlvbnMoCiAgICAgLURGT05UU19D
T05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRzIgogICAgIC1E
VE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKyAgICAtRFdFQktJVF9URVNUX1JV
Tk5FUl9DT01QSUxBVElPTgogKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMjhlOGE3YmJkOTNjZWM5YjgzYzFiZjc3
YmJkYTIwZTU5N2JhZWFiYy4uMzQxYzM5MmY4NGZiYmE2ODIwOGJjMWY2ZTc2Y2RiZGI1Yzk2ZWUy
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9s
bGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRy
b2xsZXJHdGsuY3BwCkBAIC0yOCwxMiArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkV2ZW50U2VuZGVy
UHJveHkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJTdHJpbmdG
dW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVJU2Ny
aXB0Q29udGV4dC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLVGV4dENoZWNrZXJHTGliLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLVmlld1ByaXZhdGUuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8anNjL0pT
Q0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8anNjL0pTQ1ZhbHVlUHJpdmF0ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTE2Miw0ICsxNjcs
NTUgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJHdGs6OmFkZFZpZXdUb1dpbmRvdyhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckd0azo6
b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIHByZWZlcmVuY2UsIEpTU3RyaW5nUmVmIHZh
bHVlKQoreworICAgIGlmICh0b1dURlN0cmluZyhwcmVmZXJlbmNlKSA9PSAiV2ViS2l0TWluaW11
bUZvbnRTaXplIikgeworICAgICAgICBhdXRvKiB3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOworICAgICAgICBXS1ZpZXdT
ZXRNaW5pbXVtRm9udFNpemUod2ViVmlldywgdG9XVEZTdHJpbmcodmFsdWUpLnRvRG91YmxlKCkp
OworICAgIH0KK30KKworc3RhdGljIFJlZjxKU09OOjpPYmplY3Q+IHRvSlNPTk9iamVjdChHVmFy
aWFudCogdmFyaWFudCkKK3sKKyAgICBSZWY8SlNPTjo6T2JqZWN0PiBqc29uT2JqZWN0ID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKKworICAgIGNvbnN0IGNoYXIqIGtleTsKKyAgICBHVmFyaWFu
dCogdmFsdWU7CisgICAgR1ZhcmlhbnRJdGVyIGl0ZXI7CisgICAgZ192YXJpYW50X2l0ZXJfaW5p
dCgmaXRlciwgdmFyaWFudCk7CisgICAgd2hpbGUgKGdfdmFyaWFudF9pdGVyX2xvb3AoJml0ZXIs
ICJ7JnN2fSIsICZrZXksICZ2YWx1ZSkpIHsKKyAgICAgICAgY29uc3QgR1ZhcmlhbnRUeXBlKiB0
eXBlID0gZ192YXJpYW50X2dldF90eXBlKHZhbHVlKTsKKyAgICAgICAgaWYgKHR5cGUgJiYgZ192
YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCkpCisgICAgICAg
ICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3Qoa2V5LCB0b0pTT05PYmplY3QodmFsdWUpKTsKKyAg
ICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklB
TlRfVFlQRV9TVFJJTkcpKQorICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKGtleSwg
Z192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpKTsKKyAgICAgICAgZWxzZSBpZiAo
dHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9ET1VCTEUp
KQorICAgICAgICAgICAganNvbk9iamVjdC0+c2V0RG91YmxlKGtleSwgZ192YXJpYW50X2dldF9k
b3VibGUodmFsdWUpKTsKKyAgICB9CisgICAgcmV0dXJuIGpzb25PYmplY3Q7Cit9CisKK3N0YXRp
YyBKU0NWYWx1ZSogdWlTY3JpcHRDb250cm9sbGVyVmFsaWRhdGlvbkJ1YmJsZVRvSlNPTihHVmFy
aWFudCogY29udGVudERpY3Rpb25hcnksIFVJU2NyaXB0Q29udGV4dCogY29udGV4dCkKK3sKKyAg
ICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzY0NvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUo
Y29udGV4dC0+anNDb250ZXh0KCkpOworICAgIGF1dG8ganNvbk9iamVjdCA9IHRvSlNPTk9iamVj
dChjb250ZW50RGljdGlvbmFyeSk7CisgICAgcmV0dXJuIGpzY192YWx1ZV9uZXdfZnJvbV9qc29u
KGpzY0NvbnRleHQuZ2V0KCksIGpzb25PYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworfQorCitKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXJHdGs6OmNvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZiBpbnRlcmZhY2VJdGVtKSBjb25zdAoreworICAg
IGF1dG8qIHdlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXco
KS0+cGxhdGZvcm1WaWV3KCk7CisKKyAgICBHVmFyaWFudCogY29udGVudERpY3Rpb25hcnkgPSBX
S1ZpZXdDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0od2ViVmlldywgdG9XVEZTdHJpbmcoaW50
ZXJmYWNlSXRlbSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpz
Y0NvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUobV9jb250ZXh0LT5qc0NvbnRleHQoKSk7
CisgICAgSlNDQ2xhc3MqIGpzY0NsYXNzID0ganNjX2NvbnRleHRfcmVnaXN0ZXJfY2xhc3MoanNj
Q29udGV4dC5nZXQoKSwgIlZhbGlkYXRpb25CdWJibGUiLCBudWxscHRyLCBudWxscHRyLCByZWlu
dGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5PigrW10oR1ZhcmlhbnQqIGNvbnRlbnREaWN0aW9u
YXJ5KSB7CisgICAgICAgIGdfdmFyaWFudF91bnJlZihjb250ZW50RGljdGlvbmFyeSk7CisgICAg
fSkpOworICAgIGpzY19jbGFzc19hZGRfbWV0aG9kKGpzY0NsYXNzLCAidG9KU09OIiwgR19DQUxM
QkFDSyh1aVNjcmlwdENvbnRyb2xsZXJWYWxpZGF0aW9uQnViYmxlVG9KU09OKSwgbV9jb250ZXh0
LCBudWxscHRyLCBKU0NfVFlQRV9WQUxVRSwgMCwgR19UWVBFX05PTkUpOworCisgICAgR1JlZlB0
cjxKU0NWYWx1ZT4ganNjVmFsdWUgPSBhZG9wdEdSZWYoY29udGVudERpY3Rpb25hcnkgPyBqc2Nf
dmFsdWVfbmV3X29iamVjdChqc2NDb250ZXh0LmdldCgpLCBjb250ZW50RGljdGlvbmFyeSwganNj
Q2xhc3MpIDoganNjX3ZhbHVlX25ld191bmRlZmluZWQoanNjQ29udGV4dC5nZXQoKSkpOworICAg
IHJldHVybiBKU1ZhbHVlVG9PYmplY3QobV9jb250ZXh0LT5qc0NvbnRleHQoKSwganNjVmFsdWVH
ZXRKU1ZhbHVlKGpzY1ZhbHVlLmdldCgpKSwgbnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250
cm9sbGVyR3RrLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xs
ZXJHdGsuaAppbmRleCBlY2FmMGE4MjdlOTQwYWU0ZDBlNzRmZTU2NzE0Y2MyNzhiM2UwNzhjLi4w
ZmExZGM1ZmVhZWJlYzEwMTdiMTZmNzMzYmZkMGRjMWI5NTIzNmM0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaApAQCAtNTIsNiAr
NTIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0dGluZ3ND
aGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVW
aWV3RnJvbVdpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZFZpZXdUb1dp
bmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIG92ZXJyaWRl
UHJlZmVyZW5jZShKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpIG92ZXJyaWRlOworICAgIEpTT2Jq
ZWN0UmVmIGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZmZmZjFlYWEwNDAwYzI0
NzRlM2Y0ZTdkODE0NmIxMjg2MWFkYTE3Li5iYjFlY2RkMTc4ZGE4MjNlZWI2YTgwYTQwYjZlZDMx
YzFiNDRmMzFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMTggIENoYW5nU2VvayBP
aCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIE5hdGl2ZSBIVE1MIGZv
cm0gdmFsaWRhdGlvbiBwb3BvdmVyIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzU3OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGVuYWJsZXMgZm9ybS12
YWxpZGF0aW9uLXJlbGF0ZWQgdGVzdHMuIFRvIHRoaXMgZW5kLCB0d28gQVBJcyBjYWxsZWQKKyAg
ICAgICAgb3ZlcnJpZGVQcmVmZXJlbmNlIGFuZCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0g
YXJlIGFkZGVkIHRvIFVJU2NyaXB0Q29udHJvbGxlci4KKworICAgICAgICBXZSBjb25maWd1cmUg
dGhlIG1pbmltdW0gZm9udCBzaXplIG9mIHRoZSB2YWxpZGF0aW9uIGJ1YmJsZXMgdmlhIFVJU2Ny
aXB0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UKKyAgICAgICAgYW5kIHJldHJpZXZlIGEg
bWVzc2FnZSBhbmQgdGhlIG1pbmltdW0gZm9udCBzaXplIHRocm91Z2ggVUlTY3JpcHRDb250cm9s
bGVyLmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgZm9ybSB2YWxpZGF0aW9uIHJlbGF0ZWQgdGVzdHMg
d2UgY2FuIGRvIHdpdGgKKyAgICAgICAgICBuYXRpdmUgYnViYmxlIHdpZGdldHMgYnV0IHNraXAg
b25lcyByZWxhdGVkIHRvIEhUTUwtYmFzZWQgZm9ybSB2YWxpZGF0aW9uIGFzIENvY29hLWJhc2Vk
IHBvcnRzIGRvLgorCiAyMDIyLTAxLTE4ICBBcmNhZHkgR29sZG1pbnRzLU9ybG92ICA8YWdvbGRt
aW50c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBVcGRhdGUgdGVzdCBiYXNlbGluZXMg
YWZ0ZXIgcjI4ODA3MCBhbGxvd2VkIExGQyBpbnRlZ3JhdGlvbiB0byB3b3JrIHdpdGggdGhlIGNv
bXBsZXggdGV4dCBwYXRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBhMjk3Njg3MjhmZGZiZmJjMjRiZTE5YzVjYWQ2YjcyOGRjY2NjYzdmLi4yZDIyNDBj
ZmQ3OTYxOTMyNWNiMzg4MzJhNDdmMmVhNmYxNzc2MzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQ0LDIzICs2NDQsMTYgQEAgd2Via2l0Lm9yZy9i
LzE1MzgzMyBmYXN0L2V2ZW50cy9jYW4tY2xpY2stZWxlbWVudC1vbi1wYWdlLXdpdGgtYWN0aXZl
LXBzZXVkby1jbGEKIHdlYmtpdC5vcmcvYi8xNTM4MzMgZmFzdC9ldmVudHMvYmVmb3JlLWlucHV0
LXByZXZlbnQtaW5zZXJ0LXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
NTM4MzMgZmFzdC9ldmVudHMvaW5wdXQtZXZlbnQtaW5zZXJ0LXJlcGxhY2VtZW50Lmh0bWwgWyBT
a2lwIF0KIAotIyBTa2lwIHRlc3RzIGV4cGVjdGluZyBuYXRpdmUgSFRNTCBmb3JtIHZhbGlkYXRp
b24gcG9wb3Zlcgotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3Njcm9sbC1pbnRvLXZp
ZXctYW5kLXNob3ctdmFsaWRhdGlvbi1tZXNzYWdlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcv
Yi8xNjc1NzkgZmFzdC9mb3Jtcy9uYXZpZ2F0aW9uLWRpc21pc3Nlcy12YWxpZGF0aW9uLWJ1YmJs
ZXMuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRp
b24tYnViYmxlLWRpc2FwcGVhcnMtd2hlbi1pbnB1dC1kZXRhY2hlZC5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1idWJibGUtZGlzYXBwZWFy
cy13aGVuLWlucHV0LW1vdmVkLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFz
dC9mb3Jtcy92YWxpZGF0aW9uLWJ1YmJsZS1kaXNhcHBlYXJzLXdoZW4taW5wdXQtbm8tbG9uZ2Vy
LXZpc2libGUuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3Zh
bGlkYXRpb24tY3VzdG9tLW1lc3NhZ2UuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3
OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1kZXRhY2hlZC1pZnJhbWUuaHRtbCBbIFNr
aXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1k
ZXRhY2hlZC1pZnJhbWUyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9m
b3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2VzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1
NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLWJ1YmJsZS1lc2NhcGUta2V5LWRpc21pc3MuaHRtbCBb
IFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2Fn
ZS1taW5pbXVtLWZvbnQtc2l6ZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZh
c3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLWNoZWNrYm94Lmh0bWwgWyBTa2lwIF0KLXdl
YmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tbGlzdGJv
eC5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlv
bi1tZXNzYWdlLW9uLW1lbnVsaXN0Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1Nzkg
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tcmFkaW8uaHRtbCBbIFNraXAgXQotd2Vi
a2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1s
IFsgU2tpcCBdCisjIFRoZXNlIHRlc3RzIHRlc3QgdGhlIFNoYWRvdyBET00gYmFzZWQgSFRNTCBm
b3JtIHZhbGlkYXRpb24gVUkgYnV0IEdUSyBXSzIgaXMgdXNpbmcgbmF0aXZlIGRpYWxvZ3MgaW5z
dGVhZC4KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLWxpc3Rib3guaHRtbCBbIFNr
aXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tbWVudWxpc3QuaHRtbCBbIFNr
aXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tcmFkaW8uaHRtbCBbIFNraXAg
XQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tY2hlY2tib3guaHRtbCBbIFNraXAg
XQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tcmFuZ2UuaHRtbCBbIFNraXAgXQor
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtY2xvbmUuaHRtbCBbIFNraXAgXQorZmFzdC9m
b3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtaW4tcmVsYXRpdmUtYm9keS5odG1sIFsgU2tpcCBdCitm
YXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1hcHBlYXJhbmNlLmh0bWwgWyBTa2lwIF0KK2Zh
c3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLXRleHRhcmVhLmh0bWwgWyBTa2lwIF0KIAog
d2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvVzNDLVNWRy0xLjEvdGV4dC1hbHRnbHlwaC0wMS1iLnN2
ZyBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvY3VzdG9tL2FsdGdseXBoLnN2
ZyBbIEZhaWx1cmUgXQpAQCAtOTI3LDggKzkyMCw2IEBAIHdlYmtpdC5vcmcvYi8xNTI2NDIgaHR0
cC90ZXN0cy9taXNjL2RldGFjaGVkLWZyYW1lLWNvbnNvbGUuaHRtbCBbIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMTg4NDA2IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXIuaHRtbCBbIENy
YXNoIF0KIAotd2Via2l0Lm9yZy9iLzE5MTg4MiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2Fn
ZS1pbi1yZWxhdGl2ZS1ib2R5Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQub3JnL2Iv
MTk2Nzk5IGltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1jcmFzaC1kb2N1bWVu
dC1kaXNwb3NhbC5odG1sIFsgQ3Jhc2ggXQogCiB3ZWJraXQub3JnL2IvMTIwODM5IGFuaW1hdGlv
bnMvY3Jvc3MtZmFkZS1iYWNrZ3JvdW5kLWltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIENy
YXNoIF0KQEAgLTEwNjYsOCArMTA1Nyw2IEBAIHdlYmtpdC5vcmcvYi8xOTcyNTYgaHR0cC90ZXN0
cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLUFMTE9XRUQtbW9kYWxzLmh0bWwgWyBDCiAKIHdl
YmtpdC5vcmcvYi8xNzA0ODQgc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0
bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzIwMjIzMiBmYXN0L2Zvcm1zL3ZhbGlkYXRp
b24tbWVzc2FnZS1hcHBlYXJhbmNlLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIw
ODgwOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9XT0ZGMi9ibG9ja3MtZXh0
cmFuZW91cy1kYXRhLTAwMS54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8y
MDg4MDkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvV09GRjIvYmxvY2tzLWV4
dHJhbmVvdXMtZGF0YS0wMDIueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MjA4ODA5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL1dPRkYyL2Jsb2Nrcy1l
eHRyYW5lb3VzLWRhdGEtMDAzLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtMTc0MCw4ICsx
NzI5LDYgQEAgd2Via2l0Lm9yZy9iLzE5MTY4OCBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9v
dmVybGFwLXRyYW5zZm9ybXMuaHRtbCBbIEZhaWx1cmUKIHdlYmtpdC5vcmcvYi8xOTE2ODggY29t
cG9zaXRpbmcvb3ZlcmZsb3cvY2xpcC1kZXNjZW5kZW50cy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTkxNjg4IGNvbXBvc2l0aW5nL3JlcGFpbnQvYWJzb2x1dGUtcGFpbnRlZC1pbnRv
LWNvbXBvc2l0ZWQtYW5jZXN0b3IuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTkx
ODgyIGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLXJhbmdlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xOTE4ODIgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24t
dGV4dGFyZWEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MTg4MiBmYXN0L2Zvcm1z
L2F1dG8tZmlsbC1idXR0b24vaW5wdXQtY3JlZGl0LWNhcmQtYXV0by1maWxsLWJ1dHRvbi5odG1s
IFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xOTE4ODUgZmFzdC9pbmxpbmUvc2ltcGxlLWlu
bGluZS1pbmZsb3ctcG9zaXRpb25lZC5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449635</attachid>
            <date>2022-01-20 20:13:21 -0800</date>
            <delta_ts>2022-01-21 15:38:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167579-20220120231321.patch</filename>
            <type>text/plain</type>
            <size>22751</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NWExYzZhNDFjMDQ5NWZjM2I3ODQwOTg3MDZmNDFjMzM2NDBjNTU1Li41YjVkNTE0ODQ2NWY1YjYy
NjQzZmEwZWFiNjZlYjNmNWViZjZlYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMi0wMS0yMCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgW0dUS10gV1RSOiBOYXRpdmUgSFRNTCBmb3JtIHZhbGlkYXRpb24gcG9w
b3ZlciBpcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjc1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGNoYW5nZSBlbmFibGVzIGZvcm0tdmFsaWRhdGlvbi1yZWxhdGVk
IHRlc3RzLiBUbyB0aGlzIGVuZCwgdHdvIEFQSXMgY2FsbGVkCisgICAgICAgIG92ZXJyaWRlUHJl
ZmVyZW5jZSBhbmQgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGFyZSBhZGRlZCB0byBVSVNj
cmlwdENvbnRyb2xsZXIuCisKKyAgICAgICAgVGhlIG5ldyBBUEkgbmVlZHMgc29tZSBwcml2YXRl
IGludGVyZmFjZSBvZiBKYXZhU2NyaXB0Q29yZSBzbyB3ZSBzdXBwcmVzcworICAgICAgICBjb21w
aWxlciBjb21wbGFpbnRzIHRoYXQgaGFwcGVuIHdoZW4gYWNjZXNzaW5nIEpTQyBoZWFkZXJzIGRp
cmVjdGx5IGluIHRoZSB0ZXN0IHJ1bm5lci4KKworICAgICAgICAqIEFQSS9nbGliL0pTQ0NsYXNz
Lmg6CisgICAgICAgICogQVBJL2dsaWIvSlNDQ29udGV4dC5oOgorICAgICAgICAqIEFQSS9nbGli
L0pTQ0RlZmluZXMuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NFeGNlcHRpb24uaDoKKyAgICAg
ICAgKiBBUEkvZ2xpYi9KU0NWYWx1ZS5oOgorICAgICAgICAqIEFQSS9nbGliL0pTQ1ZpcnR1YWxN
YWNoaW5lLmg6CisKIDIwMjItMDEtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgYysrMmEgaW5zdGVhZCBvZiBnbnUrKzJhIGZvciBD
b2NvYSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmY3MjdmMDlmNTUxYWFmODg1OTU2NzMzODc2NTEyZWMw
ZWMwNjUxYS4uMGY1MDJjYzcyM2ZiYjBjY2RhMDc2YTQ2MDMxODM1MTlhOWM5ZjhjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMi0wMS0yMCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9r
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gV1RSOiBOYXRpdmUgSFRNTCBmb3JtIHZhbGlk
YXRpb24gcG9wb3ZlciBpcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBlbmFibGVzIGZvcm0tdmFsaWRhdGlv
bi1yZWxhdGVkIHRlc3RzLiBUbyB0aGlzIGVuZCwgdHdvIEFQSXMgY2FsbGVkCisgICAgICAgIG92
ZXJyaWRlUHJlZmVyZW5jZSBhbmQgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGFyZSBhZGRl
ZCB0byBVSVNjcmlwdENvbnRyb2xsZXIuCisKKyAgICAgICAgV2ViS2l0V2ViVmlld0Jhc2UgaW1w
bGVtZW50cyBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gZm9yIFVJU2NyaXB0Q29udHJvbGxl
cgorICAgICAgICBuZWNlc3NhcnkgZm9yIHdlYmtpdCB0ZXN0cy4gSXQgcmV0dXJucyBhIGZvbnQg
c2l6ZSBhbmQgYW4gYWN0dWFsIG1lc3NhZ2Ugb2YgYSB2YWxpZGF0aW9uCisgICAgICAgIGJ1YmJs
ZSBpbiB0aGUgZGljdGlvbmFyeSBmb3JtYXQuIEZvciBvdmVycmlkZVByZWZlcmVuY2UsIHdlIGRp
cmVjdGx5IGNhbGwgV0tQcmVmZXJlbmNlIEFQSQorICAgICAgICBpbiBXS1ZpZXcuY3BwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIHRoaXMgY2hhbmdlIGlzIHRoZSBlbmFibGVyIG9mIGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3Bw
OgorICAgICAgICAoV0tWaWV3U2V0TWluaW11bUZvbnRTaXplKToKKyAgICAgICAgKFdLVmlld0Nv
bnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0
ay9XS1ZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlcklu
dGVyZmFjZUl0ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZS5oOgorCiAyMDIyLTAxLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgbmF0aXZlIGZvcm0gdmFsaWRhdGlv
biBidWJibGVzIGZvciBHVEs0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDQ2xhc3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDbGFz
cy5oCmluZGV4IDg3NzQxOTY0ZWZhZmY5ODE0NTUyZTVjMDc1NjI3ODIyNjBlZDY1MDguLjk2Y2Nl
NDZmNzY4MWUwNjkzYzNhYWZmZjcwOWY3NGUxNjMxYjQ5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWYgIWRlZmluZWQoX19KU0NfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFU
SU9OKQorI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01Q
SUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VC
S0lUX1RFU1RfUlVOTkVSX0NPTVBJTEFUSU9OKQogI2Vycm9yICJPbmx5IDxqc2MvanNjLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmgKaW5kZXggMDY3M2ZmYTU4OWJlNTY1MDI0NTE0MjA2YTQ3
NWI3ZDY0NTEyMDEzMS4uOWU3NDFiZTlhOWQ1NTEyMmMwYzUxYzUxZjMzMmYzMTBmZDM0NTNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5oCkBAIC0xNyw3
ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWYgIWRl
ZmluZWQoX19KU0NfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURF
X18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUX1RFU1RfUlVOTkVSX0NPTVBJTEFUSU9OKQogI2Vy
cm9yICJPbmx5IDxqc2MvanNjLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0RlZmluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NEZWZpbmVzLmgKaW5kZXggYzNm
ZmEyYjRmZGJhOWZlZWYyNjU5NzA2ZmFjZGVlZmFmYWNjOTk2Ni4uYTgyYzdmMDhmZDgxYjFjYjAz
NTNlNTZhZWNkMjY0NWI2NDhiYzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9nbGliL0pTQ0RlZmluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDRGVmaW5lcy5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKEpTQ19DT01QSUxBVElPTikKKyNpZiAhZGVmaW5lZChfX0pTQ19IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChKU0NfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKFdFQktJVF9URVNUX1JVTk5F
Ul9DT01QSUxBVElPTikKICNlcnJvciAiT25seSA8anNjL2pzYy5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NFeGNlcHRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9K
U0NFeGNlcHRpb24uaAppbmRleCA0NWViMGFhYzk1NjQ5YmQxMGY0YzA5Mzc5ZWU3OWExZDg3NzY2
YmFhLi4xMGE1YzMxMTI2MDhjOWU5MWI5YzJhMzM2YTUyMDEzYzgyMGEyN2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDRXhjZXB0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0V4Y2VwdGlvbi5oCkBAIC0xNyw3ICsxNyw3
IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWYgIWRlZmluZWQo
X19KU0NfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5l
ZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKEpTQ19DT01QSUxBVElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElP
TikgJiYgIWRlZmluZWQoV0VCS0lUX1RFU1RfUlVOTkVSX0NPTVBJTEFUSU9OKQogI2Vycm9yICJP
bmx5IDxqc2MvanNjLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuaAppbmRleCA1ZjY1NDk3MjViMGVl
ZjY0ZmZlZjIwNjFkNDYzZmNhODczNmJlYmFkLi5lOTkyYjFkY2U2MTM2YzJlZmIxM2Y3N2JmYjY4
ZDA2M2UwOTk3ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUu
aApAQCAtMTcsNyArMTcsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotI2lmICFkZWZpbmVkKF9fSlNDX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEpTQ19DT01QSUxB
VElPTikgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNpZiAhZGVmaW5lZChfX0pT
Q19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChKU0NfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKFdF
QktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKFdFQktJVF9URVNUX1JVTk5FUl9DT01QSUxB
VElPTikKICNlcnJvciAiT25seSA8anNjL2pzYy5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHku
IgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9K
U0NWaXJ0dWFsTWFjaGluZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1Zp
cnR1YWxNYWNoaW5lLmgKaW5kZXggMDgzYzZhOTM0MmE2OGY2ODM0ZmYxZTEzYzY3N2YwYzM4Njhk
ZGFmNC4uNmI4Zjk5YmE0YzdkZmMxNzA1Y2EwOGU2YTY1NDExMmY1ZWU3MTkwZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmgKQEAg
LTE3LDcgKzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNp
ZiAhZGVmaW5lZChfX0pTQ19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChKU0NfQ09NUElMQVRJT04p
ICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjaWYgIWRlZmluZWQoX19KU0NfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoSlNDX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVQy
X0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChXRUJLSVRfVEVTVF9SVU5ORVJfQ09NUElMQVRJT04p
CiAjZXJyb3IgIk9ubHkgPGpzYy9qc2MuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCmlu
ZGV4IDUwMWMxNjRjMDA5ZDJlN2I0YWYyMzViMmU3ODg3NDM3NWQ1N2Y1MzUuLmMzYTNlYTY1M2Qy
YzMzYzVlZjg3MjA2N2Y3NTNjYjM5ODEyZDQ4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiV0tW
aWV3LmgiCiAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cC5o
IgogI2luY2x1ZGUgIldLVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUuaCIKIApAQCAtNjMsMyArNjQsMTQgQEAgYm9vbCBXS1ZpZXdDb21wbGV0ZUJhY2tT
d2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdSZWYpCiB7CiAgICAgcmV0dXJuIHdlYmtpdFdl
YlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKHRvSW1wbCh2aWV3UmVmKSk7CiB9
CisKK3ZvaWQgV0tWaWV3U2V0TWluaW11bUZvbnRTaXplKFdLVmlld1JlZiB2aWV3UmVmLCBkb3Vi
bGUgZm9udFNpemUpCit7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJl
ZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFdLVmlld0dldFBhZ2Uodmlld1JlZikpKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzLCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oZm9udFNpemUpKTsKK30KKworR1ZhcmlhbnQqIFdLVmlld0NvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbShXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgY2hhciogdXNlckludGVy
ZmFjZUl0ZW0pCit7CisgICAgcmV0dXJuIHdlYmtpdFdlYlZpZXdCYXNlQ29udGVudHNPZlVzZXJJ
bnRlcmZhY2VJdGVtKHRvSW1wbCh2aWV3UmVmKSwgdXNlckludGVyZmFjZUl0ZW0pOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmgKaW5k
ZXggYWFmZDY1NzUzMjhlNDA5NzI2ZTNlMDFiMzhiYmIwNWJhMjIwZGJhMS4uZGNkMTFiYzAwYjdl
MzUxMjZjMTAwY2M3YTJjNjZiOGQ3NDJkNjk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oCkBAIC00MCw2ICs0MCwxMCBAQCBXS19F
WFBPUlQgYm9vbCBXS1ZpZXdCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdS
ZWYpOwogCiBXS19FWFBPUlQgYm9vbCBXS1ZpZXdDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3Rpbmco
V0tWaWV3UmVmIHZpZXdSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRNaW5pbXVtRm9u
dFNpemUoV0tWaWV3UmVmIHZpZXdSZWYsIGRvdWJsZSBmb250U2l6ZSk7CisKK1dLX0VYUE9SVCBH
VmFyaWFudCogV0tWaWV3Q29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdLVmlld1JlZiB2aWV3
UmVmLCBjb25zdCBjaGFyKiB1c2VySW50ZXJmYWNlSXRlbSk7CisKICNpZmRlZiBfX2NwbHVzcGx1
cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDU1OWE4OWJmYzAyNzllMTZhN2E3YjIzMjFkMGI4
OTMxZjIyNGQzMzIuLmRkNmQyYzViZDBkMjliOGRiYWU3NmM4ZmUxODhlMjdhYzYzMThkMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCkBAIC0xNjM4LDYgKzE2MzgsMjggQEAgYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNv
bXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UK
ICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK0dWYXJpYW50KiB3ZWJraXRXZWJWaWV3QmFzZUNvbnRl
bnRzT2ZVc2VySW50ZXJmYWNlSXRlbShXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNv
bnN0IGNoYXIqIHVzZXJJbnRlcmZhY2VJdGVtKQoreworICAgIGlmIChnX3N0cmNtcDAodXNlcklu
dGVyZmFjZUl0ZW0sICJ2YWxpZGF0aW9uQnViYmxlIikpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViVmlld0Jhc2UtPnByaXYtPnBhZ2VQcm94
eS5nZXQoKTsKKyAgICBhdXRvKiB2YWxpZGF0aW9uQnViYmxlID0gcGFnZS0+dmFsaWRhdGlvbkJ1
YmJsZSgpOworICAgIFN0cmluZyBtZXNzYWdlID0gdmFsaWRhdGlvbkJ1YmJsZSA/IHZhbGlkYXRp
b25CdWJibGUtPm1lc3NhZ2UoKSA6IGVtcHR5U3RyaW5nKCk7CisgICAgZG91YmxlIGZvbnRTaXpl
ID0gdmFsaWRhdGlvbkJ1YmJsZSA/IHZhbGlkYXRpb25CdWJibGUtPmZvbnRTaXplKCkgOiAwOwor
CisgICAgR1ZhcmlhbnRCdWlsZGVyIHN1YkJ1aWxkZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJf
aW5pdCgmc3ViQnVpbGRlciwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCk7CisgICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZzdWJCdWlsZGVyLCAie3N2fSIsICJtZXNzYWdlIiwgZ192YXJpYW50X25l
d19zdHJpbmcobWVzc2FnZS51dGY4KCkuZGF0YSgpKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJf
YWRkKCZzdWJCdWlsZGVyLCAie3N2fSIsICJmb250U2l6ZSIsIGdfdmFyaWFudF9uZXdfZG91Ymxl
KGZvbnRTaXplKSk7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKKyAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsKKyAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgdXNlckludGVyZmFjZUl0ZW0s
IGdfdmFyaWFudF9idWlsZGVyX2VuZCgmc3ViQnVpbGRlcikpOworCisgICAgcmV0dXJuIGdfdmFy
aWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7Cit9CisKIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRX
ZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCAvKiB4ICovLCBn
aW50IC8qIHkgKi8sIGdib29sZWFuIGtleWJvYXJkTW9kZSwgR3RrVG9vbHRpcCogdG9vbHRpcCkK
IHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1ZJRVdf
QkFTRSh3aWRnZXQpLT5wcml2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKaW5kZXggMTg3ZGY1ZTkyMjE3
MDk3NzY2YTk0YWQyMWVjNjMxMjczYTk3NjRmYS4uYjFjZjliN2RhY2JkNjY5M2JmYjgyMDNlMjk3
ODk1YTliMmM2MDA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCkBAIC05NSw2ICs5NSw4IEBAIFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyKiB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJl
Q29udHJvbGxlcihXZWJLaXRXZWJWCiBib29sIHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNrU3dp
cGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKik7CiBib29sIHdlYmtpdFdlYlZpZXdCYXNl
Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKik7CiAKK0dWYXJp
YW50KiB3ZWJraXRXZWJWaWV3QmFzZUNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShXZWJLaXRX
ZWJWaWV3QmFzZSosIGNvbnN0IGNoYXIqIHVzZXJJbnRlcmZhY2VJdGVtKTsKKwogdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdl
YlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlRGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXRXZWJWaWV3QmFzZSosIEFQSTo6TmF2
aWdhdGlvbiopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDVlMzdhZGJiZTRmMzY4YTg3MjAwYjc5MzdlZDE1YzE1MDBjMTI0ODMuLjBiNTUwMzZh
MDU3YzY2NWMwY2U0Y2I0ZmNkZmYyZGI4Mjk2NmFhMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMi0wMS0yMCAg
Q2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gV1RS
OiBOYXRpdmUgSFRNTCBmb3JtIHZhbGlkYXRpb24gcG9wb3ZlciBpcyBub3Qgc3VwcG9ydGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc1NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSBlbmFibGVzIGZvcm0tdmFsaWRhdGlvbi1yZWxhdGVkIHRlc3RzLiBUbyB0aGlzIGVuZCwgdHdv
IEFQSXMgY2FsbGVkCisgICAgICAgIG92ZXJyaWRlUHJlZmVyZW5jZSBhbmQgY29udGVudHNPZlVz
ZXJJbnRlcmZhY2VJdGVtIGFyZSBhZGRlZCB0byBVSVNjcmlwdENvbnRyb2xsZXIuCisKKyAgICAg
ICAgVUlTY3JpcHRDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSBjb25maWd1cmVzIHRoZSBt
aW5pbXVtIGZvbnQgc2l6ZSBvZiB0aGUgdmFsaWRhdGlvbiBidWJibGVzCisgICAgICAgIGFuZCBV
SVNjcmlwdENvbnRyb2xsZXIuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIHJldHVybnMgYW4g
YWN0dWFsIGJ1YmJsZSBtZXNzYWdlIGFsb25nIHdpdGggaXRzIGZvbnQgc2l6ZS4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKFdUUjo6
VUlTY3JpcHRDb250cm9sbGVyR3RrOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAoV1RS
Ojp0b0pTT05PYmplY3QpOgorICAgICAgICAoV1RSOjp1aVNjcmlwdENvbnRyb2xsZXJWYWxpZGF0
aW9uQnViYmxlVG9KU09OKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyR3RrOjpj
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5oOgorCiAyMDIyLTAxLTE4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgV2Vi
S2l0U3dpZnQgd2hlbiBidWlsZGluZyB3aXRoIG1ha2Ugb3IgYnVpbGQtd2Via2l0CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA0NGViYmMzMDAzMzY5MmYxMzU0
M2ZkYjUwYTg2YzkyMWRlY2Q2YTk0Li43NDE4Nzc3YmU2MTE3YTNiN2EwM2Y4NzkwY2FlZjhjZTMz
MTE1OTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTY1
LDQgKzY1LDUgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0lO
Q0xVREVfRElSRUNUT1JJRVMKIGFkZF9kZWZpbml0aW9ucygKICAgICAtREZPTlRTX0NPTkZfRElS
PSIke1RPT0xTX0RJUn0vV2ViS2l0VGVzdFJ1bm5lci9ndGsvZm9udHMiCiAgICAgLURUT1BfTEVW
RUxfRElSPSIke0NNQUtFX1NPVVJDRV9ESVJ9IgorICAgIC1EV0VCS0lUX1RFU1RfUlVOTkVSX0NP
TVBJTEFUSU9OCiApCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNj
cmlwdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3Jp
cHRDb250cm9sbGVyR3RrLmNwcAppbmRleCAyOGU4YTdiYmQ5M2NlYzliODNjMWJmNzdiYmRhMjBl
NTk3YmFlYWJjLi41OGJmODQxNTI4OTEzZTc4YzlmNDMzNzczNGI3MmJjMjkzZmIwYTM0IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0
ay5jcHAKQEAgLTI4LDEyICsyOCwxNiBAQAogCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9u
cy5oIgogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVUlTY3JpcHRDb250
ZXh0LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV0tUZXh0Q2hlY2tlckdMaWIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDxqc2MvSlNDQ29udGV4
dFByaXZhdGUuaD4KKyNpbmNsdWRlIDxqc2MvSlNDVmFsdWVQcml2YXRlLmg+CisjaW5jbHVkZSA8
d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2Ug
V1RSIHsKQEAgLTE2Miw0ICsxNjYsNTYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJHdGs6OmFk
ZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlckd0azo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIHByZWZl
cmVuY2UsIEpTU3RyaW5nUmVmIHZhbHVlKQoreworICAgIGlmICh0b1dURlN0cmluZyhwcmVmZXJl
bmNlKSAhPSAiV2ViS2l0TWluaW11bUZvbnRTaXplIikKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byogd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygp
LT5wbGF0Zm9ybVZpZXcoKTsKKyAgICBXS1ZpZXdTZXRNaW5pbXVtRm9udFNpemUod2ViVmlldywg
dG9XVEZTdHJpbmcodmFsdWUpLnRvRG91YmxlKCkpOworfQorCitzdGF0aWMgUmVmPEpTT046Ok9i
amVjdD4gdG9KU09OT2JqZWN0KEdWYXJpYW50KiB2YXJpYW50KQoreworICAgIFJlZjxKU09OOjpP
YmplY3Q+IGpzb25PYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworCisgICAgY29uc3Qg
Y2hhcioga2V5OworICAgIEdWYXJpYW50KiB2YWx1ZTsKKyAgICBHVmFyaWFudEl0ZXIgaXRlcjsK
KyAgICBnX3ZhcmlhbnRfaXRlcl9pbml0KCZpdGVyLCB2YXJpYW50KTsKKyAgICB3aGlsZSAoZ192
YXJpYW50X2l0ZXJfbG9vcCgmaXRlciwgInsmc3Z9IiwgJmtleSwgJnZhbHVlKSkgeworICAgICAg
ICBjb25zdCBHVmFyaWFudFR5cGUqIHR5cGUgPSBnX3ZhcmlhbnRfZ2V0X3R5cGUodmFsdWUpOwor
ICAgICAgICBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRf
VFlQRV9WQVJESUNUKSkKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChrZXksIHRv
SlNPTk9iamVjdCh2YWx1ZSkpOworICAgICAgICBlbHNlIGlmICh0eXBlICYmIGdfdmFyaWFudF90
eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1NUUklORykpCisgICAgICAgICAgICBqc29u
T2JqZWN0LT5zZXRTdHJpbmcoa2V5LCBnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0
cikpOworICAgICAgICBlbHNlIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUs
IEdfVkFSSUFOVF9UWVBFX0RPVUJMRSkpCisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXREb3Vi
bGUoa2V5LCBnX3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOworICAgIH0KKyAgICByZXR1cm4g
anNvbk9iamVjdDsKK30KKworc3RhdGljIEpTQ1ZhbHVlKiB1aVNjcmlwdENvbnRyb2xsZXJWYWxp
ZGF0aW9uQnViYmxlVG9KU09OKEdWYXJpYW50KiBjb250ZW50RGljdGlvbmFyeSwgVUlTY3JpcHRD
b250ZXh0KiBjb250ZXh0KQoreworICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNjQ29udGV4dCA9
IGpzY0NvbnRleHRHZXRPckNyZWF0ZShjb250ZXh0LT5qc0NvbnRleHQoKSk7CisgICAgYXV0byBq
c29uT2JqZWN0ID0gdG9KU09OT2JqZWN0KGNvbnRlbnREaWN0aW9uYXJ5KTsKKyAgICByZXR1cm4g
anNjX3ZhbHVlX25ld19mcm9tX2pzb24oanNjQ29udGV4dC5nZXQoKSwganNvbk9iamVjdC0+dG9K
U09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cit9CisKK0pTT2JqZWN0UmVmIFVJU2NyaXB0Q29u
dHJvbGxlckd0azo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpTU3RyaW5nUmVmIGludGVy
ZmFjZUl0ZW0pIGNvbnN0Cit7CisgICAgYXV0byogd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKworICAgIEdWYXJpYW50
KiBjb250ZW50RGljdGlvbmFyeSA9IFdLVmlld0NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSh3
ZWJWaWV3LCB0b1dURlN0cmluZyhpbnRlcmZhY2VJdGVtKS51dGY4KCkuZGF0YSgpKTsKKworICAg
IEdSZWZQdHI8SlNDQ29udGV4dD4ganNjQ29udGV4dCA9IGpzY0NvbnRleHRHZXRPckNyZWF0ZSht
X2NvbnRleHQtPmpzQ29udGV4dCgpKTsKKyAgICBKU0NDbGFzcyoganNjQ2xhc3MgPSBqc2NfY29u
dGV4dF9yZWdpc3Rlcl9jbGFzcyhqc2NDb250ZXh0LmdldCgpLCAiVmFsaWRhdGlvbkJ1YmJsZSIs
IG51bGxwdHIsIG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KCtbXShH
VmFyaWFudCogY29udGVudERpY3Rpb25hcnkpIHsKKyAgICAgICAgZ192YXJpYW50X3VucmVmKGNv
bnRlbnREaWN0aW9uYXJ5KTsKKyAgICB9KSk7CisgICAganNjX2NsYXNzX2FkZF9tZXRob2QoanNj
Q2xhc3MsICJ0b0pTT04iLCBHX0NBTExCQUNLKHVpU2NyaXB0Q29udHJvbGxlclZhbGlkYXRpb25C
dWJibGVUb0pTT04pLCBtX2NvbnRleHQsIG51bGxwdHIsIEpTQ19UWVBFX1ZBTFVFLCAwLCBHX1RZ
UEVfTk9ORSk7CisKKyAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc2NWYWx1ZSA9IGFkb3B0R1JlZihj
b250ZW50RGljdGlvbmFyeSA/IGpzY192YWx1ZV9uZXdfb2JqZWN0KGpzY0NvbnRleHQuZ2V0KCks
IGNvbnRlbnREaWN0aW9uYXJ5LCBqc2NDbGFzcykgOiBqc2NfdmFsdWVfbmV3X3VuZGVmaW5lZChq
c2NDb250ZXh0LmdldCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChtX2NvbnRleHQt
PmpzQ29udGV4dCgpLCBqc2NWYWx1ZUdldEpTVmFsdWUoanNjVmFsdWUuZ2V0KCkpLCBudWxscHRy
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5oCmluZGV4IGVjYWYwYTgyN2U5NDBhZTRkMGU3
NGZlNTY3MTRjYzI3OGIzZTA3OGMuLjBmYTFkYzVmZWFlYmVjMTAxN2IxNmY3MzNiZmQwZGMxYjk1
MjM2YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29u
dHJvbGxlckd0ay5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29u
dHJvbGxlckd0ay5oCkBAIC01Miw2ICs1MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaW11bGF0
ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbihKU1ZhbHVlUmVmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHJlbW92ZVZpZXdGcm9tV2luZG93KEpTVmFsdWVSZWYpIG92ZXJyaWRl
OwogICAgIHZvaWQgYWRkVmlld1RvV2luZG93KEpTVmFsdWVSZWYpIG92ZXJyaWRlOworCitwcml2
YXRlOgorICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1Jl
Zikgb3ZlcnJpZGU7CisgICAgSlNPYmplY3RSZWYgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
KEpTU3RyaW5nUmVmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFmZmZmMWVhYTA0MDBjMjQ3NGUzZjRlN2Q4MTQ2YjEyODYxYWRhMTcuLmRkNTFiODIy
ODc5MTAyN2VkMWZkY2ZlOGQwM2IzM2IzM2JkYzgyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMi0wMS0yMCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0dUS10gV1RSOiBOYXRpdmUgSFRNTCBmb3JtIHZhbGlkYXRpb24gcG9wb3ZlciBpcyBub3Qg
c3VwcG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjc1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGNoYW5nZSBlbmFibGVzIGZvcm0tdmFsaWRhdGlvbi1yZWxhdGVkIHRlc3RzLiBUbyB0
aGlzIGVuZCwgdHdvIEFQSXMgY2FsbGVkCisgICAgICAgIG92ZXJyaWRlUHJlZmVyZW5jZSBhbmQg
Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGFyZSBhZGRlZCB0byBVSVNjcmlwdENvbnRyb2xs
ZXIuCisKKyAgICAgICAgV2UgY29uZmlndXJlIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBvZiB0aGUg
dmFsaWRhdGlvbiBidWJibGVzIHZpYSBVSVNjcmlwdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlCisgICAgICAgIGFuZCByZXRyaWV2ZSBhIG1lc3NhZ2UgYW5kIGl0cyBmb250IHNpemUgdGhy
b3VnaCBVSVNjcmlwdENvbnRyb2xsZXIuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBmb3JtIHZhbGlk
YXRpb24gcmVsYXRlZCB0ZXN0cyB3ZSBjYW4gcGVyZm9ybSB3aXRoCisgICAgICAgICAgbmF0aXZl
IGJ1YmJsZSB3aWRnZXRzIGJ1dCBza2lwIG9uZXMgcmVsYXRlZCB0byBIVE1MLWJhc2VkIGZvcm0g
dmFsaWRhdGlvbiBhcyBDb2NvYS1iYXNlZCBwb3J0cyBkby4KKwogMjAyMi0wMS0xOCAgQXJjYWR5
IEdvbGRtaW50cy1PcmxvdiAgPGFnb2xkbWludHNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJ
Ql0gVXBkYXRlIHRlc3QgYmFzZWxpbmVzIGFmdGVyIHIyODgwNzAgYWxsb3dlZCBMRkMgaW50ZWdy
YXRpb24gdG8gd29yayB3aXRoIHRoZSBjb21wbGV4IHRleHQgcGF0aC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTI5NzY4NzI4ZmRmYmZiYzI0YmUxOWM1
Y2FkNmI3MjhkY2NjY2M3Zi4uMmQyMjQwY2ZkNzk2MTkzMjVjYjM4ODMyYTQ3ZjJlYTZmMTc3NjM0
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0NCwy
MyArNjQ0LDE2IEBAIHdlYmtpdC5vcmcvYi8xNTM4MzMgZmFzdC9ldmVudHMvY2FuLWNsaWNrLWVs
ZW1lbnQtb24tcGFnZS13aXRoLWFjdGl2ZS1wc2V1ZG8tY2xhCiB3ZWJraXQub3JnL2IvMTUzODMz
IGZhc3QvZXZlbnRzL2JlZm9yZS1pbnB1dC1wcmV2ZW50LWluc2VydC1yZXBsYWNlbWVudC5odG1s
IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTUzODMzIGZhc3QvZXZlbnRzL2lucHV0LWV2ZW50LWlu
c2VydC1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCiAKLSMgU2tpcCB0ZXN0cyBleHBlY3Rpbmcg
bmF0aXZlIEhUTUwgZm9ybSB2YWxpZGF0aW9uIHBvcG92ZXIKLXdlYmtpdC5vcmcvYi8xNjc1Nzkg
ZmFzdC9mb3Jtcy9zY3JvbGwtaW50by12aWV3LWFuZC1zaG93LXZhbGlkYXRpb24tbWVzc2FnZS5o
dG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvbmF2aWdhdGlvbi1k
aXNtaXNzZXMtdmFsaWRhdGlvbi1idWJibGVzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8x
Njc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLWJ1YmJsZS1kaXNhcHBlYXJzLXdoZW4taW5wdXQt
ZGV0YWNoZWQuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3Zh
bGlkYXRpb24tYnViYmxlLWRpc2FwcGVhcnMtd2hlbi1pbnB1dC1tb3ZlZC5odG1sIFsgU2tpcCBd
Ci13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1idWJibGUtZGlzYXBw
ZWFycy13aGVuLWlucHV0LW5vLWxvbmdlci12aXNpYmxlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5v
cmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLWN1c3RvbS1tZXNzYWdlLmh0bWwgWyBT
a2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Ut
ZGV0YWNoZWQtaWZyYW1lLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9m
b3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtZGV0YWNoZWQtaWZyYW1lMi5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlcy5odG1sIFsg
U2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1idWJibGUt
ZXNjYXBlLWtleS1kaXNtaXNzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFz
dC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtbWluaW11bS1mb250LXNpemUuaHRtbCBbIFNraXAg
XQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1j
aGVja2JveC5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFs
aWRhdGlvbi1tZXNzYWdlLW9uLWxpc3Rib3guaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2
NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1tZW51bGlzdC5odG1sIFsgU2tp
cCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9u
LXJhZGlvLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxp
ZGF0aW9uLW1lc3NhZ2UtY2xvbmUuaHRtbCBbIFNraXAgXQorIyBUaGVzZSB0ZXN0cyB0ZXN0IHRo
ZSBTaGFkb3cgRE9NIGJhc2VkIEhUTUwgZm9ybSB2YWxpZGF0aW9uIFVJIGJ1dCBHVEsgV0syIGlz
IHVzaW5nIG5hdGl2ZSBkaWFsb2dzIGluc3RlYWQuCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVz
c2FnZS1vbi1saXN0Ym94Lmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNz
YWdlLW9uLW1lbnVsaXN0Lmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNz
YWdlLW9uLXJhZGlvLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdl
LW9uLWNoZWNrYm94Lmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdl
LW9uLXJhbmdlLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNs
b25lLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWluLXJlbGF0
aXZlLWJvZHkuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtYXBw
ZWFyYW5jZS5odG1sIFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi10
ZXh0YXJlYS5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xMzcwOTYgc3ZnL1czQy1TVkct
MS4xL3RleHQtYWx0Z2x5cGgtMDEtYi5zdmcgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzcw
OTYgc3ZnL2N1c3RvbS9hbHRnbHlwaC5zdmcgWyBGYWlsdXJlIF0KQEAgLTkyNyw4ICs5MjAsNiBA
QCB3ZWJraXQub3JnL2IvMTUyNjQyIGh0dHAvdGVzdHMvbWlzYy9kZXRhY2hlZC1mcmFtZS1jb25z
b2xlLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE4ODQwNiBbIERlYnVnIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNl
dWRvLWNsYXNzZXMvZGlyLmh0bWwgWyBDcmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8xOTE4ODIgZmFz
dC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtaW4tcmVsYXRpdmUtYm9keS5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzE5Njc5OSBpbXBvcnRlZC9ibGluay9mYXN0L2Nzcy9m
aXJzdC1sZXR0ZXItY3Jhc2gtZG9jdW1lbnQtZGlzcG9zYWwuaHRtbCBbIENyYXNoIF0KIAogd2Vi
a2l0Lm9yZy9iLzEyMDgzOSBhbmltYXRpb25zL2Nyb3NzLWZhZGUtYmFja2dyb3VuZC1pbWFnZS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBDcmFzaCBdCkBAIC0xMDY2LDggKzEwNTcsNiBAQCB3ZWJr
aXQub3JnL2IvMTk3MjU2IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveGVkLWlmcmFtZS1BTExP
V0VELW1vZGFscy5odG1sIFsgQwogCiB3ZWJraXQub3JnL2IvMTcwNDg0IHN3aXBlL21haW4tZnJh
bWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sIFsgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8y
MDIyMzIgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtYXBwZWFyYW5jZS5odG1sIFsgRmFp
bHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMDg4MDkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvV09GRjIvYmxvY2tzLWV4dHJhbmVvdXMtZGF0YS0wMDEueGh0IFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA4ODA5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL1dPRkYyL2Jsb2Nrcy1leHRyYW5lb3VzLWRhdGEtMDAyLnhodCBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwODgwOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9XT0ZGMi9ibG9ja3MtZXh0cmFuZW91cy1kYXRhLTAwMy54aHQgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KQEAgLTE3NDAsOCArMTcyOSw2IEBAIHdlYmtpdC5vcmcvYi8xOTE2ODggY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1zLmh0bWwgWyBGYWlsdXJl
CiB3ZWJraXQub3JnL2IvMTkxNjg4IGNvbXBvc2l0aW5nL292ZXJmbG93L2NsaXAtZGVzY2VuZGVu
dHMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MTY4OCBjb21wb3NpdGluZy9yZXBh
aW50L2Fic29sdXRlLXBhaW50ZWQtaW50by1jb21wb3NpdGVkLWFuY2VzdG9yLmh0bWwgWyBGYWls
dXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5MTg4MiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2Fn
ZS1vbi1yYW5nZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTkxODgyIGZhc3QvZm9y
bXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLXRleHRhcmVhLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xOTE4ODIgZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LWNyZWRpdC1j
YXJkLWF1dG8tZmlsbC1idXR0b24uaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTkx
ODg1IGZhc3QvaW5saW5lL3NpbXBsZS1pbmxpbmUtaW5mbG93LXBvc2l0aW9uZWQuaHRtbCBbIEZh
aWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449703</attachid>
            <date>2022-01-21 15:39:03 -0800</date>
            <delta_ts>2022-01-26 03:20:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167579-20220121183903.patch</filename>
            <type>text/plain</type>
            <size>17002</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmNzI3ZjA5ZjU1MWFhZjg4
NTk1NjczMzg3NjUxMmVjMGVjMDY1MWEuLjEyNGM4ZTQ1MjU3ZjM3NTA5MmFkMWEzOWZmNzA5YjZh
ZDE2MjE3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDEtMjEgIENoYW5nU2Vv
ayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIFdUUjogTmF0aXZl
IEhUTUwgZm9ybSB2YWxpZGF0aW9uIHBvcG92ZXIgaXMgbm90IHN1cHBvcnRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NTc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZW5hYmxl
cyBmb3JtLXZhbGlkYXRpb24tcmVsYXRlZCB0ZXN0cy4gVG8gdGhpcyBlbmQsIHR3byBBUElzIGNh
bGxlZAorICAgICAgICBvdmVycmlkZVByZWZlcmVuY2UgYW5kIGNvbnRlbnRzT2ZVc2VySW50ZXJm
YWNlSXRlbSBhcmUgYWRkZWQgdG8gVUlTY3JpcHRDb250cm9sbGVyLgorCisgICAgICAgIFdlYktp
dFdlYlZpZXdCYXNlIGltcGxlbWVudHMgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGZvciBV
SVNjcmlwdENvbnRyb2xsZXIKKyAgICAgICAgbmVjZXNzYXJ5IGZvciB3ZWJraXQgdGVzdHMuIEl0
IHJldHVybnMgYSBmb250IHNpemUgYW5kIGFuIGFjdHVhbCBtZXNzYWdlIG9mIGEgdmFsaWRhdGlv
bgorICAgICAgICBidWJibGUgaW4gdGhlIGRpY3Rpb25hcnkgZm9ybWF0LiBGb3Igb3ZlcnJpZGVQ
cmVmZXJlbmNlLCB3ZSBkaXJlY3RseSBjYWxsIFdLUHJlZmVyZW5jZSBBUEkKKyAgICAgICAgaW4g
V0tWaWV3LmNwcAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGlzIGNoYW5nZSBpcyB0
aGUgZW5hYmxlciBvZiBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9ndGsvV0tWaWV3LmNwcDoKKyAgICAgICAgKFdLVmlld0NvbnRlbnRzT2ZVc2VySW50ZXJmYWNl
SXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorCiAyMDIy
LTAxLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
R1RLXSBJbXBsZW1lbnQgbmF0aXZlIGZvcm0gdmFsaWRhdGlvbiBidWJibGVzIGZvciBHVEs0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCmluZGV4IDUwMWMx
NjRjMDA5ZDJlN2I0YWYyMzViMmU3ODg3NDM3NWQ1N2Y1MzUuLjQ0NGUzZTgwM2E4Nzk2MmFiZTUw
NGUyNTViMjkxYzRhNzE3Y2IyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL2d0ay9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L2d0ay9XS1ZpZXcuY3BwCkBAIC02MywzICs2Myw4IEBAIGJvb2wgV0tWaWV3Q29tcGxldGVCYWNr
U3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKQogewogICAgIHJldHVybiB3ZWJraXRX
ZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyh0b0ltcGwodmlld1JlZikpOwog
fQorCitHVmFyaWFudCogV0tWaWV3Q29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdLVmlld1Jl
ZiB2aWV3UmVmLCBjb25zdCBjaGFyKiB1c2VySW50ZXJmYWNlSXRlbSkKK3sKKyAgICByZXR1cm4g
d2Via2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0odG9JbXBsKHZpZXdS
ZWYpLCB1c2VySW50ZXJmYWNlSXRlbSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaAppbmRleCBhYWZkNjU3NTMyOGU0MDk3MjZlM2Uw
MWIzOGJiYjA1YmEyMjBkYmExLi5lMmQ0NmEzOWIwNTMzYWViYzg1NDU1Y2U2NjQzNjNiNGY2NmFk
YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQ
cml2YXRlLmgKQEAgLTQwLDYgKzQwLDggQEAgV0tfRVhQT1JUIGJvb2wgV0tWaWV3QmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsKIAogV0tfRVhQT1JUIGJvb2wgV0tW
aWV3Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsKIAorV0tf
RVhQT1JUIEdWYXJpYW50KiBXS1ZpZXdDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oV0tWaWV3
UmVmIHZpZXdSZWYsIGNvbnN0IGNoYXIqIHVzZXJJbnRlcmZhY2VJdGVtKTsKKwogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggNTU5YTg5YmZjMDI3OWUxNmE3YTdi
MjMyMWQwYjg5MzFmMjI0ZDMzMi4uZGQ2ZDJjNWJkMGQyOWI4ZGJhZTc2YzhmZTE4OGUyN2FjNjMx
OGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZS5jcHAKQEAgLTE2MzgsNiArMTYzOCwyOCBAQCBib29sIHdlYmtpdFdlYlZp
ZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJW
aWV3QmFzZQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorR1ZhcmlhbnQqIHdlYmtpdFdlYlZpZXdC
YXNlQ29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgY29uc3QgY2hhciogdXNlckludGVyZmFjZUl0ZW0pCit7CisgICAgaWYgKGdfc3RyY21w
MCh1c2VySW50ZXJmYWNlSXRlbSwgInZhbGlkYXRpb25CdWJibGUiKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJWaWV3QmFzZS0+cHJpdi0+
cGFnZVByb3h5LmdldCgpOworICAgIGF1dG8qIHZhbGlkYXRpb25CdWJibGUgPSBwYWdlLT52YWxp
ZGF0aW9uQnViYmxlKCk7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSB2YWxpZGF0aW9uQnViYmxlID8g
dmFsaWRhdGlvbkJ1YmJsZS0+bWVzc2FnZSgpIDogZW1wdHlTdHJpbmcoKTsKKyAgICBkb3VibGUg
Zm9udFNpemUgPSB2YWxpZGF0aW9uQnViYmxlID8gdmFsaWRhdGlvbkJ1YmJsZS0+Zm9udFNpemUo
KSA6IDA7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIgc3ViQnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRf
YnVpbGRlcl9pbml0KCZzdWJCdWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsKKyAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9hZGQoJnN1YkJ1aWxkZXIsICJ7c3Z9IiwgIm1lc3NhZ2UiLCBnX3Zh
cmlhbnRfbmV3X3N0cmluZyhtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBnX3ZhcmlhbnRf
YnVpbGRlcl9hZGQoJnN1YkJ1aWxkZXIsICJ7c3Z9IiwgImZvbnRTaXplIiwgZ192YXJpYW50X25l
d19kb3VibGUoZm9udFNpemUpKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyOworICAg
IGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1Qp
OworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCB1c2VySW50ZXJm
YWNlSXRlbSwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZzdWJCdWlsZGVyKSk7CisKKyAgICByZXR1
cm4gZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKK30KKwogc3RhdGljIGdib29sZWFu
IHdlYmtpdFdlYlZpZXdCYXNlUXVlcnlUb29sdGlwKEd0a1dpZGdldCogd2lkZ2V0LCBnaW50IC8q
IHggKi8sIGdpbnQgLyogeSAqLywgZ2Jvb2xlYW4ga2V5Ym9hcmRNb2RlLCBHdGtUb29sdGlwKiB0
b29sdGlwKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9X
RUJfVklFV19CQVNFKHdpZGdldCktPnByaXY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCAxODdk
ZjVlOTIyMTcwOTc3NjZhOTRhZDIxZWM2MzEyNzNhOTc2NGZhLi5iMWNmOWI3ZGFjYmQ2NjkzYmZi
ODIwM2UyOTc4OTVhOWIyYzYwMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTk1LDYgKzk1
LDggQEAgV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtpdFdlYlZpZXdCYXNlVmll
d0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlYKIGJvb2wgd2Via2l0V2ViVmlld0Jhc2VCZWdp
bkJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIGJvb2wgd2Via2l0V2Vi
Vmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsK
IAorR1ZhcmlhbnQqIHdlYmtpdFdlYlZpZXdCYXNlQ29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
KFdlYktpdFdlYlZpZXdCYXNlKiwgY29uc3QgY2hhciogdXNlckludGVyZmFjZUl0ZW0pOworCiB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUo
V2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiwg
QVBJOjpOYXZpZ2F0aW9uKik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNWUzN2FkYmJlNGYzNjhhODcyMDBiNzkzN2VkMTVjMTUwMGMxMjQ4My4u
NzNkNmZkOGNmZmIzMmYyNTAzMDYzYTZkYWQ2MmM2OTFhMmNjODJhMCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIy
LTAxLTIxICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBb
R1RLXSBXVFI6IE5hdGl2ZSBIVE1MIGZvcm0gdmFsaWRhdGlvbiBwb3BvdmVyIGlzIG5vdCBzdXBw
b3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NzU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGVuYWJsZXMgZm9ybS12YWxpZGF0aW9uLXJlbGF0ZWQgdGVzdHMuIFRvIHRoaXMg
ZW5kLCB0d28gQVBJcyBjYWxsZWQKKyAgICAgICAgb3ZlcnJpZGVQcmVmZXJlbmNlIGFuZCBjb250
ZW50c09mVXNlckludGVyZmFjZUl0ZW0gYXJlIGFkZGVkIHRvIFVJU2NyaXB0Q29udHJvbGxlci4K
KworICAgICAgICBVSVNjcmlwdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlIGNvbmZpZ3Vy
ZXMgdGhlIG1pbmltdW0gZm9udCBzaXplIG9mIHRoZSB2YWxpZGF0aW9uIGJ1YmJsZXMKKyAgICAg
ICAgYW5kIFVJU2NyaXB0Q29udHJvbGxlci5jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gcmV0
dXJucyBhbiBhY3R1YWwgYnViYmxlIG1lc3NhZ2UgYWxvbmcgd2l0aCBpdHMgZm9udCBzaXplCisg
ICAgICAgIGluIGEganNvbiBvYmplY3QuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6IE1ha2UgcGFsdGZvcm1QcmVmZXJlbmNlcyBwdWJsaWMuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcDoKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyR3RrOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAg
ICAgICAoV1RSOjp0b0pTT05PYmplY3QpOgorICAgICAgICAoV1RSOjp0b0pTU3RyaW5nUmVmKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyR3RrOjpjb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW0gY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0
Q29udHJvbGxlckd0ay5oOgorCiAyMDIyLTAxLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgV2ViS2l0U3dpZnQgd2hlbiBidWls
ZGluZyB3aXRoIG1ha2Ugb3IgYnVpbGQtd2Via2l0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKaW5kZXggNjAxMGQ4NGQwMjQxYWI2YzZlNzU2N2M1OTlmNWViM2VmZjUyNGE2
Ni4uNjlhMDc4NjlkYWFkOGQzODEwOGZmZDMzMjYzYTgyYTk5MzYzOWQ4MiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzcwLDYgKzM3MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdGFrZVZpZXdQb3J0U25hcHNob3QoKTsKIAorICAg
IFdLUHJlZmVyZW5jZXNSZWYgcGxhdGZvcm1QcmVmZXJlbmNlcygpOworCiBwcml2YXRlOgogICAg
IFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlUGFnZUNvbmZpZ3Vy
YXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRp
b25zJikgY29uc3Q7CkBAIC00MDcsNyArNDA5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRm
b3JtUnVuVW50aWwoYm9vbCYgZG9uZSwgV1RGOjpTZWNvbmRzIHRpbWVvdXQpOwogICAgIHZvaWQg
cGxhdGZvcm1EaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKTsKICAg
ICBXS0NvbnRleHRSZWYgcGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBw
bGF0Zm9ybVByZWZlcmVuY2VzKCk7CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQ
YXRoKCk7CiAgICAgdm9pZCBpbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNw
cAppbmRleCAyOGU4YTdiYmQ5M2NlYzliODNjMWJmNzdiYmRhMjBlNTk3YmFlYWJjLi5iOGEzNWFm
MjE4N2MyM2FlMzRlYWRjYTQzYmZmYTFkMDc3YWYyNDc0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKQEAgLTI4LDEyICsy
OCwxNSBAQAogCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlRl
c3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVUlTY3JpcHRDb250ZXh0LmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09w
YXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVGV4dENoZWNrZXJHTGliLmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+Cisj
aW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBu
YW1lc3BhY2UgV1RSIHsKQEAgLTE2Miw0ICsxNjUsNDcgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXJHdGs6OmFkZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQog
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckd0azo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5n
UmVmIHByZWZlcmVuY2UsIEpTU3RyaW5nUmVmIHZhbHVlKQoreworICAgIGlmICh0b1dURlN0cmlu
ZyhwcmVmZXJlbmNlKSAhPSAiV2ViS2l0TWluaW11bUZvbnRTaXplIikKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5w
bGF0Zm9ybVByZWZlcmVuY2VzKCk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1pbmltdW1Gb250U2l6
ZShwcmVmZXJlbmNlcywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvV1RGU3RyaW5nKHZhbHVlKS50
b0RvdWJsZSgpKSk7Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6T2JqZWN0PiB0b0pTT05PYmplY3Qo
R1ZhcmlhbnQqIHZhcmlhbnQpCit7CisgICAgUmVmPEpTT046Ok9iamVjdD4ganNvbk9iamVjdCA9
IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisKKyAgICBjb25zdCBjaGFyKiBrZXk7CisgICAgR1Zh
cmlhbnQqIHZhbHVlOworICAgIEdWYXJpYW50SXRlciBpdGVyOworICAgIGdfdmFyaWFudF9pdGVy
X2luaXQoJml0ZXIsIHZhcmlhbnQpOworICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZp
dGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7CisgICAgICAgIGNvbnN0IEdWYXJpYW50VHlw
ZSogdHlwZSA9IGdfdmFyaWFudF9nZXRfdHlwZSh2YWx1ZSk7CisgICAgICAgIGlmICh0eXBlICYm
IGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQorICAg
ICAgICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0KGtleSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7
CisgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19W
QVJJQU5UX1RZUEVfU1RSSU5HKSkKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhr
ZXksIGdfdmFyaWFudF9nZXRfc3RyaW5nKHZhbHVlLCBudWxscHRyKSk7CisgICAgICAgIGVsc2Ug
aWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfRE9V
QkxFKSkKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShrZXksIGdfdmFyaWFudF9n
ZXRfZG91YmxlKHZhbHVlKSk7CisgICAgfQorICAgIHJldHVybiBqc29uT2JqZWN0OworfQorCitz
dGF0aWMgSlNTdHJpbmdSZWYgdG9KU1N0cmluZ1JlZihHVmFyaWFudCogY29udGVudERpY3Rpb25h
cnkpCit7CisgICAgYXV0byBqc29uT2JqZWN0ID0gdG9KU09OT2JqZWN0KGNvbnRlbnREaWN0aW9u
YXJ5KTsKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoanNvbk9iamVj
dC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cit9CisKK0pTT2JqZWN0UmVmIFVJU2Ny
aXB0Q29udHJvbGxlckd0azo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpTU3RyaW5nUmVm
IGludGVyZmFjZUl0ZW0pIGNvbnN0Cit7CisgICAgYXV0byogd2ViVmlldyA9IFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICBHUmVm
UHRyPEdWYXJpYW50PiBjb250ZW50RGljdGlvbmFyeSA9IGFkb3B0R1JlZihXS1ZpZXdDb250ZW50
c09mVXNlckludGVyZmFjZUl0ZW0od2ViVmlldywgdG9XVEZTdHJpbmcoaW50ZXJmYWNlSXRlbSku
dXRmOCgpLmRhdGEoKSkpOworCisgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChtX2NvbnRleHQt
PmpzQ29udGV4dCgpLCBjb250ZW50RGljdGlvbmFyeSA/IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJp
bmcobV9jb250ZXh0LT5qc0NvbnRleHQoKSwgdG9KU1N0cmluZ1JlZihjb250ZW50RGljdGlvbmFy
eS5nZXQoKSkpIDogSlNWYWx1ZU1ha2VVbmRlZmluZWQobV9jb250ZXh0LT5qc0NvbnRleHQoKSks
IG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmgKaW5kZXggZWNhZjBhODI3ZTk0
MGFlNGQwZTc0ZmU1NjcxNGNjMjc4YjNlMDc4Yy4uMGZhMWRjNWZlYWViZWMxMDE3YjE2ZjczM2Jm
ZDBkYzFiOTUyMzZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlT
Y3JpcHRDb250cm9sbGVyR3RrLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlT
Y3JpcHRDb250cm9sbGVyR3RrLmgKQEAgLTUyLDYgKzUyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVS
ZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlVmlld0Zyb21XaW5kb3coSlNWYWx1ZVJlZikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRWaWV3VG9XaW5kb3coSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYsIEpT
U3RyaW5nUmVmKSBvdmVycmlkZTsKKyAgICBKU09iamVjdFJlZiBjb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW0oSlNTdHJpbmdSZWYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYWZmZmYxZWFhMDQwMGMyNDc0ZTNmNGU3ZDgxNDZiMTI4NjFhZGExNy4u
YzE0ZjVmNjQ3Mjk2NTc1MTRhM2RmZGM2MWExZWJhZjEzZTNmYThmOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIyLTAxLTIxICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4K
KworICAgICAgICBbR1RLXSBXVFI6IE5hdGl2ZSBIVE1MIGZvcm0gdmFsaWRhdGlvbiBwb3BvdmVy
IGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NzU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIGVuYWJsZXMgZm9ybS12YWxpZGF0aW9uLXJlbGF0ZWQgdGVz
dHMuIFRvIHRoaXMgZW5kLCB0d28gQVBJcyBjYWxsZWQKKyAgICAgICAgb3ZlcnJpZGVQcmVmZXJl
bmNlIGFuZCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gYXJlIGFkZGVkIHRvIFVJU2NyaXB0
Q29udHJvbGxlci4KKworICAgICAgICBXZSBjb25maWd1cmUgdGhlIG1pbmltdW0gZm9udCBzaXpl
IG9mIHRoZSB2YWxpZGF0aW9uIGJ1YmJsZXMgdmlhIFVJU2NyaXB0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UKKyAgICAgICAgYW5kIHJldHJpZXZlIGEgbWVzc2FnZSBhbmQgaXRzIGZvbnQg
c2l6ZSB0aHJvdWdoIFVJU2NyaXB0Q29udHJvbGxlci5jb250ZW50c09mVXNlckludGVyZmFjZUl0
ZW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIGZv
cm0gdmFsaWRhdGlvbiByZWxhdGVkIHRlc3RzIHdlIGNhbiBwZXJmb3JtIHdpdGgKKyAgICAgICAg
ICBuYXRpdmUgYnViYmxlIHdpZGdldHMgYnV0IHNraXAgb25lcyByZWxhdGVkIHRvIEhUTUwtYmFz
ZWQgZm9ybSB2YWxpZGF0aW9uIGFzIENvY29hLWJhc2VkIHBvcnRzIGRvLgorCiAyMDIyLTAxLTE4
ICBBcmNhZHkgR29sZG1pbnRzLU9ybG92ICA8YWdvbGRtaW50c0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBVcGRhdGUgdGVzdCBiYXNlbGluZXMgYWZ0ZXIgcjI4ODA3MCBhbGxvd2VkIExG
QyBpbnRlZ3JhdGlvbiB0byB3b3JrIHdpdGggdGhlIGNvbXBsZXggdGV4dCBwYXRoLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMjk3Njg3MjhmZGZiZmJj
MjRiZTE5YzVjYWQ2YjcyOGRjY2NjYzdmLi4yZDIyNDBjZmQ3OTYxOTMyNWNiMzg4MzJhNDdmMmVh
NmYxNzc2MzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNjQ0LDIzICs2NDQsMTYgQEAgd2Via2l0Lm9yZy9iLzE1MzgzMyBmYXN0L2V2ZW50cy9jYW4t
Y2xpY2stZWxlbWVudC1vbi1wYWdlLXdpdGgtYWN0aXZlLXBzZXVkby1jbGEKIHdlYmtpdC5vcmcv
Yi8xNTM4MzMgZmFzdC9ldmVudHMvYmVmb3JlLWlucHV0LXByZXZlbnQtaW5zZXJ0LXJlcGxhY2Vt
ZW50Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTM4MzMgZmFzdC9ldmVudHMvaW5wdXQt
ZXZlbnQtaW5zZXJ0LXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KIAotIyBTa2lwIHRlc3RzIGV4
cGVjdGluZyBuYXRpdmUgSFRNTCBmb3JtIHZhbGlkYXRpb24gcG9wb3Zlcgotd2Via2l0Lm9yZy9i
LzE2NzU3OSBmYXN0L2Zvcm1zL3Njcm9sbC1pbnRvLXZpZXctYW5kLXNob3ctdmFsaWRhdGlvbi1t
ZXNzYWdlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy9uYXZp
Z2F0aW9uLWRpc21pc3Nlcy12YWxpZGF0aW9uLWJ1YmJsZXMuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tYnViYmxlLWRpc2FwcGVhcnMtd2hl
bi1pbnB1dC1kZXRhY2hlZC5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3Qv
Zm9ybXMvdmFsaWRhdGlvbi1idWJibGUtZGlzYXBwZWFycy13aGVuLWlucHV0LW1vdmVkLmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLWJ1YmJs
ZS1kaXNhcHBlYXJzLXdoZW4taW5wdXQtbm8tbG9uZ2VyLXZpc2libGUuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tY3VzdG9tLW1lc3NhZ2Uu
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24t
bWVzc2FnZS1kZXRhY2hlZC1pZnJhbWUuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3
OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1kZXRhY2hlZC1pZnJhbWUyLmh0bWwgWyBT
a2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Vz
Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9u
LWJ1YmJsZS1lc2NhcGUta2V5LWRpc21pc3MuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2
NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1taW5pbXVtLWZvbnQtc2l6ZS5odG1s
IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNz
YWdlLW9uLWNoZWNrYm94Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9m
b3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tbGlzdGJveC5odG1sIFsgU2tpcCBdCi13ZWJraXQu
b3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLW1lbnVsaXN0Lmh0
bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1l
c3NhZ2Utb24tcmFkaW8uaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zv
cm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1sIFsgU2tpcCBdCisjIFRoZXNlIHRlc3Rz
IHRlc3QgdGhlIFNoYWRvdyBET00gYmFzZWQgSFRNTCBmb3JtIHZhbGlkYXRpb24gVUkgYnV0IEdU
SyBXSzIgaXMgdXNpbmcgbmF0aXZlIGRpYWxvZ3MgaW5zdGVhZC4KK2Zhc3QvZm9ybXMvdmFsaWRh
dGlvbi1tZXNzYWdlLW9uLWxpc3Rib3guaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0
aW9uLW1lc3NhZ2Utb24tbWVudWxpc3QuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0
aW9uLW1lc3NhZ2Utb24tcmFkaW8uaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9u
LW1lc3NhZ2Utb24tY2hlY2tib3guaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9u
LW1lc3NhZ2Utb24tcmFuZ2UuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1l
c3NhZ2UtY2xvbmUuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Ut
aW4tcmVsYXRpdmUtYm9keS5odG1sIFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVz
c2FnZS1hcHBlYXJhbmNlLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNz
YWdlLW9uLXRleHRhcmVhLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcv
VzNDLVNWRy0xLjEvdGV4dC1hbHRnbHlwaC0wMS1iLnN2ZyBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEzNzA5NiBzdmcvY3VzdG9tL2FsdGdseXBoLnN2ZyBbIEZhaWx1cmUgXQpAQCAtOTI3LDgg
KzkyMCw2IEBAIHdlYmtpdC5vcmcvYi8xNTI2NDIgaHR0cC90ZXN0cy9taXNjL2RldGFjaGVkLWZy
YW1lLWNvbnNvbGUuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg4NDA2IFsgRGVi
dWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVj
dG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXIuaHRtbCBbIENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzE5
MTg4MiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1pbi1yZWxhdGl2ZS1ib2R5Lmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvMTk2Nzk5IGltcG9ydGVkL2JsaW5rL2Zh
c3QvY3NzL2ZpcnN0LWxldHRlci1jcmFzaC1kb2N1bWVudC1kaXNwb3NhbC5odG1sIFsgQ3Jhc2gg
XQogCiB3ZWJraXQub3JnL2IvMTIwODM5IGFuaW1hdGlvbnMvY3Jvc3MtZmFkZS1iYWNrZ3JvdW5k
LWltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIENyYXNoIF0KQEAgLTEwNjYsOCArMTA1Nyw2
IEBAIHdlYmtpdC5vcmcvYi8xOTcyNTYgaHR0cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZy
YW1lLUFMTE9XRUQtbW9kYWxzLmh0bWwgWyBDCiAKIHdlYmtpdC5vcmcvYi8xNzA0ODQgc3dpcGUv
bWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0
Lm9yZy9iLzIwMjIzMiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1hcHBlYXJhbmNlLmh0
bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIwODgwOSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9XT0ZGMi9ibG9ja3MtZXh0cmFuZW91cy1kYXRhLTAwMS54aHQgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDg4MDkgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvV09GRjIvYmxvY2tzLWV4dHJhbmVvdXMtZGF0YS0wMDIueGh0IFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA4ODA5IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL1dPRkYyL2Jsb2Nrcy1leHRyYW5lb3VzLWRhdGEtMDAzLnhodCBb
IEltYWdlT25seUZhaWx1cmUgXQpAQCAtMTc0MCw4ICsxNzI5LDYgQEAgd2Via2l0Lm9yZy9iLzE5
MTY4OCBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybXMuaHRtbCBb
IEZhaWx1cmUKIHdlYmtpdC5vcmcvYi8xOTE2ODggY29tcG9zaXRpbmcvb3ZlcmZsb3cvY2xpcC1k
ZXNjZW5kZW50cy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTkxNjg4IGNvbXBvc2l0
aW5nL3JlcGFpbnQvYWJzb2x1dGUtcGFpbnRlZC1pbnRvLWNvbXBvc2l0ZWQtYW5jZXN0b3IuaHRt
bCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTkxODgyIGZhc3QvZm9ybXMvdmFsaWRhdGlv
bi1tZXNzYWdlLW9uLXJhbmdlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xOTE4ODIg
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tdGV4dGFyZWEuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzE5MTg4MiBmYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQt
Y3JlZGl0LWNhcmQtYXV0by1maWxsLWJ1dHRvbi5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xOTE4ODUgZmFzdC9pbmxpbmUvc2ltcGxlLWlubGluZS1pbmZsb3ctcG9zaXRpb25lZC5o
dG1sIFsgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="475869"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="476267"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450084</attachid>
            <date>2022-01-26 16:58:04 -0800</date>
            <delta_ts>2022-01-26 22:17:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167579-20220126195803.patch</filename>
            <type>text/plain</type>
            <size>16863</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmNzI3ZjA5ZjU1MWFhZjg4
NTk1NjczMzg3NjUxMmVjMGVjMDY1MWEuLmY0ODU4OWU2ODhkMGVmNTM2Y2MyNTM3MTBkYmNhZGI0
MWY5NWNiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDEtMjYgIENoYW5nU2Vv
ayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIFdUUjogTmF0aXZl
IEhUTUwgZm9ybSB2YWxpZGF0aW9uIHBvcG92ZXIgaXMgbm90IHN1cHBvcnRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NTc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
ZW5hYmxlcyBmb3JtLXZhbGlkYXRpb24tcmVsYXRlZCB0ZXN0cy4gVG8gdGhpcyBlbmQsIHR3byBB
UElzIGNhbGxlZAorICAgICAgICBvdmVycmlkZVByZWZlcmVuY2UgYW5kIGNvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbSBhcmUgYWRkZWQgdG8gVUlTY3JpcHRDb250cm9sbGVyLgorCisgICAgICAg
IFdlYktpdFdlYlZpZXdCYXNlIGltcGxlbWVudHMgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
IGZvciBVSVNjcmlwdENvbnRyb2xsZXIKKyAgICAgICAgbmVjZXNzYXJ5IGZvciB3ZWJraXQgdGVz
dHMuIEl0IHJldHVybnMgYSBmb250IHNpemUgYW5kIGFuIGFjdHVhbCBtZXNzYWdlIG9mIGEgdmFs
aWRhdGlvbgorICAgICAgICBidWJibGUgaW4gdGhlIGRpY3Rpb25hcnkgZm9ybWF0LiBGb3Igb3Zl
cnJpZGVQcmVmZXJlbmNlLCB3ZSBkaXJlY3RseSBjYWxsIFdLUHJlZmVyZW5jZSBBUEkKKyAgICAg
ICAgaW4gV0tWaWV3LmNwcAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGlzIGNoYW5n
ZSBpcyB0aGUgZW5hYmxlciBvZiBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9ndGsvV0tWaWV3LmNwcDoKKyAgICAgICAgKFdLVmlld0NvbnRlbnRzT2ZVc2VySW50
ZXJmYWNlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgor
CiAyMDIyLTAxLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBbR1RLXSBJbXBsZW1lbnQgbmF0aXZlIGZvcm0gdmFsaWRhdGlvbiBidWJibGVzIGZvciBH
VEs0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCmluZGV4
IDUwMWMxNjRjMDA5ZDJlN2I0YWYyMzViMmU3ODg3NDM3NWQ1N2Y1MzUuLjQ0NGUzZTgwM2E4Nzk2
MmFiZTUwNGUyNTViMjkxYzRhNzE3Y2IyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL2d0ay9XS1ZpZXcuY3BwCkBAIC02MywzICs2Myw4IEBAIGJvb2wgV0tWaWV3Q29tcGxl
dGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKQogewogICAgIHJldHVybiB3
ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyh0b0ltcGwodmlld1Jl
ZikpOwogfQorCitHVmFyaWFudCogV0tWaWV3Q29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdL
Vmlld1JlZiB2aWV3UmVmLCBjb25zdCBjaGFyKiB1c2VySW50ZXJmYWNlSXRlbSkKK3sKKyAgICBy
ZXR1cm4gd2Via2l0V2ViVmlld0Jhc2VDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0odG9JbXBs
KHZpZXdSZWYpLCB1c2VySW50ZXJmYWNlSXRlbSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaAppbmRleCBhYWZkNjU3NTMyOGU0MDk3
MjZlM2UwMWIzOGJiYjA1YmEyMjBkYmExLi5lMmQ0NmEzOWIwNTMzYWViYzg1NDU1Y2U2NjQzNjNi
NGY2NmFkYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsv
V0tWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S1ZpZXdQcml2YXRlLmgKQEAgLTQwLDYgKzQwLDggQEAgV0tfRVhQT1JUIGJvb2wgV0tWaWV3QmVn
aW5CYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsKIAogV0tfRVhQT1JUIGJv
b2wgV0tWaWV3Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsK
IAorV0tfRVhQT1JUIEdWYXJpYW50KiBXS1ZpZXdDb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0o
V0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IGNoYXIqIHVzZXJJbnRlcmZhY2VJdGVtKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggNTU5YTg5YmZjMDI3OWUx
NmE3YTdiMjMyMWQwYjg5MzFmMjI0ZDMzMi4uZGQ2ZDJjNWJkMGQyOWI4ZGJhZTc2YzhmZTE4OGUy
N2FjNjMxOGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTE2MzgsNiArMTYzOCwyOCBAQCBib29sIHdlYmtp
dFdlYlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNl
KiB3ZWJWaWV3QmFzZQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorR1ZhcmlhbnQqIHdlYmtpdFdl
YlZpZXdCYXNlQ29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSwgY29uc3QgY2hhciogdXNlckludGVyZmFjZUl0ZW0pCit7CisgICAgaWYgKGdf
c3RyY21wMCh1c2VySW50ZXJmYWNlSXRlbSwgInZhbGlkYXRpb25CdWJibGUiKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJWaWV3QmFzZS0+
cHJpdi0+cGFnZVByb3h5LmdldCgpOworICAgIGF1dG8qIHZhbGlkYXRpb25CdWJibGUgPSBwYWdl
LT52YWxpZGF0aW9uQnViYmxlKCk7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSB2YWxpZGF0aW9uQnVi
YmxlID8gdmFsaWRhdGlvbkJ1YmJsZS0+bWVzc2FnZSgpIDogZW1wdHlTdHJpbmcoKTsKKyAgICBk
b3VibGUgZm9udFNpemUgPSB2YWxpZGF0aW9uQnViYmxlID8gdmFsaWRhdGlvbkJ1YmJsZS0+Zm9u
dFNpemUoKSA6IDA7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIgc3ViQnVpbGRlcjsKKyAgICBnX3Zh
cmlhbnRfYnVpbGRlcl9pbml0KCZzdWJCdWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsK
KyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJnN1YkJ1aWxkZXIsICJ7c3Z9IiwgIm1lc3NhZ2Ui
LCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBnX3Zh
cmlhbnRfYnVpbGRlcl9hZGQoJnN1YkJ1aWxkZXIsICJ7c3Z9IiwgImZvbnRTaXplIiwgZ192YXJp
YW50X25ld19kb3VibGUoZm9udFNpemUpKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVy
OworICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZB
UkRJQ1QpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCB1c2Vy
SW50ZXJmYWNlSXRlbSwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZzdWJCdWlsZGVyKSk7CisKKyAg
ICByZXR1cm4gZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKK30KKwogc3RhdGljIGdi
b29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlUXVlcnlUb29sdGlwKEd0a1dpZGdldCogd2lkZ2V0LCBn
aW50IC8qIHggKi8sIGdpbnQgLyogeSAqLywgZ2Jvb2xlYW4ga2V5Ym9hcmRNb2RlLCBHdGtUb29s
dGlwKiB0b29sdGlwKQogewogICAgIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IFdF
QktJVF9XRUJfVklFV19CQVNFKHdpZGdldCktPnByaXY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRl
eCAxODdkZjVlOTIyMTcwOTc3NjZhOTRhZDIxZWM2MzEyNzNhOTc2NGZhLi5iMWNmOWI3ZGFjYmQ2
NjkzYmZiODIwM2UyOTc4OTVhOWIyYzYwMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTk1
LDYgKzk1LDggQEAgV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtpdFdlYlZpZXdC
YXNlVmlld0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlYKIGJvb2wgd2Via2l0V2ViVmlld0Jh
c2VCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIGJvb2wgd2Vi
a2l0V2ViVmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2ViVmlld0Jh
c2UqKTsKIAorR1ZhcmlhbnQqIHdlYmtpdFdlYlZpZXdCYXNlQ29udGVudHNPZlVzZXJJbnRlcmZh
Y2VJdGVtKFdlYktpdFdlYlZpZXdCYXNlKiwgY29uc3QgY2hhciogdXNlckludGVyZmFjZUl0ZW0p
OworCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWlu
RnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsK
IHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdC
YXNlKiwgQVBJOjpOYXZpZ2F0aW9uKik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNWUzN2FkYmJlNGYzNjhhODcyMDBiNzkzN2VkMTVjMTUwMGMx
MjQ4My4uY2RhMDczOTM5ZjFhZDA0YjQ0NDRiNzA2ZmVlNjVlODMwNDc4N2M2YiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDIyLTAxLTI2ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAg
ICAgICBbR1RLXSBXVFI6IE5hdGl2ZSBIVE1MIGZvcm0gdmFsaWRhdGlvbiBwb3BvdmVyIGlzIG5v
dCBzdXBwb3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NzU3OQorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIGVuYWJsZXMgZm9ybS12YWxpZGF0aW9uLXJlbGF0ZWQgdGVz
dHMuIFRvIHRoaXMgZW5kLCB0d28gQVBJcyBjYWxsZWQKKyAgICAgICAgb3ZlcnJpZGVQcmVmZXJl
bmNlIGFuZCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0gYXJlIGFkZGVkIHRvIFVJU2NyaXB0
Q29udHJvbGxlci4KKworICAgICAgICBVSVNjcmlwdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlIGNvbmZpZ3VyZXMgdGhlIG1pbmltdW0gZm9udCBzaXplIG9mIHRoZSB2YWxpZGF0aW9uIGJ1
YmJsZXMKKyAgICAgICAgYW5kIFVJU2NyaXB0Q29udHJvbGxlci5jb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW0gcmV0dXJucyBhbiBhY3R1YWwgYnViYmxlIG1lc3NhZ2UgYWxvbmcgd2l0aCBpdHMg
Zm9udCBzaXplCisgICAgICAgIGluIGEganNvbiBvYmplY3QuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6IE1ha2UgcGFsdGZvcm1QcmVmZXJlbmNlcyBwdWJs
aWMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyR3RrOjpvdmVycmlkZVByZWZl
cmVuY2UpOgorICAgICAgICAoV1RSOjp0b0pTT05PYmplY3QpOgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXJHdGs6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSBjb25zdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmg6CisK
IDIwMjItMDEtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBCdWlsZCBXZWJLaXRTd2lmdCB3aGVuIGJ1aWxkaW5nIHdpdGggbWFrZSBvciBi
dWlsZC13ZWJraXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2
MDEwZDg0ZDAyNDFhYjZjNmU3NTY3YzU5OWY1ZWIzZWZmNTI0YTY2Li42OWEwNzg2OWRhYWQ4ZDM4
MTA4ZmZkMzMyNjNhODJhOTkzNjM5ZDgyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC0zNzAsNiArMzcwLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwogICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB0YWtlVmlld1BvcnRTbmFwc2hvdCgpOwogCisgICAgV0tQcmVmZXJlbmNlc1JlZiBw
bGF0Zm9ybVByZWZlcmVuY2VzKCk7CisKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdl
Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0
aW9ucyYpOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY+IGdlbmVy
YXRlQ29udGV4dENvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdDsKQEAgLTQw
Nyw3ICs0MDksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1SdW5VbnRpbChib29sJiBk
b25lLCBXVEY6OlNlY29uZHMgdGltZW91dCk7CiAgICAgdm9pZCBwbGF0Zm9ybURpZENvbW1pdExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpOwogICAgIFdLQ29udGV4dFJlZiBwbGF0
Zm9ybUNvbnRleHQoKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHBsYXRmb3JtUHJlZmVyZW5jZXMo
KTsKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKTsKICAgICB2b2lkIGlu
aXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDI4ZThhN2JiZDkz
Y2VjOWI4M2MxYmY3N2JiZGEyMGU1OTdiYWVhYmMuLjlhYWNjN2FhNmM2MzMyNTg1NDg2YTg2MWVi
ZDFiOTIzNzBjM2UyY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJ
U2NyaXB0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
VUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcApAQCAtMjgsMTIgKzI4LDE1IEBACiAKICNpbmNsdWRl
ICJFdmVudFNlbmRlclByb3h5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5j
bHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJVSVNjcmlwdENvbnRleHQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV0tUZXh0Q2hlY2tlckdMaWIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tW
aWV3UHJpdmF0ZS5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3dGYvSlNPTlZh
bHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXVFIgewpAQCAt
MTYyLDQgKzE2NSw0MiBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlckd0azo6YWRkVmlld1RvV2lu
ZG93KEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250
cm9sbGVyR3RrOjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgSlNT
dHJpbmdSZWYgdmFsdWUpCit7CisgICAgaWYgKHRvV1RGU3RyaW5nKHByZWZlcmVuY2UpICE9ICJX
ZWJLaXRNaW5pbXVtRm9udFNpemUiKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHByZWZl
cmVuY2VzID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnBsYXRmb3JtUHJlZmVyZW5jZXMo
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWluaW11bUZvbnRTaXplKHByZWZlcmVuY2VzLCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4odG9XVEZTdHJpbmcodmFsdWUpLnRvRG91YmxlKCkpKTsKK30KKwor
c3RhdGljIFJlZjxKU09OOjpPYmplY3Q+IHRvSlNPTk9iamVjdChHVmFyaWFudCogdmFyaWFudCkK
K3sKKyAgICBSZWY8SlNPTjo6T2JqZWN0PiBqc29uT2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVh
dGUoKTsKKworICAgIGNvbnN0IGNoYXIqIGtleTsKKyAgICBHVmFyaWFudCogdmFsdWU7CisgICAg
R1ZhcmlhbnRJdGVyIGl0ZXI7CisgICAgZ192YXJpYW50X2l0ZXJfaW5pdCgmaXRlciwgdmFyaWFu
dCk7CisgICAgd2hpbGUgKGdfdmFyaWFudF9pdGVyX2xvb3AoJml0ZXIsICJ7JnN2fSIsICZrZXks
ICZ2YWx1ZSkpIHsKKyAgICAgICAgY29uc3QgR1ZhcmlhbnRUeXBlKiB0eXBlID0gZ192YXJpYW50
X2dldF90eXBlKHZhbHVlKTsKKyAgICAgICAgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1
YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCkpCisgICAgICAgICAgICBqc29uT2JqZWN0
LT5zZXRPYmplY3Qoa2V5LCB0b0pTT05PYmplY3QodmFsdWUpKTsKKyAgICAgICAgZWxzZSBpZiAo
dHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9TVFJJTkcp
KQorICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKGtleSwgZ192YXJpYW50X2dldF9z
dHJpbmcodmFsdWUsIG51bGxwdHIpKTsKKyAgICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3Zhcmlh
bnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9ET1VCTEUpKQorICAgICAgICAgICAg
anNvbk9iamVjdC0+c2V0RG91YmxlKGtleSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsK
KyAgICB9CisgICAgcmV0dXJuIGpzb25PYmplY3Q7Cit9CisKK0pTT2JqZWN0UmVmIFVJU2NyaXB0
Q29udHJvbGxlckd0azo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKEpTU3RyaW5nUmVmIGlu
dGVyZmFjZUl0ZW0pIGNvbnN0Cit7CisgICAgYXV0byogd2ViVmlldyA9IFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICBHUmVmUHRy
PEdWYXJpYW50PiBjb250ZW50RGljdGlvbmFyeSA9IGFkb3B0R1JlZihXS1ZpZXdDb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW0od2ViVmlldywgdG9XVEZTdHJpbmcoaW50ZXJmYWNlSXRlbSkudXRm
OCgpLmRhdGEoKSkpOworICAgIGF1dG8ganNvbk9iamVjdCA9IHRvSlNPTk9iamVjdChjb250ZW50
RGljdGlvbmFyeS5nZXQoKSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZVRvT2JqZWN0KG1fY29udGV4
dC0+anNDb250ZXh0KCksIGNvbnRlbnREaWN0aW9uYXJ5ID8gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0
cmluZyhtX2NvbnRleHQtPmpzQ29udGV4dCgpLCBjcmVhdGVKU1N0cmluZyhqc29uT2JqZWN0LT50
b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKS5nZXQoKSkgOiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChtX2NvbnRleHQtPmpzQ29udGV4dCgpKSwgbnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250
cm9sbGVyR3RrLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xs
ZXJHdGsuaAppbmRleCBlY2FmMGE4MjdlOTQwYWU0ZDBlNzRmZTU2NzE0Y2MyNzhiM2UwNzhjLi4w
ZmExZGM1ZmVhZWJlYzEwMTdiMTZmNzMzYmZkMGRjMWI5NTIzNmM0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuaApAQCAtNTIsNiAr
NTIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0dGluZ3ND
aGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVW
aWV3RnJvbVdpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZFZpZXdUb1dp
bmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIG92ZXJyaWRl
UHJlZmVyZW5jZShKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpIG92ZXJyaWRlOworICAgIEpTT2Jq
ZWN0UmVmIGNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShKU1N0cmluZ1JlZikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZmZmZjFlYWEwNDAwYzI0
NzRlM2Y0ZTdkODE0NmIxMjg2MWFkYTE3Li43YTc5OTkxZjcxNGQzM2U4NmJhYTQ0ZWFiMTliZjll
NzkxZmRlYWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMjYgIENoYW5nU2VvayBP
aCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIFdUUjogTmF0aXZlIEhU
TUwgZm9ybSB2YWxpZGF0aW9uIHBvcG92ZXIgaXMgbm90IHN1cHBvcnRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZW5h
YmxlcyBmb3JtLXZhbGlkYXRpb24tcmVsYXRlZCB0ZXN0cy4gVG8gdGhpcyBlbmQsIHR3byBBUElz
IGNhbGxlZAorICAgICAgICBvdmVycmlkZVByZWZlcmVuY2UgYW5kIGNvbnRlbnRzT2ZVc2VySW50
ZXJmYWNlSXRlbSBhcmUgYWRkZWQgdG8gVUlTY3JpcHRDb250cm9sbGVyLgorCisgICAgICAgIFdl
IGNvbmZpZ3VyZSB0aGUgbWluaW11bSBmb250IHNpemUgb2YgdGhlIHZhbGlkYXRpb24gYnViYmxl
cyB2aWEgVUlTY3JpcHRDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZQorICAgICAgICBhbmQg
cmV0cmlldmUgYSBtZXNzYWdlIGFuZCBpdHMgZm9udCBzaXplIHRocm91Z2ggVUlTY3JpcHRDb250
cm9sbGVyLmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgZm9ybSB2YWxpZGF0aW9uIHJlbGF0ZWQgdGVz
dHMgd2UgY2FuIHBlcmZvcm0gd2l0aAorICAgICAgICAgIG5hdGl2ZSBidWJibGUgd2lkZ2V0cyBi
dXQgc2tpcCBvbmVzIHJlbGF0ZWQgdG8gSFRNTC1iYXNlZCBmb3JtIHZhbGlkYXRpb24gYXMgQ29j
b2EtYmFzZWQgcG9ydHMgZG8uCisKIDIwMjItMDEtMTggIEFyY2FkeSBHb2xkbWludHMtT3Jsb3Yg
IDxhZ29sZG1pbnRzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFVwZGF0ZSB0ZXN0IGJh
c2VsaW5lcyBhZnRlciByMjg4MDcwIGFsbG93ZWQgTEZDIGludGVncmF0aW9uIHRvIHdvcmsgd2l0
aCB0aGUgY29tcGxleCB0ZXh0IHBhdGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGEyOTc2ODcyOGZkZmJmYmMyNGJlMTljNWNhZDZiNzI4ZGNjY2NjN2Yu
LjJkMjI0MGNmZDc5NjE5MzI1Y2IzODgzMmE0N2YyZWE2ZjE3NzYzNGEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDQsMjMgKzY0NCwxNiBAQCB3ZWJr
aXQub3JnL2IvMTUzODMzIGZhc3QvZXZlbnRzL2Nhbi1jbGljay1lbGVtZW50LW9uLXBhZ2Utd2l0
aC1hY3RpdmUtcHNldWRvLWNsYQogd2Via2l0Lm9yZy9iLzE1MzgzMyBmYXN0L2V2ZW50cy9iZWZv
cmUtaW5wdXQtcHJldmVudC1pbnNlcnQtcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzE1MzgzMyBmYXN0L2V2ZW50cy9pbnB1dC1ldmVudC1pbnNlcnQtcmVwbGFjZW1lbnQu
aHRtbCBbIFNraXAgXQogCi0jIFNraXAgdGVzdHMgZXhwZWN0aW5nIG5hdGl2ZSBIVE1MIGZvcm0g
dmFsaWRhdGlvbiBwb3BvdmVyCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvc2Nyb2xs
LWludG8tdmlldy1hbmQtc2hvdy12YWxpZGF0aW9uLW1lc3NhZ2UuaHRtbCBbIFNraXAgXQotd2Vi
a2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL25hdmlnYXRpb24tZGlzbWlzc2VzLXZhbGlkYXRp
b24tYnViYmxlcy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMv
dmFsaWRhdGlvbi1idWJibGUtZGlzYXBwZWFycy13aGVuLWlucHV0LWRldGFjaGVkLmh0bWwgWyBT
a2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLWJ1YmJsZS1k
aXNhcHBlYXJzLXdoZW4taW5wdXQtbW92ZWQuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2
NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tYnViYmxlLWRpc2FwcGVhcnMtd2hlbi1pbnB1dC1u
by1sb25nZXItdmlzaWJsZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3Qv
Zm9ybXMvdmFsaWRhdGlvbi1jdXN0b20tbWVzc2FnZS5odG1sIFsgU2tpcCBdCi13ZWJraXQub3Jn
L2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWRldGFjaGVkLWlmcmFtZS5o
dG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1t
ZXNzYWdlLWRldGFjaGVkLWlmcmFtZTIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3
OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZXMuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9y
Zy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tYnViYmxlLWVzY2FwZS1rZXktZGlzbWlz
cy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlv
bi1tZXNzYWdlLW1pbmltdW0tZm9udC1zaXplLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8x
Njc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tY2hlY2tib3guaHRtbCBbIFNr
aXAgXQotd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1v
bi1saXN0Ym94Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92
YWxpZGF0aW9uLW1lc3NhZ2Utb24tbWVudWxpc3QuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9i
LzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1yYWRpby5odG1sIFsgU2tp
cCBdCi13ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNs
b25lLmh0bWwgWyBTa2lwIF0KKyMgVGhlc2UgdGVzdHMgdGVzdCB0aGUgU2hhZG93IERPTSBiYXNl
ZCBIVE1MIGZvcm0gdmFsaWRhdGlvbiBVSSBidXQgR1RLIFdLMiBpcyB1c2luZyBuYXRpdmUgZGlh
bG9ncyBpbnN0ZWFkLgorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tbGlzdGJveC5o
dG1sIFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1tZW51bGlzdC5o
dG1sIFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1yYWRpby5odG1s
IFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1jaGVja2JveC5odG1s
IFsgU2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1yYW5nZS5odG1sIFsg
U2tpcCBdCitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1sIFsgU2tpcCBd
CitmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1pbi1yZWxhdGl2ZS1ib2R5Lmh0bWwgWyBT
a2lwIF0KK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWFwcGVhcmFuY2UuaHRtbCBbIFNr
aXAgXQorZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tdGV4dGFyZWEuaHRtbCBbIFNr
aXAgXQogCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9XM0MtU1ZHLTEuMS90ZXh0LWFsdGdseXBo
LTAxLWIuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9jdXN0b20vYWx0
Z2x5cGguc3ZnIFsgRmFpbHVyZSBdCkBAIC05MjcsOCArOTIwLDYgQEAgd2Via2l0Lm9yZy9iLzE1
MjY0MiBodHRwL3Rlc3RzL21pc2MvZGV0YWNoZWQtZnJhbWUtY29uc29sZS5odG1sIFsgRmFpbHVy
ZSBdCiAKIHdlYmtpdC5vcmcvYi8xODg0MDYgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2Rpci5o
dG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3JnL2IvMTkxODgyIGZhc3QvZm9ybXMvdmFsaWRhdGlv
bi1tZXNzYWdlLWluLXJlbGF0aXZlLWJvZHkuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0KIHdlYmtp
dC5vcmcvYi8xOTY3OTkgaW1wb3J0ZWQvYmxpbmsvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNyYXNo
LWRvY3VtZW50LWRpc3Bvc2FsLmh0bWwgWyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xMjA4Mzkg
YW5pbWF0aW9ucy9jcm9zcy1mYWRlLWJhY2tncm91bmQtaW1hZ2UuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgQ3Jhc2ggXQpAQCAtMTA2Niw4ICsxMDU3LDYgQEAgd2Via2l0Lm9yZy9iLzE5NzI1NiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3NhbmRib3hlZC1pZnJhbWUtQUxMT1dFRC1tb2RhbHMuaHRtbCBb
IEMKIAogd2Via2l0Lm9yZy9iLzE3MDQ4NCBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWly
ZW1lbnQuaHRtbCBbIFRpbWVvdXQgXQogCi13ZWJraXQub3JnL2IvMjAyMjMyIGZhc3QvZm9ybXMv
dmFsaWRhdGlvbi1tZXNzYWdlLWFwcGVhcmFuY2UuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQu
b3JnL2IvMjA4ODA5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL1dPRkYyL2Js
b2Nrcy1leHRyYW5lb3VzLWRhdGEtMDAxLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzIwODgwOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9XT0ZGMi9i
bG9ja3MtZXh0cmFuZW91cy1kYXRhLTAwMi54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8yMDg4MDkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvV09GRjIv
YmxvY2tzLWV4dHJhbmVvdXMtZGF0YS0wMDMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0x
NzQwLDggKzE3MjksNiBAQCB3ZWJraXQub3JnL2IvMTkxNjg4IGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3Jtcy5odG1sIFsgRmFpbHVyZQogd2Via2l0Lm9yZy9iLzE5
MTY4OCBjb21wb3NpdGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xOTE2ODggY29tcG9zaXRpbmcvcmVwYWludC9hYnNvbHV0ZS1wYWlu
dGVkLWludG8tY29tcG9zaXRlZC1hbmNlc3Rvci5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xOTE4ODIgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tcmFuZ2UuaHRtbCBb
IEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5MTg4MiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVz
c2FnZS1vbi10ZXh0YXJlYS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTkxODgyIGZh
c3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1jcmVkaXQtY2FyZC1hdXRvLWZpbGwtYnV0
dG9uLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5MTg4NSBmYXN0L2lubGluZS9z
aW1wbGUtaW5saW5lLWluZmxvdy1wb3NpdGlvbmVkLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>