<?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>210728</bug_id>
          
          <creation_ts>2020-04-19 18:18:05 -0700</creation_ts>
          <short_desc>StructuredClone algorithm should be aware of BigInt</short_desc>
          <delta_ts>2020-04-20 10:29:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210731</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1643277</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-19 18:18:05 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643313</commentid>
    <comment_count>1</comment_count>
      <attachid>396940</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-19 21:59:29 -0700</bug_when>
    <thetext>Created attachment 396940
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643320</commentid>
    <comment_count>2</comment_count>
      <attachid>396940</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-19 22:24:27 -0700</bug_when>
    <thetext>Comment on attachment 396940
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1073
&gt; +            write(BigIntTag);

Shouldn&apos;t this be BigIntObjectTag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643321</commentid>
    <comment_count>3</comment_count>
      <attachid>396940</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-19 22:26:29 -0700</bug_when>
    <thetext>Comment on attachment 396940
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1073
&gt;&gt; +            write(BigIntTag);
&gt; 
&gt; Shouldn&apos;t this be BigIntObjectTag?

This is correct because we are serializing BigInt here instead of BigIntObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643333</commentid>
    <comment_count>4</comment_count>
      <attachid>396940</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-19 22:50:55 -0700</bug_when>
    <thetext>Comment on attachment 396940
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:395
&gt; + *      &lt;sign:uint8_t&gt; &lt;lengthInUint64:uint32_t&gt; &lt;contents:uint64_t{lengthInUint64}&gt;

Should lengthInUint64 be lengthInUint32?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643348</commentid>
    <comment_count>5</comment_count>
      <attachid>396940</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-19 23:27:49 -0700</bug_when>
    <thetext>Comment on attachment 396940
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:395
&gt;&gt; + *      &lt;sign:uint8_t&gt; &lt;lengthInUint64:uint32_t&gt; &lt;contents:uint64_t{lengthInUint64}&gt;
&gt; 
&gt; Should lengthInUint64 be lengthInUint32?

Oh, never mind.  I see what you mean by lengthInUint64.  It&apos;s the number of uint64s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643367</commentid>
    <comment_count>6</comment_count>
      <attachid>396950</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-19 23:50:35 -0700</bug_when>
    <thetext>Created attachment 396950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643370</commentid>
    <comment_count>7</comment_count>
      <attachid>396950</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-19 23:59:05 -0700</bug_when>
    <thetext>Comment on attachment 396950
Patch

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

r=me

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3003
&gt; +                if (digit64 &lt;= static_cast&lt;uint64_t&gt;((-static_cast&lt;int64_t&gt;(INT32_MIN))))

You can remove 1 set of () around -static_cast&lt;int64_t&gt;(INT32_MIN).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643371</commentid>
    <comment_count>8</comment_count>
      <attachid>396950</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 00:01:41 -0700</bug_when>
    <thetext>Comment on attachment 396950
Patch

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

Thanks!

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3003
&gt;&gt; +                if (digit64 &lt;= static_cast&lt;uint64_t&gt;((-static_cast&lt;int64_t&gt;(INT32_MIN))))
&gt; 
&gt; You can remove 1 set of () around -static_cast&lt;int64_t&gt;(INT32_MIN).

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643372</commentid>
    <comment_count>9</comment_count>
      <attachid>396952</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 00:03:45 -0700</bug_when>
    <thetext>Created attachment 396952
Patch

Patch for landing, seeing EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643380</commentid>
    <comment_count>10</comment_count>
      <attachid>396955</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 00:21:12 -0700</bug_when>
    <thetext>Created attachment 396955
Patch

