<?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>212898</bug_id>
          
          <creation_ts>2020-06-08 07:20:44 -0700</creation_ts>
          <short_desc>[GTK] MiniBrowser: stop using GtkToolbar</short_desc>
          <delta_ts>2020-06-12 01:28:19 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>212817</dependson>
          <blocked>210100</blocked>
    
    <blocked>210276</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1660189</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-08 07:20:44 -0700</bug_when>
    <thetext>It&apos;s no longer available in GTK4. Use a GtkBox with buttons instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660190</commentid>
    <comment_count>1</comment_count>
      <attachid>401332</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-08 07:23:35 -0700</bug_when>
    <thetext>Created attachment 401332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661575</commentid>
    <comment_count>2</comment_count>
      <attachid>401332</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-06-11 07:42:46 -0700</bug_when>
    <thetext>Comment on attachment 401332
Patch

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

&gt; Tools/MiniBrowser/gtk/BrowserWindow.c:473
&gt; +    return webkit_web_view_get_zoom_level(webView) != 1.0;

Comparing floating point numbers is usually a bad idea, due to rounding errors
and whatnot. Probably not much of an issue here, but the safest would be rounding
to the nearest integer and comparing that:

  return lrint(webkit_web_view_get_zoom_level(webView)) == 1;

No strong opinion, though. Feel free to leave the code as-is if you prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661879</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-12 01:27:54 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)
&gt; Comment on attachment 401332 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401332&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:473
&gt; &gt; +    return webkit_web_view_get_zoom_level(webView) != 1.0;
&gt; 
&gt; Comparing floating point numbers is usually a bad idea, due to rounding
&gt; errors
&gt; and whatnot. Probably not much of an issue here, but the safest would be
&gt; rounding
&gt; to the nearest integer and comparing that:
&gt; 
&gt;   return lrint(webkit_web_view_get_zoom_level(webView)) == 1;
&gt; 
&gt; No strong opinion, though. Feel free to leave the code as-is if you prefer.

I don&apos;t think it&apos;s a problem in this case because 1.0 is set when the load completes, which is what we want to check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661880</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-12 01:28:19 -0700</bug_when>
    <thetext>Committed r262938: &lt;https://trac.webkit.org/changeset/262938&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401332</attachid>
            <date>2020-06-08 07:23:35 -0700</date>
            <delta_ts>2020-06-11 07:42:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>mb-toolbar.diff</filename>
            <type>text/plain</type>
            <size>27620</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MTdl