Patch for landing, watching EWS, fixing GCC build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643393</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-20 01:45:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/62048672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643401</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 02:51:30 -0700</bug_when>
    <thetext>WK1, WK2 succeeds. And in Debug, only one test is failing (crashing) and it is crashing before this patch according to history. Landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643402</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 02:54:40 -0700</bug_when>
    <thetext>Committed r260358: &lt;https://trac.webkit.org/changeset/260358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643483</commentid>
    <comment_count>14</comment_count>
      <attachid>396955</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-20 09:44:39 -0700</bug_when>
    <thetext>Comment on attachment 396955
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3005
&gt; +            if (sign) {

This logic of if it can fit in a big int 32 should not be here. Instead, we should put that logic in JSC. Maybe even having a constructor on BigInt that tries to return it in inline form if it can.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3039
&gt; +            ASSERT(sizeof(JSBigInt::Digit) == sizeof(uint32_t));

Why not “else if constexpr” here? And else case can have static_assert(false)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643487</commentid>
    <comment_count>15</comment_count>
      <attachid>396955</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-20 09:50:39 -0700</bug_when>
    <thetext>Comment on attachment 396955
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:395
&gt; + *      &lt;sign:uint8_t&gt; &lt;lengthInUint64:uint32_t&gt; &lt;contents:uint64_t{lengthInUint64}&gt;

Why not just call this digitLength and not do the weird “/ 2” on 32-but?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643489</commentid>
    <comment_count>16</comment_count>
      <attachid>396955</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-20 09:53:40 -0700</bug_when>
    <thetext>Comment on attachment 396955
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3039
&gt;&gt; +            ASSERT(sizeof(JSBigInt::Digit) == sizeof(uint32_t));
&gt; 
&gt; Why not “else if constexpr” here? And else case can have static_assert(false)

Wouldn’t the if constexpr above endure that this else is effectively constexpr too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643491</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-20 09:54:24 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #16)
&gt; Comment on attachment 396955 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396955&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3039
&gt; &gt;&gt; +            ASSERT(sizeof(JSBigInt::Digit) == sizeof(uint32_t));
&gt; &gt; 
&gt; &gt; Why not “else if constexpr” here? And else case can have static_assert(false)
&gt; 
&gt; Wouldn’t the if constexpr above endure that this else is effectively
&gt; constexpr too?

Ensure, not endure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643498</commentid>
    <comment_count>18</comment_count>
      <attachid>396955</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 10:12:52 -0700</bug_when>
    <thetext>Comment on attachment 396955
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:395
&gt;&gt; + *      &lt;sign:uint8_t&gt; &lt;lengthInUint64:uint32_t&gt; &lt;contents:uint64_t{lengthInUint64}&gt;
&gt; 
&gt; Why not just call this digitLength and not do the weird “/ 2” on 32-but?

Because `JSBigInt::Digit` has different size in 32bit v.s. 64bit while structured-cloning data should be machine independent (we are even handling endianess for various data).

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3005
&gt;&gt; +            if (sign) {
&gt; 
&gt; This logic of if it can fit in a big int 32 should not be here. Instead, we should put that logic in JSC. Maybe even having a constructor on BigInt that tries to return it in inline form if it can.

Sounds good. As a follow-up patch, I will put this into `JSBigInt` in JSC.

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3039
&gt;&gt;&gt;&gt; +            ASSERT(sizeof(JSBigInt::Digit) == sizeof(uint32_t));
&gt;&gt;&gt; 
&gt;&gt;&gt; Why not “else if constexpr” here? And else case can have static_assert(false)
&gt;&gt; 
&gt;&gt; Wouldn’t the if constexpr above endure that this else is effectively constexpr too?
&gt; 
&gt; Ensure, not endure.

This does not work since `constexpr if` is not compile-time if statement.
For example,

if constexpr (true) {
} else {
    static_assert(false);
}

becomes compile-error. This is because constexpr-if feature is suppressing template-materialization in non-taken branch. `static_assert(sizeof(JSBigInt::Digit) == sizeof(uint32_t));` does not include template materialization so this becomes compile-error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643506</commentid>
    <comment_count>19</comment_count>
      <attachid>396955</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-20 10:29:01 -0700</bug_when>
    <thetext>Comment on attachment 396955
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3005
&gt;&gt;&gt; +            if (sign) {
&gt;&gt; 
&gt;&gt; This logic of if it can fit in a big int 32 should not be here. Instead, we should put that logic in JSC. Maybe even having a constructor on BigInt that tries to return it in inline form if it can.
&gt; 
&gt; Sounds good. As a follow-up patch, I will put this into `JSBigInt` in JSC.

Ah, now I think keeping this here is better. The reason is that Structured-Cloning must have backward-compat format.
This means that this serialization code must work after the change. I think this is better to keep this code in SerializedScriptValue.cpp.
For example, if you put this to JSBigInt.cpp and if you change the code without knowing that the deserialization format must not be changed without changing SerializedScriptValue.cpp&apos;s format version etc., then we have a bad time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396940</attachid>
            <date>2020-04-19 21:59:29 -0700</date>
            <delta_ts>2020-04-19 23:50:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210728-20200419215928.patch</filename>
            <type>text/plain</type>
            <size>14650</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzg0MzBhYWU4NDY2MzAwZDIzNTk4N2MwOThjMDNkYzg2NDk1NWUyLi4xMjBkYTJiMzQ5YTk5NmRi
OTVlZDc3NDUzOWQ1ZTI1NWM3MGFhMDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMC0wNC0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9m
IEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL0JpZ0ludE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3Bw
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJ
bnQuaDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRpZ2l0KToKKyAgICAgICAgKEpTQzo6SlNC
aWdJbnQ6OnNldERpZ2l0KToKKwogMjAyMC0wNC0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFNsb3dQYXRoQ2FsbCBpcyBub3Qgc3VwcG9ydGVk
IGJ5IGNhbGxPcGVyYXRpb24gaW4gV2luZG93cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQyNmE2ZDA4OTcwMzNh
ZmJjMTBjNTFkMTJkMGQyMTExOTU2MTg1MjcuLjdiMzdmNWVhOGIxNjI4OGVjNDE3OGZkZjg2NmRj
M2JlNzc5MWMxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wNC0xOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9u
ZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0ludAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1t
ZWRpYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEJpZ0ludERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wQmlnSW50MzJEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEhlYXBCaWdJbnREYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJlYWRCaWdJbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJlYWRUZXJtaW5hbCk6CisKIDIwMjAtMDQt
MTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNd
IEFkZCBjb2x1bW4gc3Bhbm5pbmcgc3VwcG9ydCBmb3IgZmxleGlibGUgdGFibGUgd2lkdGgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50T2JqZWN0LmgKaW5kZXggZGVhODFk
MjJlMmY1ZTYyOTUzMjg4MWE5NGFkODBmNTkxZjc2MTI0OS4uZGVjY2ZkZTVmZTZlZTVmMmRjNGQw
ODVkMGVjMzIwNjFkNzU4NzFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQmlnSW50T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QmlnSW50T2JqZWN0LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQmlnSW50T2JqZWN0IGZpbmFs
IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgICAgIHJldHVybiB2bS5iaWdJbnRPYmpl
Y3RTcGFjZTxtb2RlPigpOwogICAgIH0KIAotICAgIHN0YXRpYyBCaWdJbnRPYmplY3QqIGNyZWF0
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIEJpZ0ludE9iamVjdCogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQmlnSW50LmNwcAppbmRleCAxYzIzOWNiZmFhM2RkMDBhZjEzMGNmNWMyNDQwODA4
ZWI0MzQzOWZjLi5kMzk5MjMxY2UwMzdkYWIyZjRlYzA0ZTE0YjI0OTA0NzZmNTI0NGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC0xOTM2LDE4ICsx
OTM2LDYgQEAgSlNWYWx1ZSBKU0JpZ0ludDo6cGFyc2VJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwKICAgICByZXR1cm4gaGVhcFJlc3VsdC0+
cmlnaHRUcmltKHZtKTsKIH0KIAotaW5saW5lIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGln
aXQodW5zaWduZWQgbikKLXsKLSAgICBBU1NFUlQobiA8IGxlbmd0aCgpKTsKLSAgICByZXR1cm4g
ZGF0YVN0b3JhZ2UoKVtuXTsKLX0KLQotaW5saW5lIHZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KHVu
c2lnbmVkIG4sIERpZ2l0IHZhbHVlKQotewotICAgIEFTU0VSVChuIDwgbGVuZ3RoKCkpOwotICAg
IGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKLX0KLQogSlNPYmplY3QqIEpTQmlnSW50Ojp0b09i
amVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIHJldHVybiBC
aWdJbnRPYmplY3Q6OmNyZWF0ZShnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCwgY29u
c3RfY2FzdDxKU0JpZ0ludCo+KHRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCmluZGV4IDhlMmMxNDhlNmNlYWRmZjUzNzE5ZjYzY2IzNmM3MjAyZThkYjMwMmIu
LjdkZmJiZmZlNWI3MGNhMTRhYThmMmRjOGZiYzk1M2EzMzJiOWI4MWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBKU0Jp
Z0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAg
ICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVaZXJvKFZNJik7Ci0gICAgc3RhdGljIEpTQmlnSW50
KiB0cnlDcmVhdGVXaXRoTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbGVuZ3RoKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNCaWdJbnQqIHRyeUNyZWF0ZVdpdGhMZW5n
dGgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBKU0JpZ0lu
dCogY3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAg
ICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCBpbnQzMl90IHZhbHVlKTsKQEAgLTE1
NCw2ICsxNTQsOSBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IHN0YXRpYyBKU0JpZ0ludCogbGVmdFNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgSlNCaWdJbnQqIHgs
IEpTQmlnSW50KiB5KTsKICAgICBzdGF0aWMgSlNCaWdJbnQqIHNpZ25lZFJpZ2h0U2hpZnQoSlNH
bG9iYWxPYmplY3QqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogCisgICAgRGlnaXQgZGln
aXQodW5zaWduZWQpOworICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsgLy8gVXNl
IG9ubHkgd2hlbiBpbml0aWFsaXppbmcuCisKIHByaXZhdGU6CiAgICAgSlNCaWdJbnQoVk0mLCBT
dHJ1Y3R1cmUqLCBEaWdpdCosIHVuc2lnbmVkIGxlbmd0aCk7CiAKQEAgLTI2MSw5ICsyNjQsNiBA
QCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgaW5saW5lIERp
Z2l0KiBkYXRhU3RvcmFnZSgpIHsgcmV0dXJuIG1fZGF0YS5nZXQobV9sZW5ndGgpOyB9CiAKLSAg
ICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7Ci0gICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGln
aXQpOwotCiAgICAgY29uc3QgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ24geyBm
YWxzZSB9OwogICAgIENhZ2VkVW5pcXVlUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIERpZ2l0PiBt
X2RhdGE7CkBAIC0yNzUsNCArMjc1LDE2IEBAIGlubGluZSBKU0JpZ0ludCogYXNIZWFwQmlnSW50
KEpTVmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIGpzQ2FzdDxKU0JpZ0ludCo+KHZhbHVlLmFzQ2Vs
bCgpKTsKIH0KIAoraW5saW5lIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQodW5zaWdu
ZWQgbikKK3sKKyAgICBBU1NFUlQobiA8IGxlbmd0aCgpKTsKKyAgICByZXR1cm4gZGF0YVN0b3Jh
Z2UoKVtuXTsKK30KKworaW5saW5lIHZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KHVuc2lnbmVkIG4s
IERpZ2l0IHZhbHVlKQoreworICAgIEFTU0VSVChuIDwgbGVuZ3RoKCkpOworICAgIGRhdGFTdG9y
YWdlKClbbl0gPSB2YWx1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCAx
MmM3NmNmMDcyMDhjNDQ5OGEyMjcyMDYyY2M0YjQ4MDY3ZmU2MDM4Li44ODMzMjIwNGE2YjY1YTQx
ZDYzNWUzZmQ3ODAxZDgwMDU2YzQwOTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0JpZ0ludE9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Jvb2xlYW5P
YmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9DYXRjaFNjb3BlLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRGF0ZUluc3RhbmNlLmg+CkBAIC0xNzcsNiArMTc4LDggQEAgZW51
bSBTZXJpYWxpemF0aW9uVGFnIHsKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKICAgICBP
ZmZzY3JlZW5DYW52YXNUcmFuc2ZlclRhZyA9IDQ2LAogI2VuZGlmCisgICAgQmlnSW50VGFnID0g
NDcsCisgICAgQmlnSW50T2JqZWN0VGFnID0gNDgsCiAgICAgRXJyb3JUYWcgPSAyNTUKIH07CiAK
QEAgLTM0Myw2ICszNDYsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RyaW5nRGF0YUlzOEJp
dEZsYWcgPSAweDgwMDAwMDAwOwogICogICAgfCBTdHJpbmcKICAqICAgIHwgRW1wdHlTdHJpbmdU
YWcKICAqICAgIHwgRW1wdHlTdHJpbmdPYmplY3RUYWcKKyAqICAgIHwgQmlnSW50CiAgKiAgICB8
IEZpbGUKICAqICAgIHwgRmlsZUxpc3QKICAqICAgIHwgSW1hZ2VEYXRhCkBAIC0zODMsNiArMzg3
LDEzIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAw
MDAwMDA7CiAgKiAgICAgIFN0cmluZ1Bvb2xUYWcgPGNwSW5kZXg6SW5kZXhUeXBlPgogICogICAg
ICAobm90IChUZXJtaW5hdG9yVGFnIHwgU3RyaW5nUG9vbFRhZykpPGlzOEJpdDp1aW50MzJfdDox
PjxsZW5ndGg6dWludDMyX3Q6MzE+PGNoYXJhY3RlcnM6Q2hhclR5cGV7bGVuZ3RofT4gLy8gQWRk
ZWQgdG8gY29uc3RhbnQgcG9vbCB3aGVuIHNlZW4sIHN0cmluZyBsZW5ndGggMHhGRkZGRkZGRiBp
cyBkaXNhbGxvd2VkCiAgKgorICogQmlnSW50IDotCisgKiAgICAgIEJpZ0ludFRhZyBCaWdJbnRE
YXRhCisgKiAgICAgIEJpZ0ludE9iamVjdFRhZyBCaWdJbnREYXRhCisgKgorICogQmlnSW50RGF0
YSA6LQorICogICAgICA8c2lnbjp1aW50OF90PiA8bGVuZ3RoSW5VaW50NjQ6dWludDMyX3Q+IDxj
b250ZW50czp1aW50NjRfdHtsZW5ndGhJblVpbnQ2NH0+CisgKgogICogRmlsZSA6LQogICogICAg
RmlsZVRhZyBGaWxlRGF0YQogICoKQEAgLTc0NCwxMSArNzU1LDE1IEBAIGNsYXNzIENsb25lU2Vy
aWFsaXplciA6IENsb25lQmFzZSB7CiAKICAgICB2b2lkIGR1bXBJbW1lZGlhdGUoSlNWYWx1ZSB2
YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgaWYgKHZh
bHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICB3cml0ZShOdWxsVGFnKTsKLSAgICAgICAgZWxz
ZSBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgd3JpdGUo
VW5kZWZpbmVkVGFnKTsKLSAgICAgICAgZWxzZSBpZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigp
KSB7CiAgICAgICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCF2YWx1ZS5hc0ludDMyKCkpCiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKFplcm9UYWcp
OwpAQCAtNzYyLDEyICs3NzcsMjIgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKICAgICAgICAgICAgICAgICB3cml0ZShEb3VibGVUYWcpOwogICAgICAgICAgICAgICAgIHdy
aXRlKHZhbHVlLmFzRG91YmxlKCkpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYg
KHZhbHVlLmlzQm9vbGVhbigpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHZhbHVlLmlzQm9vbGVhbigpKSB7CiAgICAgICAgICAgICBpZiAodmFsdWUuaXNU
cnVlKCkpCiAgICAgICAgICAgICAgICAgd3JpdGUoVHJ1ZVRhZyk7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgd3JpdGUoRmFsc2VUYWcpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICBpZiAodmFsdWUuaXNCaWdJbnQz
MigpKSB7CisgICAgICAgICAgICB3cml0ZShCaWdJbnRUYWcpOworICAgICAgICAgICAgZHVtcEJp
Z0ludERhdGEodmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjZW5kaWYK
ICAgICB9CiAKICAgICB2b2lkIGR1bXBTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC03
OTAsNiArODE1LDU4IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAg
ICAgIH0KICAgICB9CiAKKyAgICB2b2lkIGR1bXBCaWdJbnREYXRhKEpTVmFsdWUgdmFsdWUpCisg
ICAgeworICAgICAgICBBU1NFUlQodmFsdWUuaXNCaWdJbnQoKSk7CisjaWYgVVNFKEJJR0lOVDMy
KQorICAgICAgICBpZiAodmFsdWUuaXNCaWdJbnQzMigpKSB7CisgICAgICAgICAgICBkdW1wQmln
SW50MzJEYXRhKHZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGR1bXBIZWFwQmlnSW50RGF0YShqc0Nhc3Q8SlNC
aWdJbnQqPih2YWx1ZSkpOworICAgIH0KKworI2lmIFVTRShCSUdJTlQzMikKKyAgICB2b2lkIGR1
bXBCaWdJbnQzMkRhdGEoaW50MzJfdCBpbnRlZ2VyKQorICAgIHsKKyAgICAgICAgd3JpdGUoc3Rh
dGljX2Nhc3Q8dWludDhfdD4oaW50ZWdlciA8IDApKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KDEpKTsgLy8gTGVuZ3RoLWluLXVpbnQ2NF90CisgICAgICAgIGludDY0X3Qg
dmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihpbnRlZ2VyKTsKKyAgICAgICAgaWYgKHZhbHVl
IDwgMCkKKyAgICAgICAgICAgIHZhbHVlID0gLXZhbHVlOworICAgICAgICB3cml0ZShzdGF0aWNf
Y2FzdDx1aW50NjRfdD4odmFsdWUpKTsKKyAgICB9CisjZW5kaWYKKworICAgIHZvaWQgZHVtcEhl
YXBCaWdJbnREYXRhKEpTQmlnSW50KiBiaWdJbnQpCisgICAgeworICAgICAgICB3cml0ZShzdGF0
aWNfY2FzdDx1aW50OF90PihiaWdJbnQtPnNpZ24oKSkpOworICAgICAgICBpZiBjb25zdGV4cHIg
KHNpemVvZihKU0JpZ0ludDo6RGlnaXQpID09IHNpemVvZih1aW50NjRfdCkpIHsKKyAgICAgICAg
ICAgIHdyaXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihiaWdJbnQtPmxlbmd0aCgpKSk7CisgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBiaWdJbnQtPmxlbmd0aCgp
OyArK2luZGV4KQorICAgICAgICAgICAgICAgIHdyaXRlKGJpZ0ludC0+ZGlnaXQoaW5kZXgpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChzaXplb2YoSlNCaWdJbnQ6OkRp
Z2l0KSA9PSBzaXplb2YodWludDMyX3QpKTsKKyAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aElu
VWludDY0ID0gYmlnSW50LT5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICBpZiAoYmlnSW50LT5s
ZW5ndGgoKSAmIDB4MSkKKyAgICAgICAgICAgICAgICArK2xlbmd0aEluVWludDY0OworICAgICAg
ICAgICAgd3JpdGUobGVuZ3RoSW5VaW50NjQpOworICAgICAgICAgICAgdWludDY0X3QgdmFsdWUg
PSAwOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgYmlnSW50
LT5sZW5ndGgoKTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGlmICghKGluZGV4ICYgMHgx
KSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGJpZ0ludC0+ZGlnaXQoaW5kZXgpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGluZGV4KSkgPDwgMzIpIHwgdmFsdWU7
CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChiaWdJbnQtPmxlbmd0aCgpICYgMHgxKQorICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVl
KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTQXJyYXlCdWZmZXIo
QXJyYXlCdWZmZXImIGFycmF5QnVmZmVyKQogICAgIHsKICAgICAgICAgYXV0byYgdm0gPSBtX2xl
eGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTIsNiArMTA2OSwxMiBAQCBjbGFzcyBDbG9u
ZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAodmFsdWUuaXNIZWFwQmlnSW50KCkpIHsKKyAgICAgICAgICAg
IHdyaXRlKEJpZ0ludFRhZyk7CisgICAgICAgICAgICBkdW1wQmlnSW50RGF0YSh2YWx1ZSk7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICh2YWx1ZS5p
c1N5bWJvbCgpKSB7CiAgICAgICAgICAgICBjb2RlID0gU2VyaWFsaXphdGlvblJldHVybkNvZGU6
OkRhdGFDbG9uZUVycm9yOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDI4LDYgKzEx
MTEsMTUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAg
ICAgICB3cml0ZShudW1iZXJPYmplY3QtPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChhdXRvKiBiaWdJbnRPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJpZ0ludE9iamVjdCo+KHZtLCBv
YmopKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKGJpZ0ludE9i
amVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgICAgIEpTVmFsdWUgYmlnSW50VmFsdWUgPSBiaWdJbnRPYmplY3Qt
PmludGVybmFsVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmlnSW50VmFsdWUuaXNC
aWdJbnQoKSk7CisgICAgICAgICAgICAgICAgd3JpdGUoQmlnSW50T2JqZWN0VGFnKTsKKyAgICAg
ICAgICAgICAgICBkdW1wQmlnSW50RGF0YShiaWdJbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXV0byogZmlsZSA9
IEpTRmlsZTo6dG9XcmFwcGVkKHZtLCBvYmopKSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoRmls
ZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoKmZpbGUpOwpAQCAtMjg5Myw2ICsyOTg1LDcy
IEBAIGNsYXNzIENsb25lRGVzZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgcmV0dXJu
IGdldEpTVmFsdWUoYml0bWFwKTsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHJlYWRCaWdJbnQoKQor
ICAgIHsKKyAgICAgICAgdWludDhfdCBzaWduID0gMDsKKyAgICAgICAgaWYgKCFyZWFkKHNpZ24p
KQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgdWludDMyX3QgbGVuZ3Ro
SW5VaW50NjQgPSAwOworICAgICAgICBpZiAoIXJlYWQobGVuZ3RoSW5VaW50NjQpKQorICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKEpTQmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQ2NF90KSk7Cisg
ICAgICAgIGlmIChsZW5ndGhJblVpbnQ2NCA9PSAxKSB7CisgICAgICAgICAgICB1aW50NjRfdCBk
aWdpdDY0ID0gMDsKKyAgICAgICAgICAgIGlmICghcmVhZChkaWdpdDY0KSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgaWYgKHNpZ24pIHsKKyAgICAgICAg
ICAgICAgICBpZiAoZGlnaXQ2NCA8PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oKC1zdGF0aWNfY2Fz
dDxpbnQ2NF90PihJTlQzMl9NSU4pKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlKEpTVmFsdWU6OkpTQmlnSW50MzIsIHN0YXRpY19jYXN0PGludDMyX3Q+KC1zdGF0aWNfY2Fz
dDxpbnQ2NF90PihkaWdpdDY0KSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZGlnaXQ2NCA8PSBJTlQzMl9NQVgpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlKEpTVmFsdWU6OkpTQmlnSW50MzIsIHN0YXRpY19jYXN0PGludDMyX3Q+KGRpZ2l0
NjQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChkaWdpdDY0ICE9IDApOwor
ICAgICAgICAgICAgSlNCaWdJbnQqIGJpZ0ludCA9IEpTQmlnSW50Ojp0cnlDcmVhdGVXaXRoTGVu
Z3RoKG1fbGV4aWNhbEdsb2JhbE9iamVjdCwgMSk7CisgICAgICAgICAgICBpZiAoIWJpZ0ludCkg
eworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYmlnSW50LT5zZXREaWdpdCgwLCBkaWdp
dDY0KTsKKyAgICAgICAgICAgIGJpZ0ludC0+c2V0U2lnbihzaWduKTsKKyAgICAgICAgICAgIG1f
Z2NCdWZmZXIuYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhiaWdJbnQpOworICAgICAgICAgICAg
cmV0dXJuIGJpZ0ludDsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIEpTQmlnSW50KiBiaWdJ
bnQgPSBudWxscHRyOworICAgICAgICBpZiBjb25zdGV4cHIgKHNpemVvZihKU0JpZ0ludDo6RGln
aXQpID09IHNpemVvZih1aW50NjRfdCkpIHsKKyAgICAgICAgICAgIGJpZ0ludCA9IEpTQmlnSW50
Ojp0cnlDcmVhdGVXaXRoTGVuZ3RoKG1fbGV4aWNhbEdsb2JhbE9iamVjdCwgbGVuZ3RoSW5VaW50
NjQpOworICAgICAgICAgICAgaWYgKCFiaWdJbnQpIHsKKyAgICAgICAgICAgICAgICBmYWlsKCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGZvciAodWludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aEluVWludDY0OyAr
K2luZGV4KSB7CisgICAgICAgICAgICAgICAgdWludDY0X3QgZGlnaXQ2NCA9IDA7CisgICAgICAg
ICAgICAgICAgaWYgKCFyZWFkKGRpZ2l0NjQpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJpZ0ludC0+c2V0RGlnaXQoaW5kZXgsIGRpZ2l0
NjQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJU
KHNpemVvZihKU0JpZ0ludDo6RGlnaXQpID09IHNpemVvZih1aW50MzJfdCkpOworICAgICAgICAg
ICAgYmlnSW50ID0gSlNCaWdJbnQ6OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9sZXhpY2FsR2xvYmFs
T2JqZWN0LCBsZW5ndGhJblVpbnQ2NCAqIDIpOworICAgICAgICAgICAgaWYgKCFiaWdJbnQpIHsK
KyAgICAgICAgICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaW5kZXggPSAwOyBp
bmRleCA8IGxlbmd0aEluVWludDY0OyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgdWludDY0
X3QgZGlnaXQ2NCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFkKGRpZ2l0NjQpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJpZ0lu
dC0+c2V0RGlnaXQoaW5kZXggKiAyLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGlnaXQ2NCkpOwor
ICAgICAgICAgICAgICAgIGJpZ0ludC0+c2V0RGlnaXQoaW5kZXggKiAyICsgMSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGRpZ2l0NjQgPj4gMzIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBiaWdJbnQtPnNldFNpZ24oc2lnbik7CisgICAgICAgIG1fZ2NCdWZmZXIuYXBwZW5k
V2l0aENyYXNoT25PdmVyZmxvdyhiaWdJbnQpOworICAgICAgICByZXR1cm4gYmlnSW50OworICAg
IH0KKwogICAgIEpTVmFsdWUgcmVhZFRlcm1pbmFsKCkKICAgICB7CiAgICAgICAgIFNlcmlhbGl6
YXRpb25UYWcgdGFnID0gcmVhZFRhZygpOwpAQCAtMjkzMyw2ICszMDkxLDggQEAgY2xhc3MgQ2xv
bmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlKCk7CiAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoZCk7CiAgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBCaWdJbnRUYWc6CisgICAgICAgICAgICByZXR1cm4gcmVhZEJpZ0ludCgpOwogICAg
ICAgICBjYXNlIE51bWJlck9iamVjdFRhZzogewogICAgICAgICAgICAgZG91YmxlIGQ7CiAgICAg
ICAgICAgICBpZiAoIXJlYWQoZCkpCkBAIC0yOTQxLDYgKzMxMDEsMTUgQEAgY2xhc3MgQ2xvbmVE
ZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRX
aXRoQ3Jhc2hPbk92ZXJmbG93KG9iaik7CiAgICAgICAgICAgICByZXR1cm4gb2JqOwogICAgICAg
ICB9CisgICAgICAgIGNhc2UgQmlnSW50T2JqZWN0VGFnOiB7CisgICAgICAgICAgICBKU1ZhbHVl
IGJpZ0ludCA9IHJlYWRCaWdJbnQoKTsKKyAgICAgICAgICAgIGlmICghYmlnSW50KQorICAgICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgICAgICBBU1NFUlQoYmlnSW50Lmlz
QmlnSW50KCkpOworICAgICAgICAgICAgQmlnSW50T2JqZWN0KiBvYmogPSBCaWdJbnRPYmplY3Q6
OmNyZWF0ZShtX2xleGljYWxHbG9iYWxPYmplY3QtPnZtKCksIG1fZ2xvYmFsT2JqZWN0LCBiaWdJ
bnQpOworICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KG9i
aik7CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CiAgICAgICAgIGNhc2UgRGF0
ZVRhZzogewogICAgICAgICAgICAgZG91YmxlIGQ7CiAgICAgICAgICAgICBpZiAoIXJlYWQoZCkp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396950</attachid>
            <date>2020-04-19 23:50:35 -0700</date>
            <delta_ts>2020-04-20 00:03:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210728-20200419235034.patch</filename>
            <type>text/plain</type>
            <size>20394</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzY4MmZjZDM2YjAyZDE5N2Q0NWJkNTczNzNjY2JhZmQ5OTcyNDk3Li5lMmQ4YjA5OWU5MGM5MzE2
YTA1MWQyYzdkOWViOTAwODFiMzZlNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNC0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9m
IEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL0JpZ0ludE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3Bw
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJ
bnQuaDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRpZ2l0KToKKyAgICAgICAgKEpTQzo6SlNC
aWdJbnQ6OnNldERpZ2l0KToKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IHJ1bnRpbWUvQmlnSW50T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5jcHA6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpzZXREaWdpdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0JpZ0lu
dC5oOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6c2V0RGlnaXQpOgorCiAyMDIwLTA0LTE5ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbRUNNQS00MDJdIEludGwuUmVsYXRpdmVUaW1lRm9y
bWF0IG1pc3NpbmcgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJjY2M5ZDBhYjRjMmU3YTdlNGJi
ZDczMzUzM2Q0ZDIyNjUxN2QxMi4uZTE5NGU2MjU0Mzk0MjNjZjA3YWEzYjg4MTFlMjQ3Mzk4ZDI0
NzllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTE5ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RydWN0dXJlZENsb25lIGFsZ29y
aXRobSBzaG91bGQgYmUgYXdhcmUgb2YgQmlnSW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3RydWN0dXJlZC1jbG9uaW5n
IGZvciBCaWdJbnQgYW5kIEJpZ0ludE9iamVjdC4KKyAgICAgICAgVGhlIGxvZ2ljIGlzIGFkZGlu
ZyBCaWdJbnRUYWcgJiBCaWdJbnRPYmplY3RUYWcuIEFuZCB0aGVuIHdlIHB1dCBjb250ZW50IG9m
IEJpZ0ludCB3aXRoIGxlbmd0aC4KKyAgICAgICAgQW5kIGRlc2VyaWFsaXphdGlvbiByZWFkcyB0
aGVtIHRvIHJlY29uc3RydWN0IEJpZ0ludCBvciBCaWdJbnRPYmplY3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1tZWRpYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25l
U2VyaWFsaXplcjo6ZHVtcEJpZ0ludERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJp
YWxpemVyOjpkdW1wQmlnSW50MzJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFs
aXplcjo6ZHVtcEhlYXBCaWdJbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFs
aXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6
ZXI6OnJlYWRCaWdJbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJl
YWRUZXJtaW5hbCk6CisKIDIwMjAtMDQtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9wdGlvbmFsPEZsb2F0UXVhZD4gaW4gVHJhbnNmb3Jt
U3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBhZmIyNTQ3OWFkZTI4
NDViODc4OGFmN2M1NGY5YTBlYjk2OGFlZGIzLi4yMmJmMWEzMThmZjFlZDc5NjY3MmJlM2M5ZTUy
YWNmMjZiNjdiNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03ODks
NiArNzg5LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBydW50aW1lL0F1eGlsaWFyeUJhcnJpZXJJbmxpbmVzLmgKICAgICBydW50aW1lL0Jhc2lj
QmxvY2tMb2NhdGlvbi5oCiAgICAgcnVudGltZS9CYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5o
CisgICAgcnVudGltZS9CaWdJbnRPYmplY3QuaAogICAgIHJ1bnRpbWUvQmlnSW50UHJvdG90eXBl
LmgKICAgICBydW50aW1lL0Jvb2xlYW5PYmplY3QuaAogICAgIHJ1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludE9iamVjdC5oCmlu
ZGV4IGRlYTgxZDIyZTJmNWU2Mjk1MzI4ODFhOTRhZDgwZjU5MWY3NjEyNDkuLmRlY2NmZGU1ZmU2
ZWU1ZjJkYzRkMDg1ZDBlYzMyMDYxZDc1ODcxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0JpZ0ludE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0JpZ0ludE9iamVjdC5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEJpZ0ludE9i
amVjdCBmaW5hbCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgICAgICByZXR1cm4gdm0u
YmlnSW50T2JqZWN0U3BhY2U8bW9kZT4oKTsKICAgICB9CiAKLSAgICBzdGF0aWMgQmlnSW50T2Jq
ZWN0KiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBCaWdJbnRPYmplY3QqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSk7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggMWMyMzljYmZhYTNkZDAwYWYxMzBj
ZjVjMjQ0MDgwOGViNDM0MzlmYy4uZDM5OTIzMWNlMDM3ZGFiMmY0ZWMwNGUxNGIyNDkwNDc2ZjUy
NDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAt
MTkzNiwxOCArMTkzNiw2IEBAIEpTVmFsdWUgSlNCaWdJbnQ6OnBhcnNlSW50KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsCiAgICAgcmV0dXJuIGhl
YXBSZXN1bHQtPnJpZ2h0VHJpbSh2bSk7CiB9CiAKLWlubGluZSBKU0JpZ0ludDo6RGlnaXQgSlNC
aWdJbnQ6OmRpZ2l0KHVuc2lnbmVkIG4pCi17Ci0gICAgQVNTRVJUKG4gPCBsZW5ndGgoKSk7Ci0g
ICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07Ci19Ci0KLWlubGluZSB2b2lkIEpTQmlnSW50Ojpz
ZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKLXsKLSAgICBBU1NFUlQobiA8IGxlbmd0
aCgpKTsKLSAgICBkYXRhU3RvcmFnZSgpW25dID0gdmFsdWU7Ci19Ci0KIEpTT2JqZWN0KiBKU0Jp
Z0ludDo6dG9PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAg
ICByZXR1cm4gQmlnSW50T2JqZWN0OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QsIGNvbnN0X2Nhc3Q8SlNCaWdJbnQqPih0aGlzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCA4ZTJjMTQ4ZTZjZWFkZmY1MzcxOWY2M2NiMzZjNzIw
MmU4ZGIzMDJiLi43ZGZiYmZmZTViNzBjYTE0YWE4ZjJkYzhmYmM5NTNhMzMyYjliODFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKQEAgLTYwLDcgKzYwLDcgQEAg
Y2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90
b3R5cGUpOwogICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlWmVybyhWTSYpOwotICAgIHN0YXRp
YyBKU0JpZ0ludCogdHJ5Q3JlYXRlV2l0aExlbmd0aChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVk
IGxlbmd0aCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTQmlnSW50KiB0cnlDcmVh
dGVXaXRoTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0
aWMgSlNCaWdJbnQqIGNyZWF0ZVdpdGhMZW5ndGhVbmNoZWNrZWQoVk0mLCB1bnNpZ25lZCBsZW5n
dGgpOwogCiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVGcm9tKFZNJiwgaW50MzJfdCB2YWx1
ZSk7CkBAIC0xNTQsNiArMTU0LDkgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlND
ZWxsIHsKICAgICBzdGF0aWMgSlNCaWdJbnQqIGxlZnRTaGlmdChKU0dsb2JhbE9iamVjdCosIEpT
QmlnSW50KiB4LCBKU0JpZ0ludCogeSk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBzaWduZWRSaWdo
dFNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKIAorICAg
IERpZ2l0IGRpZ2l0KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdp
dCk7IC8vIFVzZSBvbmx5IHdoZW4gaW5pdGlhbGl6aW5nLgorCiBwcml2YXRlOgogICAgIEpTQmln
SW50KFZNJiwgU3RydWN0dXJlKiwgRGlnaXQqLCB1bnNpZ25lZCBsZW5ndGgpOwogCkBAIC0yNjEs
OSArMjY0LDYgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAg
IGlubGluZSBEaWdpdCogZGF0YVN0b3JhZ2UoKSB7IHJldHVybiBtX2RhdGEuZ2V0KG1fbGVuZ3Ro
KTsgfQogCi0gICAgRGlnaXQgZGlnaXQodW5zaWduZWQpOwotICAgIHZvaWQgc2V0RGlnaXQodW5z
aWduZWQsIERpZ2l0KTsKLQogICAgIGNvbnN0IHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGJvb2wg
bV9zaWduIHsgZmFsc2UgfTsKICAgICBDYWdlZFVuaXF1ZVB0cjxHaWdhY2FnZTo6UHJpbWl0aXZl
LCBEaWdpdD4gbV9kYXRhOwpAQCAtMjc1LDQgKzI3NSwxNiBAQCBpbmxpbmUgSlNCaWdJbnQqIGFz
SGVhcEJpZ0ludChKU1ZhbHVlIHZhbHVlKQogICAgIHJldHVybiBqc0Nhc3Q8SlNCaWdJbnQqPih2
YWx1ZS5hc0NlbGwoKSk7CiB9CiAKK2lubGluZSBKU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRp
Z2l0KHVuc2lnbmVkIG4pCit7CisgICAgQVNTRVJUKG4gPCBsZW5ndGgoKSk7CisgICAgcmV0dXJu
IGRhdGFTdG9yYWdlKClbbl07Cit9CisKK2lubGluZSB2b2lkIEpTQmlnSW50OjpzZXREaWdpdCh1
bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQobiA8IGxlbmd0aCgpKTsKKyAg
ICBkYXRhU3RvcmFnZSgpW25dID0gdmFsdWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKaW5kZXggMTJjNzZjZjA3MjA4YzQ0OThhMjI3MjA2MmNjNGI0ODA2N2ZlNjAzOC4uYzZmYjQy
NWRhNTIyNWFjZjEwYTQ1ZDFkMWNiMGM5YTc0NDZjOThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC01Niw2ICs1
Niw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9CaWdJbnRPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Cb29sZWFuT2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ2F0Y2hTY29wZS5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RhdGVJbnN0YW5jZS5oPgpAQCAtMTc3LDYgKzE3
OCw4IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVMpCiAgICAgT2Zmc2NyZWVuQ2FudmFzVHJhbnNmZXJUYWcgPSA0NiwKICNlbmRpZgorICAgIEJp
Z0ludFRhZyA9IDQ3LAorICAgIEJpZ0ludE9iamVjdFRhZyA9IDQ4LAogICAgIEVycm9yVGFnID0g
MjU1CiB9OwogCkBAIC0zNDMsNiArMzQ2LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cmlu
Z0RhdGFJczhCaXRGbGFnID0gMHg4MDAwMDAwMDsKICAqICAgIHwgU3RyaW5nCiAgKiAgICB8IEVt
cHR5U3RyaW5nVGFnCiAgKiAgICB8IEVtcHR5U3RyaW5nT2JqZWN0VGFnCisgKiAgICB8IEJpZ0lu
dAogICogICAgfCBGaWxlCiAgKiAgICB8IEZpbGVMaXN0CiAgKiAgICB8IEltYWdlRGF0YQpAQCAt
MzgzLDYgKzM4NywxMyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RyaW5nRGF0YUlzOEJpdEZs
YWcgPSAweDgwMDAwMDAwOwogICogICAgICBTdHJpbmdQb29sVGFnIDxjcEluZGV4OkluZGV4VHlw
ZT4KICAqICAgICAgKG5vdCAoVGVybWluYXRvclRhZyB8IFN0cmluZ1Bvb2xUYWcpKTxpczhCaXQ6
dWludDMyX3Q6MT48bGVuZ3RoOnVpbnQzMl90OjMxPjxjaGFyYWN0ZXJzOkNoYXJUeXBle2xlbmd0
aH0+IC8vIEFkZGVkIHRvIGNvbnN0YW50IHBvb2wgd2hlbiBzZWVuLCBzdHJpbmcgbGVuZ3RoIDB4
RkZGRkZGRkYgaXMgZGlzYWxsb3dlZAogICoKKyAqIEJpZ0ludCA6LQorICogICAgICBCaWdJbnRU
YWcgQmlnSW50RGF0YQorICogICAgICBCaWdJbnRPYmplY3RUYWcgQmlnSW50RGF0YQorICoKKyAq
IEJpZ0ludERhdGEgOi0KKyAqICAgICAgPHNpZ246dWludDhfdD4gPGxlbmd0aEluVWludDY0OnVp
bnQzMl90PiA8Y29udGVudHM6dWludDY0X3R7bGVuZ3RoSW5VaW50NjR9PgorICoKICAqIEZpbGUg
Oi0KICAqICAgIEZpbGVUYWcgRmlsZURhdGEKICAqCkBAIC03NDQsMTEgKzc1NSwxNSBAQCBjbGFz
cyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogCiAgICAgdm9pZCBkdW1wSW1tZWRpYXRl
KEpTVmFsdWUgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCisgICAg
ICAgIGlmICh2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgd3JpdGUoTnVsbFRhZyk7Ci0g
ICAgICAgIGVsc2UgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAg
ICAgIHdyaXRlKFVuZGVmaW5lZFRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKHZhbHVlLmlzTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUu
aXNOdW1iZXIoKSkgewogICAgICAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghdmFsdWUuYXNJbnQzMigpKQogICAgICAgICAgICAgICAgICAgICB3cml0
ZShaZXJvVGFnKTsKQEAgLTc2MiwxMiArNzc3LDIyIEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6
IENsb25lQmFzZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoRG91YmxlVGFnKTsKICAgICAgICAg
ICAgICAgICB3cml0ZSh2YWx1ZS5hc0RvdWJsZSgpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIGlmICh2YWx1ZS5pc0Jvb2xlYW4oKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGlmICh2YWx1ZS5pc0Jvb2xlYW4oKSkgewogICAgICAgICAgICAgaWYg
KHZhbHVlLmlzVHJ1ZSgpKQogICAgICAgICAgICAgICAgIHdyaXRlKFRydWVUYWcpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHdyaXRlKEZhbHNlVGFnKTsKKyAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgaWYgKHZhbHVl
LmlzQmlnSW50MzIoKSkgeworICAgICAgICAgICAgd3JpdGUoQmlnSW50VGFnKTsKKyAgICAgICAg
ICAgIGR1bXBCaWdJbnREYXRhKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBkdW1wU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQpAQCAtNzkwLDYgKzgxNSw1OCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJh
c2UgewogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBkdW1wQmlnSW50RGF0YShKU1ZhbHVl
IHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHZhbHVlLmlzQmlnSW50KCkpOworI2lmIFVT
RShCSUdJTlQzMikKKyAgICAgICAgaWYgKHZhbHVlLmlzQmlnSW50MzIoKSkgeworICAgICAgICAg
ICAgZHVtcEJpZ0ludDMyRGF0YSh2YWx1ZS5iaWdJbnQzMkFzSW50MzIoKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBkdW1wSGVhcEJpZ0ludERhdGEo
anNDYXN0PEpTQmlnSW50Kj4odmFsdWUpKTsKKyAgICB9CisKKyNpZiBVU0UoQklHSU5UMzIpCisg
ICAgdm9pZCBkdW1wQmlnSW50MzJEYXRhKGludDMyX3QgaW50ZWdlcikKKyAgICB7CisgICAgICAg
IHdyaXRlKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGludGVnZXIgPCAwKSk7CisgICAgICAgIHdyaXRl
KHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSk7IC8vIExlbmd0aC1pbi11aW50NjRfdAorICAgICAg
ICBpbnQ2NF90IHZhbHVlID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oaW50ZWdlcik7CisgICAgICAg
IGlmICh2YWx1ZSA8IDApCisgICAgICAgICAgICB2YWx1ZSA9IC12YWx1ZTsKKyAgICAgICAgd3Jp
dGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKSk7CisgICAgfQorI2VuZGlmCisKKyAgICB2
b2lkIGR1bXBIZWFwQmlnSW50RGF0YShKU0JpZ0ludCogYmlnSW50KQorICAgIHsKKyAgICAgICAg
d3JpdGUoc3RhdGljX2Nhc3Q8dWludDhfdD4oYmlnSW50LT5zaWduKCkpKTsKKyAgICAgICAgaWYg
Y29uc3RleHByIChzaXplb2YoSlNCaWdJbnQ6OkRpZ2l0KSA9PSBzaXplb2YodWludDY0X3QpKSB7
CisgICAgICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oYmlnSW50LT5sZW5ndGgo
KSkpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgYmlnSW50
LT5sZW5ndGgoKTsgKytpbmRleCkKKyAgICAgICAgICAgICAgICB3cml0ZShiaWdJbnQtPmRpZ2l0
KGluZGV4KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoc2l6ZW9mKEpT
QmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgICAgICAgICB1aW50MzJf
dCBsZW5ndGhJblVpbnQ2NCA9IGJpZ0ludC0+bGVuZ3RoKCkgLyAyOworICAgICAgICAgICAgaWYg
KGJpZ0ludC0+bGVuZ3RoKCkgJiAweDEpCisgICAgICAgICAgICAgICAgKytsZW5ndGhJblVpbnQ2
NDsKKyAgICAgICAgICAgIHdyaXRlKGxlbmd0aEluVWludDY0KTsKKyAgICAgICAgICAgIHVpbnQ2
NF90IHZhbHVlID0gMDsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IGJpZ0ludC0+bGVuZ3RoKCk7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShp
bmRleCAmIDB4MSkpCisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYmlnSW50LT5kaWdpdChp
bmRleCk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVl
ID0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGluZGV4KSkgPDwgMzIpIHwg
dmFsdWU7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChiaWdJbnQtPmxlbmd0aCgpICYgMHgxKQorICAgICAgICAgICAgICAgIHdyaXRl
KHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTQXJyYXlC
dWZmZXIoQXJyYXlCdWZmZXImIGFycmF5QnVmZmVyKQogICAgIHsKICAgICAgICAgYXV0byYgdm0g
PSBtX2xleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTIsNiArMTA2OSwxMiBAQCBjbGFz
cyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAodmFsdWUuaXNIZWFwQmlnSW50KCkpIHsKKyAgICAg
ICAgICAgIHdyaXRlKEJpZ0ludFRhZyk7CisgICAgICAgICAgICBkdW1wQmlnSW50RGF0YSh2YWx1
ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICh2
YWx1ZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgICAgICBjb2RlID0gU2VyaWFsaXphdGlvblJldHVy
bkNvZGU6OkRhdGFDbG9uZUVycm9yOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDI4
LDYgKzExMTEsMTUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAg
ICAgICAgICAgICB3cml0ZShudW1iZXJPYmplY3QtPmludGVybmFsVmFsdWUoKS5hc051bWJlcigp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChhdXRvKiBiaWdJbnRPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJpZ0ludE9iamVjdCo+
KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKGJp
Z0ludE9iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgICAgIEpTVmFsdWUgYmlnSW50VmFsdWUgPSBiaWdJbnRP
YmplY3QtPmludGVybmFsVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmlnSW50VmFs
dWUuaXNCaWdJbnQoKSk7CisgICAgICAgICAgICAgICAgd3JpdGUoQmlnSW50T2JqZWN0VGFnKTsK
KyAgICAgICAgICAgICAgICBkdW1wQmlnSW50RGF0YShiaWdJbnRWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXV0byog
ZmlsZSA9IEpTRmlsZTo6dG9XcmFwcGVkKHZtLCBvYmopKSB7CiAgICAgICAgICAgICAgICAgd3Jp
dGUoRmlsZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoKmZpbGUpOwpAQCAtMjg5Myw2ICsy
OTg1LDcyIEBAIGNsYXNzIENsb25lRGVzZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAg
cmV0dXJuIGdldEpTVmFsdWUoYml0bWFwKTsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHJlYWRCaWdJ
bnQoKQorICAgIHsKKyAgICAgICAgdWludDhfdCBzaWduID0gMDsKKyAgICAgICAgaWYgKCFyZWFk
KHNpZ24pKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgdWludDMyX3Qg
bGVuZ3RoSW5VaW50NjQgPSAwOworICAgICAgICBpZiAoIXJlYWQobGVuZ3RoSW5VaW50NjQpKQor
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKEpTQmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQ2NF90
KSk7CisgICAgICAgIGlmIChsZW5ndGhJblVpbnQ2NCA9PSAxKSB7CisgICAgICAgICAgICB1aW50
NjRfdCBkaWdpdDY0ID0gMDsKKyAgICAgICAgICAgIGlmICghcmVhZChkaWdpdDY0KSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgaWYgKHNpZ24pIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZGlnaXQ2NCA8PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oKC1zdGF0
aWNfY2FzdDxpbnQ2NF90PihJTlQzMl9NSU4pKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlKEpTVmFsdWU6OkpTQmlnSW50MzIsIHN0YXRpY19jYXN0PGludDMyX3Q+KC1zdGF0
aWNfY2FzdDxpbnQ2NF90PihkaWdpdDY0KSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBpZiAoZGlnaXQ2NCA8PSBJTlQzMl9NQVgpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlKEpTVmFsdWU6OkpTQmlnSW50MzIsIHN0YXRpY19jYXN0PGludDMyX3Q+
KGRpZ2l0NjQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChkaWdpdDY0ICE9
IDApOworICAgICAgICAgICAgSlNCaWdJbnQqIGJpZ0ludCA9IEpTQmlnSW50Ojp0cnlDcmVhdGVX
aXRoTGVuZ3RoKG1fbGV4aWNhbEdsb2JhbE9iamVjdCwgMSk7CisgICAgICAgICAgICBpZiAoIWJp
Z0ludCkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYmlnSW50LT5zZXREaWdpdCgw
LCBkaWdpdDY0KTsKKyAgICAgICAgICAgIGJpZ0ludC0+c2V0U2lnbihzaWduKTsKKyAgICAgICAg
ICAgIG1fZ2NCdWZmZXIuYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhiaWdJbnQpOworICAgICAg
ICAgICAgcmV0dXJuIGJpZ0ludDsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIEpTQmlnSW50
KiBiaWdJbnQgPSBudWxscHRyOworICAgICAgICBpZiBjb25zdGV4cHIgKHNpemVvZihKU0JpZ0lu
dDo6RGlnaXQpID09IHNpemVvZih1aW50NjRfdCkpIHsKKyAgICAgICAgICAgIGJpZ0ludCA9IEpT
QmlnSW50Ojp0cnlDcmVhdGVXaXRoTGVuZ3RoKG1fbGV4aWNhbEdsb2JhbE9iamVjdCwgbGVuZ3Ro
SW5VaW50NjQpOworICAgICAgICAgICAgaWYgKCFiaWdJbnQpIHsKKyAgICAgICAgICAgICAgICBm
YWlsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGZvciAodWludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aEluVWlu
dDY0OyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgdWludDY0X3QgZGlnaXQ2NCA9IDA7Cisg
ICAgICAgICAgICAgICAgaWYgKCFyZWFkKGRpZ2l0NjQpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJpZ0ludC0+c2V0RGlnaXQoaW5kZXgs
IGRpZ2l0NjQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
QVNTRVJUKHNpemVvZihKU0JpZ0ludDo6RGlnaXQpID09IHNpemVvZih1aW50MzJfdCkpOworICAg
ICAgICAgICAgYmlnSW50ID0gSlNCaWdJbnQ6OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9sZXhpY2Fs
R2xvYmFsT2JqZWN0LCBsZW5ndGhJblVpbnQ2NCAqIDIpOworICAgICAgICAgICAgaWYgKCFiaWdJ
bnQpIHsKKyAgICAgICAgICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaW5kZXgg
PSAwOyBpbmRleCA8IGxlbmd0aEluVWludDY0OyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAg
dWludDY0X3QgZGlnaXQ2NCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCFyZWFkKGRpZ2l0NjQp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgICAg
IGJpZ0ludC0+c2V0RGlnaXQoaW5kZXggKiAyLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGlnaXQ2
NCkpOworICAgICAgICAgICAgICAgIGJpZ0ludC0+c2V0RGlnaXQoaW5kZXggKiAyICsgMSwgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KGRpZ2l0NjQgPj4gMzIpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBiaWdJbnQtPnNldFNpZ24oc2lnbik7CisgICAgICAgIG1fZ2NCdWZmZXIu
YXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhiaWdJbnQpOworICAgICAgICByZXR1cm4gYmlnSW50
OworICAgIH0KKwogICAgIEpTVmFsdWUgcmVhZFRlcm1pbmFsKCkKICAgICB7CiAgICAgICAgIFNl
cmlhbGl6YXRpb25UYWcgdGFnID0gcmVhZFRhZygpOwpAQCAtMjkzMyw2ICszMDkxLDggQEAgY2xh
c3MgQ2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlKCk7CiAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoZCk7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBCaWdJbnRUYWc6CisgICAgICAgICAgICByZXR1cm4gcmVhZEJpZ0ludCgp
OwogICAgICAgICBjYXNlIE51bWJlck9iamVjdFRhZzogewogICAgICAgICAgICAgZG91YmxlIGQ7
CiAgICAgICAgICAgICBpZiAoIXJlYWQoZCkpCkBAIC0yOTQxLDYgKzMxMDEsMTUgQEAgY2xhc3Mg
Q2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgbV9nY0J1ZmZlci5h
cHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KG9iaik7CiAgICAgICAgICAgICByZXR1cm4gb2JqOwog
ICAgICAgICB9CisgICAgICAgIGNhc2UgQmlnSW50T2JqZWN0VGFnOiB7CisgICAgICAgICAgICBK
U1ZhbHVlIGJpZ0ludCA9IHJlYWRCaWdJbnQoKTsKKyAgICAgICAgICAgIGlmICghYmlnSW50KQor
ICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgICAgICBBU1NFUlQoYmln
SW50LmlzQmlnSW50KCkpOworICAgICAgICAgICAgQmlnSW50T2JqZWN0KiBvYmogPSBCaWdJbnRP
YmplY3Q6OmNyZWF0ZShtX2xleGljYWxHbG9iYWxPYmplY3QtPnZtKCksIG1fZ2xvYmFsT2JqZWN0
LCBiaWdJbnQpOworICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJm
bG93KG9iaik7CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CiAgICAgICAgIGNh
c2UgRGF0ZVRhZzogewogICAgICAgICAgICAgZG91YmxlIGQ7CiAgICAgICAgICAgICBpZiAoIXJl
YWQoZCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOTVjY2M5YTdkYTlhYzlkZDY4NWQ3ODk2ZjBmNmNhMWRhODBlMWExOS4u
OTk2OWNjNjJjMDdlMTBmNGYxMjM2Y2I1MGI0NmM3ODA5ZTM2YWRjNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDIwLTA0LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RydWN0dXJlZENsb25lIGFsZ29yaXRobSBzaG91bGQgYmUgYXdhcmUgb2YgQmln
SW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA3
MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L29iamVjdC1leHBlY3RlZC50eHQ6CisKIDIwMjAt
MDQtMTkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBza2lwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3N0
cnVjdHVyZWQtY2xvbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDBhZjMwZjkw
NzYzNDgxNWIyOTE0MDdkMDI3ZmQwZTc2YjZlOWUzMWIuLmY4M2ZhNTYwNzAwZWZjMTA2ZDY2M2Zj
YWVlYzI0NzA2OWQzNWM4MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIwLTA0LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3RydWN0dXJlZENsb25lIGFsZ29yaXRobSBzaG91bGQgYmUgYXdhcmUgb2Yg
QmlnSW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTA3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmlnaW50X3ZhbHVlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBh
c3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWRfY2xvbmVfYmlnaW50LWV4cGVjdGVk
LnR4dDoKKwogMjAyMC0wNC0xOSAgRW1pbGlvIENvYm9zIMOBbHZhcmV6ICA8ZW1pbGlvQGNyaXNh
bC5pbz4KIAogICAgICAgICBEb24ndCB1c2UgdGhlIGluaGVyaXRlZCBjdXN0b20gcHJvcGVydGll
cyB0byBzdG9yZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9iaWdpbnRfdmFsdWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvYmlnaW50X3ZhbHVlLWV4cGVjdGVkLnR4dAppbmRleCBlMzE3YWFhNTYyZGNk
OTRlZDIzOTNjNTE2MTViODcxOTUxYWQxZmVmLi5jNjk4YTQyNmVlNjgyYjkxMTMzOWYxNjc4OGJj
NzVkNzg4ZTFhMDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9iaWdpbnRfdmFsdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpZ2lu
dF92YWx1ZS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5
bnRheEVycm9yOiBObyBpZGVudGlmaWVycyBhbGxvd2VkIGRpcmVjdGx5IGFmdGVyIG51bWVyaWMg
bGl0ZXJhbAotCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBO
byBpZGVudGlmaWVycyBhbGxvd2VkIGRpcmVjdGx5IGFmdGVyIG51bWVyaWMgbGl0ZXJhbAogCitQ
QVNTIEJpZ0ludHMgYXMgdmFsdWVzIGluIEluZGV4ZWREQiAtIHByaW1pdGl2ZSBCaWdJbnQgCitQ
QVNTIEJpZ0ludHMgYXMgdmFsdWVzIGluIEluZGV4ZWREQiAtIEJpZ0ludCBvYmplY3QgCitQQVNT
IEJpZ0ludHMgYXMgdmFsdWVzIGluIEluZGV4ZWREQiAtIHByaW1pdGl2ZSBCaWdJbnQgaW5zaWRl
IG9iamVjdCAKK1BBU1MgQmlnSW50cyBhcyB2YWx1ZXMgaW4gSW5kZXhlZERCIC0gQmlnSW50IG9i
amVjdCBpbnNpZGUgb2JqZWN0IAorUEFTUyBCaWdJbnRzIGFzIGtleXMgaW4gSW5kZXhlZERCIC0g
cHJpbWl0aXZlIEJpZ0ludCAKK1BBU1MgQmlnSW50cyBhcyBrZXlzIGluIEluZGV4ZWREQiAtIEJp
Z0ludCBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0
dXJlZC1kYXRhL3N0cnVjdHVyZWRfY2xvbmVfYmlnaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9z
YWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWRfY2xvbmVfYmlnaW50LWV4
cGVjdGVkLnR4dAppbmRleCBlMzE3YWFhNTYyZGNkOTRlZDIzOTNjNTE2MTViODcxOTUxYWQxZmVm
Li42Zjg3ZjJiMjUzYWY0M2UxOTU3OTdlMjc2MTU4NWY3ZDZkYTkwZDJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1
Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkX2Nsb25lX2Jp
Z2ludC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVk
LWRhdGEvc3RydWN0dXJlZF9jbG9uZV9iaWdpbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNCBA
QAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMgYWxsb3dlZCBk
aXJlY3RseSBhZnRlciBudW1lcmljIGxpdGVyYWwKLQotSGFybmVzcyBFcnJvciAoRkFJTCksIG1l
c3NhZ2UgPSBTeW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMgYWxsb3dlZCBkaXJlY3RseSBhZnRl
ciBudW1lcmljIGxpdGVyYWwKIAorUEFTUyBQcmltaXRpdmUgQmlnSW50IGlzIGNsb25lZCAKK1BB
U1MgSW5zdGFuY2Ugb2YgQmlnSW50IGlzIGNsb25lZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L29iamVjdC1leHBlY3RlZC50
eHQKaW5kZXggODA3NzBjMDA2ZTdhZWJiOWJkOTM5ZDRjM2IxYjRkMzEzNmM4ODQ4My4uZGIwMGQ4
M2Y2NTcxMDBkYmM3NDViYTkyZGM4NjhjMTA0ZWFjNTNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC9vYmplY3QtZXhwZWN0
ZWQudHh0CkBAIC00MSw5ICs0MSwzNyBAQCBFWFBSRVNTSU9OOiAoe2E6IDF9KQogRVhQUkVTU0lP
TjogKHthOiAxLCBiOiAwLCBjOiAtMCwgZDogNDU2bn0pCiB7CiAgICJfdHlwZSI6ICJvYmplY3Qi
LAotICAiX3N1YnR5cGUiOiAiZXJyb3IiLAogICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAot
ICAiX2Rlc2NyaXB0aW9uIjogIlN5bnRheEVycm9yOiBObyBpZGVudGlmaWVycyBhbGxvd2VkIGRp
cmVjdGx5IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIKKyAgIl9kZXNjcmlwdGlvbiI6ICJPYmplY3Qi
LAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9kZXNjcmlw
dGlvbiI6ICJPYmplY3QiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICJfb3ZlcmZsb3ci
OiBmYWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfbmFtZSI6
ICJhIiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiMSIK
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJiIiwKKyAgICAgICAgIl90eXBl
IjogIm51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiMCIKKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgICJfbmFtZSI6ICJjIiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAg
ICJfdmFsdWUiOiAiLTAiCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAiZCIs
CisgICAgICAgICJfdHlwZSI6ICJiaWdpbnQiLAorICAgICAgICAiX3ZhbHVlIjogIjQ1Nm4iCisg
ICAgICB9CisgICAgXSwKKyAgICAiX2VudHJpZXMiOiBudWxsCisgIH0KIH0KIAogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396952</attachid>
            <date>2020-04-20 00:03:45 -0700</date>
            <delta_ts>2020-04-20 00:21:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210728-20200420000344.patch</filename>
            <type>text/plain</type>
            <size>20751</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzY4MmZjZDM2YjAyZDE5N2Q0NWJkNTczNzNjY2JhZmQ5OTcyNDk3Li4xYTRiNDQ3OWJlNDU0ZTA1
NDhjOWIzMWY5NjY3Y2RmM2FlM2JhYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9m
IEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBydW50aW1lL0JpZ0ludE9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGln
aXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6
OmRpZ2l0KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnNldERpZ2l0KToKKwogMjAyMC0wNC0x
OSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0VD
TUEtNDAyXSBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdCBtaXNzaW5nIGluIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDkyY2NjOWQwYWI0YzJlN2E3ZTRiYmQ3MzM1MzNkNGQyMjY1MTdkMTIuLjQ0YjBjODE5
MzI3OTljYjc5NGYwMmVjZGRhZjVjOWYzYzg3NGRhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0lu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzI4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN0cnVjdHVyZWQtY2xvbmluZyBmb3IgQmlnSW50IGFuZCBCaWdJbnRPYmplY3Qu
CisgICAgICAgIFRoZSBsb2dpYyBpcyBhZGRpbmcgQmlnSW50VGFnICYgQmlnSW50T2JqZWN0VGFn
LiBBbmQgdGhlbiB3ZSBwdXQgY29udGVudCBvZiBCaWdJbnQgd2l0aCBsZW5ndGguCisgICAgICAg
IEFuZCBkZXNlcmlhbGl6YXRpb24gcmVhZHMgdGhlbSB0byByZWNvbnN0cnVjdCBCaWdJbnQgb3Ig
QmlnSW50T2JqZWN0LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltbWVkaWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBCaWdJbnREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEJpZ0ludDMyRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBIZWFwQmlnSW50RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkQmlnSW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDIwLTA0LTE5ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBPcHRp
b25hbDxGbG9hdFF1YWQ+IGluIFRyYW5zZm9ybVN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYWZiMjU0NzlhZGUyODQ1Yjg3ODhhZjdjNTRmOWEwZWI5NjhhZWRiMy4u
MjJiZjFhMzE4ZmYxZWQ3OTY2NzJiZTNjOWU1MmFjZjI2YjY3YjY3YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzg5LDYgKzc4OSw3IEBAIHNldChKYXZhU2NyaXB0Q29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcnVudGltZS9BdXhpbGlhcnlCYXJyaWVy
SW5saW5lcy5oCiAgICAgcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uaAogICAgIHJ1bnRpbWUv
QmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaAorICAgIHJ1bnRpbWUvQmlnSW50T2JqZWN0LmgK
ICAgICBydW50aW1lL0JpZ0ludFByb3RvdHlwZS5oCiAgICAgcnVudGltZS9Cb29sZWFuT2JqZWN0
LmgKICAgICBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9CaWdJbnRPYmplY3QuaAppbmRleCBkZWE4MWQyMmUyZjVlNjI5NTMyODgxYTk0
YWQ4MGY1OTFmNzYxMjQ5Li5kZWNjZmRlNWZlNmVlNWYyZGM0ZDA4NWQwZWMzMjA2MWQ3NTg3MWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRPYmplY3QuaApAQCAt
NDAsNyArNDAsNyBAQCBjbGFzcyBCaWdJbnRPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNXcmFwcGVy
T2JqZWN0IHsKICAgICAgICAgcmV0dXJuIHZtLmJpZ0ludE9iamVjdFNwYWNlPG1vZGU+KCk7CiAg
ICAgfQogCi0gICAgc3RhdGljIEJpZ0ludE9iamVjdCogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQmlnSW50T2JqZWN0
KiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAgICAgREVDTEFSRV9F
WFBPUlRfSU5GTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CmluZGV4IDFjMjM5Y2JmYWEzZGQwMGFmMTMwY2Y1YzI0NDA4MDhlYjQzNDM5ZmMuLmQzOTkyMzFj
ZTAzN2RhYjJmNGVjMDRlMTRiMjQ5MDQ3NmY1MjQ0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTE5MzYsMTggKzE5MzYsNiBAQCBKU1ZhbHVlIEpT
QmlnSW50OjpwYXJzZUludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIENo
YXJUeXBlKiBkYXRhLAogICAgIHJldHVybiBoZWFwUmVzdWx0LT5yaWdodFRyaW0odm0pOwogfQog
Ci1pbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQotewot
ICAgIEFTU0VSVChuIDwgbGVuZ3RoKCkpOwotICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOwot
fQotCi1pbmxpbmUgdm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFs
dWUpCi17Ci0gICAgQVNTRVJUKG4gPCBsZW5ndGgoKSk7Ci0gICAgZGF0YVN0b3JhZ2UoKVtuXSA9
IHZhbHVlOwotfQotCiBKU09iamVjdCogSlNCaWdJbnQ6OnRvT2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEJpZ0ludE9iamVjdDo6Y3JlYXRl
KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBjb25zdF9jYXN0PEpTQmlnSW50Kj4o
dGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggOGUy
YzE0OGU2Y2VhZGZmNTM3MTlmNjNjYjM2YzcyMDJlOGRiMzAyYi4uN2RmYmJmZmU1YjcwY2ExNGFh
OGYyZGM4ZmJjOTUzYTMzMmI5YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBK
U0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAgICBzdGF0aWMgSlNCaWdJbnQq
IGNyZWF0ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIHRyeUNyZWF0ZVdpdGhMZW5n
dGgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBKU0JpZ0ludCogdHJ5Q3JlYXRlV2l0aExlbmd0aChKU0dsb2JhbE9iamVjdCos
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVXaXRoTGVuZ3Ro
VW5jaGVja2VkKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBKU0JpZ0ludCog
Y3JlYXRlRnJvbShWTSYsIGludDMyX3QgdmFsdWUpOwpAQCAtMTU0LDYgKzE1NCw5IEBAIGNsYXNz
IEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIEpTQmlnSW50KiBs
ZWZ0U2hpZnQoSlNHbG9iYWxPYmplY3QqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAg
IHN0YXRpYyBKU0JpZ0ludCogc2lnbmVkUmlnaHRTaGlmdChKU0dsb2JhbE9iamVjdCosIEpTQmln
SW50KiB4LCBKU0JpZ0ludCogeSk7CiAKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7CisgICAg
dm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOyAvLyBVc2Ugb25seSB3aGVuIGluaXRpYWxp
emluZy4KKwogcHJpdmF0ZToKICAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIERpZ2l0Kiwg
dW5zaWduZWQgbGVuZ3RoKTsKIApAQCAtMjYxLDkgKzI2NCw2IEBAIGNsYXNzIEpTQmlnSW50IGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBpbmxpbmUgRGlnaXQqIGRhdGFTdG9yYWdlKCkg
eyByZXR1cm4gbV9kYXRhLmdldChtX2xlbmd0aCk7IH0KIAotICAgIERpZ2l0IGRpZ2l0KHVuc2ln
bmVkKTsKLSAgICB2b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdpdCk7Ci0KICAgICBjb25zdCB1
bnNpZ25lZCBtX2xlbmd0aDsKICAgICBib29sIG1fc2lnbiB7IGZhbHNlIH07CiAgICAgQ2FnZWRV
bmlxdWVQdHI8R2lnYWNhZ2U6OlByaW1pdGl2ZSwgRGlnaXQ+IG1fZGF0YTsKQEAgLTI3NSw0ICsy
NzUsMTYgQEAgaW5saW5lIEpTQmlnSW50KiBhc0hlYXBCaWdJbnQoSlNWYWx1ZSB2YWx1ZSkKICAg
ICByZXR1cm4ganNDYXN0PEpTQmlnSW50Kj4odmFsdWUuYXNDZWxsKCkpOwogfQogCitpbmxpbmUg
SlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQoreworICAgIEFTU0VS
VChuIDwgbGVuZ3RoKCkpOworICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOworfQorCitpbmxp
bmUgdm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCit7Cisg
ICAgQVNTRVJUKG4gPCBsZW5ndGgoKSk7CisgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDEyYzc2Y2YwNzIwOGM0NDk4YTIy
NzIwNjJjYzRiNDgwNjdmZTYwMzguLjdiOTNiMGI2MDljZGJkZTQ3MWViOTI4Y2RhOTcxMzIzODBk
N2JkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9BUElDYXN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQmlnSW50T2JqZWN0
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQm9vbGVhbk9iamVjdC5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NhdGNoU2NvcGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9E
YXRlSW5zdGFuY2UuaD4KQEAgLTE3Nyw2ICsxNzgsOCBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcg
ewogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQogICAgIE9mZnNjcmVlbkNhbnZhc1RyYW5z
ZmVyVGFnID0gNDYsCiAjZW5kaWYKKyAgICBCaWdJbnRUYWcgPSA0NywKKyAgICBCaWdJbnRPYmpl
Y3RUYWcgPSA0OCwKICAgICBFcnJvclRhZyA9IDI1NQogfTsKIApAQCAtMzQzLDYgKzM0Niw3IEBA
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAwMDAwMDA7
CiAgKiAgICB8IFN0cmluZwogICogICAgfCBFbXB0eVN0cmluZ1RhZwogICogICAgfCBFbXB0eVN0
cmluZ09iamVjdFRhZworICogICAgfCBCaWdJbnQKICAqICAgIHwgRmlsZQogICogICAgfCBGaWxl
TGlzdAogICogICAgfCBJbWFnZURhdGEKQEAgLTM4Myw2ICszODcsMTMgQEAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cmluZ0RhdGFJczhCaXRGbGFnID0gMHg4MDAwMDAwMDsKICAqICAgICAgU3Ry
aW5nUG9vbFRhZyA8Y3BJbmRleDpJbmRleFR5cGU+CiAgKiAgICAgIChub3QgKFRlcm1pbmF0b3JU
YWcgfCBTdHJpbmdQb29sVGFnKSk8aXM4Qml0OnVpbnQzMl90OjE+PGxlbmd0aDp1aW50MzJfdDoz
MT48Y2hhcmFjdGVyczpDaGFyVHlwZXtsZW5ndGh9PiAvLyBBZGRlZCB0byBjb25zdGFudCBwb29s
IHdoZW4gc2Vlbiwgc3RyaW5nIGxlbmd0aCAweEZGRkZGRkZGIGlzIGRpc2FsbG93ZWQKICAqCisg
KiBCaWdJbnQgOi0KKyAqICAgICAgQmlnSW50VGFnIEJpZ0ludERhdGEKKyAqICAgICAgQmlnSW50
T2JqZWN0VGFnIEJpZ0ludERhdGEKKyAqCisgKiBCaWdJbnREYXRhIDotCisgKiAgICAgIDxzaWdu
OnVpbnQ4X3Q+IDxsZW5ndGhJblVpbnQ2NDp1aW50MzJfdD4gPGNvbnRlbnRzOnVpbnQ2NF90e2xl
bmd0aEluVWludDY0fT4KKyAqCiAgKiBGaWxlIDotCiAgKiAgICBGaWxlVGFnIEZpbGVEYXRhCiAg
KgpAQCAtNzQ0LDExICs3NTUsMTUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKIAogICAgIHZvaWQgZHVtcEltbWVkaWF0ZShKU1ZhbHVlIHZhbHVlKQogICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlLmlzTnVsbCgpKQorICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpIHsKICAg
ICAgICAgICAgIHdyaXRlKE51bGxUYWcpOwotICAgICAgICBlbHNlIGlmICh2YWx1ZS5pc1VuZGVm
aW5lZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICh2YWx1
ZS5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgICAgICB3cml0ZShVbmRlZmluZWRUYWcpOwotICAg
ICAgICBlbHNlIGlmICh2YWx1ZS5pc051bWJlcigpKSB7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAgIGlm
ICh2YWx1ZS5pc0ludDMyKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmFzSW50MzIo
KSkKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoWmVyb1RhZyk7CkBAIC03NjIsMTIgKzc3Nywy
MiBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAg
IHdyaXRlKERvdWJsZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWUuYXNEb3VibGUo
KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAodmFsdWUuaXNCb29sZWFuKCkp
IHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUuaXNC
b29sZWFuKCkpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZS5pc1RydWUoKSkKICAgICAgICAgICAg
ICAgICB3cml0ZShUcnVlVGFnKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB3
cml0ZShGYWxzZVRhZyk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBVU0Uo
QklHSU5UMzIpCisgICAgICAgIGlmICh2YWx1ZS5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgICAg
IHdyaXRlKEJpZ0ludFRhZyk7CisgICAgICAgICAgICBkdW1wQmlnSW50RGF0YSh2YWx1ZSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHZvaWQg
ZHVtcFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTc5MCw2ICs4MTUsNTggQEAgY2xh
c3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgfQogICAgIH0KIAorICAg
IHZvaWQgZHVtcEJpZ0ludERhdGEoSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VS
VCh2YWx1ZS5pc0JpZ0ludCgpKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgIGlmICh2YWx1
ZS5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgICAgIGR1bXBCaWdJbnQzMkRhdGEodmFsdWUuYmln
SW50MzJBc0ludDMyKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYK
KyAgICAgICAgZHVtcEhlYXBCaWdJbnREYXRhKGpzQ2FzdDxKU0JpZ0ludCo+KHZhbHVlKSk7Cisg
ICAgfQorCisjaWYgVVNFKEJJR0lOVDMyKQorICAgIHZvaWQgZHVtcEJpZ0ludDMyRGF0YShpbnQz
Ml90IGludGVnZXIpCisgICAgeworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDx1aW50OF90Pihp
bnRlZ2VyIDwgMCkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkpOyAv
LyBMZW5ndGgtaW4tdWludDY0X3QKKyAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN0YXRpY19jYXN0
PGludDY0X3Q+KGludGVnZXIpOworICAgICAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICAgICAg
dmFsdWUgPSAtdmFsdWU7CisgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2YWx1
ZSkpOworICAgIH0KKyNlbmRpZgorCisgICAgdm9pZCBkdW1wSGVhcEJpZ0ludERhdGEoSlNCaWdJ
bnQqIGJpZ0ludCkKKyAgICB7CisgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGJp
Z0ludC0+c2lnbigpKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKEpTQmlnSW50OjpE
aWdpdCkgPT0gc2l6ZW9mKHVpbnQ2NF90KSkgeworICAgICAgICAgICAgd3JpdGUoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGJpZ0ludC0+bGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaW5kZXggPSAwOyBpbmRleCA8IGJpZ0ludC0+bGVuZ3RoKCk7ICsraW5kZXgpCisgICAgICAg
ICAgICAgICAgd3JpdGUoYmlnSW50LT5kaWdpdChpbmRleCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgQVNTRVJUKHNpemVvZihKU0JpZ0ludDo6RGlnaXQpID09IHNpemVvZih1aW50
MzJfdCkpOworICAgICAgICAgICAgdWludDMyX3QgbGVuZ3RoSW5VaW50NjQgPSBiaWdJbnQtPmxl
bmd0aCgpIC8gMjsKKyAgICAgICAgICAgIGlmIChiaWdJbnQtPmxlbmd0aCgpICYgMHgxKQorICAg
ICAgICAgICAgICAgICsrbGVuZ3RoSW5VaW50NjQ7CisgICAgICAgICAgICB3cml0ZShsZW5ndGhJ
blVpbnQ2NCk7CisgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZSA9IDA7CisgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBiaWdJbnQtPmxlbmd0aCgpOyArK2luZGV4
KSB7CisgICAgICAgICAgICAgICAgaWYgKCEoaW5kZXggJiAweDEpKQorICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IGJpZ0ludC0+ZGlnaXQoaW5kZXgpOworICAgICAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmln
SW50LT5kaWdpdChpbmRleCkpIDw8IDMyKSB8IHZhbHVlOworICAgICAgICAgICAgICAgICAgICB3
cml0ZSh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYmlnSW50LT5sZW5ndGgoKSAm
IDB4MSkKKyAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBKU0M6OkpTVmFsdWUgdG9KU0FycmF5QnVmZmVyKEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZl
cikKICAgICB7CiAgICAgICAgIGF1dG8mIHZtID0gbV9sZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgp
OwpAQCAtOTkyLDYgKzEwNjksMTIgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKHZh
bHVlLmlzSGVhcEJpZ0ludCgpKSB7CisgICAgICAgICAgICB3cml0ZShCaWdJbnRUYWcpOworICAg
ICAgICAgICAgZHVtcEJpZ0ludERhdGEodmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKwogICAgICAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkgewogICAgICAgICAg
ICAgY29kZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpEYXRhQ2xvbmVFcnJvcjsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTAyOCw2ICsxMTExLDE1IEBAIGNsYXNzIENsb25lU2Vy
aWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUobnVtYmVyT2JqZWN0
LT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byogYmlnSW50T2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxCaWdJbnRPYmplY3QqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAg
IGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChiaWdJbnRPYmplY3QpKSAvLyBoYW5kbGUgZHVwbGlj
YXRlcworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBK
U1ZhbHVlIGJpZ0ludFZhbHVlID0gYmlnSW50T2JqZWN0LT5pbnRlcm5hbFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKGJpZ0ludFZhbHVlLmlzQmlnSW50KCkpOworICAgICAgICAgICAg
ICAgIHdyaXRlKEJpZ0ludE9iamVjdFRhZyk7CisgICAgICAgICAgICAgICAgZHVtcEJpZ0ludERh
dGEoYmlnSW50VmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKGF1dG8qIGZpbGUgPSBKU0ZpbGU6OnRvV3JhcHBlZCh2bSwg
b2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVUYWcpOwogICAgICAgICAgICAgICAg
IHdyaXRlKCpmaWxlKTsKQEAgLTI4OTMsNiArMjk4NSw3MiBAQCBjbGFzcyBDbG9uZURlc2VyaWFs
aXplciA6IENsb25lQmFzZSB7CiAgICAgICAgIHJldHVybiBnZXRKU1ZhbHVlKGJpdG1hcCk7CiAg
ICAgfQogCisgICAgSlNWYWx1ZSByZWFkQmlnSW50KCkKKyAgICB7CisgICAgICAgIHVpbnQ4X3Qg
c2lnbiA9IDA7CisgICAgICAgIGlmICghcmVhZChzaWduKSkKKyAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlKCk7CisgICAgICAgIHVpbnQzMl90IGxlbmd0aEluVWludDY0ID0gMDsKKyAgICAgICAg
aWYgKCFyZWFkKGxlbmd0aEluVWludDY0KSkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7
CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihKU0JpZ0lu
dDo6RGlnaXQpID09IHNpemVvZih1aW50NjRfdCkpOworICAgICAgICBpZiAobGVuZ3RoSW5VaW50
NjQgPT0gMSkgeworICAgICAgICAgICAgdWludDY0X3QgZGlnaXQ2NCA9IDA7CisgICAgICAgICAg
ICBpZiAoIXJlYWQoZGlnaXQ2NCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsK
KyAgICAgICAgICAgIGlmIChzaWduKSB7CisgICAgICAgICAgICAgICAgaWYgKGRpZ2l0NjQgPD0g
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KC1zdGF0aWNfY2FzdDxpbnQ2NF90PihJTlQzMl9NSU4pKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNCaWdJbnQzMiwg
c3RhdGljX2Nhc3Q8aW50MzJfdD4oLXN0YXRpY19jYXN0PGludDY0X3Q+KGRpZ2l0NjQpKSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChkaWdpdDY0IDw9IElOVDMy
X01BWCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNCaWdJ
bnQzMiwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGlnaXQ2NCkpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgQVNTRVJUKGRpZ2l0NjQgIT0gMCk7CisgICAgICAgICAgICBKU0JpZ0ludCogYmln
SW50ID0gSlNCaWdJbnQ6OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9sZXhpY2FsR2xvYmFsT2JqZWN0
LCAxKTsKKyAgICAgICAgICAgIGlmICghYmlnSW50KSB7CisgICAgICAgICAgICAgICAgZmFpbCgp
OworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBiaWdJbnQtPnNldERpZ2l0KDAsIGRpZ2l0NjQpOworICAgICAgICAgICAgYmlnSW50
LT5zZXRTaWduKHNpZ24pOworICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hP
bk92ZXJmbG93KGJpZ0ludCk7CisgICAgICAgICAgICByZXR1cm4gYmlnSW50OworICAgICAgICB9
CisjZW5kaWYKKyAgICAgICAgSlNCaWdJbnQqIGJpZ0ludCA9IG51bGxwdHI7CisgICAgICAgIGlm
IGNvbnN0ZXhwciAoc2l6ZW9mKEpTQmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQ2NF90KSkg
eworICAgICAgICAgICAgYmlnSW50ID0gSlNCaWdJbnQ6OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9s
ZXhpY2FsR2xvYmFsT2JqZWN0LCBsZW5ndGhJblVpbnQ2NCk7CisgICAgICAgICAgICBpZiAoIWJp
Z0ludCkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpbmRl
eCA9IDA7IGluZGV4IDwgbGVuZ3RoSW5VaW50NjQ7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICB1aW50NjRfdCBkaWdpdDY0ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoIXJlYWQoZGlnaXQ2
NCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgYmlnSW50LT5zZXREaWdpdChpbmRleCwgZGlnaXQ2NCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoc2l6ZW9mKEpTQmlnSW50OjpEaWdpdCkg
PT0gc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgICAgICAgICBiaWdJbnQgPSBKU0JpZ0ludDo6dHJ5
Q3JlYXRlV2l0aExlbmd0aChtX2xleGljYWxHbG9iYWxPYmplY3QsIGxlbmd0aEluVWludDY0ICog
Mik7CisgICAgICAgICAgICBpZiAoIWJpZ0ludCkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZm9yICh1aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoSW5VaW50NjQ7ICsr
aW5kZXgpIHsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBkaWdpdDY0ID0gMDsKKyAgICAgICAg
ICAgICAgICBpZiAoIXJlYWQoZGlnaXQ2NCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgYmlnSW50LT5zZXREaWdpdChpbmRleCAqIDIsIHN0
YXRpY19jYXN0PHVpbnQzMl90PihkaWdpdDY0KSk7CisgICAgICAgICAgICAgICAgYmlnSW50LT5z
ZXREaWdpdChpbmRleCAqIDIgKyAxLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGlnaXQ2NCA+PiAz
MikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJpZ0ludC0+c2V0U2lnbihz
aWduKTsKKyAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGJpZ0lu
dCk7CisgICAgICAgIHJldHVybiBiaWdJbnQ7CisgICAgfQorCiAgICAgSlNWYWx1ZSByZWFkVGVy
bWluYWwoKQogICAgIHsKICAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWcgPSByZWFkVGFnKCk7
CkBAIC0yOTMzLDYgKzMwOTEsOCBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFz
ZSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIHJldHVy
biBqc051bWJlcihkKTsKICAgICAgICAgfQorICAgICAgICBjYXNlIEJpZ0ludFRhZzoKKyAgICAg
ICAgICAgIHJldHVybiByZWFkQmlnSW50KCk7CiAgICAgICAgIGNhc2UgTnVtYmVyT2JqZWN0VGFn
OiB7CiAgICAgICAgICAgICBkb3VibGUgZDsKICAgICAgICAgICAgIGlmICghcmVhZChkKSkKQEAg
LTI5NDEsNiArMzEwMSwxNSBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7
CiAgICAgICAgICAgICBtX2djQnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cob2JqKTsK
ICAgICAgICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBCaWdJbnRP
YmplY3RUYWc6IHsKKyAgICAgICAgICAgIEpTVmFsdWUgYmlnSW50ID0gcmVhZEJpZ0ludCgpOwor
ICAgICAgICAgICAgaWYgKCFiaWdJbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUo
KTsKKyAgICAgICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJbnQoKSk7CisgICAgICAgICAgICBC
aWdJbnRPYmplY3QqIG9iaiA9IEJpZ0ludE9iamVjdDo6Y3JlYXRlKG1fbGV4aWNhbEdsb2JhbE9i
amVjdC0+dm0oKSwgbV9nbG9iYWxPYmplY3QsIGJpZ0ludCk7CisgICAgICAgICAgICBtX2djQnVm
ZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cob2JqKTsKKyAgICAgICAgICAgIHJldHVybiBv
Ymo7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBEYXRlVGFnOiB7CiAgICAgICAgICAgICBkb3Vi
bGUgZDsKICAgICAgICAgICAgIGlmICghcmVhZChkKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NWNjYzlhN2RhOWFjOWRk
Njg1ZDc4OTZmMGY2Y2ExZGE4MGUxYTE5Li5mYzJkZTQ3MGJhNjk2OThlNzQ0M2RhNDI5ZWVlZWI3
MzMxOGRhMDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDQtMjAgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJ1Y3R1cmVkQ2xvbmUgYWxnb3Jp
dGhtIHNob3VsZCBiZSBhd2FyZSBvZiBCaWdJbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QvbnVt
YmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVj
dC9vYmplY3QtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA0LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zdHJ1Y3R1cmVkLWNsb25lCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwYWYzMGY5MDc2MzQ4MTViMjkxNDA3ZDAyN2ZkMGU3NmI2
ZTllMzFiLi42N2RjMDA2YmJlYjVjNDQyOWI5NDlkMjEzMGZjZWQ4N2Q5YzVjN2VjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0yMCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9u
ZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0ludAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2JpZ2ludF92YWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9z
dHJ1Y3R1cmVkX2Nsb25lX2JpZ2ludC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMTkgIEVtaWxp
byBDb2JvcyDDgWx2YXJleiAgPGVtaWxpb0BjcmlzYWwuaW8+CiAKICAgICAgICAgRG9uJ3QgdXNl
IHRoZSBpbmhlcml0ZWQgY3VzdG9tIHByb3BlcnRpZXMgdG8gc3RvcmUgZW52aXJvbm1lbnQgdmFy
aWFibGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvYmlnaW50X3ZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpZ2ludF92YWx1ZS1l
eHBlY3RlZC50eHQKaW5kZXggZTMxN2FhYTU2MmRjZDk0ZWQyMzkzYzUxNjE1Yjg3MTk1MWFkMWZl
Zi4uYzY5OGE0MjZlZTY4MmI5MTEzMzlmMTY3ODhiYzc1ZDc4OGUxYTAxYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmln
aW50X3ZhbHVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9iaWdpbnRfdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsOCBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMg
YWxsb3dlZCBkaXJlY3RseSBhZnRlciBudW1lcmljIGxpdGVyYWwKLQotSGFybmVzcyBFcnJvciAo
RkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMgYWxsb3dlZCBkaXJl
Y3RseSBhZnRlciBudW1lcmljIGxpdGVyYWwKIAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJ
bmRleGVkREIgLSBwcmltaXRpdmUgQmlnSW50IAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJ
bmRleGVkREIgLSBCaWdJbnQgb2JqZWN0IAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJbmRl
eGVkREIgLSBwcmltaXRpdmUgQmlnSW50IGluc2lkZSBvYmplY3QgCitQQVNTIEJpZ0ludHMgYXMg
dmFsdWVzIGluIEluZGV4ZWREQiAtIEJpZ0ludCBvYmplY3QgaW5zaWRlIG9iamVjdCAKK1BBU1Mg
QmlnSW50cyBhcyBrZXlzIGluIEluZGV4ZWREQiAtIHByaW1pdGl2ZSBCaWdJbnQgCitQQVNTIEJp
Z0ludHMgYXMga2V5cyBpbiBJbmRleGVkREIgLSBCaWdJbnQgb2JqZWN0IAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFz
dHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkX2Nsb25l
X2JpZ2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zdHJ1Y3R1cmVkX2Nsb25lX2JpZ2ludC1leHBlY3RlZC50eHQKaW5kZXggZTMxN2FhYTU2
MmRjZDk0ZWQyMzkzYzUxNjE1Yjg3MTk1MWFkMWZlZi4uNmY4N2YyYjI1M2FmNDNlMTk1Nzk3ZTI3
NjE1ODVmN2Q2ZGE5MGQyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1
Y3R1cmVkLWRhdGEvc3RydWN0dXJlZF9jbG9uZV9iaWdpbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVj
dHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWRfY2xvbmVfYmln
aW50LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4
RXJyb3I6IE5vIGlkZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRl
cmFsCi0KLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IE5vIGlk
ZW50aWZpZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsCiAKK1BBU1Mg
UHJpbWl0aXZlIEJpZ0ludCBpcyBjbG9uZWQgCitQQVNTIEluc3RhbmNlIG9mIEJpZ0ludCBpcyBj
bG9uZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0L251bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwv
cmVtb3RlLW9iamVjdC9udW1iZXItZXhwZWN0ZWQudHh0CmluZGV4IGFiNmZhNjUwZDk5NTFmZDJh
NmQxOGQ1MjNiZDc4ZmZjM2YzNDA4M2MuLjdmYjliNTVlZTI0Mjc0NmE0OWYwOTEzOGFhODY4MTRm
ZGQ0NmUxYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0L251bWJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL3JlbW90ZS1vYmplY3QvbnVtYmVyLWV4cGVjdGVkLnR4dApAQCAtMTAwLDYgKzEwMCw2IEBA
IEVYUFJFU1NJT046IDEyM24KIHsKICAgIl90eXBlIjogImJpZ2ludCIsCiAgICJfZGVzY3JpcHRp
b24iOiAiMTIzbiIsCi0gICJfdmFsdWUiOiAiMTIzbiBbQmlnSW50IE5vdCBFbmFibGVkIGluIFdl
YiBJbnNwZWN0b3JdIgorICAiX3ZhbHVlIjogIjxmaWx0ZXJlZCAxMjNuPiIKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L29i
amVjdC1leHBlY3RlZC50eHQKaW5kZXggODA3NzBjMDA2ZTdhZWJiOWJkOTM5ZDRjM2IxYjRkMzEz
NmM4ODQ4My4uZGIwMGQ4M2Y2NTcxMDBkYmM3NDViYTkyZGM4NjhjMTA0ZWFjNTNkNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVj
dC9vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC00MSw5ICs0MSwzNyBAQCBFWFBSRVNTSU9OOiAoe2E6
IDF9KQogRVhQUkVTU0lPTjogKHthOiAxLCBiOiAwLCBjOiAtMCwgZDogNDU2bn0pCiB7CiAgICJf
dHlwZSI6ICJvYmplY3QiLAotICAiX3N1YnR5cGUiOiAiZXJyb3IiLAogICAiX29iamVjdElkIjog
IjxmaWx0ZXJlZD4iLAotICAiX2Rlc2NyaXB0aW9uIjogIlN5bnRheEVycm9yOiBObyBpZGVudGlm
aWVycyBhbGxvd2VkIGRpcmVjdGx5IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIKKyAgIl9kZXNjcmlw
dGlvbiI6ICJPYmplY3QiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIs
CisgICAgIl9kZXNjcmlwdGlvbiI6ICJPYmplY3QiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAor
ICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7Cisg
ICAgICAgICJfbmFtZSI6ICJhIiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAg
ICJfdmFsdWUiOiAiMSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJiIiwK
KyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiMCIKKyAgICAg
IH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJjIiwKKyAgICAgICAgIl90eXBlIjogIm51
bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiLTAiCisgICAgICB9LAorICAgICAgeworICAgICAg
ICAiX25hbWUiOiAiZCIsCisgICAgICAgICJfdHlwZSI6ICJiaWdpbnQiLAorICAgICAgICAiX3Zh
bHVlIjogIjQ1Nm4iCisgICAgICB9CisgICAgXSwKKyAgICAiX2VudHJpZXMiOiBudWxsCisgIH0K
IH0KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396955</attachid>
            <date>2020-04-20 00:21:12 -0700</date>
            <delta_ts>2020-04-20 00:21:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210728-20200420002111.patch</filename>
            <type>text/plain</type>
            <size>21246</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzY4MmZjZDM2YjAyZDE5N2Q0NWJkNTczNzNjY2JhZmQ5OTcyNDk3Li5mZTg2ODE4MWRkMmIyMWQ1
ZGM5NmEyMjgwYmYxYjllNjNhYjVlNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9m
IEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBydW50aW1lL0JpZ0ludE9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRpZ2l0
KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnNldERpZ2l0KToKKwogMjAyMC0wNC0xOSAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0VDTUEtNDAy
XSBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdCBtaXNzaW5nIGluIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDkyY2NjOWQwYWI0YzJlN2E3ZTRiYmQ3MzM1MzNkNGQyMjY1MTdkMTIuLjI0YzFjOGRiYmNkZTI5
Y2IyODljN2Q1MzAyZDFiNjVlYWJjYzNmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0ludAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN0
cnVjdHVyZWQtY2xvbmluZyBmb3IgQmlnSW50IGFuZCBCaWdJbnRPYmplY3QuCisgICAgICAgIFRo
ZSBsb2dpYyBpcyBhZGRpbmcgQmlnSW50VGFnICYgQmlnSW50T2JqZWN0VGFnLiBBbmQgdGhlbiB3
ZSBwdXQgY29udGVudCBvZiBCaWdJbnQgd2l0aCBsZW5ndGguCisgICAgICAgIEFuZCBkZXNlcmlh
bGl6YXRpb24gcmVhZHMgdGhlbSB0byByZWNvbnN0cnVjdCBCaWdJbnQgb3IgQmlnSW50T2JqZWN0
LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltbWVkaWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBCaWdJbnREYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEJpZ0ludDMyRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBIZWFwQmlnSW50RGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkQmlnSW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25l
RGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDIwLTA0LTE5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBPcHRpb25hbDxGbG9hdFF1
YWQ+IGluIFRyYW5zZm9ybVN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYWZiMjU0NzlhZGUyODQ1Yjg3ODhhZjdjNTRmOWEwZWI5NjhhZWRiMy4uMjJiZjFhMzE4ZmYx
ZWQ3OTY2NzJiZTNjOWU1MmFjZjI2YjY3YjY3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtNzg5LDYgKzc4OSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcnVudGltZS9BdXhpbGlhcnlCYXJyaWVySW5saW5lcy5oCiAg
ICAgcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uaAogICAgIHJ1bnRpbWUvQmF0Y2hlZFRyYW5z
aXRpb25PcHRpbWl6ZXIuaAorICAgIHJ1bnRpbWUvQmlnSW50T2JqZWN0LmgKICAgICBydW50aW1l
L0JpZ0ludFByb3RvdHlwZS5oCiAgICAgcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKICAgICBydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQmlnSW50T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
aWdJbnRPYmplY3QuaAppbmRleCBkZWE4MWQyMmUyZjVlNjI5NTMyODgxYTk0YWQ4MGY1OTFmNzYx
MjQ5Li5kZWNjZmRlNWZlNmVlNWYyZGM0ZDA4NWQwZWMzMjA2MWQ3NTg3MWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRPYmplY3QuaApAQCAtNDAsNyArNDAsNyBA
QCBjbGFzcyBCaWdJbnRPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAg
ICAgICAgcmV0dXJuIHZtLmJpZ0ludE9iamVjdFNwYWNlPG1vZGU+KCk7CiAgICAgfQogCi0gICAg
c3RhdGljIEJpZ0ludE9iamVjdCogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQmlnSW50T2JqZWN0KiBjcmVhdGUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCmluZGV4IDFjMjM5
Y2JmYWEzZGQwMGFmMTMwY2Y1YzI0NDA4MDhlYjQzNDM5ZmMuLmQzOTkyMzFjZTAzN2RhYjJmNGVj
MDRlMTRiMjQ5MDQ3NmY1MjQ0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAKQEAgLTE5MzYsMTggKzE5MzYsNiBAQCBKU1ZhbHVlIEpTQmlnSW50OjpwYXJz
ZUludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIENoYXJUeXBlKiBkYXRh
LAogICAgIHJldHVybiBoZWFwUmVzdWx0LT5yaWdodFRyaW0odm0pOwogfQogCi1pbmxpbmUgSlNC
aWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQotewotICAgIEFTU0VSVChu
IDwgbGVuZ3RoKCkpOwotICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOwotfQotCi1pbmxpbmUg
dm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCi17Ci0gICAg
QVNTRVJUKG4gPCBsZW5ndGgoKSk7Ci0gICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOwotfQot
CiBKU09iamVjdCogSlNCaWdJbnQ6OnRvT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEJpZ0ludE9iamVjdDo6Y3JlYXRlKGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCBjb25zdF9jYXN0PEpTQmlnSW50Kj4odGhpcykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggOGUyYzE0OGU2Y2VhZGZm
NTM3MTlmNjNjYjM2YzcyMDJlOGRiMzAyYi4uN2RmYmJmZmU1YjcwY2ExNGFhOGYyZGM4ZmJjOTUz
YTMzMmI5YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
aWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBA
IC02MCw3ICs2MCw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVplcm8o
Vk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIHRyeUNyZWF0ZVdpdGhMZW5ndGgoSlNHbG9iYWxP
YmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBK
U0JpZ0ludCogdHJ5Q3JlYXRlV2l0aExlbmd0aChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGxl
bmd0aCk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVXaXRoTGVuZ3RoVW5jaGVja2VkKFZN
JiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShW
TSYsIGludDMyX3QgdmFsdWUpOwpAQCAtMTU0LDYgKzE1NCw5IEBAIGNsYXNzIEpTQmlnSW50IGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIEpTQmlnSW50KiBsZWZ0U2hpZnQoSlNH
bG9iYWxPYmplY3QqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIHN0YXRpYyBKU0Jp
Z0ludCogc2lnbmVkUmlnaHRTaGlmdChKU0dsb2JhbE9iamVjdCosIEpTQmlnSW50KiB4LCBKU0Jp
Z0ludCogeSk7CiAKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXREaWdp
dCh1bnNpZ25lZCwgRGlnaXQpOyAvLyBVc2Ugb25seSB3aGVuIGluaXRpYWxpemluZy4KKwogcHJp
dmF0ZToKICAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIERpZ2l0KiwgdW5zaWduZWQgbGVu
Z3RoKTsKIApAQCAtMjYxLDkgKzI2NCw2IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAKICAgICBpbmxpbmUgRGlnaXQqIGRhdGFTdG9yYWdlKCkgeyByZXR1cm4gbV9k
YXRhLmdldChtX2xlbmd0aCk7IH0KIAotICAgIERpZ2l0IGRpZ2l0KHVuc2lnbmVkKTsKLSAgICB2
b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdpdCk7Ci0KICAgICBjb25zdCB1bnNpZ25lZCBtX2xl
bmd0aDsKICAgICBib29sIG1fc2lnbiB7IGZhbHNlIH07CiAgICAgQ2FnZWRVbmlxdWVQdHI8R2ln
YWNhZ2U6OlByaW1pdGl2ZSwgRGlnaXQ+IG1fZGF0YTsKQEAgLTI3NSw0ICsyNzUsMTYgQEAgaW5s
aW5lIEpTQmlnSW50KiBhc0hlYXBCaWdJbnQoSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4ganND
YXN0PEpTQmlnSW50Kj4odmFsdWUuYXNDZWxsKCkpOwogfQogCitpbmxpbmUgSlNCaWdJbnQ6OkRp
Z2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQoreworICAgIEFTU0VSVChuIDwgbGVuZ3Ro
KCkpOworICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOworfQorCitpbmxpbmUgdm9pZCBKU0Jp
Z0ludDo6c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCit7CisgICAgQVNTRVJUKG4g
PCBsZW5ndGgoKSk7CisgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDEyYzc2Y2YwNzIwOGM0NDk4YTIyNzIwNjJjYzRiNDgw
NjdmZTYwMzguLmJjMzg2MmU0NjJkYmZkNjBhYmU3YmRhMDdjMzExOWI2MmJhMGVlMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElD
YXN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQmlnSW50T2JqZWN0Lmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQm9vbGVhbk9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NhdGNoU2NvcGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EYXRlSW5zdGFuY2Uu
aD4KQEAgLTE3Nyw2ICsxNzgsOCBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogI2lmIEVOQUJM
RShPRkZTQ1JFRU5fQ0FOVkFTKQogICAgIE9mZnNjcmVlbkNhbnZhc1RyYW5zZmVyVGFnID0gNDYs
CiAjZW5kaWYKKyAgICBCaWdJbnRUYWcgPSA0NywKKyAgICBCaWdJbnRPYmplY3RUYWcgPSA0OCwK
ICAgICBFcnJvclRhZyA9IDI1NQogfTsKIApAQCAtMzQzLDYgKzM0Niw3IEBAIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAwMDAwMDA7CiAgKiAgICB8IFN0
cmluZwogICogICAgfCBFbXB0eVN0cmluZ1RhZwogICogICAgfCBFbXB0eVN0cmluZ09iamVjdFRh
ZworICogICAgfCBCaWdJbnQKICAqICAgIHwgRmlsZQogICogICAgfCBGaWxlTGlzdAogICogICAg
fCBJbWFnZURhdGEKQEAgLTM4Myw2ICszODcsMTMgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cmluZ0RhdGFJczhCaXRGbGFnID0gMHg4MDAwMDAwMDsKICAqICAgICAgU3RyaW5nUG9vbFRhZyA8
Y3BJbmRleDpJbmRleFR5cGU+CiAgKiAgICAgIChub3QgKFRlcm1pbmF0b3JUYWcgfCBTdHJpbmdQ
b29sVGFnKSk8aXM4Qml0OnVpbnQzMl90OjE+PGxlbmd0aDp1aW50MzJfdDozMT48Y2hhcmFjdGVy
czpDaGFyVHlwZXtsZW5ndGh9PiAvLyBBZGRlZCB0byBjb25zdGFudCBwb29sIHdoZW4gc2Vlbiwg
c3RyaW5nIGxlbmd0aCAweEZGRkZGRkZGIGlzIGRpc2FsbG93ZWQKICAqCisgKiBCaWdJbnQgOi0K
KyAqICAgICAgQmlnSW50VGFnIEJpZ0ludERhdGEKKyAqICAgICAgQmlnSW50T2JqZWN0VGFnIEJp
Z0ludERhdGEKKyAqCisgKiBCaWdJbnREYXRhIDotCisgKiAgICAgIDxzaWduOnVpbnQ4X3Q+IDxs
ZW5ndGhJblVpbnQ2NDp1aW50MzJfdD4gPGNvbnRlbnRzOnVpbnQ2NF90e2xlbmd0aEluVWludDY0
fT4KKyAqCiAgKiBGaWxlIDotCiAgKiAgICBGaWxlVGFnIEZpbGVEYXRhCiAgKgpAQCAtNzQ0LDEx
ICs3NTUsMTUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKIAogICAgIHZv
aWQgZHVtcEltbWVkaWF0ZShKU1ZhbHVlIHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKHZhbHVl
LmlzTnVsbCgpKQorICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIHdy
aXRlKE51bGxUYWcpOwotICAgICAgICBlbHNlIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5l
ZCgpKSB7CiAgICAgICAgICAgICB3cml0ZShVbmRlZmluZWRUYWcpOwotICAgICAgICBlbHNlIGlm
ICh2YWx1ZS5pc051bWJlcigpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZS5pc0lu
dDMyKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmFzSW50MzIoKSkKICAgICAgICAg
ICAgICAgICAgICAgd3JpdGUoWmVyb1RhZyk7CkBAIC03NjIsMTIgKzc3NywyMiBAQCBjbGFzcyBD
bG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHdyaXRlKERvdWJs
ZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWUuYXNEb3VibGUoKSk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAodmFsdWUuaXNCb29sZWFuKCkpIHsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUuaXNCb29sZWFuKCkpIHsK
ICAgICAgICAgICAgIGlmICh2YWx1ZS5pc1RydWUoKSkKICAgICAgICAgICAgICAgICB3cml0ZShU
cnVlVGFnKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB3cml0ZShGYWxzZVRh
Zyk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisg
ICAgICAgIGlmICh2YWx1ZS5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgICAgIHdyaXRlKEJpZ0lu
dFRhZyk7CisgICAgICAgICAgICBkdW1wQmlnSW50RGF0YSh2YWx1ZSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHZvaWQgZHVtcFN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTc5MCw2ICs4MTUsNjAgQEAgY2xhc3MgQ2xvbmVTZXJp
YWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgZHVtcEJp
Z0ludERhdGEoSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVCh2YWx1ZS5pc0Jp
Z0ludCgpKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgIGlmICh2YWx1ZS5pc0JpZ0ludDMy
KCkpIHsKKyAgICAgICAgICAgIGR1bXBCaWdJbnQzMkRhdGEodmFsdWUuYmlnSW50MzJBc0ludDMy
KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZHVt
cEhlYXBCaWdJbnREYXRhKGpzQ2FzdDxKU0JpZ0ludCo+KHZhbHVlKSk7CisgICAgfQorCisjaWYg
VVNFKEJJR0lOVDMyKQorICAgIHZvaWQgZHVtcEJpZ0ludDMyRGF0YShpbnQzMl90IGludGVnZXIp
CisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50NjRfdCkgPT0gc2l6ZW9m
KHVuc2lnbmVkIGxvbmcgbG9uZykpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDx1aW50OF90
PihpbnRlZ2VyIDwgMCkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkp
OyAvLyBMZW5ndGgtaW4tdWludDY0X3QKKyAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN0YXRpY19j
YXN0PGludDY0X3Q+KGludGVnZXIpOworICAgICAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICAg
ICAgdmFsdWUgPSAtdmFsdWU7CisgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxv
bmcgbG9uZz4odmFsdWUpKTsKKyAgICB9CisjZW5kaWYKKworICAgIHZvaWQgZHVtcEhlYXBCaWdJ
bnREYXRhKEpTQmlnSW50KiBiaWdJbnQpCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih1aW50NjRfdCkgPT0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykpOworICAgICAgICB3
cml0ZShzdGF0aWNfY2FzdDx1aW50OF90PihiaWdJbnQtPnNpZ24oKSkpOworICAgICAgICBpZiBj
b25zdGV4cHIgKHNpemVvZihKU0JpZ0ludDo6RGlnaXQpID09IHNpemVvZih1aW50NjRfdCkpIHsK
KyAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihiaWdJbnQtPmxlbmd0aCgp
KSk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBiaWdJbnQt
Pmxlbmd0aCgpOyArK2luZGV4KQorICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4oYmlnSW50LT5kaWdpdChpbmRleCkpKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIEFTU0VSVChzaXplb2YoSlNCaWdJbnQ6OkRpZ2l0KSA9PSBzaXplb2Yo
dWludDMyX3QpKTsKKyAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aEluVWludDY0ID0gYmlnSW50
LT5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICBpZiAoYmlnSW50LT5sZW5ndGgoKSAmIDB4MSkK
KyAgICAgICAgICAgICAgICArK2xlbmd0aEluVWludDY0OworICAgICAgICAgICAgd3JpdGUobGVu
Z3RoSW5VaW50NjQpOworICAgICAgICAgICAgdWludDY0X3QgdmFsdWUgPSAwOworICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgYmlnSW50LT5sZW5ndGgoKTsgKytp
bmRleCkgeworICAgICAgICAgICAgICAgIGlmICghKGluZGV4ICYgMHgxKSkKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUgPSBiaWdJbnQtPmRpZ2l0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGJpZ0ludC0+ZGlnaXQoaW5kZXgpKSA8PCAzMikgfCB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgd3JpdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPih2YWx1ZSkpOworICAgICAg
ICAgICAgICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKGJpZ0ludC0+bGVuZ3RoKCkgJiAweDEpCisgICAgICAgICAgICAg
ICAgd3JpdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPih2YWx1ZSkpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgSlNDOjpKU1ZhbHVlIHRvSlNBcnJheUJ1ZmZlcihBcnJheUJ1ZmZl
ciYgYXJyYXlCdWZmZXIpCiAgICAgewogICAgICAgICBhdXRvJiB2bSA9IG1fbGV4aWNhbEdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTk5Miw2ICsxMDcxLDEyIEBAIGNsYXNzIENsb25lU2VyaWFsaXpl
ciA6IENsb25lQmFzZSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisg
ICAgICAgIGlmICh2YWx1ZS5pc0hlYXBCaWdJbnQoKSkgeworICAgICAgICAgICAgd3JpdGUoQmln
SW50VGFnKTsKKyAgICAgICAgICAgIGR1bXBCaWdJbnREYXRhKHZhbHVlKTsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkp
IHsKICAgICAgICAgICAgIGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6RGF0YUNsb25l
RXJyb3I7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMjgsNiArMTExMywxNSBAQCBj
bGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHdyaXRl
KG51bWJlck9iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8qIGJp
Z0ludE9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8QmlnSW50T2JqZWN0Kj4odm0sIG9iaikpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwoYmlnSW50T2JqZWN0KSkgLy8g
aGFuZGxlIGR1cGxpY2F0ZXMKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICAgICAgSlNWYWx1ZSBiaWdJbnRWYWx1ZSA9IGJpZ0ludE9iamVjdC0+aW50ZXJuYWxW
YWx1ZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVChiaWdJbnRWYWx1ZS5pc0JpZ0ludCgpKTsK
KyAgICAgICAgICAgICAgICB3cml0ZShCaWdJbnRPYmplY3RUYWcpOworICAgICAgICAgICAgICAg
IGR1bXBCaWdJbnREYXRhKGJpZ0ludFZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChhdXRvKiBmaWxlID0gSlNGaWxlOjp0
b1dyYXBwZWQodm0sIG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsKICAg
ICAgICAgICAgICAgICB3cml0ZSgqZmlsZSk7CkBAIC0yODkzLDYgKzI5ODcsNzUgQEAgY2xhc3Mg
Q2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICByZXR1cm4gZ2V0SlNWYWx1
ZShiaXRtYXApOwogICAgIH0KIAorICAgIEpTVmFsdWUgcmVhZEJpZ0ludCgpCisgICAgeworICAg
ICAgICB1aW50OF90IHNpZ24gPSAwOworICAgICAgICBpZiAoIXJlYWQoc2lnbikpCisgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICB1aW50MzJfdCBsZW5ndGhJblVpbnQ2NCA9
IDA7CisgICAgICAgIGlmICghcmVhZChsZW5ndGhJblVpbnQ2NCkpCisgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZSgpOworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoSlNCaWdJbnQ6OkRpZ2l0KSA9PSBzaXplb2YodWludDY0X3QpKTsKKyAgICAgICAgaWYg
KGxlbmd0aEluVWludDY0ID09IDEpIHsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KHVuc2lnbmVkIGxvbmcgbG9uZykgPT0gc2l6ZW9mKHVpbnQ2NF90KSk7CisgICAgICAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgZGlnaXQ2NCA9IDA7CisgICAgICAgICAgICBpZiAoIXJlYWQoZGln
aXQ2NCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgICAgIGlm
IChzaWduKSB7CisgICAgICAgICAgICAgICAgaWYgKGRpZ2l0NjQgPD0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KC1zdGF0aWNfY2FzdDxpbnQ2NF90PihJTlQzMl9NSU4pKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNCaWdJbnQzMiwgc3RhdGljX2Nhc3Q8aW50
MzJfdD4oLXN0YXRpY19jYXN0PGludDY0X3Q+KGRpZ2l0NjQpKSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIGlmIChkaWdpdDY0IDw9IElOVDMyX01BWCkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNCaWdJbnQzMiwgc3RhdGljX2Nh
c3Q8aW50MzJfdD4oZGlnaXQ2NCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJU
KGRpZ2l0NjQgIT0gMCk7CisgICAgICAgICAgICBKU0JpZ0ludCogYmlnSW50ID0gSlNCaWdJbnQ6
OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCAxKTsKKyAgICAgICAg
ICAgIGlmICghYmlnSW50KSB7CisgICAgICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiaWdJbnQt
PnNldERpZ2l0KDAsIGRpZ2l0NjQpOworICAgICAgICAgICAgYmlnSW50LT5zZXRTaWduKHNpZ24p
OworICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGJpZ0lu
dCk7CisgICAgICAgICAgICByZXR1cm4gYmlnSW50OworICAgICAgICB9CisjZW5kaWYKKyAgICAg
ICAgSlNCaWdJbnQqIGJpZ0ludCA9IG51bGxwdHI7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6
ZW9mKEpTQmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQ2NF90KSkgeworICAgICAgICAgICAg
YmlnSW50ID0gSlNCaWdJbnQ6OnRyeUNyZWF0ZVdpdGhMZW5ndGgobV9sZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBsZW5ndGhJblVpbnQ2NCk7CisgICAgICAgICAgICBpZiAoIWJpZ0ludCkgeworICAgICAg
ICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwg
bGVuZ3RoSW5VaW50NjQ7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpID09IHNpemVvZih1aW50NjRfdCkpOworICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkaWdpdDY0ID0gMDsKKyAgICAgICAgICAgICAg
ICBpZiAoIXJlYWQoZGlnaXQ2NCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
KCk7CisgICAgICAgICAgICAgICAgYmlnSW50LT5zZXREaWdpdChpbmRleCwgZGlnaXQ2NCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoc2l6ZW9m
KEpTQmlnSW50OjpEaWdpdCkgPT0gc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgICAgICAgICBiaWdJ
bnQgPSBKU0JpZ0ludDo6dHJ5Q3JlYXRlV2l0aExlbmd0aChtX2xleGljYWxHbG9iYWxPYmplY3Qs
IGxlbmd0aEluVWludDY0ICogMik7CisgICAgICAgICAgICBpZiAoIWJpZ0ludCkgeworICAgICAg
ICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwg
bGVuZ3RoSW5VaW50NjQ7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpID09IHNpemVvZih1aW50NjRfdCkpOworICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkaWdpdDY0ID0gMDsKKyAgICAgICAgICAgICAg
ICBpZiAoIXJlYWQoZGlnaXQ2NCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
KCk7CisgICAgICAgICAgICAgICAgYmlnSW50LT5zZXREaWdpdChpbmRleCAqIDIsIHN0YXRpY19j
YXN0PHVpbnQzMl90PihkaWdpdDY0KSk7CisgICAgICAgICAgICAgICAgYmlnSW50LT5zZXREaWdp
dChpbmRleCAqIDIgKyAxLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGlnaXQ2NCA+PiAzMikpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJpZ0ludC0+c2V0U2lnbihzaWduKTsK
KyAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGJpZ0ludCk7Cisg
ICAgICAgIHJldHVybiBiaWdJbnQ7CisgICAgfQorCiAgICAgSlNWYWx1ZSByZWFkVGVybWluYWwo
KQogICAgIHsKICAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWcgPSByZWFkVGFnKCk7CkBAIC0y
OTMzLDYgKzMwOTYsOCBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIHJldHVybiBqc051
bWJlcihkKTsKICAgICAgICAgfQorICAgICAgICBjYXNlIEJpZ0ludFRhZzoKKyAgICAgICAgICAg
IHJldHVybiByZWFkQmlnSW50KCk7CiAgICAgICAgIGNhc2UgTnVtYmVyT2JqZWN0VGFnOiB7CiAg
ICAgICAgICAgICBkb3VibGUgZDsKICAgICAgICAgICAgIGlmICghcmVhZChkKSkKQEAgLTI5NDEs
NiArMzEwNiwxNSBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAg
ICAgICAgICBtX2djQnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cob2JqKTsKICAgICAg
ICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBCaWdJbnRPYmplY3RU
YWc6IHsKKyAgICAgICAgICAgIEpTVmFsdWUgYmlnSW50ID0gcmVhZEJpZ0ludCgpOworICAgICAg
ICAgICAgaWYgKCFiaWdJbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAg
ICAgICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJbnQoKSk7CisgICAgICAgICAgICBCaWdJbnRP
YmplY3QqIG9iaiA9IEJpZ0ludE9iamVjdDo6Y3JlYXRlKG1fbGV4aWNhbEdsb2JhbE9iamVjdC0+
dm0oKSwgbV9nbG9iYWxPYmplY3QsIGJpZ0ludCk7CisgICAgICAgICAgICBtX2djQnVmZmVyLmFw
cGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3cob2JqKTsKKyAgICAgICAgICAgIHJldHVybiBvYmo7Cisg
ICAgICAgIH0KICAgICAgICAgY2FzZSBEYXRlVGFnOiB7CiAgICAgICAgICAgICBkb3VibGUgZDsK
ICAgICAgICAgICAgIGlmICghcmVhZChkKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NWNjYzlhN2RhOWFjOWRkNjg1ZDc4
OTZmMGY2Y2ExZGE4MGUxYTE5Li5jZTQxMjMxZThmZGUwNWRmMjk2ZGJhOGFiN2Y1NjhiYzRkMTY5
YTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDQtMjAgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJ1Y3R1cmVkQ2xvbmUgYWxnb3JpdGhtIHNo
b3VsZCBiZSBhd2FyZSBvZiBCaWdJbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMDcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgor
CisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QvbnVtYmVyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC9vYmplY3QtZXhw
ZWN0ZWQudHh0OgorCiAyMDIwLTA0LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9zdHJ1Y3R1cmVkLWNsb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCAwYWYzMGY5MDc2MzQ4MTViMjkxNDA3ZDAyN2ZkMGU3NmI2ZTllMzFiLi4xODc2
NWU3MWY2OTJlMTdhNjQyYTQ1NDczNjc4OWM4YjQzNmMzNzdlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0g
c2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0u
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpZ2ludF92YWx1ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1
Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkX2Nsb25lX2Jp
Z2ludC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMTkgIEVtaWxpbyBDb2JvcyDDgWx2YXJleiAg
PGVtaWxpb0BjcmlzYWwuaW8+CiAKICAgICAgICAgRG9uJ3QgdXNlIHRoZSBpbmhlcml0ZWQgY3Vz
dG9tIHByb3BlcnRpZXMgdG8gc3RvcmUgZW52aXJvbm1lbnQgdmFyaWFibGVzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
YmlnaW50X3ZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpZ2ludF92YWx1ZS1leHBlY3RlZC50eHQKaW5kZXgg
ZTMxN2FhYTU2MmRjZDk0ZWQyMzkzYzUxNjE1Yjg3MTk1MWFkMWZlZi4uYzY5OGE0MjZlZTY4MmI5
MTEzMzlmMTY3ODhiYzc1ZDc4OGUxYTAxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmlnaW50X3ZhbHVlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9iaWdpbnRfdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsOCBAQAotQ09OU09M
RSBNRVNTQUdFOiBTeW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMgYWxsb3dlZCBkaXJlY3RseSBh
ZnRlciBudW1lcmljIGxpdGVyYWwKLQotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBT
eW50YXhFcnJvcjogTm8gaWRlbnRpZmllcnMgYWxsb3dlZCBkaXJlY3RseSBhZnRlciBudW1lcmlj
IGxpdGVyYWwKIAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJbmRleGVkREIgLSBwcmltaXRp
dmUgQmlnSW50IAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJbmRleGVkREIgLSBCaWdJbnQg
b2JqZWN0IAorUEFTUyBCaWdJbnRzIGFzIHZhbHVlcyBpbiBJbmRleGVkREIgLSBwcmltaXRpdmUg
QmlnSW50IGluc2lkZSBvYmplY3QgCitQQVNTIEJpZ0ludHMgYXMgdmFsdWVzIGluIEluZGV4ZWRE
QiAtIEJpZ0ludCBvYmplY3QgaW5zaWRlIG9iamVjdCAKK1BBU1MgQmlnSW50cyBhcyBrZXlzIGlu
IEluZGV4ZWREQiAtIHByaW1pdGl2ZSBCaWdJbnQgCitQQVNTIEJpZ0ludHMgYXMga2V5cyBpbiBJ
bmRleGVkREIgLSBCaWdJbnQgb2JqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNz
aW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkX2Nsb25lX2JpZ2ludC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5m
cmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkX2Ns
b25lX2JpZ2ludC1leHBlY3RlZC50eHQKaW5kZXggZTMxN2FhYTU2MmRjZDk0ZWQyMzkzYzUxNjE1
Yjg3MTk1MWFkMWZlZi4uNmY4N2YyYjI1M2FmNDNlMTk1Nzk3ZTI3NjE1ODVmN2Q2ZGE5MGQyYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0
dXJlZF9jbG9uZV9iaWdpbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmct
b2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWRfY2xvbmVfYmlnaW50LWV4cGVjdGVkLnR4dApA
QCAtMSw1ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IE5vIGlkZW50aWZp
ZXJzIGFsbG93ZWQgZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsCi0KLUhhcm5lc3MgRXJy
b3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IE5vIGlkZW50aWZpZXJzIGFsbG93ZWQg
ZGlyZWN0bHkgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsCiAKK1BBU1MgUHJpbWl0aXZlIEJpZ0ludCBp
cyBjbG9uZWQgCitQQVNTIEluc3RhbmNlIG9mIEJpZ0ludCBpcyBjbG9uZWQgCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L251bWJlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC9udW1i
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGFiNmZhNjUwZDk5NTFmZDJhNmQxOGQ1MjNiZDc4ZmZjM2Yz
NDA4M2MuLjdmYjliNTVlZTI0Mjc0NmE0OWYwOTEzOGFhODY4MTRmZGQ0NmUxYmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L251bWJlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qv
bnVtYmVyLWV4cGVjdGVkLnR4dApAQCAtMTAwLDYgKzEwMCw2IEBAIEVYUFJFU1NJT046IDEyM24K
IHsKICAgIl90eXBlIjogImJpZ2ludCIsCiAgICJfZGVzY3JpcHRpb24iOiAiMTIzbiIsCi0gICJf
dmFsdWUiOiAiMTIzbiBbQmlnSW50IE5vdCBFbmFibGVkIGluIFdlYiBJbnNwZWN0b3JdIgorICAi
X3ZhbHVlIjogIjxmaWx0ZXJlZCAxMjNuPiIKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0L29iamVjdC1leHBlY3RlZC50eHQK
aW5kZXggODA3NzBjMDA2ZTdhZWJiOWJkOTM5ZDRjM2IxYjRkMzEzNmM4ODQ4My4uZGIwMGQ4M2Y2
NTcxMDBkYmM3NDViYTkyZGM4NjhjMTA0ZWFjNTNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3Qvb2JqZWN0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC9vYmplY3QtZXhwZWN0ZWQu
dHh0CkBAIC00MSw5ICs0MSwzNyBAQCBFWFBSRVNTSU9OOiAoe2E6IDF9KQogRVhQUkVTU0lPTjog
KHthOiAxLCBiOiAwLCBjOiAtMCwgZDogNDU2bn0pCiB7CiAgICJfdHlwZSI6ICJvYmplY3QiLAot
ICAiX3N1YnR5cGUiOiAiZXJyb3IiLAogICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAotICAi
X2Rlc2NyaXB0aW9uIjogIlN5bnRheEVycm9yOiBObyBpZGVudGlmaWVycyBhbGxvd2VkIGRpcmVj
dGx5IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIKKyAgIl9kZXNjcmlwdGlvbiI6ICJPYmplY3QiLAor
ICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9kZXNjcmlwdGlv
biI6ICJPYmplY3QiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICJfb3ZlcmZsb3ciOiBm
YWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJh
IiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiMSIKKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJiIiwKKyAgICAgICAgIl90eXBlIjog
Im51bWJlciIsCisgICAgICAgICJfdmFsdWUiOiAiMCIKKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgICJfbmFtZSI6ICJjIiwKKyAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICJf
dmFsdWUiOiAiLTAiCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAiZCIsCisg
ICAgICAgICJfdHlwZSI6ICJiaWdpbnQiLAorICAgICAgICAiX3ZhbHVlIjogIjQ1Nm4iCisgICAg
ICB9CisgICAgXSwKKyAgICAiX2VudHJpZXMiOiBudWxsCisgIH0KIH0KIAogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
      

    </bug>

</bugzilla>