YzcwM2MzOTguLjA1NzNhN2E3ZmNkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA2LTA4ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNaW5pQnJv
d3Nlcjogc3RvcCB1c2luZyBHdGtUb29sYmFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBHdGtUb29sYmFyIGlzcyBubyBsb25nZXIgYXZhaWxhYmxlIGlu
IEdUSzQsIHVzZSBhIEd0a0JveCB3aXRoIGJ1dHRvbnMgaW5zdGVhZC4gQWxzbyB1c2Ugc3ltYm9s
aWMgaWNvbnMgYW5kIG1vdmUKKyAgICAgICAgc29tZSBvZiB0aGUgYWN0aW9ucyB0byBhIGdlYXIg
bWVudS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmM6CisgICAg
ICAgIChicm93c2VyV2luZG93SGlzdG9yeUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoYnJvd3Nl
cldpbmRvd0NyZWF0ZUJhY2tGb3J3YXJkTWVudSk6CisgICAgICAgIChicm93c2VyV2luZG93VXBk
YXRlTmF2aWdhdGlvbk1lbnUpOgorICAgICAgICAobmF2aWdhdGlvbkJ1dHRvblByZXNzQ2FsbGJh
Y2spOgorICAgICAgICAoYnJvd3NlcldpbmRvd0Nhblpvb21EZWZhdWx0KToKKyAgICAgICAgKGJy
b3dzZXJXaW5kb3dVcGRhdGVab29tQWN0aW9ucyk6CisgICAgICAgICh3ZWJWaWV3SXNMb2FkaW5n
Q2hhbmdlZCk6CisgICAgICAgIChhZGRUb29sYmFyQnV0dG9uKToKKyAgICAgICAgKGJyb3dzZXJX
aW5kb3dCdWlsZFBvcG92ZXJNZW51KToKKyAgICAgICAgKHJlc2V0U3RhdHVzVGV4dCk6IERlbGV0
ZWQuCisgICAgICAgIChicm93c2VyV2luZG93SGlzdG9yeUl0ZW1TZWxlY3RlZCk6IERlbGV0ZWQu
CisgICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSk6IERlbGV0ZWQu
CisKIDIwMjAtMDYtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIE1pbmlCcm93c2VyOiBzdG9wIHVzaW5nIEd0a1Rvb2xiYXIgZm9y
IHRoZSBzZWFyY2ggYmFyCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nl
cldpbmRvdy5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCA1
OGQxYzA0MTJiZDIuLjU2YmI2OGRlYjdlOSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJXaW5kb3cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nlcldp
bmRvdy5jCkBAIC05MiwxMSArOTIsNiBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93U2V0U3Rh
dHVzVGV4dChCcm93c2VyV2luZG93ICp3aW5kb3csIGNvbnN0IGNoYXIgKnRleHQpCiAgICAgYnJv
d3Nlcl90YWJfc2V0X3N0YXR1c190ZXh0KHdpbmRvdy0+YWN0aXZlVGFiLCB0ZXh0KTsKIH0KIAot
c3RhdGljIHZvaWQgcmVzZXRTdGF0dXNUZXh0KEd0a1dpZGdldCAqd2lkZ2V0LCBCcm93c2VyV2lu
ZG93ICp3aW5kb3cpCi17Ci0gICAgYnJvd3NlcldpbmRvd1NldFN0YXR1c1RleHQod2luZG93LCBO
VUxMKTsKLX0KLQogc3RhdGljIHZvaWQgYWN0aXZhdGVVcmlFbnRyeUNhbGxiYWNrKEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKIHsKICAgICBicm93c2VyX3dpbmRvd19sb2FkX3VyaSh3aW5kb3csCkBA
IC0yMTEsMTUgKzIwNiw5IEBAIHN0YXRpYyB2b2lkIGRvd25sb2FkU3RhcnRlZChXZWJLaXRXZWJD
b250ZXh0ICp3ZWJDb250ZXh0LCBXZWJLaXREb3dubG9hZCAqZG93bmxvCiB9CiAKICNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCi1zdGF0aWMgdm9pZCBicm93c2VyV2luZG93SGlzdG9y
eUl0ZW1TZWxlY3RlZChCcm93c2VyV2luZG93ICp3aW5kb3csIEd0a01lbnVJdGVtICptZW51SXRl
bSkKK3N0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRlbUFjdGl2YXRlZChCcm93c2Vy
V2luZG93ICp3aW5kb3csIEdWYXJpYW50ICpwYXJhbWV0ZXIsIEdBY3Rpb24gKmFjdGlvbikKIHsK
LSAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtICppdGVtID0gZ19vYmplY3RfZ2V0X2RhdGEo
R19PQkpFQ1QobWVudUl0ZW0pLCAiYmFjay1mb3J3YXJkLWxpc3QtaXRlbSIpOwotICAgIGJyb3dz
ZXJXaW5kb3dTZXRTdGF0dXNUZXh0KHdpbmRvdywgaXRlbSA/IHdlYmtpdF9iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX2dldF91cmkoaXRlbSkgOiBOVUxMKTsKLX0KLQotc3RhdGljIHZvaWQgYnJvd3Nl
cldpbmRvd0hpc3RvcnlJdGVtQWN0aXZhdGVkKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3RrTWVu
dUl0ZW0gKm1lbnVJdGVtKQotewotICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0g
PSBnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChtZW51SXRlbSksICJiYWNrLWZvcndhcmQtbGlz
dC1pdGVtIik7CisgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqaXRlbSA9IGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKGFjdGlvbiksICJiYWNrLWZvcndhcmQtbGlzdC1pdGVtIik7CiAg
ICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNywyOSArMjE2LDQ2IEBAIHN0
YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRlbUFjdGl2YXRlZChCcm93c2VyV2luZG93
ICp3aW5kb3csIEd0a01lbnVJdGVtCiAgICAgd2Via2l0X3dlYl92aWV3X2dvX3RvX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW0od2ViVmlldywgaXRlbSk7CiB9CiAKLXN0YXRpYyBHdGtXaWRnZXQgKmJy
b3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1lbnUoQnJvd3NlcldpbmRvdyAqd2luZG93LCBH
TGlzdCAqbGlzdCkKK3N0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1l
bnUoQnJvd3NlcldpbmRvdyAqd2luZG93LCBHTGlzdCAqbGlzdCwgZ2Jvb2xlYW4gaXNCYWNrKQog
ewogICAgIGlmICghbGlzdCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybjsK
IAotICAgIEd0a1dpZGdldCAqbWVudSA9IGd0a19tZW51X25ldygpOworICAgIHN0YXRpYyBndWlu
dDY0IGFjdGlvbklkID0gMDsKKworICAgIEdTaW1wbGVBY3Rpb25Hcm91cCAqYWN0aW9uR3JvdXAg
PSBnX3NpbXBsZV9hY3Rpb25fZ3JvdXBfbmV3KCk7CisgICAgR01lbnUgKm1lbnUgPSBnX21lbnVf
bmV3KCk7CiAgICAgR0xpc3QgKmxpc3RJdGVtOwogICAgIGZvciAobGlzdEl0ZW0gPSBsaXN0OyBs
aXN0SXRlbTsgbGlzdEl0ZW0gPSBnX2xpc3RfbmV4dChsaXN0SXRlbSkpIHsKICAgICAgICAgV2Vi
S2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqaXRlbSA9IChXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVt
ICopbGlzdEl0ZW0tPmRhdGE7CiAgICAgICAgIGNvbnN0IGNoYXIgKnRpdGxlID0gd2Via2l0X2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X3RpdGxlKGl0ZW0pOwogCi0gICAgICAgIEd0a1dpZGdl
dCAqbWVudUl0ZW0gPSBndGtfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKHRpdGxlKTsKLSAgICAg
ICAgZ19vYmplY3Rfc2V0X2RhdGFfZnVsbChHX09CSkVDVChtZW51SXRlbSksICJiYWNrLWZvcndh
cmQtbGlzdC1pdGVtIiwgZ19vYmplY3RfcmVmKGl0ZW0pLCBnX29iamVjdF91bnJlZik7Ci0gICAg
ICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtZW51SXRlbSwgInNlbGVjdCIsIEdfQ0FMTEJB
Q0soYnJvd3NlcldpbmRvd0hpc3RvcnlJdGVtU2VsZWN0ZWQpLCB3aW5kb3cpOwotICAgICAgICBn
X3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobWVudUl0ZW0sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0so
YnJvd3NlcldpbmRvd0hpc3RvcnlJdGVtQWN0aXZhdGVkKSwgd2luZG93KTsKKyAgICAgICAgY2hh
ciAqYWN0aW9uTmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYWN0aW9uLSVsdSIsICsrYWN0aW9uSWQp
OworICAgICAgICBHU2ltcGxlQWN0aW9uICphY3Rpb24gPSBnX3NpbXBsZV9hY3Rpb25fbmV3KGFj
dGlvbk5hbWUsIE5VTEwpOworICAgICAgICBnX29iamVjdF9zZXRfZGF0YV9mdWxsKEdfT0JKRUNU
KGFjdGlvbiksICJiYWNrLWZvcndhcmQtbGlzdC1pdGVtIiwgZ19vYmplY3RfcmVmKGl0ZW0pLCBn
X29iamVjdF91bnJlZik7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChhY3Rpb24s
ICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0soYnJvd3NlcldpbmRvd0hpc3RvcnlJdGVtQWN0aXZhdGVk
KSwgd2luZG93KTsKKyAgICAgICAgZ19hY3Rpb25fbWFwX2FkZF9hY3Rpb24oR19BQ1RJT05fTUFQ
KGFjdGlvbkdyb3VwKSwgR19BQ1RJT04oYWN0aW9uKSk7CisgICAgICAgIGdfb2JqZWN0X3VucmVm
KGFjdGlvbik7CiAKLSAgICAgICAgZ3RrX21lbnVfc2hlbGxfcHJlcGVuZChHVEtfTUVOVV9TSEVM
TChtZW51KSwgbWVudUl0ZW0pOwotICAgICAgICBndGtfd2lkZ2V0X3Nob3cobWVudUl0ZW0pOwor
ICAgICAgICBjaGFyICpkZXRhaWxlZEFjdGlvbk5hbWUgPSBnX3N0cmR1cF9wcmludGYoIiVzLiVz
IiwgaXNCYWNrID8gImJmLWJhY2siIDogImJmLWZvcndhcmQiLCBhY3Rpb25OYW1lKTsKKyAgICAg
ICAgR01lbnVJdGVtICptZW51SXRlbSA9IGdfbWVudV9pdGVtX25ldyh0aXRsZSwgZGV0YWlsZWRB
Y3Rpb25OYW1lKTsKKyAgICAgICAgZ19tZW51X2FwcGVuZF9pdGVtKG1lbnUsIG1lbnVJdGVtKTsK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYobWVudUl0ZW0pOworCisgICAgICAgIGdfZnJlZShkZXRh
aWxlZEFjdGlvbk5hbWUpOworICAgICAgICBnX2ZyZWUoYWN0aW9uTmFtZSk7CiAgICAgfQogCi0g
ICAgZ19zaWduYWxfY29ubmVjdChtZW51LCAiaGlkZSIsIEdfQ0FMTEJBQ0socmVzZXRTdGF0dXNU
ZXh0KSwgd2luZG93KTsKKyAgICBHdGtXaWRnZXQgKnBvcG92ZXIgPSBndGtfcG9wb3Zlcl9tZW51
X25ldygpOworICAgIGd0a193aWRnZXRfaW5zZXJ0X2FjdGlvbl9ncm91cChwb3BvdmVyLCBpc0Jh
Y2sgPyAiYmYtYmFjayIgOiAiYmYtZm9yd2FyZCIsIEdfQUNUSU9OX0dST1VQKGFjdGlvbkdyb3Vw
KSk7CisgICAgZ19vYmplY3RfdW5yZWYoYWN0aW9uR3JvdXApOworICAgIGd0a19wb3BvdmVyX2Jp
bmRfbW9kZWwoR1RLX1BPUE9WRVIocG9wb3ZlciksIEdfTUVOVV9NT0RFTChtZW51KSwgTlVMTCk7
CisgICAgZ19vYmplY3RfdW5yZWYobWVudSk7CiAKLSAgICByZXR1cm4gbWVudTsKKyAgICBHdGtX
aWRnZXQgKmJ1dHRvbiA9IGlzQmFjayA/IHdpbmRvdy0+YmFja0l0ZW0gOiB3aW5kb3ctPmZvcndh
cmRJdGVtOworICAgIGd0a19wb3BvdmVyX3NldF9yZWxhdGl2ZV90byhHVEtfUE9QT1ZFUihwb3Bv
dmVyKSwgYnV0dG9uKTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfcG9zaXRpb24oR1RLX1BPUE9WRVIo
cG9wb3ZlciksIEdUS19QT1NfQk9UVE9NKTsKKyAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVD
VChidXR0b24pLCAiaGlzdG9yeS1wb3BvdmVyIiwgcG9wb3Zlcik7CiB9CiAjZW5kaWYKIApAQCAt
MjYzLDE3ICsyNjksMzIgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRp
b25NZW51KEJyb3dzZXJXaW5kb3cgKndpbmRvdywgV2ViS2l0QmFja0YKIAogI2lmICFHVEtfQ0hF
Q0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBHTGlzdCAqbGlzdCA9IGdfbGlzdF9yZXZlcnNlKHdl
YmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQoYmFja0Zvcndh
cmRsaXN0LCAxMCkpOwotICAgIGd0a19tZW51X3Rvb2xfYnV0dG9uX3NldF9tZW51KEdUS19NRU5V
X1RPT0xfQlVUVE9OKHdpbmRvdy0+YmFja0l0ZW0pLAotICAgICAgICBicm93c2VyV2luZG93Q3Jl
YXRlQmFja0ZvcndhcmRNZW51KHdpbmRvdywgbGlzdCkpOworICAgIGJyb3dzZXJXaW5kb3dDcmVh
dGVCYWNrRm9yd2FyZE1lbnUod2luZG93LCBsaXN0LCBUUlVFKTsKICAgICBnX2xpc3RfZnJlZShs
aXN0KTsKIAogICAgIGxpc3QgPSB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRf
bGlzdF93aXRoX2xpbWl0KGJhY2tGb3J3YXJkbGlzdCwgMTApOwotICAgIGd0a19tZW51X3Rvb2xf
YnV0dG9uX3NldF9tZW51KEdUS19NRU5VX1RPT0xfQlVUVE9OKHdpbmRvdy0+Zm9yd2FyZEl0ZW0p
LAotICAgICAgICBicm93c2VyV2luZG93Q3JlYXRlQmFja0ZvcndhcmRNZW51KHdpbmRvdywgbGlz
dCkpOworICAgIGJyb3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1lbnUod2luZG93LCBsaXN0
LCBGQUxTRSk7CiAgICAgZ19saXN0X2ZyZWUobGlzdCk7CiAjZW5kaWYKIH0KIAorI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKK3N0YXRpYyBnYm9vbGVhbiBuYXZpZ2F0aW9uQnV0dG9u
UHJlc3NDYWxsYmFjayhHdGtCdXR0b24gKmJ1dHRvbiwgR2RrRXZlbnQgKmV2ZW50LCBCcm93c2Vy
V2luZG93ICp3aW5kb3cpCit7CisgICAgZ3VpbnQgZXZlbnRCdXR0b247CisgICAgZ2RrX2V2ZW50
X2dldF9idXR0b24oZXZlbnQsICZldmVudEJ1dHRvbik7CisgICAgaWYgKGV2ZW50QnV0dG9uICE9
IEdES19CVVRUT05fU0VDT05EQVJZKQorICAgICAgICByZXR1cm4gR0RLX0VWRU5UX1BST1BBR0FU
RTsKKworICAgIEd0a1dpZGdldCAqcG9wb3ZlciA9IGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNU
KGJ1dHRvbiksICJoaXN0b3J5LXBvcG92ZXIiKTsKKyAgICBpZiAoIXBvcG92ZXIpCisgICAgICAg
IHJldHVybiBHREtfRVZFTlRfUFJPUEFHQVRFOworCisgICAgZ3RrX3BvcG92ZXJfcG9wdXAoR1RL
X1BPUE9WRVIocG9wb3ZlcikpOworICAgIHJldHVybiBHREtfRVZFTlRfU1RPUDsKK30KKyNlbmRp
ZgorCiBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93VHJ5Q2xvc2VDdXJyZW50V2ViVmlldyhHU2lt
cGxlQWN0aW9uICphY3Rpb24sIEdWYXJpYW50ICpwYXJhbWV0ZXIsIGdwb2ludGVyIHVzZXJEYXRh
KQogewogICAgIEJyb3dzZXJXaW5kb3cgKndpbmRvdyA9IEJST1dTRVJfV0lORE9XKHVzZXJEYXRh
KTsKQEAgLTQ0Niw2ICs0NjcsMTIgQEAgc3RhdGljIGdib29sZWFuIGJyb3dzZXJXaW5kb3dDYW5a
b29tT3V0KEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICByZXR1cm4gem9vbUxldmVsID4gbWlu
aW11bVpvb21MZXZlbDsKIH0KIAorc3RhdGljIGdib29sZWFuIGJyb3dzZXJXaW5kb3dDYW5ab29t
RGVmYXVsdChCcm93c2VyV2luZG93ICp3aW5kb3cpCit7CisgICAgV2ViS2l0V2ViVmlldyAqd2Vi
VmlldyA9IGJyb3dzZXJfdGFiX2dldF93ZWJfdmlldyh3aW5kb3ctPmFjdGl2ZVRhYik7CisgICAg
cmV0dXJuIHdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9sZXZlbCh3ZWJWaWV3KSAhPSAxLjA7Cit9
CisKIHN0YXRpYyBnYm9vbGVhbiBicm93c2VyV2luZG93Wm9vbUluKEJyb3dzZXJXaW5kb3cgKndp
bmRvdykKIHsKICAgICBpZiAoYnJvd3NlcldpbmRvd0Nhblpvb21Jbih3aW5kb3cpKSB7CkBAIC00
ODksNiArNTE2LDggQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZVpvb21BY3Rpb25z
KEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICBnX3NpbXBsZV9hY3Rpb25fc2V0X2VuYWJsZWQo
R19TSU1QTEVfQUNUSU9OKGFjdGlvbiksIGJyb3dzZXJXaW5kb3dDYW5ab29tSW4od2luZG93KSk7
CiAgICAgYWN0aW9uID0gZ19hY3Rpb25fbWFwX2xvb2t1cF9hY3Rpb24oR19BQ1RJT05fTUFQKHdp
bmRvdyksICJ6b29tLW91dCIpOwogICAgIGdfc2ltcGxlX2FjdGlvbl9zZXRfZW5hYmxlZChHX1NJ
TVBMRV9BQ1RJT04oYWN0aW9uKSwgYnJvd3NlcldpbmRvd0Nhblpvb21PdXQod2luZG93KSk7Cisg
ICAgYWN0aW9uID0gZ19hY3Rpb25fbWFwX2xvb2t1cF9hY3Rpb24oR19BQ1RJT05fTUFQKHdpbmRv
dyksICJ6b29tLWRlZmF1bHQiKTsKKyAgICBnX3NpbXBsZV9hY3Rpb25fc2V0X2VuYWJsZWQoR19T
SU1QTEVfQUNUSU9OKGFjdGlvbiksIGJyb3dzZXJXaW5kb3dDYW5ab29tRGVmYXVsdCh3aW5kb3cp
KTsKIH0KIAogc3RhdGljIHZvaWQgd2ViVmlld1pvb21MZXZlbENoYW5nZWQoR09iamVjdCAqb2Jq
ZWN0LCBHUGFyYW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKQEAgLTU0
MSw3ICs1NzAsOCBAQCBzdGF0aWMgdm9pZCBmYXZpY29uQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3
ZWJWaWV3LCBHUGFyYW1TcGVjICpwYXJhbVNwZWMsIEJyb3dzZQogc3RhdGljIHZvaWQgd2ViVmll
d0lzTG9hZGluZ0NoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcGFy
YW1TcGVjLCBCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAgZ2Jvb2xlYW4gaXNMb2FkaW5n
ID0gd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcod2ViVmlldyk7Ci0gICAgZ19vYmplY3Rfc2V0
KEdfT0JKRUNUKHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKSwgImxhYmVsIiwgaXNMb2FkaW5n
ID8gIlN0b3AiIDogIlJlbG9hZCIsICJpY29uLW5hbWUiLCBpc0xvYWRpbmcgPyAicHJvY2Vzcy1z
dG9wIiA6ICJ2aWV3LXJlZnJlc2giLCBOVUxMKTsKKyAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3Rr
X2J1dHRvbl9nZXRfaW1hZ2UoR1RLX0JVVFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbikp
OworICAgIGdfb2JqZWN0X3NldChpbWFnZSwgImljb24tbmFtZSIsIGlzTG9hZGluZyA/ICJwcm9j
ZXNzLXN0b3Atc3ltYm9saWMiIDogInZpZXctcmVmcmVzaC1zeW1ib2xpYyIsIE5VTEwpOwogfQog
CiBzdGF0aWMgdm9pZCB6b29tSW5DYWxsYmFjayhHU2ltcGxlQWN0aW9uICphY3Rpb24sIEdWYXJp
YW50ICpwYXJhbWV0ZXIsIGdwb2ludGVyIHVzZXJEYXRhKQpAQCAtNzczLDE3ICs4MDMsMzYgQEAg
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0Rpc3Bvc2UoR09iamVjdCAqZ09iamVjdCkKIH0KIAog
I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKLXN0YXRpYyBHdGtXaWRnZXQgKgotYnJv
d3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0oQnJvd3NlcldpbmRvdyogd2luZG93LCBH
dGtXaWRnZXQqIHRvb2xiYXIsIEdUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIGxhYmVsLCBjb25zdCBj
aGFyKiBuYW1lZEljb24sIGNvbnN0IGNoYXIqIGFjdGlvbk5hbWUpCi17Ci0gICAgR3RrV2lkZ2V0
ICppdGVtID0gZ19vYmplY3RfbmV3KHR5cGUsICJpY29uLW5hbWUiLCBuYW1lZEljb24sIE5VTEwp
OwotICAgIGd0a193aWRnZXRfc2V0X25hbWUoaXRlbSwgbGFiZWwpOwotICAgIGd0a190b29sX2J1
dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCBsYWJlbCk7Ci0gICAgZ3RrX2Fj
dGlvbmFibGVfc2V0X2FjdGlvbl9uYW1lKEdUS19BQ1RJT05BQkxFKGl0ZW0pLCBhY3Rpb25OYW1l
KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIEdUS19UT09M
X0lURU0oaXRlbSksIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coaXRlbSk7Cit0eXBlZGVmIGVu
dW0geworICAgIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwKKyAgICBUT09MQkFSX0JVVFRPTl9UT0dH
TEUsCisgICAgVE9PTEJBUl9CVVRUT05fTUVOVQorfSBUb29sYmFyQnV0dG9uVHlwZTsKKworc3Rh
dGljIEd0a1dpZGdldCAqYWRkVG9vbGJhckJ1dHRvbihHdGtXaWRnZXQqIHRvb2xiYXIsIFRvb2xi
YXJCdXR0b25UeXBlIHR5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBjb25zdCBjaGFyICphY3Rp
b25OYW1lKQoreworICAgIEd0a1dpZGdldCAqYnV0dG9uOworICAgIHN3aXRjaCAodHlwZSkgewor
ICAgIGNhc2UgVE9PTEJBUl9CVVRUT05fTk9STUFMOgorICAgICAgICBidXR0b24gPSBndGtfYnV0
dG9uX25ld19mcm9tX2ljb25fbmFtZShpY29uTmFtZSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBUT09MQkFSX0JVVFRPTl9UT0dHTEU6CisgICAgICAgIGJ1
dHRvbiA9IGd0a190b2dnbGVfYnV0dG9uX25ldygpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRPT0xCQVJfQlVUVE9OX01FTlU6CisgICAgICAgIGJ1dHRvbiA9IGd0a19tZW51X2J1dHRvbl9u
ZXcoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICh0eXBlICE9IFRPT0xCQVJfQlVU
VE9OX05PUk1BTCkKKyAgICAgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2UoR1RLX0JVVFRPTihidXR0
b24pLCBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKGljb25OYW1lLCBHVEtfSUNPTl9TSVpF
X01FTlUpKTsKKworICAgIGd0a193aWRnZXRfc2V0X2ZvY3VzX29uX2NsaWNrKGJ1dHRvbiwgRkFM
U0UpOworICAgIGlmIChhY3Rpb25OYW1lKQorICAgICAgICBndGtfYWN0aW9uYWJsZV9zZXRfYWN0
aW9uX25hbWUoR1RLX0FDVElPTkFCTEUoYnV0dG9uKSwgYWN0aW9uTmFtZSk7CisgICAgZ3RrX2Nv
bnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih0b29sYmFyKSwgYnV0dG9uKTsKKyAgICBndGtfd2lk
Z2V0X3Nob3coYnV0dG9uKTsKIAotICAgIHJldHVybiBpdGVtOworICAgIHJldHVybiBidXR0b247
CiB9CiAjZW5kaWYKIApAQCAtODA3LDg3ICs4NTYsNjUgQEAgc3RhdGljIGNvbnN0IEdBY3Rpb25F
bnRyeSBlZGl0QWN0aW9uc1tdID0gewogc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1NldHVwRWRp
dG9yVG9vbGJhcihCcm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAjaWYgIUdUS19DSEVDS19WRVJT
SU9OKDMsIDk4LCAwKQotICAgIEd0a1dpZGdldCAqdG9vbGJhciA9IGd0a190b29sYmFyX25ldygp
OworICAgIEd0a1dpZGdldCAqdG9vbGJhciA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9I
T1JJWk9OVEFMLCA0KTsKICAgICB3aW5kb3ctPmVkaXRUb29sYmFyID0gdG9vbGJhcjsKLSAgICBn
dGtfb3JpZW50YWJsZV9zZXRfb3JpZW50YXRpb24oR1RLX09SSUVOVEFCTEUodG9vbGJhciksIEdU
S19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKLSAgICBndGtfdG9vbGJhcl9zZXRfc3R5bGUoR1RL
X1RPT0xCQVIodG9vbGJhciksIEdUS19UT09MQkFSX0JPVEhfSE9SSVopOworICAgIGd0a193aWRn
ZXRfc2V0X21hcmdpbl90b3AodG9vbGJhciwgMik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2lu
X2JvdHRvbSh0b29sYmFyLCAyKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fc3RhcnQodG9v
bGJhciwgMik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2VuZCh0b29sYmFyLCAyKTsKIAog
ICAgIEdTaW1wbGVBY3Rpb25Hcm91cCAqYWN0aW9uR3JvdXAgPSBnX3NpbXBsZV9hY3Rpb25fZ3Jv
dXBfbmV3KCk7CiAgICAgZ19hY3Rpb25fbWFwX2FkZF9hY3Rpb25fZW50cmllcyhHX0FDVElPTl9N
QVAoYWN0aW9uR3JvdXApLCBlZGl0QWN0aW9ucywgR19OX0VMRU1FTlRTKGVkaXRBY3Rpb25zKSwg
d2luZG93KTsKICAgICBndGtfd2lkZ2V0X2luc2VydF9hY3Rpb25fZ3JvdXAodG9vbGJhciwgImVk
aXQiLCBHX0FDVElPTl9HUk9VUChhY3Rpb25Hcm91cCkpOwogICAgIGdfb2JqZWN0X3VucmVmKGFj
dGlvbkdyb3VwKTsKIAotICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKHdp
bmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9HR0xFX1RPT0xfQlVUVE9OLCAiQm9sZCIsICJmb3Jt
YXQtdGV4dC1ib2xkIiwgImVkaXQuQm9sZCIpOwotICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRv
clRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9HR0xFX1RPT0xfQlVUVE9O
LCAiSXRhbGljIiwgImZvcm1hdC10ZXh0LWl0YWxpYyIsICJlZGl0Lkl0YWxpYyIpOwotICAgIGJy
b3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZ
UEVfVE9HR0xFX1RPT0xfQlVUVE9OLCAiVW5kZXJsaW5lIiwgImZvcm1hdC10ZXh0LXVuZGVybGlu
ZSIsICJlZGl0LlVuZGVybGluZSIpOwotICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xi
YXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9HR0xFX1RPT0xfQlVUVE9OLCAiU3Ry
aWtldGhyb3VnaCIsICJmb3JtYXQtdGV4dC1zdHJpa2V0aHJvdWdoIiwgImVkaXQuU3RyaWtldGhy
b3VnaCIpOwotCi0gICAgR3RrVG9vbEl0ZW0gKml0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xfaXRl
bV9uZXcoKTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0
ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBi
cm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIsIEdUS19U
WVBFX1RPT0xfQlVUVE9OLCBXRUJLSVRfRURJVElOR19DT01NQU5EX0NVVCwgImVkaXQtY3V0Iiwg
ImVkaXQuQ3V0Iik7Ci0gICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2lu
ZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lUX0VESVRJTkdfQ09NTUFO
RF9DT1BZLCAiZWRpdC1jb3B5IiwgImVkaXQuQ29weSIpOwotICAgIGJyb3dzZXJXaW5kb3dTZXR1
cEVkaXRvclRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04s
IFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFTVEUsICJlZGl0LXBhc3RlIiwgImVkaXQuUGFzdGUi
KTsKLQotICAgIGl0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKLSAgICBndGtf
dG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtf
d2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBicm93c2VyV2luZG93U2V0dXBF
ZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCBX
RUJLSVRfRURJVElOR19DT01NQU5EX1VORE8sICJlZGl0LXVuZG8iLCAiZWRpdC5VbmRvIik7Ci0g
ICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBH
VEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9SRURPLCAiZWRpdC1y
ZWRvIiwgImVkaXQuUmVkbyIpOwotCi0gICAgaXRlbSA9IGd0a19zZXBhcmF0b3JfdG9vbF9pdGVt
X25ldygpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRl
bSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0
ZW0gPSBndGtfcmFkaW9fdG9vbF9idXR0b25fbmV3KE5VTEwpOwotICAgIEdTTGlzdCAqanVzdGlm
eVJhZGlvR3JvdXAgPSBndGtfcmFkaW9fdG9vbF9idXR0b25fZ2V0X2dyb3VwKEdUS19SQURJT19U
T09MX0JVVFRPTihpdGVtKSk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9pY29uX25hbWUoR1RL
X1RPT0xfQlVUVE9OKGl0ZW0pLCAiZm9ybWF0LWp1c3RpZnktbGVmdCIpOwotICAgIGd0a19hY3Rp
b25hYmxlX3NldF9hY3Rpb25fbmFtZShHVEtfQUNUSU9OQUJMRShpdGVtKSwgImVkaXQuSnVzdGlm
eUxlZnQiKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihp
dGVtKSwgIkp1c3RpZnkgTGVmdCIpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJB
Uih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0
ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtfcmFkaW9fdG9vbF9idXR0b25fbmV3KGp1c3RpZnlSYWRp
b0dyb3VwKTsKLSAgICBqdXN0aWZ5UmFkaW9Hcm91cCA9IGd0a19yYWRpb190b29sX2J1dHRvbl9n
ZXRfZ3JvdXAoR1RLX1JBRElPX1RPT0xfQlVUVE9OKGl0ZW0pKTsKLSAgICBndGtfdG9vbF9idXR0
b25fc2V0X2ljb25fbmFtZShHVEtfVE9PTF9CVVRUT04oaXRlbSksICJmb3JtYXQtanVzdGlmeS1j
ZW50ZXIiKTsKLSAgICBndGtfYWN0aW9uYWJsZV9zZXRfYWN0aW9uX25hbWUoR1RLX0FDVElPTkFC
TEUoaXRlbSksICJlZGl0Lkp1c3RpZnlDZW50ZXIiKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0
X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIkp1c3RpZnkgQ2VudGVyIik7Ci0gICAgZ3Rr
X3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3Rr
X3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0a19yYWRpb190
b29sX2J1dHRvbl9uZXcoanVzdGlmeVJhZGlvR3JvdXApOwotICAgIGd0a190b29sX2J1dHRvbl9z
ZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRPTihpdGVtKSwgImZvcm1hdC1qdXN0aWZ5LXJpZ2h0
Iik7Ci0gICAgZ3RrX2FjdGlvbmFibGVfc2V0X2FjdGlvbl9uYW1lKEdUS19BQ1RJT05BQkxFKGl0
ZW0pLCAiZWRpdC5KdXN0aWZ5UmlnaHQiKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVs
KEdUS19UT09MX0JVVFRPTihpdGVtKSwgIkp1c3RpZnkgUmlnaHQiKTsKLSAgICBndGtfdG9vbGJh
cl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0
X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX3NlcGFyYXRvcl90b29s
X2l0ZW1fbmV3KCk7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIp
LCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0g
ICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBH
VEtfVFlQRV9UT09MX0JVVFRPTiwgIkluZGVudCIsICJmb3JtYXQtaW5kZW50LW1vcmUiLCAiZWRp
dC5JbmRlbnQiKTsKLSAgICBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5k
b3csIHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiT3V0ZGVudCIsICJmb3JtYXQtaW5k
ZW50LWxlc3MiLCAiZWRpdC5PdXRkZW50Iik7Ci0KLSAgICBpdGVtID0gZ3RrX3NlcGFyYXRvcl90
b29sX2l0ZW1fbmV3KCk7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xi
YXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwot
Ci0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXcoTlVMTCwgTlVMTCk7Ci0gICAgZ3RrX3Rv
b2xfYnV0dG9uX3NldF9pY29uX25hbWUoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiaW5zZXJ0LWlt
YWdlIik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRl
bSksICJJbnNlcnQgSW1hZ2UiKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0p
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soaW5zZXJ0SW1hZ2VDb21tYW5kQ2FsbGJhY2spLCB3aW5k
b3cpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwg
LTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0g
PSBndGtfdG9vbF9idXR0b25fbmV3KE5VTEwsIE5VTEwpOwotICAgIGd0a190b29sX2J1dHRvbl9z
ZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRPTihpdGVtKSwgImluc2VydC1saW5rIik7Ci0gICAg
Z3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJJbnNlcnQg
TGluayIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwg
R19DQUxMQkFDSyhpbnNlcnRMaW5rQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtf
dG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtf
d2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CisgICAgR3RrV2lkZ2V0ICpncm91cEJveCA9
IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKKyAgICBndGtfc3R5
bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChncm91cEJv
eCksIEdUS19TVFlMRV9DTEFTU19MSU5LRUQpOworICAgIGFkZFRvb2xiYXJCdXR0b24oZ3JvdXBC
b3gsIFRPT0xCQVJfQlVUVE9OX1RPR0dMRSwgImZvcm1hdC10ZXh0LWJvbGQtc3ltYm9saWMiLCAi
ZWRpdC5Cb2xkIik7CisgICAgYWRkVG9vbGJhckJ1dHRvbihncm91cEJveCwgVE9PTEJBUl9CVVRU
T05fVE9HR0xFLCAiZm9ybWF0LXRleHQtaXRhbGljLXN5bWJvbGljIiwgImVkaXQuSXRhbGljIik7
CisgICAgYWRkVG9vbGJhckJ1dHRvbihncm91cEJveCwgVE9PTEJBUl9CVVRUT05fVE9HR0xFLCAi
Zm9ybWF0LXRleHQtdW5kZXJsaW5lLXN5bWJvbGljIiwgImVkaXQuVW5kZXJsaW5lIik7CisgICAg
YWRkVG9vbGJhckJ1dHRvbihncm91cEJveCwgVE9PTEJBUl9CVVRUT05fVE9HR0xFLCAiZm9ybWF0
LXRleHQtc3RyaWtldGhyb3VnaC1zeW1ib2xpYyIsICJlZGl0LlN0cmlrZXRocm91Z2giKTsKKyAg
ICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0b29sYmFyKSwgZ3JvdXBCb3gsIEZBTFNFLCBG
QUxTRSwgMCk7CisgICAgZ3RrX3dpZGdldF9zaG93KGdyb3VwQm94KTsKKworICAgIGdyb3VwQm94
ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDApOworICAgIGd0a19z
dHlsZV9jb250ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KGdyb3Vw
Qm94KSwgR1RLX1NUWUxFX0NMQVNTX0xJTktFRCk7CisgICAgYWRkVG9vbGJhckJ1dHRvbihncm91
cEJveCwgVE9PTEJBUl9CVVRUT05fTk9STUFMLCAiZWRpdC1jdXQtc3ltYm9saWMiLCAiZWRpdC5D
dXQiKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKGdyb3VwQm94LCBUT09MQkFSX0JVVFRPTl9OT1JN
QUwsICJlZGl0LWNvcHktc3ltYm9saWMiLCAiZWRpdC5Db3B5Iik7CisgICAgYWRkVG9vbGJhckJ1
dHRvbihncm91cEJveCwgVE9PTEJBUl9CVVRUT05fTk9STUFMLCAiZWRpdC1wYXN0ZS1zeW1ib2xp
YyIsICJlZGl0LlBhc3RlIik7CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godG9vbGJh
ciksIGdyb3VwQm94LCBGQUxTRSwgRkFMU0UsIDApOworICAgIGd0a193aWRnZXRfc2hvdyhncm91
cEJveCk7CisKKyAgICBncm91cEJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJ
Wk9OVEFMLCAwKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9n
ZXRfc3R5bGVfY29udGV4dChncm91cEJveCksIEdUS19TVFlMRV9DTEFTU19MSU5LRUQpOworICAg
IGFkZFRvb2xiYXJCdXR0b24oZ3JvdXBCb3gsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgImVkaXQt
dW5kby1zeW1ib2xpYyIsICJlZGl0LlVuZG8iKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKGdyb3Vw
Qm94LCBUT09MQkFSX0JVVFRPTl9OT1JNQUwsICJlZGl0LXJlZG8tc3ltYm9saWMiLCAiZWRpdC5S
ZWRvIik7CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godG9vbGJhciksIGdyb3VwQm94
LCBGQUxTRSwgRkFMU0UsIDApOworICAgIGd0a193aWRnZXRfc2hvdyhncm91cEJveCk7CisKKyAg
ICBncm91cEJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsK
KyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29u
dGV4dChncm91cEJveCksIEdUS19TVFlMRV9DTEFTU19MSU5LRUQpOworICAgIGFkZFRvb2xiYXJC
dXR0b24oZ3JvdXBCb3gsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgImZvcm1hdC1qdXN0aWZ5LWxl
ZnQtc3ltYm9saWMiLCAiZWRpdC5KdXN0aWZ5TGVmdCIpOworICAgIGFkZFRvb2xiYXJCdXR0b24o
Z3JvdXBCb3gsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgImZvcm1hdC1qdXN0aWZ5LWNlbnRlci1z
eW1ib2xpYyIsICJlZGl0Lkp1c3RpZnlDZW50ZXIiKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKGdy
b3VwQm94LCBUT09MQkFSX0JVVFRPTl9OT1JNQUwsICJmb3JtYXQtanVzdGlmeS1yaWdodC1zeW1i
b2xpYyIsICJlZGl0Lkp1c3RpZnlSaWdodCIpOworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtf
Qk9YKHRvb2xiYXIpLCBncm91cEJveCwgRkFMU0UsIEZBTFNFLCAwKTsKKyAgICBndGtfd2lkZ2V0
X3Nob3coZ3JvdXBCb3gpOworCisgICAgZ3JvdXBCb3ggPSBndGtfYm94X25ldyhHVEtfT1JJRU5U
QVRJT05fSE9SSVpPTlRBTCwgMCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGd0
a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQoZ3JvdXBCb3gpLCBHVEtfU1RZTEVfQ0xBU1NfTElO
S0VEKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKGdyb3VwQm94LCBUT09MQkFSX0JVVFRPTl9OT1JN
QUwsICJmb3JtYXQtaW5kZW50LW1vcmUtc3ltYm9saWMiLCAiZWRpdC5JbmRlbnQiKTsKKyAgICBh
ZGRUb29sYmFyQnV0dG9uKGdyb3VwQm94LCBUT09MQkFSX0JVVFRPTl9OT1JNQUwsICJmb3JtYXQt
aW5kZW50LWxlc3Mtc3ltYm9saWMiLCAiZWRpdC5PdXRkZW50Iik7CisgICAgZ3RrX2JveF9wYWNr
X3N0YXJ0KEdUS19CT1godG9vbGJhciksIGdyb3VwQm94LCBGQUxTRSwgRkFMU0UsIDApOworICAg
IGd0a193aWRnZXRfc2hvdyhncm91cEJveCk7CisKKyAgICBncm91cEJveCA9IGd0a19ib3hfbmV3
KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAwKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9h
ZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dChncm91cEJveCksIEdUS19TVFlM
RV9DTEFTU19MSU5LRUQpOworICAgIEd0a1dpZGdldCAqYnV0dG9uID0gYWRkVG9vbGJhckJ1dHRv
bihncm91cEJveCwgVE9PTEJBUl9CVVRUT05fTk9STUFMLCAiaW5zZXJ0LWltYWdlLXN5bWJvbGlj
IiwgTlVMTCk7CisgICAgZ19zaWduYWxfY29ubmVjdChidXR0b24sICJjbGlja2VkIiwgR19DQUxM
QkFDSyhpbnNlcnRJbWFnZUNvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CisgICAgYnV0dG9uID0g
YWRkVG9vbGJhckJ1dHRvbihncm91cEJveCwgVE9PTEJBUl9CVVRUT05fTk9STUFMLCAiaW5zZXJ0
LWxpbmstc3ltYm9saWMiLCBOVUxMKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1dHRvbiwgImNs
aWNrZWQiLCBHX0NBTExCQUNLKGluc2VydExpbmtDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwor
ICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHRvb2xiYXIpLCBncm91cEJveCwgRkFMU0Us
IEZBTFNFLCAwKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coZ3JvdXBCb3gpOwogCiAgICAgZ3RrX2Jv
eF9wYWNrX3N0YXJ0KEdUS19CT1god2luZG93LT5tYWluQm94KSwgdG9vbGJhciwgRkFMU0UsIEZB
TFNFLCAwKTsKICAgICBndGtfYm94X3Jlb3JkZXJfY2hpbGQoR1RLX0JPWCh3aW5kb3ctPm1haW5C
b3gpLCB0b29sYmFyLCAxKTsKQEAgLTk2OCwyMCArOTk1LDgyIEBAIHN0YXRpYyBHdGtXaWRnZXQq
IGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKEJyb3dzZXJXaW5kb3cqIHdpbmRvdywgR3Rr
Qm94KiBiCiAKICAgICByZXR1cm4gYnV0dG9uOwogfQotI2Vsc2UKLXN0YXRpYyBHdGtXaWRnZXQq
IGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3Rr
V2lkZ2V0ICp0b29sYmFyLCBHVHlwZSB0eXBlLCBjb25zdCBjaGFyICpsYWJlbCwgY29uc3QgY2hh
ciAqbmFtZWRJY29uLCBjb25zdCBjaGFyICphY3Rpb25OYW1lKQotewotICAgIEd0a1dpZGdldCAq
aXRlbSA9IGdfb2JqZWN0X25ldyh0eXBlLCAiaWNvbi1uYW1lIiwgbmFtZWRJY29uLCBOVUxMKTsK
LSAgICBpZiAodHlwZSA9PSBHVEtfVFlQRV9NRU5VX1RPT0xfQlVUVE9OKQotICAgICAgICBndGtf
bWVudV90b29sX2J1dHRvbl9zZXRfbWVudShHVEtfTUVOVV9UT09MX0JVVFRPTihpdGVtKSwgMCk7
Ci0gICAgZ3RrX2FjdGlvbmFibGVfc2V0X2FjdGlvbl9uYW1lKEdUS19BQ1RJT05BQkxFKGl0ZW0p
LCBhY3Rpb25OYW1lKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JV
VFRPTihpdGVtKSwgbGFiZWwpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0
b29sYmFyKSwgR1RLX1RPT0xfSVRFTShpdGVtKSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhp
dGVtKTsKKyNlbmRpZgogCi0gICAgcmV0dXJuIGl0ZW07CitzdGF0aWMgdm9pZCBicm93c2VyV2lu
ZG93QnVpbGRQb3BvdmVyTWVudShCcm93c2VyV2luZG93ICp3aW5kb3csIEd0a1dpZGdldCAqcGFy
ZW50KQoreworICAgIEd0a1dpZGdldCAqdmJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElP
Tl9WRVJUSUNBTCwgNik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3RvcCh2Ym94LCAxMik7
CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2JvdHRvbSh2Ym94LCAxMik7CisKKyAgICBHdGtX
aWRnZXQgKnpvb21Cb3ggPSBndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwg
MCk7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3N0YXJ0KHpvb21Cb3gsIDEyKTsKKyAgICBn
dGtfd2lkZ2V0X3NldF9tYXJnaW5fZW5kKHpvb21Cb3gsIDEyKTsKKyAgICBndGtfYm94X3NldF9o
b21vZ2VuZW91cyhHVEtfQk9YKHpvb21Cb3gpLCBUUlVFKTsKKyAgICBndGtfc3R5bGVfY29udGV4
dF9hZGRfY2xhc3MoZ3RrX3dpZGdldF9nZXRfc3R5bGVfY29udGV4dCh6b29tQm94KSwgR1RLX1NU
WUxFX0NMQVNTX0xJTktFRCk7CisgICAgR3RrV2lkZ2V0ICpidXR0b24gPSBndGtfYnV0dG9uX25l
d19mcm9tX2ljb25fbmFtZSgiem9vbS1vdXQtc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUp
OworICAgIGd0a193aWRnZXRfc2V0X2hhbGlnbihidXR0b24sIEdUS19BTElHTl9GSUxMKTsKKyAg
ICBndGtfYWN0aW9uYWJsZV9zZXRfYWN0aW9uX25hbWUoR1RLX0FDVElPTkFCTEUoYnV0dG9uKSwg
Indpbi56b29tLW91dCIpOworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoem9v
bUJveCksIGJ1dHRvbik7CisgICAgZ3RrX3dpZGdldF9zaG93KGJ1dHRvbik7CisKKyAgICBidXR0
b24gPSBndGtfYnV0dG9uX25ld19mcm9tX2ljb25fbmFtZSgiem9vbS1vcmlnaW5hbC1zeW1ib2xp
YyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZ3RrX3dpZGdldF9zZXRfaGFsaWduKGJ1dHRv
biwgR1RLX0FMSUdOX0ZJTEwpOworICAgIGd0a19hY3Rpb25hYmxlX3NldF9hY3Rpb25fbmFtZShH
VEtfQUNUSU9OQUJMRShidXR0b24pLCAid2luLnpvb20tZGVmYXVsdCIpOworICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIoem9vbUJveCksIGJ1dHRvbik7CisgICAgZ3RrX3dpZGdl
dF9zaG93KGJ1dHRvbik7CisKKyAgICBidXR0b24gPSBndGtfYnV0dG9uX25ld19mcm9tX2ljb25f
bmFtZSgiem9vbS1pbi1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZ3RrX3dp
ZGdldF9zZXRfaGFsaWduKGJ1dHRvbiwgR1RLX0FMSUdOX0ZJTEwpOworICAgIGd0a19hY3Rpb25h
YmxlX3NldF9hY3Rpb25fbmFtZShHVEtfQUNUSU9OQUJMRShidXR0b24pLCAid2luLnpvb20taW4i
KTsKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHpvb21Cb3gpLCBidXR0b24p
OworICAgIGd0a193aWRnZXRfc2hvdyhidXR0b24pOworCisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0
KEdUS19CT1godmJveCksIHpvb21Cb3gsIEZBTFNFLCBGQUxTRSwgMCk7CisgICAgZ3RrX3dpZGdl
dF9zaG93KHpvb21Cb3gpOworCisgICAgR3RrV2lkZ2V0ICptZW51Qm94ID0gZ3RrX2JveF9uZXco
R1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCAwKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5f
c3RhcnQobWVudUJveCwgMTIpOworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9lbmQobWVudUJv
eCwgMTIpOworCisgICAgR3RrV2lkZ2V0ICpzZXBhcmF0b3IgPSBndGtfc2VwYXJhdG9yX25ldyhH
VEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3Rv
cChzZXBhcmF0b3IsIDYpOworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9ib3R0b20oc2VwYXJh
dG9yLCA2KTsKKyAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChtZW51Qm94KSwgc2VwYXJh
dG9yLCBGQUxTRSwgRkFMU0UsIDApOworICAgIGd0a193aWRnZXRfc2hvdyhzZXBhcmF0b3IpOwor
CisgICAgYnV0dG9uID0gZ3RrX21vZGVsX2J1dHRvbl9uZXcoKTsKKyAgICBnX29iamVjdF9zZXQo
YnV0dG9uLCAidGV4dCIsICJfTmV3IFByaXZhdGUgV2luZG93IiwgTlVMTCk7CisgICAgZ3RrX2Fj
dGlvbmFibGVfc2V0X2FjdGlvbl9uYW1lKEdUS19BQ1RJT05BQkxFKGJ1dHRvbiksICJ3aW4ub3Bl
bi1wcml2YXRlLXdpbmRvdyIpOworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKG1lbnVC
b3gpLCBidXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7CisgICAgZ3RrX3dpZGdldF9zaG93KGJ1dHRv
bik7CisKKyAgICBidXR0b24gPSBndGtfbW9kZWxfYnV0dG9uX25ldygpOworICAgIGdfb2JqZWN0
X3NldChidXR0b24sICJ0ZXh0IiwgIl9QcmludOKApiIsIE5VTEwpOworICAgIGd0a19hY3Rpb25h
YmxlX3NldF9hY3Rpb25fbmFtZShHVEtfQUNUSU9OQUJMRShidXR0b24pLCAid2luLnByaW50Iik7
CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1gobWVudUJveCksIGJ1dHRvbiwgRkFMU0Us
IEZBTFNFLCAwKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coYnV0dG9uKTsKKworICAgIGJ1dHRvbiA9
IGd0a19tb2RlbF9idXR0b25fbmV3KCk7CisgICAgZ19vYmplY3Rfc2V0KGJ1dHRvbiwgInRleHQi
LCAiUHJlZmVyZV9uY2Vz4oCmIiwgTlVMTCk7CisgICAgZ3RrX2FjdGlvbmFibGVfc2V0X2FjdGlv
bl9uYW1lKEdUS19BQ1RJT05BQkxFKGJ1dHRvbiksICJ3aW4ucHJlZmVyZW5jZXMiKTsKKyAgICBn
dGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChtZW51Qm94KSwgYnV0dG9uLCBGQUxTRSwgRkFMU0Us
IDApOworICAgIGd0a193aWRnZXRfc2hvdyhidXR0b24pOworCisgICAgYnV0dG9uID0gZ3RrX21v
ZGVsX2J1dHRvbl9uZXcoKTsKKyAgICBnX29iamVjdF9zZXQoYnV0dG9uLCAidGV4dCIsICJfUXVp
dCIsIE5VTEwpOworICAgIGd0a19hY3Rpb25hYmxlX3NldF9hY3Rpb25fbmFtZShHVEtfQUNUSU9O
QUJMRShidXR0b24pLCAid2luLnF1aXQiKTsKKyAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JP
WChtZW51Qm94KSwgYnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOworICAgIGd0a193aWRnZXRfc2hv
dyhidXR0b24pOworCisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godmJveCksIG1lbnVC
b3gsIEZBTFNFLCBGQUxTRSwgMCk7CisgICAgZ3RrX3dpZGdldF9zaG93KG1lbnVCb3gpOworCisg
ICAgR3RrV2lkZ2V0ICpwb3BvdmVyID0gZ3RrX3BvcG92ZXJfbmV3KHBhcmVudCk7CisgICAgZ3Rr
X21lbnVfYnV0dG9uX3NldF9wb3BvdmVyKEdUS19NRU5VX0JVVFRPTihwYXJlbnQpLCBwb3BvdmVy
KTsKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHBvcG92ZXIpLCB2Ym94KTsK
KyAgICBndGtfd2lkZ2V0X3Nob3codmJveCk7CiB9Ci0jZW5kaWYKIAogc3RhdGljIGNvbnN0IEdB
Y3Rpb25FbnRyeSBhY3Rpb25zW10gPSB7CiAgICAgeyAicmVsb2FkIiwgcmVsb2FkUGFnZSwgTlVM
TCwgTlVMTCwgTlVMTCwgeyAwIH0gfSwKQEAgLTEwMzUsMzYgKzExMjQsMzMgQEAgc3RhdGljIHZv
aWQgYnJvd3Nlcl93aW5kb3dfaW5pdChCcm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgd2luZG93
LT5yZWxvYWRPclN0b3BCdXR0b24gPSBicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5k
b3csIEdUS19CT1goYm94KSwgInZpZXctcmVmcmVzaCIsIEdfQ0FMTEJBQ0socmVsb2FkT3JTdG9w
Q2FsbGJhY2spKTsKICAgICBndGtfY2VudGVyX2JveF9zZXRfc3RhcnRfd2lkZ2V0KEdUS19DRU5U
RVJfQk9YKHRvb2xiYXIpLCBib3gpOwogI2Vsc2UKLSAgICBHdGtXaWRnZXQgKnRvb2xiYXIgPSBn
dGtfdG9vbGJhcl9uZXcoKTsKKyAgICBHdGtXaWRnZXQgKnRvb2xiYXIgPSBndGtfYm94X25ldyhH
VEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwgNCk7CiAgICAgd2luZG93LT50b29sYmFyID0gdG9v
bGJhcjsKLSAgICBndGtfb3JpZW50YWJsZV9zZXRfb3JpZW50YXRpb24oR1RLX09SSUVOVEFCTEUo
dG9vbGJhciksIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKLSAgICBndGtfdG9vbGJhcl9z
ZXRfc3R5bGUoR1RLX1RPT0xCQVIodG9vbGJhciksIEdUS19UT09MQkFSX0JPVEhfSE9SSVopOwot
Ci0gICAgd2luZG93LT5iYWNrSXRlbSA9IGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKHdp
bmRvdywgdG9vbGJhciwgR1RLX1RZUEVfTUVOVV9UT09MX0JVVFRPTiwgIkJhY2siLCAiZ28tcHJl
dmlvdXMiLCAid2luLmdvLWJhY2siKTsKLSAgICB3aW5kb3ctPmZvcndhcmRJdGVtID0gYnJvd3Nl
cldpbmRvd1NldHVwVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9NRU5VX1RP
T0xfQlVUVE9OLCAiRm9yd2FyZCIsICJnby1uZXh0IiwgIndpbi5nby1mb3J3YXJkIik7Ci0gICAg
YnJvd3NlcldpbmRvd1NldHVwVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9U
T09MX0JVVFRPTiwgIlByZWZlcmVuY2VzIiwgInByZWZlcmVuY2VzLXN5c3RlbSIsICJ3aW4ucHJl
ZmVyZW5jZXMiKTsKLQotICAgIGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKHdpbmRvdywg
dG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sICJab29tIE91dCIsICJ6b29tLW91dCIsICJ3
aW4uem9vbS1vdXQiKTsKLSAgICBicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5kb3cs
IHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiWm9vbSBJbiIsICJ6b29tLWluIiwgIndp
bi56b29tLWluIik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3RvcCh0b29sYmFyLCAyKTsK
KyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fYm90dG9tKHRvb2xiYXIsIDIpOworICAgIGd0a193
aWRnZXRfc2V0X21hcmdpbl9zdGFydCh0b29sYmFyLCAyKTsKKyAgICBndGtfd2lkZ2V0X3NldF9t
YXJnaW5fZW5kKHRvb2xiYXIsIDIpOwogCi0gICAgYnJvd3NlcldpbmRvd1NldHVwVG9vbGJhckl0
ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIkZpbmQiLCAiZWRpdC1m
aW5kIiwgIndpbi5maW5kIik7CisgICAgR3RrV2lkZ2V0ICpuYXZpZ2F0aW9uQm94ID0gZ3RrX2Jv
eF9uZXcoR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIDApOworICAgIGd0a19zdHlsZV9jb250
ZXh0X2FkZF9jbGFzcyhndGtfd2lkZ2V0X2dldF9zdHlsZV9jb250ZXh0KG5hdmlnYXRpb25Cb3gp
LCBHVEtfU1RZTEVfQ0xBU1NfTElOS0VEKTsKIAotICAgIGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xi
YXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sICJIb21lIiwgImdv
LWhvbWUiLCAid2luLmxvYWQtaG9tZXBhZ2UiKTsKKyAgICB3aW5kb3ctPmJhY2tJdGVtID0gYWRk
VG9vbGJhckJ1dHRvbihuYXZpZ2F0aW9uQm94LCBUT09MQkFSX0JVVFRPTl9OT1JNQUwsICJnby1w
cmV2aW91cy1zeW1ib2xpYyIsICJ3aW4uZ28tYmFjayIpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
d2luZG93LT5iYWNrSXRlbSwgImJ1dHRvbi1wcmVzcy1ldmVudCIsIEdfQ0FMTEJBQ0sobmF2aWdh
dGlvbkJ1dHRvblByZXNzQ2FsbGJhY2spLCB3aW5kb3cpOworICAgIHdpbmRvdy0+Zm9yd2FyZEl0
ZW0gPSBhZGRUb29sYmFyQnV0dG9uKG5hdmlnYXRpb25Cb3gsIFRPT0xCQVJfQlVUVE9OX05PUk1B
TCwgImdvLW5leHQtc3ltYm9saWMiLCAid2luLmdvLWZvcndhcmQiKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KHdpbmRvdy0+Zm9yd2FyZEl0ZW0sICJidXR0b24tcHJlc3MtZXZlbnQiLCBHX0NBTExC
QUNLKG5hdmlnYXRpb25CdXR0b25QcmVzc0NhbGxiYWNrKSwgd2luZG93KTsKKyAgICBndGtfYm94
X3BhY2tfc3RhcnQoR1RLX0JPWCh0b29sYmFyKSwgbmF2aWdhdGlvbkJveCwgRkFMU0UsIEZBTFNF
LCAwKTsKKyAgICBndGtfd2lkZ2V0X3Nob3cobmF2aWdhdGlvbkJveCk7CiAKLSAgICBHdGtUb29s
SXRlbSAqaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXcoZ3RrX2ltYWdlX25ld19mcm9tX2ljb25f
bmFtZSgidGFiLW5ldyIsIEdUS19JQ09OX1NJWkVfU01BTExfVE9PTEJBUiksIE5VTEwpOwotICAg
IGd0a19hY3Rpb25hYmxlX3NldF9hY3Rpb25fbmFtZShHVEtfQUNUSU9OQUJMRShpdGVtKSwgIndp
bi5uZXctdGFiIik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRU
T04oaXRlbSksICJOZXcgVGFiIik7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFS
KHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93X2FsbChHVEtfV0lER0VU
KGl0ZW0pKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKHRvb2xiYXIsIFRPT0xCQVJfQlVUVE9OX05P
Uk1BTCwgImdvLWhvbWUtc3ltYm9saWMiLCAid2luLmxvYWQtaG9tZXBhZ2UiKTsKKyAgICBhZGRU
b29sYmFyQnV0dG9uKHRvb2xiYXIsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgInRhYi1uZXctc3lt
Ym9saWMiLCAid2luLm5ldy10YWIiKTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9pdGVtX25ldygp
OwotICAgIGd0a190b29sX2l0ZW1fc2V0X2V4cGFuZChpdGVtLCBUUlVFKTsKLSAgICBndGtfY29u
dGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGl0ZW0pLCB3aW5kb3ctPnVyaUVudHJ5KTsKKyAgICBn
dGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0b29sYmFyKSwgd2luZG93LT51cmlFbnRyeSwgVFJV
RSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+dXJpRW50cnkpOwotICAg
IGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAg
IGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKIAotICAgIHdpbmRvdy0+cmVsb2Fk
T3JTdG9wQnV0dG9uID0gYnJvd3NlcldpbmRvd1NldHVwVG9vbGJhckl0ZW0od2luZG93LCB0b29s
YmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIlJlbG9hZCIsICJ2aWV3LXJlZnJlc2giLCAid2lu
LXJlbG9hZC1zdG9wIik7CisgICAgd2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24gPSBhZGRUb29s
YmFyQnV0dG9uKHRvb2xiYXIsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgInZpZXctcmVmcmVzaC1z
eW1ib2xpYyIsICJ3aW4ucmVsb2FkLXN0b3AiKTsKKyAgICBhZGRUb29sYmFyQnV0dG9uKHRvb2xi
YXIsIFRPT0xCQVJfQlVUVE9OX05PUk1BTCwgImVkaXQtZmluZC1zeW1ib2xpYyIsICJ3aW4uZmlu
ZCIpOworICAgIEd0a1dpZGdldCAqYnV0dG9uID0gYWRkVG9vbGJhckJ1dHRvbih0b29sYmFyLCBU
T09MQkFSX0JVVFRPTl9NRU5VLCAib3Blbi1tZW51LXN5bWJvbGljIiwgTlVMTCk7CisgICAgYnJv
d3NlcldpbmRvd0J1aWxkUG9wb3Zlck1lbnUod2luZG93LCBidXR0b24pOwogI2VuZGlmCiAgICAg
R3RrV2lkZ2V0ICp2Ym94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCAw
KTsKICAgICB3aW5kb3ctPm1haW5Cb3ggPSB2Ym94Owo=
</data>
<flag name="review"
          id="416726"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>