<?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>17029</bug_id>
          
          <creation_ts>2008-01-27 03:44:12 -0800</creation_ts>
          <short_desc>Use of deprecated class function but declares GTK_DISABLE_DEPRECATED</short_desc>
          <delta_ts>2008-01-27 16:14:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Stephan Binner">stbinner</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>68354</commentid>
    <comment_count>0</comment_count>
    <who name="Stephan Binner">stbinner</who>
    <bug_when>2008-01-27 03:44:12 -0800</bug_when>
    <thetext>&gt; E: WebKitGtk 64bit-portability-issue ../../WebCore/platform/gtk/gtk2drawing.c: 203

gtk2drawing.c used gtk_option_menu_new() while the build system defines GTK_DISABLE_DEPRECATED, result: gtk_option_menu_new() is rather undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68393</commentid>
    <comment_count>1</comment_count>
      <attachid>18729</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-27 15:54:10 -0800</bug_when>
    <thetext>Created attachment 18729
Sync bundled code with Mozilla

gtkdrawing.h and gtk2drawing.c are bundled sources so no need to review them too closely</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68396</commentid>
    <comment_count>2</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-27 16:14:16 -0800</bug_when>
    <thetext>Thanks! Fix landed in r29824.

(Just to be clear, this build error would only have showed up in debug builds. WebKit debug builds are quite different from release builds, being heavily instrumented and not suitable for deployment.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18729</attachid>
            <date>2008-01-27 15:54:10 -0800</date>
            <delta_ts>2008-01-27 16:02:51 -0800</delta_ts>
            <desc>Sync bundled code with Mozilla</desc>
            <filename>rendertheme.patch</filename>
            <type>text/plain</type>
            <size>101208</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTgyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODkgQEAKKzIwMDgtMDEtMjcgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDI5CisgICAgICAgIFVzZSBvZiBkZXBy
ZWNhdGVkIGNsYXNzIGZ1bmN0aW9uIGJ1dCBkZWNsYXJlcyBHVEtfRElTQUJMRV9ERVBSRUNBVEVE
CisKKyAgICAgICAgU3luYyBndGtkcmF3aW5nLmggKDEuNTEpIGFuZCBndGsyZHJhd2luZy5jICgx
LjcxKSBmcm9tIE1vemlsbGEKKyAgICAgICAgdXBzdHJlYW0uCisKKyAgICAgICAgQWRhcHQgUmVu
ZGVyVGhlbWVHdGsuY3BwIHRvIHRyYWNrIG1pbm9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3RrVGV4dERp
cmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RNb3pTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRNb3pTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1veldpZGdldCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0azJkcmF3aW5nLmM6CisgICAgICAgIChzZXR1cF93
aWRnZXRfcHJvdG90eXBlKToKKyAgICAgICAgKGVuc3VyZV9ocGFuZWRfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV92cGFuZWRfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90b2dnbGVfYnV0dG9u
X3dpZGdldCk6CisgICAgICAgIChlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldCk6CisgICAg
ICAgIChlbnN1cmVfZHJvcGRvd25fZW50cnlfd2lkZ2V0KToKKyAgICAgICAgKG1vel9ndGtfZ2V0
X2Ryb3Bkb3duX2J1dHRvbik6CisgICAgICAgIChlbnN1cmVfYXJyb3dfd2lkZ2V0KToKKyAgICAg
ICAgKGVuc3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX3N0
YXR1c2Jhcl93aWRnZXQpOgorICAgICAgICAoZW5zdXJlX2ZyYW1lX3dpZGdldCk6CisgICAgICAg
IChlbnN1cmVfbWVudV9zZXBhcmF0b3Jfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90cmVlX3Zp
ZXdfd2lkZ2V0KToKKyAgICAgICAgKGVuc3VyZV90cmVlX2hlYWRlcl9jZWxsX3dpZGdldCk6Cisg
ICAgICAgIChlbnN1cmVfZXhwYW5kZXJfd2lkZ2V0KToKKyAgICAgICAgKENvbnZlcnRHdGtTdGF0
ZSk6CisgICAgICAgIChtb3pfZ3RrX2J1dHRvbl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3dp
ZGdldF9nZXRfZm9jdXMpOgorICAgICAgICAobW96X2d0a19zcGxpdHRlcl9nZXRfbWV0cmljcyk6
CisgICAgICAgIChtb3pfZ3RrX3RvZ2dsZV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Njcm9s
bGJhcl9idXR0b25fcGFpbnQpOgorICAgICAgICAobW96X2d0a19zY3JvbGxiYXJfdHJvdWdoX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfc2Nyb2xsYmFyX3RodW1iX3BhaW50KToKKyAgICAgICAg
KG1vel9ndGtfc3Bpbl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3NwaW5fdXBkb3duX3BhaW50
KToKKyAgICAgICAgKG1vel9ndGtfc2NhbGVfcGFpbnQpOgorICAgICAgICAobW96X2d0a19zY2Fs
ZV90aHVtYl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2dyaXBwZXJfcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19ocGFuZWRfcGFpbnQpOgorICAgICAgICAobW96X2d0a192cGFuZWRfcGFpbnQp
OgorICAgICAgICAobW96X2d0a19lbnRyeV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3RyZWV2
aWV3X3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfdHJlZV9oZWFkZXJfY2VsbF9wYWludCk6Cisg
ICAgICAgIChtb3pfZ3RrX3RyZWVfaGVhZGVyX3NvcnRfYXJyb3dfcGFpbnQpOgorICAgICAgICAo
bW96X2d0a190cmVldmlld19leHBhbmRlcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2V4cGFu
ZGVyX3BhaW50KToKKyAgICAgICAgKG1vel9ndGtfb3B0aW9uX21lbnVfcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19kb3duYXJyb3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a19kcm9wZG93bl9h
cnJvd19wYWludCk6CisgICAgICAgIChtb3pfZ3RrX2NvbnRhaW5lcl9wYWludCk6CisgICAgICAg
IChtb3pfZ3RrX3RvZ2dsZV9sYWJlbF9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Rvb2xiYXJf
cGFpbnQpOgorICAgICAgICAobW96X2d0a190b29sYmFyX3NlcGFyYXRvcl9wYWludCk6CisgICAg
ICAgIChtb3pfZ3RrX3Rvb2x0aXBfcGFpbnQpOgorICAgICAgICAobW96X2d0a19yZXNpemVyX3Bh
aW50KToKKyAgICAgICAgKG1vel9ndGtfZnJhbWVfcGFpbnQpOgorICAgICAgICAobW96X2d0a19w
cm9ncmVzc2Jhcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX3Byb2dyZXNzX2NodW5rX3BhaW50
KToKKyAgICAgICAgKG1vel9ndGtfZ2V0X3RhYl90aGlja25lc3MpOgorICAgICAgICAobW96X2d0
a190YWJfcGFpbnQpOgorICAgICAgICAobW96X2d0a190YWJwYW5lbHNfcGFpbnQpOgorICAgICAg
ICAobW96X2d0a19tZW51X2Jhcl9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfcG9wdXBf
cGFpbnQpOgorICAgICAgICAobW96X2d0a19tZW51X3NlcGFyYXRvcl9wYWludCk6CisgICAgICAg
IChtb3pfZ3RrX21lbnVfaXRlbV9wYWludCk6CisgICAgICAgIChtb3pfZ3RrX21lbnVfYXJyb3df
cGFpbnQpOgorICAgICAgICAobW96X2d0a19jaGVja19tZW51X2l0ZW1fcGFpbnQpOgorICAgICAg
ICAobW96X2d0a193aW5kb3dfcGFpbnQpOgorICAgICAgICAobW96X2d0a19nZXRfd2lkZ2V0X2Jv
cmRlcik6CisgICAgICAgIChtb3pfZ3RrX2dldF9kcm9wZG93bl9hcnJvd19zaXplKToKKyAgICAg
ICAgKG1vel9ndGtfZ2V0X3Rvb2xiYXJfc2VwYXJhdG9yX3dpZHRoKToKKyAgICAgICAgKG1vel9n
dGtfZ2V0X2V4cGFuZGVyX3NpemUpOgorICAgICAgICAobW96X2d0a19nZXRfdHJlZXZpZXdfZXhw
YW5kZXJfc2l6ZSk6CisgICAgICAgIChtb3pfZ3RrX2dldF9tZW51X3NlcGFyYXRvcl9oZWlnaHQp
OgorICAgICAgICAobW96X2d0a193aWRnZXRfcGFpbnQpOgorICAgICAgICAobW96X2d0a19zaHV0
ZG93bik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2d0a2RyYXdpbmcuaDoKKwogMjAwOC0wMS0y
NyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9AdW5wbHVnZ2FibGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0ay5jcHAJKHJldmlzaW9uIDI5ODIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxMiArNzksMjUgQEAgc2hv
cnQgUmVuZGVyVGhlbWVHdGs6OmJhc2VsaW5lUG9zaXRpb24oYwogICAgIHJldHVybiBSZW5kZXJU
aGVtZTo6YmFzZWxpbmVQb3NpdGlvbihvKTsKIH0KIAorc3RhdGljIEd0a1RleHREaXJlY3Rpb24g
Z3RrVGV4dERpcmVjdGlvbihUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgIGNhc2UgUlRMOgorICAgICAgICByZXR1cm4gR1RLX1RFWFRfRElS
X1JUTDsKKyAgICBjYXNlIExUUjoKKyAgICAgICAgcmV0dXJuIEdUS19URVhUX0RJUl9MVFI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEdUS19URVhUX0RJUl9OT05FOworICAgIH0KK30K
Kwogc3RhdGljIHZvaWQgYWRqdXN0TW96U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBHdGtUaGVt
ZVdpZGdldFR5cGUgdHlwZSkKIHsKICAgICBnaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsK
KyAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGd0a1RleHREaXJlY3Rpb24oc3R5bGUt
PmRpcmVjdGlvbigpKTsKICAgICBnYm9vbGVhbiBpbmh0bWwgPSB0cnVlOwogCi0gICAgaWYgKG1v
el9ndGtfZ2V0X3dpZGdldF9ib3JkZXIodHlwZSwgJmxlZnQsICZ0b3AsICZyaWdodCwgJmJvdHRv
bSwgaW5odG1sKSAhPSBNT1pfR1RLX1NVQ0NFU1MpCisgICAgaWYgKG1vel9ndGtfZ2V0X3dpZGdl
dF9ib3JkZXIodHlwZSwgJmxlZnQsICZ0b3AsICZyaWdodCwgJmJvdHRvbSwgZGlyZWN0aW9uLCBp
bmh0bWwpICE9IE1PWl9HVEtfU1VDQ0VTUykKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklY
TUU6IFRoaXMgYXBwcm9hY2ggaXMgbGlrZWx5IHRvIGJlIGluY29ycmVjdC4gU2VlIG90aGVyIHBv
cnRzIGFuZCBsYXlvdXQgdGVzdHMgdG8gc2VlIHRoZSBwcm9ibGVtLgpAQCAtMTA2LDYgKzExOSw3
IEBAIHN0YXRpYyB2b2lkIHNldE1velN0YXRlKFJlbmRlclRoZW1lKiB0aGUKICAgICBzdGF0ZS0+
ZGlzYWJsZWQgPSAhdGhlbWUtPmlzRW5hYmxlZChvKSB8fCB0aGVtZS0+aXNSZWFkT25seUNvbnRy
b2wobyk7CiAgICAgc3RhdGUtPmlzRGVmYXVsdCA9IGZhbHNlOwogICAgIHN0YXRlLT5jYW5EZWZh
dWx0ID0gZmFsc2U7CisgICAgc3RhdGUtPmRlcHJlc3NlZCA9IGZhbHNlOwogfQogCiBzdGF0aWMg
Ym9vbCBwYWludE1veldpZGdldChSZW5kZXJUaGVtZSogdGhlbWUsIEd0a1RoZW1lV2lkZ2V0VHlw
ZSB0eXBlLCBSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBp
LCBjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTM5LDkgKzE1MywxMCBAQCBzdGF0aWMgYm9vbCBw
YWludE1veldpZGdldChSZW5kZXJUaGVtZSogCiAKICAgICBJbnRQb2ludCBwb3MgPSBpLmNvbnRl
eHQtPnRyYW5zbGF0ZVBvaW50KHJlY3QubG9jYXRpb24oKSk7CiAgICAgR2RrUmVjdGFuZ2xlIGdk
a1JlY3QgPSBJbnRSZWN0KHBvcy54KCksIHBvcy55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSk7CisgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBndGtUZXh0RGlyZWN0aW9u
KG8tPnN0eWxlKCktPmRpcmVjdGlvbigpKTsKIAogICAgIC8vIEZJWE1FOiBQYXNzIHRoZSByZWFs
IGNsaXAgcmVnaW9uLgotICAgIHJldHVybiBtb3pfZ3RrX3dpZGdldF9wYWludCh0eXBlLCBpLmNv
bnRleHQtPmdka0RyYXdhYmxlKCksICZnZGtSZWN0LCAmZ2RrUmVjdCwgJm1velN0YXRlLCBmbGFn
cykgIT0gTU9aX0dUS19TVUNDRVNTOworICAgIHJldHVybiBtb3pfZ3RrX3dpZGdldF9wYWludCh0
eXBlLCBpLmNvbnRleHQtPmdka0RyYXdhYmxlKCksICZnZGtSZWN0LCAmZ2RrUmVjdCwgJm1velN0
YXRlLCBmbGFncywgZGlyZWN0aW9uKSAhPSBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAKIHN0YXRpYyB2
b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5bGUqIHN0eWxlKQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvZ3RrMmRyYXdpbmcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9ndGsyZHJhd2luZy5jCShyZXZpc2lvbiAyOTgyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL2d0azJkcmF3aW5nLmMJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDcgQEAKIAogc3Rh
dGljIEd0a1dpZGdldCogZ1Byb3RvV2luZG93Owogc3RhdGljIEd0a1dpZGdldCogZ0J1dHRvbldp
ZGdldDsKK3N0YXRpYyBHdGtXaWRnZXQqIGdUb2dnbGVCdXR0b25XaWRnZXQ7CiBzdGF0aWMgR3Rr
V2lkZ2V0KiBnQ2hlY2tib3hXaWRnZXQ7CiBzdGF0aWMgR3RrV2lkZ2V0KiBnUmFkaW9idXR0b25X
aWRnZXQ7CiBzdGF0aWMgR3RrV2lkZ2V0KiBnSG9yaXpTY3JvbGxiYXJXaWRnZXQ7CkBAIC02Niwx
MCArNjcsMTMgQEAgc3RhdGljIEd0a1dpZGdldCogZ1ZTY2FsZVdpZGdldDsKIHN0YXRpYyBHdGtX
aWRnZXQqIGdFbnRyeVdpZGdldDsKIHN0YXRpYyBHdGtXaWRnZXQqIGdBcnJvd1dpZGdldDsKIHN0
YXRpYyBHdGtXaWRnZXQqIGdPcHRpb25NZW51V2lkZ2V0Oworc3RhdGljIEd0a1dpZGdldCogZ0Nv
bWJvQm94RW50cnlXaWRnZXQ7CitzdGF0aWMgR3RrV2lkZ2V0KiBnRHJvcGRvd25FbnRyeVdpZGdl
dDsKIHN0YXRpYyBHdGtXaWRnZXQqIGdEcm9wZG93bkJ1dHRvbldpZGdldDsKIHN0YXRpYyBHdGtX
aWRnZXQqIGdIYW5kbGVCb3hXaWRnZXQ7CiBzdGF0aWMgR3RrV2lkZ2V0KiBnVG9vbGJhcldpZGdl
dDsKIHN0YXRpYyBHdGtXaWRnZXQqIGdGcmFtZVdpZGdldDsKK3N0YXRpYyBHdGtXaWRnZXQqIGdT
dGF0dXNiYXJXaWRnZXQ7CiBzdGF0aWMgR3RrV2lkZ2V0KiBnUHJvZ3Jlc3NXaWRnZXQ7CiBzdGF0
aWMgR3RrV2lkZ2V0KiBnVGFiV2lkZ2V0Owogc3RhdGljIEd0a1dpZGdldCogZ1Rvb2x0aXBXaWRn
ZXQ7CkBAIC03OCw2ICs4MiwxNCBAQCBzdGF0aWMgR3RrV2lkZ2V0KiBnTWVudUJhckl0ZW1XaWRn
ZXQ7CiBzdGF0aWMgR3RrV2lkZ2V0KiBnTWVudVBvcHVwV2lkZ2V0Owogc3RhdGljIEd0a1dpZGdl
dCogZ01lbnVJdGVtV2lkZ2V0Owogc3RhdGljIEd0a1dpZGdldCogZ0NoZWNrTWVudUl0ZW1XaWRn
ZXQ7CitzdGF0aWMgR3RrV2lkZ2V0KiBnVHJlZVZpZXdXaWRnZXQ7CitzdGF0aWMgR3RrV2lkZ2V0
KiBnVHJlZUhlYWRlckNlbGxXaWRnZXQ7CitzdGF0aWMgR3RrV2lkZ2V0KiBnVHJlZUhlYWRlclNv
cnRBcnJvd1dpZGdldDsKK3N0YXRpYyBHdGtXaWRnZXQqIGdFeHBhbmRlcldpZGdldDsKK3N0YXRp
YyBHdGtXaWRnZXQqIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0Oworc3RhdGljIEd0a1dpZGdldCog
Z01lbnVTZXBhcmF0b3JXaWRnZXQ7CitzdGF0aWMgR3RrV2lkZ2V0KiBnSFBhbmVkV2lkZ2V0Owor
c3RhdGljIEd0a1dpZGdldCogZ1ZQYW5lZFdpZGdldDsKIAogc3RhdGljIEd0a1NoYWRvd1R5cGUg
Z01lbnVCYXJTaGFkb3dUeXBlOwogc3RhdGljIEd0a1NoYWRvd1R5cGUgZ1Rvb2xiYXJTaGFkb3dU
eXBlOwpAQCAtMTA5LDcgKzEyMSw3IEBAIHNldHVwX3dpZGdldF9wcm90b3R5cGUoR3RrV2lkZ2V0
KiB3aWRnZXQKICAgICBzdGF0aWMgR3RrV2lkZ2V0KiBwcm90b0xheW91dDsKICAgICBlbnN1cmVf
d2luZG93X3dpZGdldCgpOwogICAgIGlmICghcHJvdG9MYXlvdXQpIHsKLSAgICAgICAgcHJvdG9M
YXlvdXQgPSBndGtfaGJveF9uZXcoRkFMU0UsIDApOworICAgICAgICBwcm90b0xheW91dCA9IGd0
a19maXhlZF9uZXcoKTsKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihn
UHJvdG9XaW5kb3cpLCBwcm90b0xheW91dCk7CiAgICAgfQogCkBAIC0xMjksNiArMTQxLDM4IEBA
IGVuc3VyZV9idXR0b25fd2lkZ2V0KCkKIH0KIAogc3RhdGljIGdpbnQKK2Vuc3VyZV9ocGFuZWRf
d2lkZ2V0KCkKK3sKKyAgICBpZiAoIWdIUGFuZWRXaWRnZXQpIHsKKyAgICAgICAgZ0hQYW5lZFdp
ZGdldCA9IGd0a19ocGFuZWRfbmV3KCk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUo
Z0hQYW5lZFdpZGdldCk7CisgICAgfQorICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisK
K3N0YXRpYyBnaW50CitlbnN1cmVfdnBhbmVkX3dpZGdldCgpCit7CisgICAgaWYgKCFnVlBhbmVk
V2lkZ2V0KSB7CisgICAgICAgIGdWUGFuZWRXaWRnZXQgPSBndGtfdnBhbmVkX25ldygpOworICAg
ICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdWUGFuZWRXaWRnZXQpOworICAgIH0KKyAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOworfQorCitzdGF0aWMgZ2ludAorZW5zdXJlX3RvZ2dsZV9i
dXR0b25fd2lkZ2V0KCkKK3sKKyAgICBpZiAoIWdUb2dnbGVCdXR0b25XaWRnZXQpIHsKKyAgICAg
ICAgZ1RvZ2dsZUJ1dHRvbldpZGdldCA9IGd0a190b2dnbGVfYnV0dG9uX25ldygpOworICAgICAg
ICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUb2dnbGVCdXR0b25XaWRnZXQpOworICAgICAgICAv
KiB0b2dnbGUgYnV0dG9uIG11c3QgYmUgc2V0IGFjdGl2ZSB0byBnZXQgdGhlIHJpZ2h0IHN0eWxl
IG9uIGhvdmVyLiAqLworICAgICAgICBHVEtfVE9HR0xFX0JVVFRPTihnVG9nZ2xlQnV0dG9uV2lk
Z2V0KS0+YWN0aXZlID0gVFJVRTsKKyAgfQorICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOworfQor
CitzdGF0aWMgZ2ludAogZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpCiB7CiAgICAgaWYgKCFnQ2hl
Y2tib3hXaWRnZXQpIHsKQEAgLTIwNywxMyArMjUxLDQ4IEBAIGVuc3VyZV9vcHRpb25fbWVudV93
aWRnZXQoKQogfQogCiBzdGF0aWMgZ2ludAorZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXQo
KQoreworICAgIGlmICghZ0NvbWJvQm94RW50cnlXaWRnZXQpIHsKKyAgICAgICAgZ0NvbWJvQm94
RW50cnlXaWRnZXQgPSBndGtfY29tYm9fYm94X2VudHJ5X25ldygpOworICAgICAgICBzZXR1cF93
aWRnZXRfcHJvdG90eXBlKGdDb21ib0JveEVudHJ5V2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJu
IE1PWl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKK2Vuc3VyZV9kcm9wZG93bl9lbnRy
eV93aWRnZXQoKQoreworICAgIGlmICghZ0Ryb3Bkb3duRW50cnlXaWRnZXQpIHsKKyAgICAgICAg
ZW5zdXJlX2NvbWJvX2JveF9lbnRyeV93aWRnZXQoKTsKKworICAgICAgICBnRHJvcGRvd25FbnRy
eVdpZGdldCA9IEdUS19CSU4oZ0NvbWJvQm94RW50cnlXaWRnZXQpLT5jaGlsZDsKKyAgICAgICAg
Z3RrX3dpZGdldF9yZWFsaXplKGdEcm9wZG93bkVudHJ5V2lkZ2V0KTsKKyAgICB9CisgICAgcmV0
dXJuIE1PWl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIHZvaWQKK21vel9ndGtfZ2V0X2Ryb3Bk
b3duX2J1dHRvbihHdGtXaWRnZXQgKndpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciBjbGllbnRfZGF0YSkKK3sKKyAgICBpZiAoR1RLX0lTX1RPR0dMRV9CVVRUT04o
d2lkZ2V0KSkKKyAgICAgICAgZ0Ryb3Bkb3duQnV0dG9uV2lkZ2V0ID0gd2lkZ2V0OworfQorCitz
dGF0aWMgZ2ludAogZW5zdXJlX2Fycm93X3dpZGdldCgpCiB7CiAgICAgaWYgKCFnQXJyb3dXaWRn
ZXQpIHsKLSAgICAgICAgZ0Ryb3Bkb3duQnV0dG9uV2lkZ2V0ID0gZ3RrX2J1dHRvbl9uZXcoKTsK
LSAgICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnRHJvcGRvd25CdXR0b25XaWRnZXQpOwor
ICAgICAgICBlbnN1cmVfY29tYm9fYm94X2VudHJ5X3dpZGdldCgpOworCisgICAgICAgIGd0a19j
b250YWluZXJfZm9yYWxsKEdUS19DT05UQUlORVIoZ0NvbWJvQm94RW50cnlXaWRnZXQpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb3pfZ3RrX2dldF9kcm9wZG93bl9idXR0b24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCiAgICAgICAgIGdBcnJvd1dpZGdl
dCA9IGd0a19hcnJvd19uZXcoR1RLX0FSUk9XX0RPV04sIEdUS19TSEFET1dfT1VUKTsKLSAgICAg
ICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnRHJvcGRvd25CdXR0b25XaWRnZXQp
LCBnQXJyb3dXaWRnZXQpOworICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVS
KEdUS19CSU4oZ0Ryb3Bkb3duQnV0dG9uV2lkZ2V0KS0+Y2hpbGQpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBnQXJyb3dXaWRnZXQpOwogICAgICAgICBndGtfd2lkZ2V0X3JlYWxpemUoZ0Fy
cm93V2lkZ2V0KTsKICAgICB9CiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKQEAgLTI0NCw2
ICszMjMsMTcgQEAgZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KCkKIH0KIAogc3RhdGljIGdpbnQKK2Vu
c3VyZV90b29sYmFyX3NlcGFyYXRvcl93aWRnZXQoKQoreworICAgIGlmICghZ1Rvb2xiYXJTZXBh
cmF0b3JXaWRnZXQpIHsKKyAgICAgICAgZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KCk7CisgICAgICAg
IGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0ID0gR1RLX1dJREdFVChndGtfc2VwYXJhdG9yX3Rvb2xf
aXRlbV9uZXcoKSk7CisgICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ1Rvb2xiYXJTZXBh
cmF0b3JXaWRnZXQpOworICAgIH0KKyAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOworfQorCitz
dGF0aWMgZ2ludAogZW5zdXJlX3Rvb2x0aXBfd2lkZ2V0KCkKIHsKICAgICBpZiAoIWdUb29sdGlw
V2lkZ2V0KSB7CkBAIC0yNzQsMTEgKzM2NCwyMyBAQCBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCkK
IH0KIAogc3RhdGljIGdpbnQKK2Vuc3VyZV9zdGF0dXNiYXJfd2lkZ2V0KCkKK3sKKyAgICBpZiAo
IWdTdGF0dXNiYXJXaWRnZXQpIHsKKyAgICAgIGdTdGF0dXNiYXJXaWRnZXQgPSBndGtfc3RhdHVz
YmFyX25ldygpOworICAgICAgc2V0dXBfd2lkZ2V0X3Byb3RvdHlwZShnU3RhdHVzYmFyV2lkZ2V0
KTsKKyAgICB9CisgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQK
IGVuc3VyZV9mcmFtZV93aWRnZXQoKQogewogICAgIGlmICghZ0ZyYW1lV2lkZ2V0KSB7CisgICAg
ICAgIGVuc3VyZV9zdGF0dXNiYXJfd2lkZ2V0KCk7CiAgICAgICAgIGdGcmFtZVdpZGdldCA9IGd0
a19mcmFtZV9uZXcoTlVMTCk7Ci0gICAgICAgIHNldHVwX3dpZGdldF9wcm90b3R5cGUoZ0ZyYW1l
V2lkZ2V0KTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihnU3RhdHVz
YmFyV2lkZ2V0KSwgZ0ZyYW1lV2lkZ2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdG
cmFtZVdpZGdldCk7CiAgICAgfQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC0z
MzUsNiArNDM3LDE5IEBAIGVuc3VyZV9tZW51X2l0ZW1fd2lkZ2V0KCkKIH0KIAogc3RhdGljIGdp
bnQKK2Vuc3VyZV9tZW51X3NlcGFyYXRvcl93aWRnZXQoKQoreworICAgIGlmICghZ01lbnVTZXBh
cmF0b3JXaWRnZXQpIHsKKyAgICAgICAgZW5zdXJlX21lbnVfcG9wdXBfd2lkZ2V0KCk7CisgICAg
ICAgIGdNZW51U2VwYXJhdG9yV2lkZ2V0ID0gZ3RrX3NlcGFyYXRvcl9tZW51X2l0ZW1fbmV3KCk7
CisgICAgICAgIGd0a19tZW51X3NoZWxsX2FwcGVuZChHVEtfTUVOVV9TSEVMTChnTWVudVBvcHVw
V2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdNZW51U2VwYXJhdG9yV2lk
Z2V0KTsKKyAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplKGdNZW51U2VwYXJhdG9yV2lkZ2V0KTsK
KyAgICB9CisgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKIGVu
c3VyZV9jaGVja19tZW51X2l0ZW1fd2lkZ2V0KCkKIHsKICAgICBpZiAoIWdDaGVja01lbnVJdGVt
V2lkZ2V0KSB7CkBAIC0zNDcsMTEgKzQ2Miw1MSBAQCBlbnN1cmVfY2hlY2tfbWVudV9pdGVtX3dp
ZGdldCgpCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KIAorc3RhdGljIGdpbnQKK2Vu
c3VyZV90cmVlX3ZpZXdfd2lkZ2V0KCkKK3sKKyAgICBpZiAoIWdUcmVlVmlld1dpZGdldCkgewor
ICAgICAgICBnVHJlZVZpZXdXaWRnZXQgPSBndGtfdHJlZV92aWV3X25ldygpOworICAgICAgICBz
ZXR1cF93aWRnZXRfcHJvdG90eXBlKGdUcmVlVmlld1dpZGdldCk7CisgICAgfQorICAgIHJldHVy
biBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBnaW50CitlbnN1cmVfdHJlZV9oZWFkZXJf
Y2VsbF93aWRnZXQoKQoreworICAgIGlmKCFnVHJlZUhlYWRlckNlbGxXaWRnZXQpIHsKKyAgICAg
ICAgR3RrVHJlZVZpZXdDb2x1bW4qIHRyZWVWaWV3Q29sdW1uOworICAgICAgICBlbnN1cmVfdHJl
ZV92aWV3X3dpZGdldCgpOworCisgICAgICAgIHRyZWVWaWV3Q29sdW1uID0gZ3RrX3RyZWVfdmll
d19jb2x1bW5fbmV3KCk7CisgICAgICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF90aXRsZSh0
cmVlVmlld0NvbHVtbiwgIk0iKTsKKworICAgICAgICBndGtfdHJlZV92aWV3X2FwcGVuZF9jb2x1
bW4oR1RLX1RSRUVfVklFVyhnVHJlZVZpZXdXaWRnZXQpLCB0cmVlVmlld0NvbHVtbik7CisgICAg
ICAgIGdUcmVlSGVhZGVyQ2VsbFdpZGdldCA9IHRyZWVWaWV3Q29sdW1uLT5idXR0b247CisgICAg
ICAgIGd0a190cmVlX3ZpZXdfY29sdW1uX3NldF9zb3J0X2luZGljYXRvcih0cmVlVmlld0NvbHVt
biwgVFJVRSk7CisgICAgICAgIGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0ID0gdHJlZVZpZXdD
b2x1bW4tPmFycm93OworICAgIH0KKyAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOworfQorCitz
dGF0aWMgZ2ludAorZW5zdXJlX2V4cGFuZGVyX3dpZGdldCgpCit7CisgICAgaWYgKCFnRXhwYW5k
ZXJXaWRnZXQpIHsKKyAgICAgICAgZ0V4cGFuZGVyV2lkZ2V0ID0gZ3RrX2V4cGFuZGVyX25ldygi
TSIpOworICAgICAgICBzZXR1cF93aWRnZXRfcHJvdG90eXBlKGdFeHBhbmRlcldpZGdldCk7Cisg
ICAgfQorICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKIHN0YXRpYyBHdGtTdGF0ZVR5
cGUKIENvbnZlcnRHdGtTdGF0ZShHdGtXaWRnZXRTdGF0ZSogc3RhdGUpCiB7CiAgICAgaWYgKHN0
YXRlLT5kaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIEdUS19TVEFURV9JTlNFTlNJVElWRTsKKyAg
ICBlbHNlIGlmIChzdGF0ZS0+ZGVwcmVzc2VkKQorICAgICAgICByZXR1cm4gKHN0YXRlLT5pbkhv
dmVyID8gR1RLX1NUQVRFX1BSRUxJR0hUIDogR1RLX1NUQVRFX0FDVElWRSk7CiAgICAgZWxzZSBp
ZiAoc3RhdGUtPmluSG92ZXIpCiAgICAgICAgIHJldHVybiAoc3RhdGUtPmFjdGl2ZSA/IEdUS19T
VEFURV9BQ1RJVkUgOiBHVEtfU1RBVEVfUFJFTElHSFQpOwogICAgIGVsc2UKQEAgLTM4Niw3ICs1
NDEsOCBAQCBUU09mZnNldFN0eWxlR0NzKEd0a1N0eWxlKiBzdHlsZSwgZ2ludCB4CiBzdGF0aWMg
Z2ludAogbW96X2d0a19idXR0b25fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0
YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0
LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICBHdGtSZWxpZWZT
dHlsZSByZWxpZWYsIEd0a1dpZGdldCogd2lkZ2V0KQorICAgICAgICAgICAgICAgICAgICAgR3Rr
UmVsaWVmU3R5bGUgcmVsaWVmLCBHdGtXaWRnZXQqIHdpZGdldCwKKyAgICAgICAgICAgICAgICAg
ICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEd0a1NoYWRvd1R5cGUgc2hh
ZG93X3R5cGU7CiAgICAgR3RrU3R5bGUqIHN0eWxlID0gd2lkZ2V0LT5zdHlsZTsKQEAgLTM5Niw3
ICs1NTIsNyBAQCBtb3pfZ3RrX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FiCiAgICAg
Z2Jvb2xlYW4gaW50ZXJpb3JfZm9jdXM7CiAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFk
OwogCi0gICAgbW96X2d0a19idXR0b25fZ2V0X2ZvY3VzKCZpbnRlcmlvcl9mb2N1cywgJmZvY3Vz
X3dpZHRoLCAmZm9jdXNfcGFkKTsKKyAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMod2lkZ2V0
LCAmaW50ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7CiAKICAgICBpZiAo
V0lORE9XX0lTX01BUFBFRChkcmF3YWJsZSkpIHsKICAgICAgICAgZ2RrX3dpbmRvd19zZXRfYmFj
a19waXhtYXAoZHJhd2FibGUsIE5VTEwsIFRSVUUpOwpAQCAtNDA1LDYgKzU2MSw3IEBAIG1vel9n
dGtfYnV0dG9uX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWIKICAgICB9CiAKICAgICBndGtfd2lk
Z2V0X3NldF9zdGF0ZSh3aWRnZXQsIGJ1dHRvbl9zdGF0ZSk7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKHdpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIGlmIChzdGF0ZS0+aXNEZWZhdWx0
KQogICAgICAgICBHVEtfV0lER0VUX1NFVF9GTEFHUyh3aWRnZXQsIEdUS19IQVNfREVGQVVMVCk7
CkBAIC00MTYsMTAgKzU3MywxNyBAQCBtb3pfZ3RrX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FiCiAgICAgICAgIGhlaWdodCAtPSAyICogKGZvY3VzX3dpZHRoICsgZm9jdXNfcGFkKTsK
ICAgICB9CiAKLSAgICBzaGFkb3dfdHlwZSA9IGJ1dHRvbl9zdGF0ZSA9PSBHVEtfU1RBVEVfQUNU
SVZFID8gR1RLX1NIQURPV19JTiA6IEdUS19TSEFET1dfT1VUOwotCi0gICAgaWYgKHJlbGllZiAh
PSBHVEtfUkVMSUVGX05PTkUgfHwgKGJ1dHRvbl9zdGF0ZSAhPSBHVEtfU1RBVEVfTk9STUFMICYm
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbl9zdGF0ZSAhPSBH
VEtfU1RBVEVfSU5TRU5TSVRJVkUpKSB7CisgICAgc2hhZG93X3R5cGUgPSBidXR0b25fc3RhdGUg
PT0gR1RLX1NUQVRFX0FDVElWRSB8fAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5kZXBy
ZXNzZWQgPyBHVEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQ7CisgCisgICAgaWYgKHN0YXRl
LT5pc0RlZmF1bHQgJiYgR1RLX0JVVFRPTih3aWRnZXQpLT5yZWxpZWYgPT0gR1RLX1JFTElFRl9O
T1JNQUwpIHsKKyAgICAgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIGJ1dHRvbl9z
dGF0ZSwgc2hhZG93X3R5cGUsIGNsaXByZWN0LAorICAgICAgICAgICAgICAgICAgICAgIHdpZGdl
dCwgImJ1dHRvbmRlZmF1bHQiLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsgICAgICAgICAgICAgICAg
ICAgCisgICAgfQorIAorICAgIGlmIChyZWxpZWYgIT0gR1RLX1JFTElFRl9OT05FIHx8IHN0YXRl
LT5kZXByZXNzZWQgfHwKKyAgICAgICAgICAgKGJ1dHRvbl9zdGF0ZSAhPSBHVEtfU1RBVEVfTk9S
TUFMICYmCisgICAgICAgICAgICBidXR0b25fc3RhdGUgIT0gR1RLX1NUQVRFX0lOU0VOU0lUSVZF
KSkgewogICAgICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCB4LCB5KTsKICAgICAgICAgLyog
dGhlIGZvbGxvd2luZyBsaW5lIGNhbiB0cmlnZ2VyIGFuIGFzc2VydGlvbiAoQ3J1eCB0aGVtZSkK
ICAgICAgICAgICAgZmlsZSAuLi8uLi9nZGsvZ2Rrd2luZG93LmM6IGxpbmUgMTg0NiAoZ2RrX3dp
bmRvd19jbGVhcl9hcmVhKToKQEAgLTQ4OCw0MiArNjUyLDEwIEBAIG1vel9ndGtfcmFkaW9fZ2V0
X21ldHJpY3MoZ2ludCogaW5kaWNhdG8KIH0KIAogZ2ludAotbW96X2d0a19jaGVja2JveF9nZXRf
Zm9jdXMoZ2Jvb2xlYW4qIGludGVyaW9yX2ZvY3VzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2ludCogZm9jdXNfd2lkdGgsIGdpbnQqIGZvY3VzX3BhZCkKK21vel9ndGtfd2lkZ2V0X2dl
dF9mb2N1cyhHdGtXaWRnZXQqIHdpZGdldCwgZ2Jvb2xlYW4qIGludGVyaW9yX2ZvY3VzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpbnQqIGZvY3VzX3dpZHRoLCBnaW50KiBmb2N1c19wYWQp
IAogewotICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsKLQotICAgIGd0a193aWRnZXRfc3R5
bGVfZ2V0IChnQ2hlY2tib3hXaWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRl
cmlvci1mb2N1cyIsIGludGVyaW9yX2ZvY3VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAi
Zm9jdXMtbGluZS13aWR0aCIsIGZvY3VzX3dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZm9jdXMtcGFkZGluZyIsIGZvY3VzX3BhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCk7Ci0KLSAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwotfQotCi1naW50Ci1tb3pfZ3Rr
X3JhZGlvX2dldF9mb2N1cyhnYm9vbGVhbiogaW50ZXJpb3JfZm9jdXMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBnaW50KiBmb2N1c193aWR0aCwgZ2ludCogZm9jdXNfcGFkKQotewotICAgIGVu
c3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKLQotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChn
UmFkaW9idXR0b25XaWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmlvci1m
b2N1cyIsIGludGVyaW9yX2ZvY3VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMt
bGluZS13aWR0aCIsIGZvY3VzX3dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9j
dXMtcGFkZGluZyIsIGZvY3VzX3BhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
Ci0KLSAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwotfQotCi1naW50Ci1tb3pfZ3RrX2J1dHRv
bl9nZXRfZm9jdXMoZ2Jvb2xlYW4qIGludGVyaW9yX2ZvY3VzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGdpbnQqIGZvY3VzX3dpZHRoLCBnaW50KiBmb2N1c19wYWQpCi17Ci0gICAgZW5zdXJl
X2J1dHRvbl93aWRnZXQoKTsKLQotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0IChnQnV0dG9uV2lk
Z2V0LAorICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0ICh3aWRnZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpbnRlcmlvci1mb2N1cyIsIGludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZm9jdXMtbGluZS13aWR0aCIsIGZvY3VzX3dpZHRoLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZm9jdXMtcGFkZGluZyIsIGZvY3VzX3BhZCwKQEAgLTU3MSwxMCAr
NzAzLDI0IEBAIG1vel9ndGtfb3B0aW9uX21lbnVfZ2V0X21ldHJpY3MoZ2Jvb2xlYW4KICAgICBy
ZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQogCitnaW50Cittb3pfZ3RrX3NwbGl0dGVyX2dldF9t
ZXRyaWNzKGdpbnQgb3JpZW50YXRpb24sIGdpbnQqIHNpemUpCit7CisgICAgaWYgKG9yaWVudGF0
aW9uID09IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKSB7CisgICAgICAgIGVuc3VyZV9ocGFu
ZWRfd2lkZ2V0KCk7CisgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdIUGFuZWRXaWRnZXQs
ICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGVuc3Vy
ZV92cGFuZWRfd2lkZ2V0KCk7CisgICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdWUGFuZWRX
aWRnZXQsICJoYW5kbGVfc2l6ZSIsIHNpemUsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gTU9a
X0dUS19TVUNDRVNTOworfQorCiBzdGF0aWMgZ2ludAogbW96X2d0a190b2dnbGVfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAg
ICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCi0gICAg
ICAgICAgICAgICAgICAgICBnYm9vbGVhbiBzZWxlY3RlZCwgZ2Jvb2xlYW4gaXNyYWRpbykKKyAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHNlbGVjdGVkLCBnYm9vbGVhbiBpc3JhZGlvLAor
ICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAg
R3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogICAgIEd0
a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSAoc2VsZWN0ZWQpP0dUS19TSEFET1dfSU46R1RLX1NI
QURPV19PVVQ7CkBAIC02MDEsNiArNzQ3LDcgQEAgbW96X2d0a190b2dnbGVfcGFpbnQoR2RrRHJh
d2FibGUqIGRyYXdhYgogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHgsIHkpOwogCiAgICAg
Z3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHcsICFzdGF0ZS0+ZGlzYWJsZWQpOworICAgIGd0a193
aWRnZXRfc2V0X2RpcmVjdGlvbih3LCBkaXJlY3Rpb24pOwogICAgIEdUS19UT0dHTEVfQlVUVE9O
KHcpLT5hY3RpdmUgPSBzZWxlY3RlZDsKICAgICAgIAogICAgIGlmIChpc3JhZGlvKSB7CkBAIC02
NTAsNyArNzk3LDggQEAgY2FsY3VsYXRlX2Fycm93X2RpbWVuc2lvbnMoR2RrUmVjdGFuZ2xlKgog
c3RhdGljIGdpbnQKIG1vel9ndGtfc2Nyb2xsYmFyX2J1dHRvbl9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrQXJyb3dUeXBlIHR5cGUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR3RrU2Nyb2xsYmFyQnV0dG9uRmxhZ3MgZmxhZ3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7
CiAgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwog
ICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSAoc3RhdGUtPmFjdGl2ZSkgPwpAQCAtNjU4
LDM2ICs4MDYsNTkgQEAgbW96X2d0a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KEdka0RyYXdhYgog
ICAgIEdka1JlY3RhbmdsZSBidXR0b25fcmVjdDsKICAgICBHZGtSZWN0YW5nbGUgYXJyb3dfcmVj
dDsKICAgICBHdGtTdHlsZSogc3R5bGU7Ci0gICAgR3RrQWRqdXN0bWVudCAqYWRqOwotICAgIEd0
a1Njcm9sbGJhciAqc2Nyb2xsYmFyOworICAgIEd0a1dpZGdldCAqc2Nyb2xsYmFyOworICAgIEd0
a0Fycm93VHlwZSBhcnJvd190eXBlOworICAgIGNvbnN0IGNoYXIqIGRldGFpbCA9IChmbGFncyAm
IE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAg
InZzY3JvbGxiYXIiIDogImhzY3JvbGxiYXIiOwogCiAgICAgZW5zdXJlX3Njcm9sbGJhcl93aWRn
ZXQoKTsKIAotICAgIGlmICh0eXBlIDwgMikKLSAgICAgICAgc2Nyb2xsYmFyID0gR1RLX1NDUk9M
TEJBUihnVmVydFNjcm9sbGJhcldpZGdldCk7CisgICAgaWYgKGZsYWdzICYgTU9aX0dUS19TVEVQ
UEVSX1ZFUlRJQ0FMKQorICAgICAgICBzY3JvbGxiYXIgPSBnVmVydFNjcm9sbGJhcldpZGdldDsK
ICAgICBlbHNlCi0gICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ0hvcml6U2Nyb2xs
YmFyV2lkZ2V0KTsKKyAgICAgICAgc2Nyb2xsYmFyID0gZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0Owor
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHNjcm9sbGJhciwgZGlyZWN0aW9uKTsKIAog
ICAgIC8qIFNvbWUgdGhlbWUgZW5naW5lcyAoaS5lLiwgQ2xlYXJMb29rcykgY2hlY2sgdGhlIHNj
cm9sbGJhcidzIGFsbG9jYXRpb24KICAgICAgICB0byBkZXRlcm1pbmUgd2hlcmUgaXQgc2hvdWxk
IHBhaW50IHJvdW5kZWQgY29ybmVycyBvbiB0aGUgYnV0dG9ucy4KICAgICAgICBXZSBuZWVkIHRv
IHRyaWNrIHRoZW0gaW50byBkcmF3aW5nIHRoZSBidXR0b25zIHRoZSB3YXkgd2Ugd2FudCB0aGVt
LiAqLwogCi0gICAgR1RLX1dJREdFVChzY3JvbGxiYXIpLT5hbGxvY2F0aW9uLnggPSByZWN0LT54
OwotICAgIEdUS19XSURHRVQoc2Nyb2xsYmFyKS0+YWxsb2NhdGlvbi55ID0gcmVjdC0+eTsKLSAg
ICBHVEtfV0lER0VUKHNjcm9sbGJhciktPmFsbG9jYXRpb24ud2lkdGggPSByZWN0LT53aWR0aDsK
LSAgICBHVEtfV0lER0VUKHNjcm9sbGJhciktPmFsbG9jYXRpb24uaGVpZ2h0ID0gcmVjdC0+aGVp
Z2h0OwotCi0gICAgaWYgKHR5cGUgPCAyKSB7Ci0gICAgICAgIEdUS19XSURHRVQoc2Nyb2xsYmFy
KS0+YWxsb2NhdGlvbi5oZWlnaHQgKj0gMzsKLSAgICAgICAgaWYgKHR5cGUgPT0gR1RLX0FSUk9X
X0RPV04pCi0gICAgICAgICAgICBHVEtfV0lER0VUKHNjcm9sbGJhciktPmFsbG9jYXRpb24ueSAt
PSAyICogcmVjdC0+aGVpZ2h0OworICAgIHNjcm9sbGJhci0+YWxsb2NhdGlvbi54ID0gcmVjdC0+
eDsKKyAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24ueSA9IHJlY3QtPnk7CisgICAgc2Nyb2xsYmFy
LT5hbGxvY2F0aW9uLndpZHRoID0gcmVjdC0+d2lkdGg7CisgICAgc2Nyb2xsYmFyLT5hbGxvY2F0
aW9uLmhlaWdodCA9IHJlY3QtPmhlaWdodDsKKworICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RF
UFBFUl9WRVJUSUNBTCkgeworICAgICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24uaGVpZ2h0ICo9
IDU7CisgICAgICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RFUFBFUl9ET1dOKSB7CisgICAgICAg
ICAgICBhcnJvd190eXBlID0gR1RLX0FSUk9XX0RPV047CisgICAgICAgICAgICBpZiAoZmxhZ3Mg
JiBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKQorICAgICAgICAgICAgICAgIHNjcm9sbGJhci0+YWxs
b2NhdGlvbi55IC09IDQgKiByZWN0LT5oZWlnaHQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLnkgLT0gcmVjdC0+aGVpZ2h0OworCisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcnJvd190eXBlID0gR1RLX0FSUk9XX1VQOworICAg
ICAgICAgICAgaWYgKGZsYWdzICYgTU9aX0dUS19TVEVQUEVSX0JPVFRPTSkKKyAgICAgICAgICAg
ICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24ueSAtPSAzICogcmVjdC0+aGVpZ2h0OworICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgR1RLX1dJREdFVChzY3JvbGxiYXIpLT5hbGxvY2F0
aW9uLndpZHRoICo9IDM7Ci0gICAgICAgIGlmICh0eXBlID09IEdUS19BUlJPV19SSUdIVCkKLSAg
ICAgICAgICAgIEdUS19XSURHRVQoc2Nyb2xsYmFyKS0+YWxsb2NhdGlvbi54IC09IDIgKiByZWN0
LT53aWR0aDsKKyAgICAgICAgc2Nyb2xsYmFyLT5hbGxvY2F0aW9uLndpZHRoICo9IDU7CisgICAg
ICAgIGlmIChmbGFncyAmIE1PWl9HVEtfU1RFUFBFUl9ET1dOKSB7CisgICAgICAgICAgICBhcnJv
d190eXBlID0gR1RLX0FSUk9XX1JJR0hUOworICAgICAgICAgICAgaWYgKGZsYWdzICYgTU9aX0dU
S19TVEVQUEVSX0JPVFRPTSkKKyAgICAgICAgICAgICAgICBzY3JvbGxiYXItPmFsbG9jYXRpb24u
eCAtPSA0ICogcmVjdC0+d2lkdGg7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
c2Nyb2xsYmFyLT5hbGxvY2F0aW9uLnggLT0gcmVjdC0+d2lkdGg7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBhcnJvd190eXBlID0gR1RLX0FSUk9XX0xFRlQ7CisgICAgICAgICAgICBp
ZiAoZmxhZ3MgJiBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKQorICAgICAgICAgICAgICAgIHNjcm9s
bGJhci0+YWxsb2NhdGlvbi54IC09IDMgKiByZWN0LT53aWR0aDsKKyAgICAgICAgfQogICAgIH0K
IAotICAgIHN0eWxlID0gR1RLX1dJREdFVChzY3JvbGxiYXIpLT5zdHlsZTsKKyAgICBzdHlsZSA9
IHNjcm9sbGJhci0+c3R5bGU7CiAKICAgICBlbnN1cmVfYXJyb3dfd2lkZ2V0KCk7CiAgIApAQCAt
Njk1LDEwICs4NjYsOCBAQCBtb3pfZ3RrX3Njcm9sbGJhcl9idXR0b25fcGFpbnQoR2RrRHJhd2Fi
CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgYnV0dG9uX3JlY3QueCwgYnV0dG9uX3JlY3Qu
eSk7CiAKICAgICBndGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hh
ZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgR1RLX1dJREdFVChzY3JvbGxi
YXIpLAotICAgICAgICAgICAgICAgICAgKHR5cGUgPCAyKSA/ICJ2c2Nyb2xsYmFyIiA6ICJoc2Ny
b2xsYmFyIiwKLSAgICAgICAgICAgICAgICAgIGJ1dHRvbl9yZWN0LngsIGJ1dHRvbl9yZWN0Lnks
IGJ1dHRvbl9yZWN0LndpZHRoLAotICAgICAgICAgICAgICAgICAgYnV0dG9uX3JlY3QuaGVpZ2h0
KTsKKyAgICAgICAgICAgICAgICAgIHNjcm9sbGJhciwgZGV0YWlsLCBidXR0b25fcmVjdC54LCBi
dXR0b25fcmVjdC55LAorICAgICAgICAgICAgICAgICAgYnV0dG9uX3JlY3Qud2lkdGgsIGJ1dHRv
bl9yZWN0LmhlaWdodCk7CiAKICAgICBhcnJvd19yZWN0LndpZHRoID0gYnV0dG9uX3JlY3Qud2lk
dGggLyAyOwogICAgIGFycm93X3JlY3QuaGVpZ2h0ID0gYnV0dG9uX3JlY3QuaGVpZ2h0IC8gMjsK
QEAgLTcwNywxMCArODc2LDggQEAgbW96X2d0a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KEdka0Ry
YXdhYgogICAgICAgICAoYnV0dG9uX3JlY3QuaGVpZ2h0IC0gYXJyb3dfcmVjdC5oZWlnaHQpIC8g
MjsgIAogCiAgICAgZ3RrX3BhaW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwg
c2hhZG93X3R5cGUsIGNsaXByZWN0LAotICAgICAgICAgICAgICAgICAgICBHVEtfV0lER0VUKHNj
cm9sbGJhciksICh0eXBlIDwgMikgPwotICAgICAgICAgICAgICAgICAgICAidnNjcm9sbGJhciIg
OiAiaHNjcm9sbGJhciIsIAotICAgICAgICAgICAgICAgICAgICB0eXBlLCBUUlVFLCBhcnJvd19y
ZWN0LngsIGFycm93X3JlY3QueSwgYXJyb3dfcmVjdC53aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgYXJyb3dfcmVjdC5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIsIGRl
dGFpbCwgYXJyb3dfdHlwZSwgVFJVRSwgYXJyb3dfcmVjdC54LAorICAgICAgICAgICAgICAgICAg
ICBhcnJvd19yZWN0LnksIGFycm93X3JlY3Qud2lkdGgsIGFycm93X3JlY3QuaGVpZ2h0KTsKIAog
ICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CkBAIC03MTgsNyArODg1LDggQEAgbW96X2d0
a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KEdka0RyYXdhYgogc3RhdGljIGdpbnQKIG1vel9ndGtf
c2Nyb2xsYmFyX3Ryb3VnaF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFu
Z2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSog
Y2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24p
CiB7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIEd0a1Njcm9sbGJhciAqc2Nyb2xsYmFyOwpA
QCAtNzMwLDYgKzg5OCw4IEBAIG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludChHdGtUaGVt
ZVcKICAgICBlbHNlCiAgICAgICAgIHNjcm9sbGJhciA9IEdUS19TQ1JPTExCQVIoZ1ZlcnRTY3Jv
bGxiYXJXaWRnZXQpOwogCisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKEdUS19XSURHRVQo
c2Nyb2xsYmFyKSwgZGlyZWN0aW9uKTsKKwogICAgIHN0eWxlID0gR1RLX1dJREdFVChzY3JvbGxi
YXIpLT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3Qt
PnkpOwpAQCAtNzUzLDcgKzkyMyw4IEBAIG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludChH
dGtUaGVtZVcKIHN0YXRpYyBnaW50CiBtb3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWludChHdGtU
aGVtZVdpZGdldFR5cGUgd2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3Rh
dGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0
LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
dGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlw
ZSA9IChzdGF0ZS0+aW5Ib3ZlciB8fCBzdGF0ZS0+YWN0aXZlKSA/CiAgICAgICAgIEdUS19TVEFU
RV9QUkVMSUdIVCA6IEdUS19TVEFURV9OT1JNQUw7CkBAIC03NjgsNiArOTM5LDggQEAgbW96X2d0
a19zY3JvbGxiYXJfdGh1bWJfcGFpbnQoR3RrVGhlbWVXaQogICAgIGVsc2UKICAgICAgICAgc2Ny
b2xsYmFyID0gR1RLX1NDUk9MTEJBUihnVmVydFNjcm9sbGJhcldpZGdldCk7CiAKKyAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oR1RLX1dJREdFVChzY3JvbGxiYXIpLCBkaXJlY3Rpb24pOwor
CiAgICAgLyogTWFrZSBzdXJlIHRvIHNldCB0aGUgc2Nyb2xsYmFyIHJhbmdlIGJlZm9yZSBwYWlu
dGluZyBzbyB0aGF0CiAgICAgICAgZXZlcnl0aGluZyBpcyBkcmF3biBwcm9wZXJseS4gIEF0IGxl
YXN0IHRoZSBibHVlY3VydmUgKGFuZAogICAgICAgIG1heWJlIG90aGVyKSB0aGVtZXMgZG9uJ3Qg
ZHJhdyB0aGUgdG9wIG9yIGJvdHRvbSBibGFjayBsaW5lCkBAIC04MTEsMTYgKzk4NCwzNiBAQCBt
b3pfZ3RrX3Njcm9sbGJhcl90aHVtYl9wYWludChHdGtUaGVtZVdpCiB9CiAKIHN0YXRpYyBnaW50
Ci1tb3pfZ3RrX3NwaW5fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsIGdib29sZWFuIGlzRG93biwKLSAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXRTdGF0
ZSogc3RhdGUpCittb3pfZ3RrX3NwaW5fcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtS
ZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24pCit7CisgICAgR3RrU3R5bGUqIHN0eWxlOworCisgICAgZW5zdXJlX3NwaW5fd2lkZ2V0
KCk7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24p
OworICAgIHN0eWxlID0gZ1NwaW5XaWRnZXQtPnN0eWxlOworCisgICAgVFNPZmZzZXRTdHlsZUdD
cyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CisgICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJh
d2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4sIE5VTEwsCisgICAgICAgICAg
ICAgICAgICBnU3BpbldpZGdldCwgInNwaW5idXR0b24iLAorICAgICAgICAgICAgICAgICAgcmVj
dC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgsIHJlY3QtPmhlaWdodCk7CisgICAgcmV0dXJuIE1P
Wl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKK21vel9ndGtfc3Bpbl91cGRvd25fcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdib29sZWFuIGlzRG93biwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
ICAgICBHZGtSZWN0YW5nbGUgYXJyb3dfcmVjdDsKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlw
ZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7Ci0gICAgR3RrU2hhZG93VHlwZSBzaGFkb3dfdHlw
ZSA9IHN0YXRlX3R5cGUgPT0gR1RLX1NUQVRFX0FDVElWRSA/IEdUS19TSEFET1dfSU4gOiBHVEtf
U0hBRE9XX09VVDsKKyAgICBHdGtTaGFkb3dUeXBlIHNoYWRvd190eXBlID0gc3RhdGVfdHlwZSA9
PSBHVEtfU1RBVEVfQUNUSVZFID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQ7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAg
ICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7CiAgICAgc3R5bGUgPSBnU3BpbldpZGdldC0+c3R5bGU7
CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOwog
CiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgZ3Rr
X3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIHNoYWRvd190eXBlLCBOVUxM
LCBnU3BpbldpZGdldCwKQEAgLTg0Niw3ICsxMDM5LDcgQEAgbW96X2d0a19zcGluX3BhaW50KEdk
a0RyYXdhYmxlKiBkcmF3YWJsZQogc3RhdGljIGdpbnQKIG1vel9ndGtfc2NhbGVfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCiAgICAgICAgICAgICAgICAg
ICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwKLSAgICAg
ICAgICAgICAgICAgICAgR3RrT3JpZW50YXRpb24gZmxhZ3MpCisgICAgICAgICAgICAgICAgICAg
IEd0a09yaWVudGF0aW9uIGZsYWdzLCBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAg
Z2ludCB4ID0gMCwgeSA9IDA7CiAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBlID0gQ29udmVydEd0
a1N0YXRlKHN0YXRlKTsKQEAgLTg1NSw2ICsxMDQ4LDggQEAgbW96X2d0a19zY2FsZV9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2FibAogCiAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKICAgd2lkZ2V0
ID0gKChmbGFncyA9PSBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnSFNjYWxlV2lkZ2V0
IDogZ1ZTY2FsZVdpZGdldCk7CisgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRp
cmVjdGlvbik7CisKICAgc3R5bGUgPSB3aWRnZXQtPnN0eWxlOwogCiAgIGlmIChmbGFncyA9PSBH
VEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCkgewpAQCAtODg1LDcgKzEwODAsNyBAQCBtb3pfZ3Rr
X3NjYWxlX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsCiBzdGF0aWMgZ2ludAogbW96X2d0a19z
Y2FsZV90aHVtYl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3Rr
V2lkZ2V0U3RhdGUqIHN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtPcmllbnRh
dGlvbiBmbGFncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrT3JpZW50YXRpb24gZmxh
Z3MsIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICBHdGtTdGF0ZVR5cGUgc3RhdGVf
dHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAgIEd0a1N0eWxlKiBzdHlsZTsKQEAgLTg5
NCw2ICsxMDg5LDggQEAgbW96X2d0a19zY2FsZV90aHVtYl9wYWludChHZGtEcmF3YWJsZSogZAog
CiAgIGVuc3VyZV9zY2FsZV93aWRnZXQoKTsKICAgd2lkZ2V0ID0gKChmbGFncyA9PSBHVEtfT1JJ
RU5UQVRJT05fSE9SSVpPTlRBTCkgPyBnSFNjYWxlV2lkZ2V0IDogZ1ZTY2FsZVdpZGdldCk7Cisg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CisKICAgc3R5bGUg
PSB3aWRnZXQtPnN0eWxlOwogCiAgIC8qIGRldGVybWluZSB0aGUgdGh1bWIgc2l6ZSwgYW5kIHBv
c2l0aW9uIHRoZSB0aHVtYiBpbiB0aGUgY2VudGVyIGluIHRoZSBvcHBvc2l0ZSBheGlzICovCkBA
IC05MTgsMTMgKzExMTUsMTYgQEAgbW96X2d0a19zY2FsZV90aHVtYl9wYWludChHZGtEcmF3YWJs
ZSogZAogCiBzdGF0aWMgZ2ludAogbW96X2d0a19ncmlwcGVyX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAgIEdka1Jl
Y3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSkKKyAgICAgICAgICAgICAg
ICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsCisg
ICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAg
R3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogICAgIEd0
a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5z
dXJlX2hhbmRsZWJveF93aWRnZXQoKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0hh
bmRsZUJveFdpZGdldCwgZGlyZWN0aW9uKTsKKwogICAgIHN0eWxlID0gZ0hhbmRsZUJveFdpZGdl
dC0+c3R5bGU7CiAgICAgc2hhZG93X3R5cGUgPSBHVEtfSEFORExFX0JPWChnSGFuZGxlQm94V2lk
Z2V0KS0+c2hhZG93X3R5cGU7CiAKQEAgLTkzNywzMCArMTEzNyw2MiBAQCBtb3pfZ3RrX2dyaXBw
ZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhCiB9CiAKIHN0YXRpYyBnaW50Cittb3pfZ3RrX2hw
YW5lZF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKKyAg
ICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRl
KiBzdGF0ZSkKK3sKKyAgICBHdGtTdGF0ZVR5cGUgaHBhbmVkX3N0YXRlID0gQ29udmVydEd0a1N0
YXRlKHN0YXRlKTsKKworICAgIGVuc3VyZV9ocGFuZWRfd2lkZ2V0KCk7CisgICAgZ3RrX3BhaW50
X2hhbmRsZShnSFBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUsIGhwYW5lZF9zdGF0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xpcHJlY3QsIGdIUGFuZWRXaWRn
ZXQsICJwYW5lZCIsCisgICAgICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0
LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgR1RLX09SSUVOVEFU
SU9OX1ZFUlRJQ0FMKTsKKworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKK3N0YXRp
YyBnaW50Cittb3pfZ3RrX3ZwYW5lZF9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1Jl
Y3RhbmdsZSogcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJl
Y3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSkKK3sKKyAgICBHdGtTdGF0ZVR5cGUgdnBhbmVkX3N0
YXRlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKKworICAgIGVuc3VyZV92cGFuZWRfd2lkZ2V0
KCk7CisgICAgZ3RrX3BhaW50X2hhbmRsZShnVlBhbmVkV2lkZ2V0LT5zdHlsZSwgZHJhd2FibGUs
IHZwYW5lZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfTk9ORSwgY2xp
cHJlY3QsIGdWUGFuZWRXaWRnZXQsICJwYW5lZCIsCisgICAgICAgICAgICAgICAgICAgICByZWN0
LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LAorICAgICAgICAgICAgICAg
ICAgICAgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwpOworCisgICAgcmV0dXJuIE1PWl9HVEtf
U1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKIG1vel9ndGtfZW50cnlfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCi0gICAgICAgICAgICAgICAgICAgIEdk
a1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSkKKyAgICAgICAgICAg
ICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAor
ICAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXQqIHdpZGdldCwgR3RrVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgZ2ludCB4LCB5LCB3aWR0aCA9IHJlY3QtPndpZHRoLCBoZWlnaHQg
PSByZWN0LT5oZWlnaHQ7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIGdib29sZWFuIGludGVy
aW9yX2ZvY3VzOwogICAgIGdpbnQgZm9jdXNfd2lkdGg7CiAKLSAgICBlbnN1cmVfZW50cnlfd2lk
Z2V0KCk7Ci0gICAgc3R5bGUgPSBnRW50cnlXaWRnZXQtPnN0eWxlOworICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbih3aWRnZXQsIGRpcmVjdGlvbik7CisKKyAgICBzdHlsZSA9IHdpZGdldC0+
c3R5bGU7CiAKICAgICAvKiBwYWludCB0aGUgYmFja2dyb3VuZCBmaXJzdCAqLwogICAgIHggPSBY
VEhJQ0tORVNTKHN0eWxlKTsKICAgICB5ID0gWVRISUNLTkVTUyhzdHlsZSk7CiAKICAgICAvKiBU
aGlzIGdldHMgdXMgYSBsb3ZlbHkgZ3JleWlzaCBkaXNhYmxlZGlzaCBsb29rICovCi0gICAgZ3Rr
X3dpZGdldF9zZXRfc2Vuc2l0aXZlKGdFbnRyeVdpZGdldCwgIXN0YXRlLT5kaXNhYmxlZCk7Cisg
ICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlKHdpZGdldCwgIXN0YXRlLT5kaXNhYmxlZCk7CiAK
ICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54ICsgeCwgcmVjdC0+eSArIHkpOwog
ICAgIGd0a19wYWludF9mbGF0X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUws
IEdUS19TSEFET1dfTk9ORSwKLSAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdFbnRy
eVdpZGdldCwgImVudHJ5X2JnIiwgIHJlY3QtPnggKyB4LAorICAgICAgICAgICAgICAgICAgICAg
ICBjbGlwcmVjdCwgd2lkZ2V0LCAiZW50cnlfYmciLCAgcmVjdC0+eCArIHgsCiAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QtPnkgKyB5LCByZWN0LT53aWR0aCAtIDIqeCwgcmVjdC0+aGVpZ2h0
IC0gMip5KTsKIAotICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdFbnRyeVdpZGdldCwKKyAgICBn
dGtfd2lkZ2V0X3N0eWxlX2dldCh3aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImlu
dGVyaW9yLWZvY3VzIiwgJmludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICJmb2N1cy1saW5lLXdpZHRoIiwgJmZvY3VzX3dpZHRoLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwpOwpAQCAtOTgxLDcgKzEyMTMsNyBAQCBtb3pfZ3RrX2VudHJ5X3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsCiAKICAgICBpZiAoc3RhdGUtPmZvY3VzZWQgJiYgIXN0YXRlLT5kaXNh
YmxlZCkgewogICAgICAgICAgLyogVGhpcyB3aWxsIGdldCB1cyB0aGUgbGl0IGJvcmRlcnMgdGhh
dCBmb2N1c2VkIHRleHRib3hlcyBlbmpveSBvbiBzb21lIHRoZW1lcy4gKi8KLSAgICAgICAgR1RL
X1dJREdFVF9TRVRfRkxBR1MoZ0VudHJ5V2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsKKyAgICAgICAg
R1RLX1dJREdFVF9TRVRfRkxBR1Mod2lkZ2V0LCBHVEtfSEFTX0ZPQ1VTKTsKIAogICAgICAgICBp
ZiAoIWludGVyaW9yX2ZvY3VzKSB7CiAgICAgICAgICAgICAvKiBJbmRlbnQgdGhlIGJvcmRlciBh
IGxpdHRsZSBiaXQgaWYgd2UgaGF2ZSBleHRlcmlvciBmb2N1cyAKQEAgLTk5NSwyNiArMTIyNywx
NTcgQEAgbW96X2d0a19lbnRyeV9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibAogCiAgICAgVFNP
ZmZzZXRTdHlsZUdDcyhzdHlsZSwgeCwgeSk7CiAgICAgZ3RrX3BhaW50X3NoYWRvdyhzdHlsZSwg
ZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4sCi0gICAgICAgICAgICAg
ICAgICAgICBjbGlwcmVjdCwgZ0VudHJ5V2lkZ2V0LCAiZW50cnkiLCB4LCB5LCB3aWR0aCwgaGVp
Z2h0KTsKKyAgICAgICAgICAgICAgICAgICAgIGNsaXByZWN0LCB3aWRnZXQsICJlbnRyeSIsIHgs
IHksIHdpZHRoLCBoZWlnaHQpOwogCiAgICAgaWYgKHN0YXRlLT5mb2N1c2VkICYmICFzdGF0ZS0+
ZGlzYWJsZWQpIHsKICAgICAgICAgaWYgKCFpbnRlcmlvcl9mb2N1cykgewogICAgICAgICAgICAg
VFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAgICAgICAgICAgICBn
dGtfcGFpbnRfZm9jdXMoc3R5bGUsIGRyYXdhYmxlLCAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJl
Y3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0VudHJ5V2lkZ2V0LCAiZW50cnkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZGdldCwgImVudHJ5IiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWN0LT54LCByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVp
Z2h0KTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIE5vdyB1bnNldCB0aGUgZm9jdXMgZmxhZy4g
V2UgZG9uJ3Qgd2FudCBvdGhlciBlbnRyaWVzIHRvIGxvb2sgbGlrZSB0aGV5J3JlIGZvY3VzZWQg
dG9vISAqLwotICAgICAgICBHVEtfV0lER0VUX1VOU0VUX0ZMQUdTKGdFbnRyeVdpZGdldCwgR1RL
X0hBU19GT0NVUyk7CisgICAgICAgIEdUS19XSURHRVRfVU5TRVRfRkxBR1Mod2lkZ2V0LCBHVEtf
SEFTX0ZPQ1VTKTsKICAgICB9CiAKICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQogCitz
dGF0aWMgZ2ludCAKK21vel9ndGtfdHJlZXZpZXdfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxl
LCBHZGtSZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3Rhbmds
ZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgZ2ludCB4dGhpY2tuZXNzLCB5
dGhpY2tuZXNzOworCisgICAgR3RrU3R5bGUgKnN0eWxlOworICAgIEd0a1N0YXRlVHlwZSBzdGF0
ZV90eXBlOworCisgICAgZW5zdXJlX3RyZWVfdmlld193aWRnZXQoKTsKKyAgICBndGtfd2lkZ2V0
X3NldF9kaXJlY3Rpb24oZ1RyZWVWaWV3V2lkZ2V0LCBkaXJlY3Rpb24pOworCisgICAgLyogb25s
eSBoYW5kbGUgZGlzYWJsZWQgYW5kIG5vcm1hbCBzdGF0ZXMsIG90aGVyd2lzZSB0aGUgd2hvbGUg
YmFja2dyb3VuZAorICAgICAqIGFyZWEgd2lsbCBiZSBwYWludGVkIGRpZmZlcmVudGx5IHdpdGgg
b3RoZXIgc3RhdGVzICovCisgICAgc3RhdGVfdHlwZSA9IHN0YXRlLT5kaXNhYmxlZCA/IEdUS19T
VEFURV9JTlNFTlNJVElWRSA6IEdUS19TVEFURV9OT1JNQUw7CisKKyAgICAvKiBJbiBHVEsgdGhl
IHRyZWV2aWV3IHNldHMgdGhlIGJhY2tncm91bmQgb2YgdGhlIHdpbmRvdworICAgICAqIHdoaWNo
IGNvbnRhaW5zIHRoZSBjZWxscyB0byB0aGUgdHJlZXZpZXcgYmFzZSBjb2xvci4KKyAgICAgKiBJ
ZiB3ZSBkb24ndCBzZXQgaXQgaGVyZSB0aGUgYmFja2dyb3VuZCBjb2xvciB3aWxsIG5vdCBiZSBj
b3JyZWN0LiovCisgICAgZ3RrX3dpZGdldF9tb2RpZnlfYmcoZ1RyZWVWaWV3V2lkZ2V0LCBzdGF0
ZV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICZnVHJlZVZpZXdXaWRnZXQtPnN0eWxl
LT5iYXNlW3N0YXRlX3R5cGVdKTsKKworICAgIHN0eWxlID0gZ1RyZWVWaWV3V2lkZ2V0LT5zdHls
ZTsKKyAgICB4dGhpY2tuZXNzID0gWFRISUNLTkVTUyhzdHlsZSk7CisgICAgeXRoaWNrbmVzcyA9
IFlUSElDS05FU1Moc3R5bGUpOworCisgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+
eCwgcmVjdC0+eSk7CisKKyAgICBndGtfcGFpbnRfZmxhdF9ib3goc3R5bGUsIGRyYXdhYmxlLCBz
dGF0ZV90eXBlLCBHVEtfU0hBRE9XX05PTkUsCisgICAgICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnVHJlZVZpZXdXaWRnZXQsICJ0cmVldmlldyIsCisgICAgICAgICAgICAgICAgICAgICAg
IHJlY3QtPnggKyB4dGhpY2tuZXNzLCByZWN0LT55ICsgeXRoaWNrbmVzcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+d2lkdGggLSAyICogeHRoaWNrbmVzcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+aGVpZ2h0IC0gMiAqIHl0aGlja25lc3MpOworCisgICAgZ3RrX3BhaW50
X3NoYWRvdyhzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfSU4s
CisgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1RyZWVWaWV3V2lkZ2V0LCAic2Nyb2xs
ZWRfd2luZG93IiwKKyAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3Qt
PndpZHRoLCByZWN0LT5oZWlnaHQpOyAKKworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9
CisKK3N0YXRpYyBnaW50Cittb3pfZ3RrX3RyZWVfaGVhZGVyX2NlbGxfcGFpbnQoR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9u
KQoreworICAgIG1vel9ndGtfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwg
c3RhdGUsIEdUS19SRUxJRUZfTk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdUcmVl
SGVhZGVyQ2VsbFdpZGdldCwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNT
OworfQorCitzdGF0aWMgZ2ludAorbW96X2d0a190cmVlX2hlYWRlcl9zb3J0X2Fycm93X3BhaW50
KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLCBHdGtB
cnJvd1R5cGUgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Rr
VGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgR2RrUmVjdGFuZ2xlIGFycm93X3JlY3Q7
CisgICAgR3RrU3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwor
ICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSBHVEtfU0hBRE9XX0lOOworICAgIEd0a0Fy
cm93VHlwZSBhcnJvd190eXBlID0gZmxhZ3M7CisgICAgR3RrU3R5bGUqIHN0eWxlOworCisgICAg
ZW5zdXJlX3RyZWVfaGVhZGVyX2NlbGxfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRfZGly
ZWN0aW9uKGdUcmVlSGVhZGVyU29ydEFycm93V2lkZ2V0LCBkaXJlY3Rpb24pOworCisgICAgLyog
aGFyZCBjb2RlIHRoZXNlIHZhbHVlcyAqLworICAgIGFycm93X3JlY3Qud2lkdGggPSAxMTsKKyAg
ICBhcnJvd19yZWN0LmhlaWdodCA9IDExOworICAgIGFycm93X3JlY3QueCA9IHJlY3QtPnggKyAo
cmVjdC0+d2lkdGggLSBhcnJvd19yZWN0LndpZHRoKSAvIDI7CisgICAgYXJyb3dfcmVjdC55ID0g
cmVjdC0+eSArIChyZWN0LT5oZWlnaHQgLSBhcnJvd19yZWN0LmhlaWdodCkgLyAyOworCisgICAg
c3R5bGUgPSBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldC0+c3R5bGU7CisgICAgVFNPZmZzZXRT
dHlsZUdDcyhzdHlsZSwgYXJyb3dfcmVjdC54LCBhcnJvd19yZWN0LnkpOworCisgICAgZ3RrX3Bh
aW50X2Fycm93KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5cGUsIGNsaXBy
ZWN0LAorICAgICAgICAgICAgICAgICAgICBnVHJlZUhlYWRlclNvcnRBcnJvd1dpZGdldCwgImFy
cm93IiwgIGFycm93X3R5cGUsIFRSVUUsCisgICAgICAgICAgICAgICAgICAgIGFycm93X3JlY3Qu
eCwgYXJyb3dfcmVjdC55LAorICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LndpZHRoLCBh
cnJvd19yZWN0LmhlaWdodCk7CisKKyAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOworfQorCitz
dGF0aWMgZ2ludAorbW96X2d0a190cmVldmlld19leHBhbmRlcl9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtFeHBhbmRlclN0eWxlIGV4cGFuZGVyX3N0
YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbikKK3sKKyAgICBHdGtTdHlsZSAqc3R5bGU7CisgICAgR3RrU3RhdGVUeXBlIHN0YXRl
X3R5cGU7CisKKyAgICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOworICAgIGd0a193aWRnZXRf
c2V0X2RpcmVjdGlvbihnVHJlZVZpZXdXaWRnZXQsIGRpcmVjdGlvbik7CisKKyAgICBzdHlsZSA9
IGdUcmVlVmlld1dpZGdldC0+c3R5bGU7CisKKyAgICAvKiBCZWNhdXNlIHRoZSBmcmFtZSB3ZSBn
ZXQgaXMgb2YgdGhlIGVudGlyZSB0cmVldmlldywgd2UgY2FuJ3QgZ2V0IHRoZSBwcmVjaXNlCisg
ICAgICogZXZlbnQgc3RhdGUgb2Ygb25lIGV4cGFuZGVyLCB0aHVzIHJlbmRlcmluZyBob3ZlciBh
bmQgYWN0aXZlIGZlZWRiYWNrIHVzZWxlc3MuICovCisgICAgc3RhdGVfdHlwZSA9IHN0YXRlLT5k
aXNhYmxlZCA/IEdUS19TVEFURV9JTlNFTlNJVElWRSA6IEdUS19TVEFURV9OT1JNQUw7CisKKyAg
ICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKKyAgICBndGtfcGFp
bnRfZXhwYW5kZXIoc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBjbGlwcmVjdCwgZ1RyZWVW
aWV3V2lkZ2V0LCAidHJlZXZpZXciLAorICAgICAgICAgICAgICAgICAgICAgICByZWN0LT54ICsg
cmVjdC0+d2lkdGggLyAyLCByZWN0LT55ICsgcmVjdC0+aGVpZ2h0IC8gMiwgZXhwYW5kZXJfc3Rh
dGUpOworCisgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKK21v
el9ndGtfZXhwYW5kZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUq
IHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0
a1dpZGdldFN0YXRlKiBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3RrRXhwYW5kZXJT
dHlsZSBleHBhbmRlcl9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24pCit7CisgICAgR3RrU3R5bGUgKnN0eWxlOworICAgIEd0a1N0YXRlVHlw
ZSBzdGF0ZV90eXBlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsKKworICAgIGVuc3VyZV9leHBh
bmRlcl93aWRnZXQoKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0V4cGFuZGVyV2lk
Z2V0LCBkaXJlY3Rpb24pOworCisgICAgc3R5bGUgPSBnRXhwYW5kZXJXaWRnZXQtPnN0eWxlOwor
CisgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CisgICAgZ3Rr
X3BhaW50X2V4cGFuZGVyKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdF
eHBhbmRlcldpZGdldCwgImV4cGFuZGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+
eCArIHJlY3QtPndpZHRoIC8gMiwgcmVjdC0+eSArIHJlY3QtPmhlaWdodCAvIDIsIGV4cGFuZGVy
X3N0YXRlKTsKKworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKIHN0YXRpYyBnaW50
CiBtb3pfZ3RrX29wdGlvbl9tZW51X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVj
dGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNs
aXByZWN0LCBHdGtXaWRnZXRTdGF0ZSogc3RhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR3Rr
U3R5bGUqIHN0eWxlOwogICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBlID0gQ29udmVydEd0a1N0
YXRlKHN0YXRlKTsKQEAgLTEwMjcsNiArMTM5MCw3IEBAIG1vel9ndGtfb3B0aW9uX21lbnVfcGFp
bnQoR2RrRHJhd2FibGUqIGQKICAgICBnaW50IGZvY3VzX3BhZDsKIAogICAgIGVuc3VyZV9vcHRp
b25fbWVudV93aWRnZXQoKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ09wdGlvbk1l
bnVXaWRnZXQsIGRpcmVjdGlvbik7CiAgICAgbW96X2d0a19vcHRpb25fbWVudV9nZXRfbWV0cmlj
cygmaW50ZXJpb3JfZm9jdXMsICZpbmRpY2F0b3Jfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZpbmRpY2F0b3Jfc3BhY2luZywgJmZvY3VzX3dpZHRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvY3VzX3BhZCk7CkBAIC0xMDQ1LDcgKzE0
MDksNyBAQCBtb3pfZ3RrX29wdGlvbl9tZW51X3BhaW50KEdka0RyYXdhYmxlKiBkCiAgICAgICAg
ICAgICAgICAgICBjbGlwcmVjdCwgZ09wdGlvbk1lbnVXaWRnZXQsICJvcHRpb25tZW51IiwKICAg
ICAgICAgICAgICAgICAgIHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgICAgCi0gICAgaWYgKGd0
a193aWRnZXRfZ2V0X2RpcmVjdGlvbihnT3B0aW9uTWVudVdpZGdldCkgPT0gR1RLX1RFWFRfRElS
X1JUTCkgeworICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX1JUTCkgewogICAgICAg
ICB0YWJfeCA9IHggKyBpbmRpY2F0b3Jfc3BhY2luZy5yaWdodCArIFhUSElDS05FU1Moc3R5bGUp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIHRhYl94ID0geCArIHdpZHRoIC0gaW5kaWNhdG9yX3Np
emUud2lkdGggLSBpbmRpY2F0b3Jfc3BhY2luZy5yaWdodCAtCkBAIC0xMDgyLDIyICsxNDQ2LDUy
IEBAIG1vel9ndGtfb3B0aW9uX21lbnVfcGFpbnQoR2RrRHJhd2FibGUqIGQKIH0KIAogc3RhdGlj
IGdpbnQKK21vel9ndGtfZG93bmFycm93X3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBj
bGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlKQoreworICAgIEd0a1N0eWxlKiBzdHlsZTsK
KyAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7Cisg
ICAgR3RrU2hhZG93VHlwZSBzaGFkb3dfdHlwZSA9IHN0YXRlLT5hY3RpdmUgPyBHVEtfU0hBRE9X
X0lOIDogR1RLX1NIQURPV19PVVQ7CisgICAgR2RrUmVjdGFuZ2xlIGFycm93X3JlY3Q7CisKKyAg
ICBlbnN1cmVfYXJyb3dfd2lkZ2V0KCk7CisgICAgc3R5bGUgPSBnQXJyb3dXaWRnZXQtPnN0eWxl
OworCisgICAgYXJyb3dfcmVjdC54ID0gcmVjdC0+eCArIDEgKyBYVEhJQ0tORVNTKHN0eWxlKTsK
KyAgICBhcnJvd19yZWN0LnkgPSByZWN0LT55ICsgMSArIFlUSElDS05FU1Moc3R5bGUpOworICAg
IGFycm93X3JlY3Qud2lkdGggPSBNQVgoMSwgcmVjdC0+d2lkdGggLSAoYXJyb3dfcmVjdC54IC0g
cmVjdC0+eCkgKiAyKTsKKyAgICBhcnJvd19yZWN0LmhlaWdodCA9IE1BWCgxLCByZWN0LT5oZWln
aHQgLSAoYXJyb3dfcmVjdC55IC0gcmVjdC0+eSkgKiAyKTsKKworICAgIFRTT2Zmc2V0U3R5bGVH
Q3Moc3R5bGUsIGFycm93X3JlY3QueCwgYXJyb3dfcmVjdC55KTsKKyAgICBndGtfcGFpbnRfYXJy
b3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3QsCisg
ICAgICAgICAgICAgICAgICAgIGdBcnJvd1dpZGdldCwgImFycm93IiwgIEdUS19BUlJPV19ET1dO
LCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBhcnJvd19yZWN0LngsIGFycm93X3JlY3QueSwg
YXJyb3dfcmVjdC53aWR0aCwgYXJyb3dfcmVjdC5oZWlnaHQpOworCisgICAgcmV0dXJuIE1PWl9H
VEtfU1VDQ0VTUzsKK30KKworc3RhdGljIGdpbnQKIG1vel9ndGtfZHJvcGRvd25fYXJyb3dfcGFp
bnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRl
KiBzdGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlw
cmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAgICBzdGF0aWMgZ2Zsb2F0IGFycm93
X3NjYWxpbmcgPSAwLjc7CisgICAgZ2ludCByZWFsX2Fycm93X3BhZGRpbmc7CiAgICAgR2RrUmVj
dGFuZ2xlIGFycm93X3JlY3QsIHJlYWxfYXJyb3dfcmVjdDsKICAgICBHdGtTdGF0ZVR5cGUgc3Rh
dGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAgICAgR3RrU2hhZG93VHlwZSBzaGFk
b3dfdHlwZSA9IHN0YXRlLT5hY3RpdmUgPyBHVEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQ7
CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX2Fycm93X3dpZGdldCgpOworICAg
IGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnRHJvcGRvd25CdXR0b25XaWRnZXQsIGRpcmVjdGlv
bik7CisKICAgICBtb3pfZ3RrX2J1dHRvbl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3Qs
IHN0YXRlLCBHVEtfUkVMSUVGX05PUk1BTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnRHJv
cGRvd25CdXR0b25XaWRnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGdEcm9wZG93bkJ1
dHRvbldpZGdldCwgZGlyZWN0aW9uKTsKIAogICAgIC8qIFRoaXMgbWlycm9ycyBndGtidXR0b24n
cyBjaGlsZCBwb3NpdGlvbmluZyAqLwogICAgIHN0eWxlID0gZ0Ryb3Bkb3duQnV0dG9uV2lkZ2V0
LT5zdHlsZTsKLSAgICBhcnJvd19yZWN0LnggPSByZWN0LT54ICsgMSArIFhUSElDS05FU1MoZ0Ry
b3Bkb3duQnV0dG9uV2lkZ2V0LT5zdHlsZSk7Ci0gICAgYXJyb3dfcmVjdC55ID0gcmVjdC0+eSAr
IDEgKyBZVEhJQ0tORVNTKGdEcm9wZG93bkJ1dHRvbldpZGdldC0+c3R5bGUpOworICAgIGFycm93
X3JlY3QueCA9IHJlY3QtPnggKyAxICsgWFRISUNLTkVTUyhzdHlsZSk7CisgICAgYXJyb3dfcmVj
dC55ID0gcmVjdC0+eSArIDEgKyBZVEhJQ0tORVNTKHN0eWxlKTsKICAgICBhcnJvd19yZWN0Lndp
ZHRoID0gTUFYKDEsIHJlY3QtPndpZHRoIC0gKGFycm93X3JlY3QueCAtIHJlY3QtPngpICogMik7
CiAgICAgYXJyb3dfcmVjdC5oZWlnaHQgPSBNQVgoMSwgcmVjdC0+aGVpZ2h0IC0gKGFycm93X3Jl
Y3QueSAtIHJlY3QtPnkpICogMik7CiAKQEAgLTExMDYsMTMgKzE1MDAsMTcgQEAgbW96X2d0a19k
cm9wZG93bl9hcnJvd19wYWludChHZGtEcmF3YWJsZQogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5
bGUsIHJlYWxfYXJyb3dfcmVjdC54LCByZWFsX2Fycm93X3JlY3QueSk7CiAKICAgICByZWFsX2Fy
cm93X3JlY3Qud2lkdGggPSByZWFsX2Fycm93X3JlY3QuaGVpZ2h0ID0KLSAgICAgICAgTUlOIChy
ZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxfYXJyb3dfcmVjdC5oZWlnaHQpICogMC45OyAKKyAg
ICAgICAgTUlOIChyZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxfYXJyb3dfcmVjdC5oZWlnaHQp
ICogYXJyb3dfc2NhbGluZzsKIAotICAgIHJlYWxfYXJyb3dfcmVjdC54ID0gZmxvb3IgKGFycm93
X3JlY3QueCArICgoYXJyb3dfcmVjdC53aWR0aCAtIHJlYWxfYXJyb3dfcmVjdC53aWR0aCkgLyAy
KSArIDAuNSk7CisgICAgcmVhbF9hcnJvd19wYWRkaW5nID0gZmxvb3IoKGFycm93X3JlY3Qud2lk
dGggLSByZWFsX2Fycm93X3JlY3Qud2lkdGgpIC8gMiArIDAuNSk7CisgICAgcmVhbF9hcnJvd19y
ZWN0LnggPSBhcnJvd19yZWN0LnggKyByZWFsX2Fycm93X3BhZGRpbmc7CisgICAgaWYgKGRpcmVj
dGlvbiA9PSBHVEtfVEVYVF9ESVJfUlRMKQorICAgICAgICByZWFsX2Fycm93X3JlY3QueCA9IGFy
cm93X3JlY3QueCArIGFycm93X3JlY3Qud2lkdGggLQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYWxfYXJyb3dfcmVjdC53aWR0aCAtIHJlYWxfYXJyb3dfcGFkZGluZzsKICAgICByZWFs
X2Fycm93X3JlY3QueSA9IGZsb29yIChhcnJvd19yZWN0LnkgKyAoKGFycm93X3JlY3QuaGVpZ2h0
IC0gcmVhbF9hcnJvd19yZWN0LmhlaWdodCkgLyAyKSArIDAuNSk7CiAKICAgICBndGtfcGFpbnRf
YXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBlLCBzaGFkb3dfdHlwZSwgY2xpcHJlY3Qs
Ci0gICAgICAgICAgICAgICAgICAgIGdIb3JpelNjcm9sbGJhcldpZGdldCwgImFycm93IiwgIEdU
S19BUlJPV19ET1dOLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICBnRHJvcGRvd25CdXR0b25X
aWRnZXQsICJhcnJvdyIsICBHVEtfQVJST1dfRE9XTiwgVFJVRSwKICAgICAgICAgICAgICAgICAg
ICAgcmVhbF9hcnJvd19yZWN0LngsIHJlYWxfYXJyb3dfcmVjdC55LAogICAgICAgICAgICAgICAg
ICAgICByZWFsX2Fycm93X3JlY3Qud2lkdGgsIHJlYWxfYXJyb3dfcmVjdC5oZWlnaHQpOwogCkBA
IC0xMTIyLDIyICsxNTIwLDI2IEBAIG1vel9ndGtfZHJvcGRvd25fYXJyb3dfcGFpbnQoR2RrRHJh
d2FibGUKIHN0YXRpYyBnaW50CiBtb3pfZ3RrX2NvbnRhaW5lcl9wYWludChHZGtEcmF3YWJsZSog
ZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgIEdk
a1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiBpc3JhZGlvKQorICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gaXNyYWRpbywgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR3Rr
U3RhdGVUeXBlIHN0YXRlX3R5cGUgPSBDb252ZXJ0R3RrU3RhdGUoc3RhdGUpOwogICAgIEd0a1N0
eWxlKiBzdHlsZTsKKyAgICBHdGtXaWRnZXQgKndpZGdldDsKICAgICBnYm9vbGVhbiBpbnRlcmlv
cl9mb2N1czsKICAgICBnaW50IGZvY3VzX3dpZHRoLCBmb2N1c19wYWQ7CiAKICAgICBpZiAoaXNy
YWRpbykgewogICAgICAgICBlbnN1cmVfcmFkaW9idXR0b25fd2lkZ2V0KCk7Ci0gICAgICAgIHN0
eWxlID0gZ1JhZGlvYnV0dG9uV2lkZ2V0LT5zdHlsZTsgIAotICAgICAgICBtb3pfZ3RrX3JhZGlv
X2dldF9mb2N1cygmaW50ZXJpb3JfZm9jdXMsICZmb2N1c193aWR0aCwgJmZvY3VzX3BhZCk7Cisg
ICAgICAgIHdpZGdldCA9IGdSYWRpb2J1dHRvbldpZGdldDsKICAgICB9IGVsc2UgewogICAgICAg
ICBlbnN1cmVfY2hlY2tib3hfd2lkZ2V0KCk7Ci0gICAgICAgIHN0eWxlID0gZ0NoZWNrYm94V2lk
Z2V0LT5zdHlsZTsKLSAgICAgICAgbW96X2d0a19jaGVja2JveF9nZXRfZm9jdXMoJmludGVyaW9y
X2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOworICAgICAgICB3aWRnZXQgPSBnQ2hl
Y2tib3hXaWRnZXQ7CiAgICAgfQorICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQs
IGRpcmVjdGlvbik7CisKKyAgICBzdHlsZSA9IHdpZGdldC0+c3R5bGU7CisgICAgbW96X2d0a193
aWRnZXRfZ2V0X2ZvY3VzKHdpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2N1c19wYWQpOwogCiAgICAgVFNPZmZzZXRT
dHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CiAKQEAgLTExNDYsOCArMTU0OCw4IEBA
IG1vel9ndGtfY29udGFpbmVyX3BhaW50KEdka0RyYXdhYmxlKiBkcmEKIAogICAgIC8qIHRoaXMg
aXMgZm9yIGRyYXdpbmcgYSBwcmVsaWdodCBib3ggKi8KICAgICBpZiAoc3RhdGVfdHlwZSA9PSBH
VEtfU1RBVEVfUFJFTElHSFQgfHwgc3RhdGVfdHlwZSA9PSBHVEtfU1RBVEVfQUNUSVZFKSB7Ci0g
ICAgICAgIGd0a19wYWludF9mbGF0X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9QUkVM
SUdIVCwgR1RLX1NIQURPV19FVENIRURfT1VULAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpcHJlY3QsIGdDaGVja2JveFdpZGdldCwKKyAgICAgICAgZ3RrX3BhaW50X2ZsYXRfYm94KHN0
eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX1BSRUxJR0hULAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RLX1NIQURPV19FVENIRURfT1VULCBjbGlwcmVjdCwgd2lkZ2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImNoZWNrYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogICAgIH0K
QEAgLTExNTYsNyArMTU1OCw3IEBAIG1vel9ndGtfY29udGFpbmVyX3BhaW50KEdka0RyYXdhYmxl
KiBkcmEKICAgICAgICAgc3RhdGVfdHlwZSA9IEdUS19TVEFURV9OT1JNQUw7CiAKICAgICBpZiAo
c3RhdGUtPmZvY3VzZWQgJiYgIWludGVyaW9yX2ZvY3VzKSB7Ci0gICAgICAgIGd0a19wYWludF9m
b2N1cyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUsIGNsaXByZWN0LCBnQ2hlY2tib3hXaWRn
ZXQsCisgICAgICAgIGd0a19wYWludF9mb2N1cyhzdHlsZSwgZHJhd2FibGUsIHN0YXRlX3R5cGUs
IGNsaXByZWN0LCB3aWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAiY2hlY2tidXR0b24i
LAogICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+d2lkdGgs
IHJlY3QtPmhlaWdodCk7CiAgICAgfQpAQCAtMTE2Nyw3ICsxNTY5LDcgQEAgbW96X2d0a19jb250
YWluZXJfcGFpbnQoR2RrRHJhd2FibGUqIGRyYQogc3RhdGljIGdpbnQKIG1vel9ndGtfdG9nZ2xl
X2xhYmVsX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lk
Z2V0U3RhdGUqIHN0YXRlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGlz
cmFkaW8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBpc3JhZGlvLCBHdGtU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZTsK
ICAgICBHdGtTdHlsZSAqc3R5bGU7CkBAIC0xMTg0LDYgKzE1ODYsNyBAQCBtb3pfZ3RrX3RvZ2ds
ZV9sYWJlbF9wYWludChHZGtEcmF3YWJsZSogCiAgICAgICAgIGVuc3VyZV9jaGVja2JveF93aWRn
ZXQoKTsKICAgICAgICAgd2lkZ2V0ID0gZ0NoZWNrYm94V2lkZ2V0OwogICAgIH0KKyAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24od2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAgICAgZ3RrX3dpZGdl
dF9zdHlsZV9nZXQod2lkZ2V0LCAiaW50ZXJpb3ItZm9jdXMiLCAmaW50ZXJpb3JfZm9jdXMsIE5V
TEwpOwogICAgIGlmICghaW50ZXJpb3JfZm9jdXMpCkBAIC0xMjA0LDEyICsxNjA3LDE0IEBAIG1v
el9ndGtfdG9nZ2xlX2xhYmVsX3BhaW50KEdka0RyYXdhYmxlKiAKIAogc3RhdGljIGdpbnQKIG1v
el9ndGtfdG9vbGJhcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSog
cmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0KQorICAg
ICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1RleHREaXJlY3Rp
b24gZGlyZWN0aW9uKQogewogICAgIEd0a1N0eWxlKiBzdHlsZTsKICAgICBHdGtTaGFkb3dUeXBl
IHNoYWRvd190eXBlOwogCiAgICAgZW5zdXJlX3Rvb2xiYXJfd2lkZ2V0KCk7CisgICAgZ3RrX3dp
ZGdldF9zZXRfZGlyZWN0aW9uKGdUb29sYmFyV2lkZ2V0LCBkaXJlY3Rpb24pOworCiAgICAgc3R5
bGUgPSBnVG9vbGJhcldpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKQEAgLTEyMjcsMTIgKzE2MzIsNjkgQEAgbW96X2d0a190b29s
YmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YQogfQogCiBzdGF0aWMgZ2ludAorbW96X2d0a190
b29sYmFyX3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rhbmds
ZSogcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBj
bGlwcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24pCit7CisgICAgR3RrU3R5bGUqIHN0eWxlOworICAgIGdpbnQgICAgIHNlcGFy
YXRvcl93aWR0aDsKKyAgICBnaW50ICAgICBwYWludF93aWR0aDsKKyAgICBnYm9vbGVhbiB3aWRl
X3NlcGFyYXRvcnM7CisgICAgCisgICAgLyogRGVmaW5lZCBhcyBjb25zdGFudHMgaW4gR1RLKyAy
LjEwLjE0ICovCisgICAgY29uc3QgZG91YmxlIHN0YXJ0X2ZyYWN0aW9uID0gMC4yOworICAgIGNv
bnN0IGRvdWJsZSBlbmRfZnJhY3Rpb24gPSAwLjg7CisKKyAgICBlbnN1cmVfdG9vbGJhcl9zZXBh
cmF0b3Jfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdUb29sYmFyU2Vw
YXJhdG9yV2lkZ2V0LCBkaXJlY3Rpb24pOworCisgICAgc3R5bGUgPSBnVG9vbGJhclNlcGFyYXRv
cldpZGdldC0+c3R5bGU7CisKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldChnVG9vbGJhcldpZGdl
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgJndpZGVfc2Vw
YXJhdG9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAic2VwYXJhdG9yLXdpZHRoIiwgJnNl
cGFyYXRvcl93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKworICAgIFRT
T2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOworCisgICAgaWYgKHdpZGVf
c2VwYXJhdG9ycykgeworICAgICAgICBpZiAoc2VwYXJhdG9yX3dpZHRoID4gcmVjdC0+d2lkdGgp
CisgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGggPSByZWN0LT53aWR0aDsKKworICAgICAgICBn
dGtfcGFpbnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBHVEtf
U1RBVEVfTk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9PVVQsCisgICAgICAgICAgICAgICAgICAg
ICAgY2xpcHJlY3QsIGdUb29sYmFyV2lkZ2V0LCAidnNlcGFyYXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCArIChyZWN0LT53aWR0aCAtIHNlcGFyYXRvcl93aWR0aCkgLyAyLAor
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyByZWN0LT5oZWlnaHQgKiBzdGFydF9mcmFj
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3Jfd2lkdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC0+aGVpZ2h0ICogKGVuZF9mcmFjdGlvbiAtIHN0YXJ0X2ZyYWN0aW9u
KSk7CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIH0gZWxzZSB7CisgICAgICAgIHBhaW50
X3dpZHRoID0gc3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgIAorICAgICAgICBpZiAocGFpbnRf
d2lkdGggPiByZWN0LT53aWR0aCkKKyAgICAgICAgICAgIHBhaW50X3dpZHRoID0gcmVjdC0+d2lk
dGg7CisgICAgCisgICAgICAgIGd0a19wYWludF92bGluZShzdHlsZSwgZHJhd2FibGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVfTk9STUFMLCBjbGlwcmVjdCwgZ1Rvb2xiYXJT
ZXBhcmF0b3JXaWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAidG9vbGJhciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICByZWN0LT55ICsgcmVjdC0+aGVpZ2h0ICogc3RhcnRfZnJhY3Rp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55ICsgcmVjdC0+aGVpZ2h0ICogZW5k
X2ZyYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+eCArIChyZWN0LT53aWR0
aCAtIHBhaW50X3dpZHRoKSAvIDIpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gTU9aX0dUS19T
VUNDRVNTOworfQorCitzdGF0aWMgZ2ludAogbW96X2d0a190b29sdGlwX3BhaW50KEdka0RyYXdh
YmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAg
IEdka1JlY3RhbmdsZSogY2xpcHJlY3QpCisgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFu
Z2xlKiBjbGlwcmVjdCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgR3RrU3R5
bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3Rvb2x0aXBfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdl
dF9zZXRfZGlyZWN0aW9uKGdUb29sdGlwV2lkZ2V0LCBkaXJlY3Rpb24pOworCiAgICAgc3R5bGUg
PSBndGtfcmNfZ2V0X3N0eWxlX2J5X3BhdGhzKGd0a19zZXR0aW5nc19nZXRfZGVmYXVsdCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3RrLXRvb2x0aXBzIiwgIkd0
a1dpbmRvdyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19UWVBF
X1dJTkRPVyk7CkBAIC0xMjQ3LDIxICsxNzA5LDQ0IEBAIG1vel9ndGtfdG9vbHRpcF9wYWludChH
ZGtEcmF3YWJsZSogZHJhd2EKIH0KIAogc3RhdGljIGdpbnQKLW1vel9ndGtfZnJhbWVfcGFpbnQo
R2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCi0gICAgICAgICAgICAg
ICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QpCittb3pfZ3RrX3Jlc2l6ZXJfcGFpbnQoR2Rr
RHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAorICAg
ICAgICAgICAgICAgICAgICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIEd0
a1N0eWxlKiBzdHlsZSA9IGdQcm90b1dpbmRvdy0+c3R5bGU7CisgICAgR3RrU3R5bGUqIHN0eWxl
OworICAgIEd0a1N0YXRlVHlwZSBzdGF0ZV90eXBlID0gQ29udmVydEd0a1N0YXRlKHN0YXRlKTsK
KworICAgIGVuc3VyZV93aW5kb3dfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0
aW9uKGdQcm90b1dpbmRvdywgZGlyZWN0aW9uKTsKKworICAgIHN0eWxlID0gZ1Byb3RvV2luZG93
LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkp
OwotICAgIGd0a19wYWludF9mbGF0X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JN
QUwsIEdUS19TSEFET1dfTk9ORSwKLSAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZ1Byb3Rv
V2luZG93LCAiYmFzZSIsIHJlY3QtPngsIHJlY3QtPnksCi0gICAgICAgICAgICAgICAgICAgICAg
IHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOworCisgICAgZ3RrX3BhaW50X3Jlc2l6ZV9ncmlw
KHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgY2xpcHJlY3QsIGdQcm90b1dpbmRvdywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgKGRpcmVjdGlvbiA9PSBHVEtfVEVYVF9ESVJf
TFRSKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIEdES19XSU5ET1dfRURHRV9TT1VUSF9F
QVNUIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0RLX1dJTkRPV19FREdFX1NPVVRIX1dF
U1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndp
ZHRoLCByZWN0LT5oZWlnaHQpOworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKK3N0
YXRpYyBnaW50Cittb3pfZ3RrX2ZyYW1lX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2Rr
UmVjdGFuZ2xlKiByZWN0LAorICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXBy
ZWN0LCBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBHdGtTdHlsZSogc3R5bGU7
CisgICAgR3RrU2hhZG93VHlwZSBzaGFkb3dfdHlwZTsKIAogICAgIGVuc3VyZV9mcmFtZV93aWRn
ZXQoKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0ZyYW1lV2lkZ2V0LCBkaXJlY3Rp
b24pOworCiAgICAgc3R5bGUgPSBnRnJhbWVXaWRnZXQtPnN0eWxlOwogCisgICAgZ3RrX3dpZGdl
dF9zdHlsZV9nZXQoZ1N0YXR1c2JhcldpZGdldCwgInNoYWRvdy10eXBlIiwgJnNoYWRvd190eXBl
LCBOVUxMKTsKKwogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkp
OwotICAgIGd0a19wYWludF9zaGFkb3coc3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfTk9STUFM
LCBHVEtfU0hBRE9XX0lOLAorICAgIGd0a19wYWludF9zaGFkb3coc3R5bGUsIGRyYXdhYmxlLCBH
VEtfU1RBVEVfTk9STUFMLCBzaGFkb3dfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgIGNsaXBy
ZWN0LCBnRnJhbWVXaWRnZXQsICJmcmFtZSIsIHJlY3QtPngsIHJlY3QtPnksCiAgICAgICAgICAg
ICAgICAgICAgICByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0KTsKIApAQCAtMTI3MCwxMSArMTc1
NSwxMyBAQCBtb3pfZ3RrX2ZyYW1lX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsCiAKIHN0YXRp
YyBnaW50CiBtb3pfZ3RrX3Byb2dyZXNzYmFyX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwg
R2RrUmVjdGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5n
bGUqIGNsaXByZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNs
aXByZWN0LCBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBHdGtTdHlsZSogc3R5
bGU7CiAKICAgICBlbnN1cmVfcHJvZ3Jlc3Nfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdQcm9ncmVzc1dpZGdldCwgZGlyZWN0aW9uKTsKKwogICAgIHN0eWxlID0gZ1By
b2dyZXNzV2lkZ2V0LT5zdHlsZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3Qt
PngsIHJlY3QtPnkpOwpAQCAtMTI4NywxMSArMTc3NCwxMyBAQCBtb3pfZ3RrX3Byb2dyZXNzYmFy
X3BhaW50KEdka0RyYXdhYmxlKiBkCiAKIHN0YXRpYyBnaW50CiBtb3pfZ3RrX3Byb2dyZXNzX2No
dW5rX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0LCBHdGtUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBHdGtTdHlsZSogc3R5bGU7CiAKICAgICBlbnN1cmVf
cHJvZ3Jlc3Nfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKGdQcm9ncmVz
c1dpZGdldCwgZGlyZWN0aW9uKTsKKwogICAgIHN0eWxlID0gZ1Byb2dyZXNzV2lkZ2V0LT5zdHls
ZTsKIAogICAgIFRTT2Zmc2V0U3R5bGVHQ3Moc3R5bGUsIHJlY3QtPngsIHJlY3QtPnkpOwpAQCAt
MTMwMiw3MiArMTc5MSwxNTAgQEAgbW96X2d0a19wcm9ncmVzc19jaHVua19wYWludChHZGtEcmF3
YWJsZQogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CiB9CiAKK2dpbnQKK21vel9ndGtfZ2V0
X3RhYl90aGlja25lc3Modm9pZCkKK3sKKyAgICBlbnN1cmVfdGFiX3dpZGdldCgpOworICAgIGlm
IChZVEhJQ0tORVNTKGdUYWJXaWRnZXQtPnN0eWxlKSA8IDIpCisgICAgICAgIHJldHVybiAyOyAv
KiBzb21lIHRoZW1lcyBkb24ndCBzZXQgeXRoaWNrbmVzcyBjb3JyZWN0bHkgKi8KKworICAgIHJl
dHVybiBZVEhJQ0tORVNTKGdUYWJXaWRnZXQtPnN0eWxlKTsKK30KKwogc3RhdGljIGdpbnQKIG1v
el9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0
LAotICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgZ2ludCBmbGFncykK
KyAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1RhYkZsYWdzIGZs
YWdzLAorICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0g
ICAgLyoKLSAgICAgKiBJbiBvcmRlciB0byBnZXQgdGhlIGNvcnJlY3Qgc2hhZG93cyBhbmQgaGln
aGxpZ2h0cywgR1RLIHBhaW50cwotICAgICAqIHRhYnMgcmlnaHQtdG8tbGVmdCAoZW5kLXRvLWJl
Z2lubmluZywgdG8gYmUgZ2VuZXJpYyksIGxlYXZpbmcKLSAgICAgKiBvdXQgdGhlIGFjdGl2ZSB0
YWIsIGFuZCB0aGVuIHBhaW50cyB0aGUgY3VycmVudCB0YWIgb25jZQotICAgICAqIGV2ZXJ5dGhp
bmcgZWxzZSBpcyBwYWludGVkLiAgSW4gYWRkaXRpb24sIEdUSyB1c2VzIGEgMi1waXhlbAotICAg
ICAqIG92ZXJsYXAgYmV0d2VlbiBhZGphY2VudCB0YWJzICh0aGlzIHZhbHVlIGlzIGhhcmQtY29k
ZWQgaW4KLSAgICAgKiBndGtub3RlYm9vay5jKS4gIEZvciBwdXJwb3NlcyBvZiBtYXBwaW5nIHRv
IGdlY2tvJ3MgZnJhbWUKLSAgICAgKiBwb3NpdGlvbnMsIHdlIHB1dCB0aGlzIG92ZXJsYXAgb24g
dGhlIGZhciBlZGdlIG9mIHRoZSBmcmFtZQotICAgICAqIChpLmUuLCBmb3IgYSBob3Jpem9udGFs
L3RvcCB0YWIgc3RyaXAsIHdlIHNoaWZ0IHRoZSBsZWZ0IHNpZGUKLSAgICAgKiBvZiBlYWNoIHRh
YiAycHggdG8gdGhlIGxlZnQsIGludG8gdGhlIG5laWdoYm9yaW5nIHRhYidzIGZyYW1lCi0gICAg
ICogcmVjdC4gIFRoZSByaWdodCAycHggKiBvZiBhIHRhYidzIGZyYW1lIHdpbGwgYmUgcmVmZXJy
ZWQgdG8gYXMKLSAgICAgKiB0aGUgIm92ZXJsYXAgYXJlYSIuCi0gICAgICoKLSAgICAgKiBTaW5j
ZSB3ZSBjYW4ndCBndWFyYW50ZWUgcGFpbnRpbmcgb3JkZXIgd2l0aCBnZWNrbywgd2UgbmVlZCB0
bwotICAgICAqIG1hbmFnZSB0aGUgb3ZlcmxhcCBhcmVhIG1hbnVhbGx5LiBUaGVyZSBhcmUgdGhy
ZWUgdHlwZXMgb2YgdGFiCi0gICAgICogYm91bmRhcmllcyB3ZSBuZWVkIHRvIGhhbmRsZToKLSAg
ICAgKgotICAgICAqICogdHdvIG5vbi1hY3RpdmUgdGFiczogSW4gdGhpcyBjYXNlLCB3ZSBqdXN0
IGhhdmUgYm90aCB0YWJzCi0gICAgICogICBwYWludCBub3JtYWxseS4KLSAgICAgKgotICAgICAq
ICogbm9uLWFjdGl2ZSB0byBhY3RpdmUgdGFiOiBIZXJlLCB3ZSBuZWVkIHRoZSB0YWIgb24gdGhl
IGxlZnQgdG8gcGFpbnQKLSAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRzZWxm
IG5vcm1hbGx5LCB0aGVuIHBhaW50IHRoZSBlZGdlIG9mIHRoZQotICAgICAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhY3RpdmUgdGFiIGluIGl0cyBvdmVybGFwIGFyZWEuCi0gICAgICoK
LSAgICAgKiAqIGFjdGl2ZSB0byBub24tYWN0aXZlIHRhYjogSW4gdGhpcyBjYXNlLCB3ZSBqdXN0
IGhhdmUgYm90aCB0YWJzIHBhaW50Ci0gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vcm1hbGx5LgotICAgICAqCi0gICAgICogV2UgbmVlZCB0byBtYWtlIGFuIGV4Y2VwdGlvbiBm
b3IgdGhlIGZpcnN0IHRhYiAtIHNpbmNlIHRoZXJlIGlzCi0gICAgICogbm8gdGFiIHRvIHRoZSBs
ZWZ0IHRvIHBhaW50IHRoZSBvdmVybGFwIGFyZWEsIHdlIGRvIF9ub3RfIHNoaWZ0Ci0gICAgICog
dGhlIHRhYiBsZWZ0IGJ5IDJweC4KLSAgICAgKi8KKyAgICAvKiBXaGVuIHRoZSB0YWIgaXNuJ3Qg
c2VsZWN0ZWQsIHdlIGp1c3QgZHJhdyBhIG5vdGVib29rIGV4dGVuc2lvbi4KKyAgICAgKiBXaGVu
IGl0IGlzIHNlbGVjdGVkLCB3ZSBvdmVyd3JpdGUgdGhlIGFkamFjZW50IGJvcmRlciBvZiB0aGUg
dGFicGFuZWwKKyAgICAgKiB0b3VjaGluZyB0aGUgdGFiIHdpdGggYSBwaWVyY2VkIGJvcmRlciAo
Y2FsbGVkICJ0aGUgZ2FwIikgdG8gbWFrZSB0aGUKKyAgICAgKiB0YWIgYXBwZWFyIHBoeXNpY2Fs
bHkgYXR0YWNoZWQgdG8gdGhlIHRhYnBhbmVsOyBzZWUgZGV0YWlscyBiZWxvdy4gKi8KIAogICAg
IEd0a1N0eWxlKiBzdHlsZTsKLSAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwogCi0gICAgaWYgKCEo
ZmxhZ3MgJiBNT1pfR1RLX1RBQl9GSVJTVCkpIHsKLSAgICAgICAgcmVjdC0+eCAtPSAyOwotICAg
ICAgICByZWN0LT53aWR0aCArPSAyOwotICAgIH0KKyAgICBlbnN1cmVfdGFiX3dpZGdldCgpOwor
ICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnVGFiV2lkZ2V0LCBkaXJlY3Rpb24pOwogCiAg
ICAgc3R5bGUgPSBnVGFiV2lkZ2V0LT5zdHlsZTsKICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxl
LCByZWN0LT54LCByZWN0LT55KTsKLSAgICBndGtfcGFpbnRfZXh0ZW5zaW9uKHN0eWxlLCBkcmF3
YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICgoZmxhZ3MgJiBNT1pfR1RLX1RBQl9TRUxF
Q1RFRCkgPwotICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUwgOiBHVEtf
U1RBVEVfQUNUSVZFKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBj
bGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIsIHJlY3QtPngsCi0gICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LT55LCByZWN0LT53aWR0aCwgcmVjdC0+aGVpZ2h0LCBHVEtfUE9TX0JPVFRPTSk7
Ci0KLSAgICBpZiAoZmxhZ3MgJiBNT1pfR1RLX1RBQl9CRUZPUkVfU0VMRUNURUQpIHsKLSAgICAg
ICAgZ2Jvb2xlYW4gYmVmb3JlX3NlbGVjdGVkID0gKChmbGFncyAmIE1PWl9HVEtfVEFCX0JFRk9S
RV9TRUxFQ1RFRCkhPTApOwotICAgICAgICBjbGlwcmVjdC0+eSAtPSAyOwotICAgICAgICBjbGlw
cmVjdC0+aGVpZ2h0ICs9IDI7Ci0KLSAgICAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVj
dC0+eCArIHJlY3QtPndpZHRoIC0gMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT55
IC0gKDIgKiBiZWZvcmVfc2VsZWN0ZWQpKTsKIAotICAgICAgICBndGtfcGFpbnRfZXh0ZW5zaW9u
KHN0eWxlLCBkcmF3YWJsZSwgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCisgICAg
aWYgKChmbGFncyAmIE1PWl9HVEtfVEFCX1NFTEVDVEVEKSA9PSAwKSB7CisgICAgICAgIC8qIE9u
bHkgZHJhdyB0aGUgdGFiICovCisgICAgICAgIGd0a19wYWludF9leHRlbnNpb24oc3R5bGUsIGRy
YXdhYmxlLCBHVEtfU1RBVEVfQUNUSVZFLCBHVEtfU0hBRE9XX09VVCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRhYiIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVjdC0+eCArIHJlY3QtPndpZHRoIC0gMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWN0LT55IC0gKDIgKiBiZWZvcmVfc2VsZWN0ZWQpLCByZWN0LT53aWR0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT5oZWlnaHQgKyAoMiAqIGJlZm9y
ZV9zZWxlY3RlZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPU19CT1RUT00p
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnksIHJlY3QtPndp
ZHRoLCByZWN0LT5oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsYWdzICYg
TU9aX0dUS19UQUJfQk9UVE9NKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdU
S19QT1NfVE9QIDogR1RLX1BPU19CT1RUT00gKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBE
cmF3IHRoZSB0YWIgYW5kIHRoZSBnYXAKKyAgICAgICAgICogV2Ugd2FudCB0aGUgZ2FwIHRvIGJl
IHBvc2l0aW9ubmVkIGV4YWN0bHkgb24gdGhlIHRhYnBhbmVsIHRvcAorICAgICAgICAgKiBib3Jk
ZXI7IHNpbmNlIHRhYmJveC5jc3MgbWF5IHNldCBhIG5lZ2F0aXZlIG1hcmdpbiBzbyB0aGF0IHRo
ZSB0YWIKKyAgICAgICAgICogZnJhbWUgcmVjdCBhbHJlYWR5IG92ZXJsYXBzIHRoZSB0YWJwYW5l
bCBmcmFtZSByZWN0LCB3ZSBuZWVkIHRvIHRha2UKKyAgICAgICAgICogdGhhdCBpbnRvIGFjY291
bnQgd2hlbiBkcmF3aW5nLiBUbyB0aGF0IGVmZmVjdCwgbnNOYXRpdmVUaGVtZUdUSworICAgICAg
ICAgKiBwYXNzZXMgdXMgdGhpcyBuZWdhdGl2ZSBtYXJnaW4gKGJtYXJnaW4gaW4gdGhlIGdyYXBo
aWMgYmVsb3cpIGluIHRoZQorICAgICAgICAgKiBsb3dlc3QgYml0cyBvZiB8ZmxhZ3N8LiAgV2Ug
dXNlIGl0IHRvIHNldCBnYXBfdm9mZnNldCwgdGhlIGRpc3RhbmNlCisgICAgICAgICAqIGJldHdl
ZW4gdGhlIHRvcCBvZiB0aGUgZ2FwIGFuZCB0aGUgYm90dG9tIG9mIHRoZSB0YWIgKHJlc3AuIHRo
ZQorICAgICAgICAgKiBib3R0b20gb2YgdGhlIGdhcCBhbmQgdGhlIHRvcCBvZiB0aGUgdGFiIHdo
ZW4gd2UgZHJhdyBhIGJvdHRvbSB0YWIpLAorICAgICAgICAgKiB3aGlsZSBlbnN1cmluZyB0aGF0
IHRoZSBnYXAgYWx3YXlzIHRvdWNoZXMgdGhlIGJvcmRlciBvZiB0aGUgdGFiLAorICAgICAgICAg
KiBpLmUuIDAgPD0gZ2FwX3ZvZmZzZXQgPD0gZ2FwX2hlaWdodCwgdG8gYXZvaWQgc3VycHJpbnNp
bmcgcmVzdWx0cworICAgICAgICAgKiB3aXRoIGJpZyBuZWdhdGl2ZSBvciBwb3NpdGl2ZSBtYXJn
aW5zLgorICAgICAgICAgKiBIZXJlIGlzIGEgZ3JhcGhpY2FsIGV4cGxhbmF0aW9uIGluIHRoZSBj
YXNlIG9mIHRvcCB0YWJzOgorICAgICAgICAgKiAgICAgICAgICAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX18KKyAgICAgICAgICogICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgKiAgICAgICAgICAgfCAgICAgICAgICAgIFQgQSBCICAgICAgICAg
ICAgfAorICAgICAgICAgKiAtLS0tLS0tLS0tfC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
fC0tLS0tIHRvcCBvZiB0YWJwYW5lbAorICAgICAgICAgKiAgICAgICAgICAgOiAgICBeICAgICAg
IGJtYXJnaW4gICAgICAgICAgOiAgXgorICAgICAgICAgKiAgICAgICAgICAgOiAgICB8ICgtbmVn
YXRpdmUgbWFyZ2luLCAgICAgOiAgfAorICAgICAgICAgKiAgYm90dG9tICAgOiAgICB2ICBwYXNz
ZWQgaW4gZmxhZ3MpICAgICAgOiAgfCAgICAgICBnYXBfaGVpZ2h0CisgICAgICAgICAqICAgIG9m
ICAtPiA6Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi46ICB8ICAgICh0aGUgc2l6ZSBvZiB0
aGUKKyAgICAgICAgICogdGhlIHRhYiAgIC4gICAgICAgcGFydCBvZiB0aGUgZ2FwICAgICAgIC4g
IHwgIHRhYnBhbmVsIHRvcCBib3JkZXIpCisgICAgICAgICAqICAgICAgICAgICAuICAgICAgb3V0
c2lkZSBvZiB0aGUgdGFiICAgICAuICB2CisgICAgICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICoKKyAgICAgICAgICogVG8gZHJh
dyB0aGUgZ2FwLCB3ZSB1c2UgZ3RrX3BhaW50X2JveF9nYXAoKSwgc2VlIGNvbW1lbnQgaW4KKyAg
ICAgICAgICogbW96X2d0a190YWJwYW5lbHNfcGFpbnQoKS4gVGhpcyBib3hfZ2FwIGlzIG1hZGUg
MyAqIGdhcF9oZWlnaHQgdGFsbCwKKyAgICAgICAgICogd2hpY2ggc2hvdWxkIHN1ZmZpY2UgdG8g
ZW5zdXJlIHRoYXQgdGhlIG9ubHkgdmlzaWJsZSBib3JkZXIgaXMgdGhlCisgICAgICAgICAqIHBp
ZXJjZWQgb25lLiAgSWYgdGhlIHRhYiBpcyBpbiB0aGUgbWlkZGxlLCB3ZSBtYWtlIHRoZSBib3hf
Z2FwIGJlZ2luCisgICAgICAgICAqIGEgYml0IHRvIHRoZSBsZWZ0IG9mIHRoZSB0YWIgYW5kIGVu
ZCBhIGJpdCB0byB0aGUgcmlnaHQsIGFkanVzdGluZworICAgICAgICAgKiB0aGUgZ2FwIHBvc2l0
aW9uIHNvIGl0IHN0aWxsIGlzIHVuZGVyIHRoZSB0YWIsIGJlY2F1c2Ugd2Ugd2FudCB0aGUKKyAg
ICAgICAgICogcmVuZGVyaW5nIG9mIGEgZ2FwIGluIHRoZSBtaWRkbGUgb2YgYSB0YWJwYW5lbC4g
IFRoaXMgaXMgdGhlIHJvbGUgb2YKKyAgICAgICAgICogdGhlIGdpbnRzIGdhcF97bCxyfV9vZmZz
ZXQuIE9uIHRoZSBjb250cmFyeSwgaWYgdGhlIHRhYiBpcyB0aGUKKyAgICAgICAgICogZmlyc3Qs
IHdlIGFsaWduIHRoZSBzdGFydCBib3JkZXIgb2YgdGhlIGJveF9nYXAgd2l0aCB0aGUgc3RhcnQK
KyAgICAgICAgICogYm9yZGVyIG9mIHRoZSB0YWIgKGxlZnQgaWYgTFRSLCByaWdodCBpZiBSVEwp
LCBieSBzZXR0aW5nIHRoZQorICAgICAgICAgKiBhcHByb3ByaWF0ZSBvZmZzZXQgdG8gMC4qLwor
ICAgICAgICBnaW50IGdhcF9sb2Zmc2V0LCBnYXBfcm9mZnNldCwgZ2FwX3ZvZmZzZXQsIGdhcF9o
ZWlnaHQ7CisKKyAgICAgICAgLyogR2V0IGhlaWdodCBuZWVkZWQgYnkgdGhlIGdhcCAqLworICAg
ICAgICBnYXBfaGVpZ2h0ID0gbW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcygpOworCisgICAgICAg
IC8qIEV4dHJhY3QgZ2FwX3ZvZmZzZXQgZnJvbSB0aGUgZmlyc3QgYml0cyBvZiBmbGFncyAqLwor
ICAgICAgICBnYXBfdm9mZnNldCA9IGZsYWdzICYgTU9aX0dUS19UQUJfTUFSR0lOX01BU0s7Cisg
ICAgICAgIGlmIChnYXBfdm9mZnNldCA+IGdhcF9oZWlnaHQpCisgICAgICAgICAgICBnYXBfdm9m
ZnNldCA9IGdhcF9oZWlnaHQ7CisKKyAgICAgICAgLyogU2V0IGdhcF97bCxyfV9vZmZzZXQgdG8g
YXBwcm9wcmlhdGUgdmFsdWVzICovCisgICAgICAgIGdhcF9sb2Zmc2V0ID0gZ2FwX3JvZmZzZXQg
PSAyMDsgLyogc2hvdWxkIGJlIGVub3VnaCAqLworICAgICAgICBpZiAoZmxhZ3MgJiBNT1pfR1RL
X1RBQl9GSVJTVCkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBHVEtfVEVYVF9ESVJf
UlRMKQorICAgICAgICAgICAgICAgIGdhcF9yb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBnYXBfbG9mZnNldCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoZmxhZ3MgJiBNT1pfR1RLX1RBQl9CT1RUT00pIHsKKyAgICAgICAgICAgIC8qIEVubGFyZ2Ug
dGhlIGNsaXByZWN0IHRvIGhhdmUgcm9vbSBmb3IgdGhlIGZ1bGwgZ2FwIGhlaWdodCAqLworICAg
ICAgICAgICAgY2xpcHJlY3QtPmhlaWdodCArPSBnYXBfaGVpZ2h0IC0gZ2FwX3ZvZmZzZXQ7Cisg
ICAgICAgICAgICBjbGlwcmVjdC0+eSAtPSBnYXBfaGVpZ2h0IC0gZ2FwX3ZvZmZzZXQ7CisKKyAg
ICAgICAgICAgIC8qIERyYXcgdGhlIHRhYiAqLworICAgICAgICAgICAgZ3RrX3BhaW50X2V4dGVu
c2lvbihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdldCwgInRh
YiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3QtPnkgKyBn
YXBfdm9mZnNldCwgcmVjdC0+d2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlY3QtPmhlaWdodCAtIGdhcF92b2Zmc2V0LCBHVEtfUE9TX1RPUCk7CisKKyAgICAgICAgICAg
IC8qIERyYXcgdGhlIGdhcDsgZXJhc2Ugd2l0aCBiYWNrZ3JvdW5kIGNvbG9yIGJlZm9yZSBwYWlu
dGluZyBpbgorICAgICAgICAgICAgICogY2FzZSB0aGVtZSBkb2VzIG5vdCAqLworICAgICAgICAg
ICAgZ3RrX3N0eWxlX2FwcGx5X2RlZmF1bHRfYmFja2dyb3VuZChzdHlsZSwgZHJhd2FibGUsIFRS
VUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19T
VEFURV9OT1JNQUwsIGNsaXByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWN0LT54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWN0LT55ICsgZ2FwX3ZvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGdhcF9oZWlnaHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCBnYXBf
aGVpZ2h0KTsKKyAgICAgICAgICAgIGd0a19wYWludF9ib3hfZ2FwKHN0eWxlLCBkcmF3YWJsZSwg
R1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVib29rIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY3QtPnggLSBnYXBfbG9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QtPnkgKyBnYXBfdm9mZnNldCAtIDMgKiBnYXBfaGVpZ2h0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC0+d2lkdGggKyBnYXBfbG9mZnNldCArIGdh
cF9yb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyAqIGdhcF9oZWlnaHQs
IEdUS19QT1NfQk9UVE9NLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwX2xvZmZz
ZXQsIHJlY3QtPndpZHRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIEVubGFy
Z2UgdGhlIGNsaXByZWN0IHRvIGhhdmUgcm9vbSBmb3IgdGhlIGZ1bGwgZ2FwIGhlaWdodCAqLwor
ICAgICAgICAgICAgY2xpcHJlY3QtPmhlaWdodCArPSBnYXBfaGVpZ2h0IC0gZ2FwX3ZvZmZzZXQ7
CisKKyAgICAgICAgICAgIC8qIERyYXcgdGhlIHRhYiAqLworICAgICAgICAgICAgZ3RrX3BhaW50
X2V4dGVuc2lvbihzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdUS19TSEFET1dfT1VULCBjbGlwcmVjdCwgZ1RhYldpZGdl
dCwgInRhYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPngsIHJlY3Qt
PnksIHJlY3QtPndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LT5o
ZWlnaHQgLSBnYXBfdm9mZnNldCwgR1RLX1BPU19CT1RUT00pOworCisgICAgICAgICAgICAvKiBE
cmF3IHRoZSBnYXA7IGVyYXNlIHdpdGggYmFja2dyb3VuZCBjb2xvciBiZWZvcmUgcGFpbnRpbmcg
aW4KKyAgICAgICAgICAgICAqIGNhc2UgdGhlbWUgZG9lcyBub3QgKi8KKyAgICAgICAgICAgIGd0
a19zdHlsZV9hcHBseV9kZWZhdWx0X2JhY2tncm91bmQoc3R5bGUsIGRyYXdhYmxlLCBUUlVFLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVf
Tk9STUFMLCBjbGlwcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eSArIHJlY3QtPmhlaWdodAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gZ2FwX3ZvZmZzZXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCBnYXBfaGVp
Z2h0KTsKKyAgICAgICAgICAgIGd0a19wYWludF9ib3hfZ2FwKHN0eWxlLCBkcmF3YWJsZSwgR1RL
X1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlwcmVjdCwgZ1RhYldpZGdldCwgIm5vdGVib29rIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QtPnggLSBnYXBfbG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY3QtPnkgKyByZWN0LT5oZWlnaHQgLSBnYXBfdm9mZnNldCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoICsgZ2FwX2xvZmZzZXQgKyBnYXBfcm9m
ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiBnYXBfaGVpZ2h0LCBHVEtf
UE9TX1RPUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcF9sb2Zmc2V0LCByZWN0
LT53aWR0aCk7CisgICAgICAgIH0KKwogICAgIH0KIAogICAgIHJldHVybiBNT1pfR1RLX1NVQ0NF
U1M7CkBAIC0xMzc1LDI4ICsxOTQyLDM3IEBAIG1vel9ndGtfdGFiX3BhaW50KEdka0RyYXdhYmxl
KiBkcmF3YWJsZSwKIAogc3RhdGljIGdpbnQKIG1vel9ndGtfdGFicGFuZWxzX3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIEdk
a1JlY3RhbmdsZSogY2xpcHJlY3QsIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogeworICAg
IC8qIFdlIHVzZSBndGtfcGFpbnRfYm94X2dhcCgpIHRvIGRyYXcgdGhlIHRhYnBhbmVscyB3aWRn
ZXQuIGd0a19wYWludF9ib3goKQorICAgICAqIGRyYXdzIGFuIGFsbC1wdXJwb3NlIGJveCwgd2hp
Y2ggYSBsb3Qgb2YgdGhlbWVzIHJlbmRlciBkaWZmZXJlbnRseS4KKyAgICAgKiBBIHplcm8td2lk
dGggZ2FwIGlzIHN0aWxsIHZpc2libGUgaW4gbW9zdCB0aGVtZXMsIHNvIHdlIGhpZGUgaXQgdG8g
dGhlCisgICAgICogbGVmdCAoMTBweCBzaG91bGQgYmUgZW5vdWdoKSAqLwogICAgIEd0a1N0eWxl
KiBzdHlsZTsKIAogICAgIGVuc3VyZV90YWJfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zZXRf
ZGlyZWN0aW9uKGdUYWJXaWRnZXQsIGRpcmVjdGlvbik7CisKICAgICBzdHlsZSA9IGdUYWJXaWRn
ZXQtPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+
eSk7Ci0gICAgZ3RrX3BhaW50X2JveChzdHlsZSwgZHJhd2FibGUsIEdUS19TVEFURV9OT1JNQUws
IEdUS19TSEFET1dfT1VULAotICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGdUYWJXaWRnZXQs
ICJub3RlYm9vayIsIHJlY3QtPngsIHJlY3QtPnksCi0gICAgICAgICAgICAgICAgICByZWN0LT53
aWR0aCwgcmVjdC0+aGVpZ2h0KTsKKyAgICBndGtfcGFpbnRfYm94X2dhcChzdHlsZSwgZHJhd2Fi
bGUsIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAorICAgICAgICAgICAgICAgICAg
ICAgIGNsaXByZWN0LCBnVGFiV2lkZ2V0LCAibm90ZWJvb2siLCByZWN0LT54LCByZWN0LT55LAor
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQsCisgICAgICAg
ICAgICAgICAgICAgICAgR1RLX1BPU19UT1AsIC0xMCwgMCk7CiAKICAgICByZXR1cm4gTU9aX0dU
S19TVUNDRVNTOwogfQogCiBzdGF0aWMgZ2ludAogbW96X2d0a19tZW51X2Jhcl9wYWludChHZGtE
cmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgR2Rr
UmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAg
R3RrU3R5bGUqIHN0eWxlOwogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGU7CiAgICAgZW5z
dXJlX21lbnVfYmFyX3dpZGdldCgpOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihnTWVu
dUJhcldpZGdldCwgZGlyZWN0aW9uKTsKKwogICAgIHN0eWxlID0gZ01lbnVCYXJXaWRnZXQtPnN0
eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CkBA
IC0xNDExLDEwICsxOTg3LDEyIEBAIG1vel9ndGtfbWVudV9iYXJfcGFpbnQoR2RrRHJhd2FibGUq
IGRyYXcKIAogc3RhdGljIGdpbnQKIG1vel9ndGtfbWVudV9wb3B1cF9wYWludChHZGtEcmF3YWJs
ZSogZHJhd2FibGUsIEdka1JlY3RhbmdsZSogcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgIEdka1Jl
Y3RhbmdsZSogY2xpcHJlY3QsIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEd0
a1N0eWxlKiBzdHlsZTsKICAgICBlbnN1cmVfbWVudV9wb3B1cF93aWRnZXQoKTsKKyAgICBndGtf
d2lkZ2V0X3NldF9kaXJlY3Rpb24oZ01lbnVQb3B1cFdpZGdldCwgZGlyZWN0aW9uKTsKKwogICAg
IHN0eWxlID0gZ01lbnVQb3B1cFdpZGdldC0+c3R5bGU7CiAKICAgICBUU09mZnNldFN0eWxlR0Nz
KHN0eWxlLCByZWN0LT54LCByZWN0LT55KTsKQEAgLTE0MjksMjYgKzIwMDcsODUgQEAgbW96X2d0
a19tZW51X3BvcHVwX3BhaW50KEdka0RyYXdhYmxlKiBkcgogfQogCiBzdGF0aWMgZ2ludAorbW96
X2d0a19tZW51X3NlcGFyYXRvcl9wYWludChHZGtEcmF3YWJsZSogZHJhd2FibGUsIEdka1JlY3Rh
bmdsZSogcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBj
bGlwcmVjdCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgR3RrU3R5bGUqIHN0
eWxlOworICAgIGdib29sZWFuIHdpZGVfc2VwYXJhdG9yczsKKyAgICBnaW50IHNlcGFyYXRvcl9o
ZWlnaHQ7CisgICAgZ3VpbnQgaG9yaXpvbnRhbF9wYWRkaW5nOworICAgIGdpbnQgcGFpbnRfaGVp
Z2h0OworCisgICAgZW5zdXJlX21lbnVfc2VwYXJhdG9yX3dpZGdldCgpOworICAgIGd0a193aWRn
ZXRfc2V0X2RpcmVjdGlvbihnTWVudVNlcGFyYXRvcldpZGdldCwgZGlyZWN0aW9uKTsKKworICAg
IHN0eWxlID0gZ01lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlOworCisgICAgZ3RrX3dpZGdldF9z
dHlsZV9nZXQoZ01lbnVTZXBhcmF0b3JXaWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IndpZGUtc2VwYXJhdG9ycyIsICAgICZ3aWRlX3NlcGFyYXRvcnMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgInNlcGFyYXRvci1oZWlnaHQiLCAgICZzZXBhcmF0b3JfaGVpZ2h0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICJob3Jpem9udGFsLXBhZGRpbmciLCAmaG9yaXpvbnRhbF9wYWRk
aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgVFNPZmZzZXRTdHls
ZUdDcyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CisKKyAgICBpZiAod2lkZV9zZXBhcmF0b3Jz
KSB7CisgICAgICAgIGlmIChzZXBhcmF0b3JfaGVpZ2h0ID4gcmVjdC0+aGVpZ2h0KQorICAgICAg
ICAgICAgc2VwYXJhdG9yX2hlaWdodCA9IHJlY3QtPmhlaWdodDsKKworICAgICAgICBndGtfcGFp
bnRfYm94KHN0eWxlLCBkcmF3YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RBVEVf
Tk9STUFMLCBHVEtfU0hBRE9XX0VUQ0hFRF9PVVQsCisgICAgICAgICAgICAgICAgICAgICAgY2xp
cHJlY3QsIGdNZW51U2VwYXJhdG9yV2lkZ2V0LCAiaHNlcGFyYXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC0+eCArIGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tuZXNz
LAorICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gc2VwYXJh
dG9yX2hlaWdodCAtIHN0eWxlLT55dGhpY2tuZXNzKSAvIDIsCisgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC0+d2lkdGggLSAyICogKGhvcml6b250YWxfcGFkZGluZyArIHN0eWxlLT54dGhpY2tu
ZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3JfaGVpZ2h0KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBwYWludF9oZWlnaHQgPSBzdHlsZS0+eXRoaWNrbmVzczsKKyAgICAgICAg
aWYgKHBhaW50X2hlaWdodCA+IHJlY3QtPmhlaWdodCkKKyAgICAgICAgICAgIHBhaW50X2hlaWdo
dCA9IHJlY3QtPmhlaWdodDsKKworICAgICAgICBndGtfcGFpbnRfaGxpbmUoc3R5bGUsIGRyYXdh
YmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUQVRFX05PUk1BTCwgY2xpcHJlY3Qs
IGdNZW51U2VwYXJhdG9yV2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lbnVpdGVt
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyBob3Jpem9udGFsX3BhZGRpbmcg
KyBzdHlsZS0+eHRoaWNrbmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnggKyBy
ZWN0LT53aWR0aCAtIGhvcml6b250YWxfcGFkZGluZyAtIHN0eWxlLT54dGhpY2tuZXNzIC0gMSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QtPnkgKyAocmVjdC0+aGVpZ2h0IC0gc3R5bGUt
Pnl0aGlja25lc3MpIC8gMik7CisgICAgfQorCisgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsK
K30KKworc3RhdGljIGdpbnQKIG1vel9ndGtfbWVudV9pdGVtX3BhaW50KEdka0RyYXdhYmxlKiBk
cmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgR2Rr
UmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRl
LAorICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmbGFncywgR3RrVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIEd0a1NoYWRvd1R5cGUgc2hh
ZG93X3R5cGU7CisgICAgR3RrV2lkZ2V0KiBpdGVtX3dpZGdldDsKIAogICAgIGlmIChzdGF0ZS0+
aW5Ib3ZlciAmJiAhc3RhdGUtPmRpc2FibGVkKSB7Ci0gICAgICAgIGVuc3VyZV9tZW51X2l0ZW1f
d2lkZ2V0KCk7Ci0KLSAgICAgICAgc3R5bGUgPSBnTWVudUl0ZW1XaWRnZXQtPnN0eWxlOworICAg
ICAgICBpZiAoZmxhZ3MgJiBNT1pfVE9QTEVWRUxfTUVOVV9JVEVNKSB7CisgICAgICAgICAgICBl
bnN1cmVfbWVudV9iYXJfaXRlbV93aWRnZXQoKTsKKyAgICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0g
Z01lbnVCYXJJdGVtV2lkZ2V0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZW5zdXJl
X21lbnVfaXRlbV93aWRnZXQoKTsKKyAgICAgICAgICAgIGl0ZW1fd2lkZ2V0ID0gZ01lbnVJdGVt
V2lkZ2V0OworICAgICAgICB9CisgICAgICAgIGd0a193aWRnZXRfc2V0X2RpcmVjdGlvbihpdGVt
X3dpZGdldCwgZGlyZWN0aW9uKTsKKyAgICAgICAgCisgICAgICAgIHN0eWxlID0gaXRlbV93aWRn
ZXQtPnN0eWxlOwogICAgICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCByZWN0
LT55KTsKICAgICAgICAgaWYgKGhhdmVfbWVudV9zaGFkb3dfdHlwZSkgewotICAgICAgICAgICAg
Z3RrX3dpZGdldF9zdHlsZV9nZXQoZ01lbnVJdGVtV2lkZ2V0LCAic2VsZWN0ZWRfc2hhZG93X3R5
cGUiLAorICAgICAgICAgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoaXRlbV93aWRnZXQsICJzZWxl
Y3RlZF9zaGFkb3dfdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hh
ZG93X3R5cGUsIE5VTEwpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc2hhZG93X3R5
cGUgPSBHVEtfU0hBRE9XX09VVDsKICAgICAgICAgfQogCiAgICAgICAgIGd0a19wYWludF9ib3go
c3R5bGUsIGRyYXdhYmxlLCBHVEtfU1RBVEVfUFJFTElHSFQsIHNoYWRvd190eXBlLAotICAgICAg
ICAgICAgICAgICAgICAgIGNsaXByZWN0LCBnTWVudUl0ZW1XaWRnZXQsICJtZW51aXRlbSIsIHJl
Y3QtPngsIHJlY3QtPnksCisgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIGl0ZW1fd2lk
Z2V0LCAibWVudWl0ZW0iLCByZWN0LT54LCByZWN0LT55LAogICAgICAgICAgICAgICAgICAgICAg
IHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwogICAgIH0KIApAQCAtMTQ1Niw0MCArMjA5Myw2
NyBAQCBtb3pfZ3RrX21lbnVfaXRlbV9wYWludChHZGtEcmF3YWJsZSogZHJhCiB9CiAKIHN0YXRp
YyBnaW50Cittb3pfZ3RrX21lbnVfYXJyb3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBH
ZGtSZWN0YW5nbGUqIHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xl
KiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEd0a1N0eWxlKiBzdHlsZTsK
KyAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CisK
KyAgICBlbnN1cmVfbWVudV9pdGVtX3dpZGdldCgpOworICAgIGd0a193aWRnZXRfc2V0X2RpcmVj
dGlvbihnTWVudUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisKKyAgICBzdHlsZSA9IGdNZW51SXRl
bVdpZGdldC0+c3R5bGU7CisKKyAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCByZWN0LT54LCBy
ZWN0LT55KTsKKyAgICBndGtfcGFpbnRfYXJyb3coc3R5bGUsIGRyYXdhYmxlLCBzdGF0ZV90eXBl
LAorICAgICAgICAgICAgICAgICAgICAoc3RhdGVfdHlwZSA9PSBHVEtfU1RBVEVfUFJFTElHSFQp
ID8gR1RLX1NIQURPV19JTiA6IEdUS19TSEFET1dfT1VULAorICAgICAgICAgICAgICAgICAgICBj
bGlwcmVjdCwgZ01lbnVJdGVtV2lkZ2V0LCAibWVudWl0ZW0iLAorICAgICAgICAgICAgICAgICAg
ICAoZGlyZWN0aW9uID09IEdUS19URVhUX0RJUl9MVFIpID8gR1RLX0FSUk9XX1JJR0hUIDogR1RL
X0FSUk9XX0xFRlQsCisgICAgICAgICAgICAgICAgICAgIFRSVUUsIHJlY3QtPngsIHJlY3QtPnks
IHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOworCisgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VT
UzsKK30KKworc3RhdGljIGdpbnQKIG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSwgR2RrUmVjdGFuZ2xlKiByZWN0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrV2lkZ2V0U3RhdGUqIHN0YXRl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gY2hlY2tlZCwgZ2Jvb2xl
YW4gaXNyYWRpbykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGNoZWNr
ZWQsIGdib29sZWFuIGlzcmFkaW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZTsK
KyAgICBHdGtTdGF0ZVR5cGUgc3RhdGVfdHlwZSA9IENvbnZlcnRHdGtTdGF0ZShzdGF0ZSk7CiAg
ICAgR3RrU3R5bGUqIHN0eWxlOwogICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93X3R5cGUgPSAoY2hl
Y2tlZCk/R1RLX1NIQURPV19JTjpHVEtfU0hBRE9XX09VVDsKICAgICBnaW50IG9mZnNldDsKLSAg
ICBnaW50IGluZGljYXRvcl9zaXplID0gODsgLyogaXQncyBhIGZpeGVkIHZhbHVlIGluIGd0ayAy
LjIgKi8KKyAgICBnaW50IGluZGljYXRvcl9zaXplOwogICAgIGdpbnQgeCwgeTsKLSAgICAKLSAg
ICBtb3pfZ3RrX21lbnVfaXRlbV9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRl
KTsKLSAgICAKKworICAgIG1vel9ndGtfbWVudV9pdGVtX3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUsIEZBTFNFLCBkaXJlY3Rpb24pOworCiAgICAgZW5zdXJlX2NoZWNrX21l
bnVfaXRlbV93aWRnZXQoKTsKKyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ0NoZWNrTWVu
dUl0ZW1XaWRnZXQsIGRpcmVjdGlvbik7CisKKyAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCAoZ0No
ZWNrTWVudUl0ZW1XaWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpY2F0b3It
c2l6ZSIsICZpbmRpY2F0b3Jfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CiAKICAgICBpZiAoY2hlY2tlZCB8fCBHVEtfQ0hFQ0tfTUVOVV9JVEVNKGdDaGVja01lbnVJdGVt
V2lkZ2V0KS0+YWx3YXlzX3Nob3dfdG9nZ2xlKSB7CiAgICAgICBzdHlsZSA9IGdDaGVja01lbnVJ
dGVtV2lkZ2V0LT5zdHlsZTsKLSAgICAgIAotICAgICAgaWYgKHN0YXRlLT5pbkhvdmVyICYmICFz
dGF0ZS0+ZGlzYWJsZWQpIHsKLSAgICAgICAgc3RhdGVfdHlwZSA9IEdUS19TVEFURV9QUkVMSUdI
VDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRlX3R5cGUgPSBHVEtfU1RBVEVfTk9STUFM
OwotICAgICAgfQotICAgICAgCi0gICAgICBvZmZzZXQgPSBHVEtfQ09OVEFJTkVSKGdDaGVja01l
bnVJdGVtV2lkZ2V0KS0+Ym9yZGVyX3dpZHRoICsgCisKKyAgICAgIG9mZnNldCA9IEdUS19DT05U
QUlORVIoZ0NoZWNrTWVudUl0ZW1XaWRnZXQpLT5ib3JkZXJfd2lkdGggKwogICAgICAgICAgICAg
IGdDaGVja01lbnVJdGVtV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzcyArIDI7Ci0gICAgICAKLSAg
ICAgIHggPSByZWN0LT54ICsgb2Zmc2V0OworCisgICAgICAvKiB3aGlsZSBub3JtYWxseSB0aGlz
ICIzIiB3b3VsZCBiZSB0aGUgaG9yaXpvbnRhbC1wYWRkaW5nIHN0eWxlIHZhbHVlLCBwYXNzaW5n
IGl0IHRvIEdlY2tvCisgICAgICAgICBhcyB0aGUgdmFsdWUgb2YgbWVudWl0ZW0gcGFkZGluZyBj
YXVzZXMgcHJvYmxlbXMgd2l0aCBkcm9wZG93bnMgKGJ1ZyA0MDYxMjkpLCBzbyBpbiB0aGUgbWVu
dS5jc3MKKyAgICAgICAgIGZpbGUgdGhpcyBpcyBoYXJkY29kZWQgYXMgM3B4LiBZZXMgaXQgc3Vj
a3MsIGJ1dCB3ZSBkb24ndCByZWFsbHkgaGF2ZSBhIGNob2ljZS4gKi8KKyAgICAgIHggPSAoZGly
ZWN0aW9uID09IEdUS19URVhUX0RJUl9SVEwpID8KKyAgICAgICAgICAgIHJlY3QtPndpZHRoIC0g
aW5kaWNhdG9yX3NpemUgLSBvZmZzZXQgLSAzOiByZWN0LT54ICsgb2Zmc2V0ICsgMzsKICAgICAg
IHkgPSByZWN0LT55ICsgKHJlY3QtPmhlaWdodCAtIGluZGljYXRvcl9zaXplKSAvIDI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAorCiAgICAgICBUU09mZnNldFN0eWxlR0NzKHN0eWxlLCB4LCB5
KTsKICAgICAgIGd0a19jaGVja19tZW51X2l0ZW1fc2V0X2FjdGl2ZShHVEtfQ0hFQ0tfTUVOVV9J
VEVNKGdDaGVja01lbnVJdGVtV2lkZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja2VkKTsKLSAgICAgIAorCiAgICAgICBpZiAoaXNyYWRpbykgewogICAgICAg
ICBndGtfcGFpbnRfb3B0aW9uKHN0eWxlLCBkcmF3YWJsZSwgc3RhdGVfdHlwZSwgc2hhZG93X3R5
cGUsIGNsaXByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGdDaGVja01lbnVJdGVtV2lk
Z2V0LCAib3B0aW9uIiwKQEAgLTE1MDAsMTcgKzIxNjQsMTkgQEAgbW96X2d0a19jaGVja19tZW51
X2l0ZW1fcGFpbnQoR2RrRHJhd2FibAogICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgaW5k
aWNhdG9yX3NpemUsIGluZGljYXRvcl9zaXplKTsKICAgICAgIH0KICAgICB9Ci0gICAgCisKICAg
ICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogfQogCiBzdGF0aWMgZ2ludAogbW96X2d0a193aW5k
b3dfcGFpbnQoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBHZGtSZWN0YW5nbGUqIHJlY3QsCi0gICAg
ICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIGNsaXByZWN0KQorICAgICAgICAgICAgICAg
ICAgICAgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24p
CiB7CiAgICAgR3RrU3R5bGUqIHN0eWxlOwogCiAgICAgZW5zdXJlX3dpbmRvd193aWRnZXQoKTsK
KyAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24oZ1Byb3RvV2luZG93LCBkaXJlY3Rpb24pOwor
CiAgICAgc3R5bGUgPSBnUHJvdG9XaW5kb3ctPnN0eWxlOwogCiAgICAgVFNPZmZzZXRTdHlsZUdD
cyhzdHlsZSwgcmVjdC0+eCwgcmVjdC0+eSk7CkBAIC0xNTIzLDcgKzIxODksOCBAQCBtb3pfZ3Rr
X3dpbmRvd19wYWludChHZGtEcmF3YWJsZSogZHJhd2FiCiAKIGdpbnQKIG1vel9ndGtfZ2V0X3dp
ZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCog
dG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50KiByaWdodCwgZ2ludCogYm90dG9t
LCBnYm9vbGVhbiBpbmh0bWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQqIHJpZ2h0
LCBnaW50KiBib3R0b20sIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiBpbmh0bWwpCiB7CiAgICAgR3RrV2lkZ2V0KiB3OwogCkBA
IC0xNTQxLDcgKzIyMDgsNyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lk
Z2V0CiAgICAgICAgICAgICAvKiBEb24ndCBhZGQgdGhpcyBwYWRkaW5nIGluIEhUTUwsIG90aGVy
d2lzZSB0aGUgYnV0dG9ucyB3aWxsCiAgICAgICAgICAgICAgICBiZWNvbWUgdG9vIGJpZyBhbmQg
c3R1ZmYgdGhlIGxheW91dC4gKi8KICAgICAgICAgICAgIGlmICghaW5odG1sKSB7Ci0gICAgICAg
ICAgICAgICAgbW96X2d0a19idXR0b25fZ2V0X2ZvY3VzKCZpbnRlcmlvcl9mb2N1cywgJmZvY3Vz
X3dpZHRoLCAmZm9jdXNfcGFkKTsKKyAgICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRf
Zm9jdXMoZ0J1dHRvbldpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lkdGgsICZmb2N1
c19wYWQpOwogICAgICAgICAgICAgICAgICpsZWZ0ICs9IGZvY3VzX3dpZHRoICsgZm9jdXNfcGFk
ICsgY2hpbGRfc3BhY2luZzsKICAgICAgICAgICAgICAgICAqcmlnaHQgKz0gZm9jdXNfd2lkdGgg
KyBmb2N1c19wYWQgKyBjaGlsZF9zcGFjaW5nOwogICAgICAgICAgICAgICAgICp0b3AgKz0gZm9j
dXNfd2lkdGggKyBmb2N1c19wYWQgKyBjaGlsZF9zcGFjaW5nOwpAQCAtMTU2Myw2ICsyMjMwLDQ2
IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXQKICAgICAgICAgZW5z
dXJlX2VudHJ5X3dpZGdldCgpOwogICAgICAgICB3ID0gZ0VudHJ5V2lkZ2V0OwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1PWl9HVEtfVFJFRVZJRVc6CisgICAgICAgIGVuc3VyZV90cmVlX3Zp
ZXdfd2lkZ2V0KCk7CisgICAgICAgIHcgPSBnVHJlZVZpZXdXaWRnZXQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTU9aX0dUS19UUkVFX0hFQURFUl9DRUxMOgorICAgICAgICB7CisgICAgICAg
ICAgICAvKiBBIFRyZWUgSGVhZGVyIGluIEdUSyBpcyBqdXN0IGEgZGlmZmVyZW50IHN0eWxlZCBi
dXR0b24gCisgICAgICAgICAgICAgKiBJdCBtdXN0IGJlIHBsYWNlZCBpbiBhIFRyZWVWaWV3IGZv
ciBnZXR0aW5nIHRoZSBjb3JyZWN0IHN0eWxlCisgICAgICAgICAgICAgKiBhc3NpZ25lZC4KKyAg
ICAgICAgICAgICAqIFRoYXQgaXMgd2h5IHRoZSBmb2xsb3dpbmcgY29kZSBpcyB0aGUgc2FtZSBh
cyBmb3IgTU9aX0dUS19CVVRUT04uICAKKyAgICAgICAgICAgICAqICovCisKKyAgICAgICAgICAg
IC8qIENvbnN0YW50IGluIGd0a2J1dHRvbi5jICovCisgICAgICAgICAgICBzdGF0aWMgY29uc3Qg
Z2ludCBjaGlsZF9zcGFjaW5nID0gMTsKKyAgICAgICAgICAgIGdib29sZWFuIGludGVyaW9yX2Zv
Y3VzOworICAgICAgICAgICAgZ2ludCBmb2N1c193aWR0aCwgZm9jdXNfcGFkOworCisgICAgICAg
ICAgICBlbnN1cmVfdHJlZV9oZWFkZXJfY2VsbF93aWRnZXQoKTsKKyAgICAgICAgICAgICpsZWZ0
ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSBHVEtfQ09OVEFJTkVSKGdUcmVlSGVhZGVyQ2Vs
bFdpZGdldCktPmJvcmRlcl93aWR0aDsKKworICAgICAgICAgICAgbW96X2d0a193aWRnZXRfZ2V0
X2ZvY3VzKGdUcmVlSGVhZGVyQ2VsbFdpZGdldCwgJmludGVyaW9yX2ZvY3VzLCAmZm9jdXNfd2lk
dGgsICZmb2N1c19wYWQpOyAgICAgCisgICAgICAgICAgICAqbGVmdCArPSBmb2N1c193aWR0aCAr
IGZvY3VzX3BhZDsKKyAgICAgICAgICAgICpyaWdodCArPSBmb2N1c193aWR0aCArIGZvY3VzX3Bh
ZDsKKyAgICAgICAgICAgICp0b3AgKz0gZm9jdXNfd2lkdGggKyBmb2N1c19wYWQgKyBjaGlsZF9z
cGFjaW5nOworICAgICAgICAgICAgKmJvdHRvbSArPSBmb2N1c193aWR0aCArIGZvY3VzX3BhZCAr
IGNoaWxkX3NwYWNpbmc7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICpsZWZ0ICs9IGdUcmVl
SGVhZGVyQ2VsbFdpZGdldC0+c3R5bGUtPnh0aGlja25lc3M7CisgICAgICAgICAgICAqcmlnaHQg
Kz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eHRoaWNrbmVzczsKKyAgICAgICAgICAg
ICp0b3AgKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVzczsKKyAgICAg
ICAgICAgICpib3R0b20gKz0gZ1RyZWVIZWFkZXJDZWxsV2lkZ2V0LT5zdHlsZS0+eXRoaWNrbmVz
czsKKyAgICAgICAgICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7CisgICAgICAgIH0KKyAgICBj
YXNlIE1PWl9HVEtfVFJFRV9IRUFERVJfU09SVEFSUk9XOgorICAgICAgICBlbnN1cmVfdHJlZV9o
ZWFkZXJfY2VsbF93aWRnZXQoKTsKKyAgICAgICAgdyA9IGdUcmVlSGVhZGVyU29ydEFycm93V2lk
Z2V0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfRFJPUERPV05fRU5UUlk6Cisg
ICAgICAgIGVuc3VyZV9kcm9wZG93bl9lbnRyeV93aWRnZXQoKTsKKyAgICAgICAgdyA9IGdEcm9w
ZG93bkVudHJ5V2lkZ2V0OworICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJPUERP
V05fQVJST1c6CiAgICAgICAgIGVuc3VyZV9hcnJvd193aWRnZXQoKTsKICAgICAgICAgdyA9IGdE
cm9wZG93bkJ1dHRvbldpZGdldDsKQEAgLTE1ODIsNyArMjI4OSw3IEBAIG1vel9ndGtfZ2V0X3dp
ZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXQKICAgICAgICAgICAgIG1vel9ndGtfb3B0aW9uX21l
bnVfZ2V0X21ldHJpY3MoJmludGVyaW9yX2ZvY3VzLCAmaW5kaWNhdG9yX3NpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmRpY2F0b3Jfc3BhY2luZywg
JmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKIAotICAgICAgICAgICAgaWYgKGd0a193aWRnZXRf
Z2V0X2RpcmVjdGlvbihnT3B0aW9uTWVudVdpZGdldCkgPT0gR1RLX1RFWFRfRElSX1JUTCkKKyAg
ICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX1JUTCkKICAgICAgICAgICAg
ICAgICAqbGVmdCArPSBpbmRpY2F0b3Jfc3BhY2luZy5sZWZ0ICsgaW5kaWNhdG9yX3NpemUud2lk
dGggKyBpbmRpY2F0b3Jfc3BhY2luZy5yaWdodDsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAqcmlnaHQgKz0gaW5kaWNhdG9yX3NwYWNpbmcubGVmdCArIGluZGljYXRvcl9zaXpl
LndpZHRoICsgaW5kaWNhdG9yX3NwYWNpbmcucmlnaHQ7CkBAIC0xNTk2LDYgKzIzMDMsNyBAQCBt
b3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0CiAgICAgICAgIGVuc3VyZV9w
cm9ncmVzc193aWRnZXQoKTsKICAgICAgICAgdyA9IGdQcm9ncmVzc1dpZGdldDsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fRU5UUlk6CiAgICAgY2FzZSBNT1pf
R1RLX1NQSU5CVVRUT05fVVA6CiAgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fRE9XTjoKICAg
ICAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7CkBAIC0xNjIxLDEyICsyMzI5LDE2IEBAIG1vel9n
dGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXQKIAogICAgICAgICAgICAgLyogSWYg
dGhlIGZvY3VzIGlzIGludGVyaW9yLCB0aGVuIHRoZSBsYWJlbCBoYXMgYSBib3JkZXIgb2YKICAg
ICAgICAgICAgICAgIChmb2N1c193aWR0aCArIGZvY3VzX3BhZCkuICovCi0gICAgICAgICAgICBp
ZiAod2lkZ2V0ID09IE1PWl9HVEtfQ0hFQ0tCVVRUT05fTEFCRUwpCi0gICAgICAgICAgICAgICAg
bW96X2d0a19jaGVja2JveF9nZXRfZm9jdXMoJmludGVyaW9yX2ZvY3VzLAorICAgICAgICAgICAg
aWYgKHdpZGdldCA9PSBNT1pfR1RLX0NIRUNLQlVUVE9OX0xBQkVMKSB7CisgICAgICAgICAgICAg
ICAgZW5zdXJlX2NoZWNrYm94X3dpZGdldCgpOworICAgICAgICAgICAgICAgIG1vel9ndGtfd2lk
Z2V0X2dldF9mb2N1cyhnQ2hlY2tib3hXaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19w
YWQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1vel9ndGtfcmFkaW9fZ2V0
X2ZvY3VzKCZpbnRlcmlvcl9mb2N1cywKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIGVuc3VyZV9yYWRpb2J1dHRvbl93aWRnZXQoKTsKKyAgICAgICAg
ICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ1JhZGlvYnV0dG9uV2lkZ2V0LCAmaW50
ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZv
Y3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYg
KGludGVyaW9yX2ZvY3VzKQogICAgICAgICAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9
ICpib3R0b20gPSAoZm9jdXNfd2lkdGggKyBmb2N1c19wYWQpOwpAQCAtMTY0NSwxMSArMjM1Nywx
MyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0CiAgICAgICAgICAg
ICAvKiBJZiB0aGUgZm9jdXMgaXMgX25vdF8gaW50ZXJpb3IsIHRoZW4gdGhlIGNvbnRhaW5lciBo
YXMgYSBib3JkZXIKICAgICAgICAgICAgICAgIG9mIChmb2N1c193aWR0aCArIGZvY3VzX3BhZCku
ICovCiAgICAgICAgICAgICBpZiAod2lkZ2V0ID09IE1PWl9HVEtfQ0hFQ0tCVVRUT05fQ09OVEFJ
TkVSKSB7Ci0gICAgICAgICAgICAgICAgbW96X2d0a19jaGVja2JveF9nZXRfZm9jdXMoJmludGVy
aW9yX2ZvY3VzLAorICAgICAgICAgICAgICAgIGVuc3VyZV9jaGVja2JveF93aWRnZXQoKTsKKyAg
ICAgICAgICAgICAgICBtb3pfZ3RrX3dpZGdldF9nZXRfZm9jdXMoZ0NoZWNrYm94V2lkZ2V0LCAm
aW50ZXJpb3JfZm9jdXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJmZvY3VzX3dpZHRoLCAmZm9jdXNfcGFkKTsKICAgICAgICAgICAgICAgICB3ID0gZ0NoZWNr
Ym94V2lkZ2V0OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtb3pfZ3Rr
X3JhZGlvX2dldF9mb2N1cygmaW50ZXJpb3JfZm9jdXMsCisgICAgICAgICAgICAgICAgZW5zdXJl
X3JhZGlvYnV0dG9uX3dpZGdldCgpOworICAgICAgICAgICAgICAgIG1vel9ndGtfd2lkZ2V0X2dl
dF9mb2N1cyhnUmFkaW9idXR0b25XaWRnZXQsICZpbnRlcmlvcl9mb2N1cywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9jdXNfd2lkdGgsICZmb2N1c19wYWQpOwog
ICAgICAgICAgICAgICAgIHcgPSBnUmFkaW9idXR0b25XaWRnZXQ7CiAgICAgICAgICAgICB9CkBA
IC0xNjc1LDYgKzIzODksNyBAQCBtb3pfZ3RrX2dldF93aWRnZXRfYm9yZGVyKEd0a1RoZW1lV2lk
Z2V0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19NRU5VSVRFTToKICAgICAgICAg
ZW5zdXJlX21lbnVfaXRlbV93aWRnZXQoKTsKKyAgICAgICAgZW5zdXJlX21lbnVfYmFyX2l0ZW1f
d2lkZ2V0KCk7CiAgICAgICAgIHcgPSBnTWVudUl0ZW1XaWRnZXQ7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTU9aX0dUS19DSEVDS01FTlVJVEVNOgpAQCAtMTY4Miw3ICsyMzk3LDEzIEBAIG1v
el9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXQKICAgICAgICAgZW5zdXJlX2No
ZWNrX21lbnVfaXRlbV93aWRnZXQoKTsKICAgICAgICAgdyA9IGdDaGVja01lbnVJdGVtV2lkZ2V0
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfVEFCOgorICAgICAgICBlbnN1cmVf
dGFiX3dpZGdldCgpOworICAgICAgICB3ID0gZ1RhYldpZGdldDsKKyAgICAgICAgYnJlYWs7CiAg
ICAgLyogVGhlc2Ugd2lkZ2V0cyBoYXZlIG5vIGJvcmRlcnMsIHNpbmNlIHRoZXkgYXJlIG5vdCBj
b250YWluZXJzLiAqLworICAgIGNhc2UgTU9aX0dUS19TUExJVFRFUl9IT1JJWk9OVEFMOgorICAg
IGNhc2UgTU9aX0dUS19TUExJVFRFUl9WRVJUSUNBTDoKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tC
VVRUT046CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9OOgogICAgIGNhc2UgTU9aX0dUS19T
Q1JPTExCQVJfQlVUVE9OOgpAQCAtMTY5NCwxMCArMjQxNSwxNiBAQCBtb3pfZ3RrX2dldF93aWRn
ZXRfYm9yZGVyKEd0a1RoZW1lV2lkZ2V0CiAgICAgY2FzZSBNT1pfR1RLX1NDQUxFX1RIVU1CX1ZF
UlRJQ0FMOgogICAgIGNhc2UgTU9aX0dUS19HUklQUEVSOgogICAgIGNhc2UgTU9aX0dUS19QUk9H
UkVTU19DSFVOSzoKLSAgICBjYXNlIE1PWl9HVEtfVEFCOgorICAgIGNhc2UgTU9aX0dUS19FWFBB
TkRFUjoKKyAgICBjYXNlIE1PWl9HVEtfVE9PTEJBUl9TRVBBUkFUT1I6CisgICAgY2FzZSBNT1pf
R1RLX01FTlVTRVBBUkFUT1I6CiAgICAgLyogVGhlc2Ugd2lkZ2V0cyBoYXZlIG5vIGJvcmRlcnMu
Ki8KKyAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTjoKICAgICBjYXNlIE1PWl9HVEtfVE9PTFRJ
UDoKICAgICBjYXNlIE1PWl9HVEtfV0lORE9XOgorICAgIGNhc2UgTU9aX0dUS19SRVNJWkVSOgor
ICAgIGNhc2UgTU9aX0dUS19NRU5VQVJST1c6CisgICAgY2FzZSBNT1pfR1RLX1RPT0xCQVJCVVRU
T05fQVJST1c6CiAgICAgICAgICpsZWZ0ID0gKnRvcCA9ICpyaWdodCA9ICpib3R0b20gPSAwOwog
ICAgICAgICByZXR1cm4gTU9aX0dUS19TVUNDRVNTOwogICAgIGRlZmF1bHQ6CkBAIC0xNzE0LDE5
ICsyNDQxLDg2IEBAIG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIoR3RrVGhlbWVXaWRnZXQKIGdp
bnQKIG1vel9ndGtfZ2V0X2Ryb3Bkb3duX2Fycm93X3NpemUoZ2ludCogd2lkdGgsIGdpbnQqIGhl
aWdodCkKIHsKKyAgICBjb25zdCBnaW50IG1pbl9hcnJvd19zaXplID0gMTU7CiAgICAgZW5zdXJl
X2Fycm93X3dpZGdldCgpOwogCiAgICAgLyoKICAgICAgKiBGaXJzdCBnZXQgdGhlIGJvcmRlciBv
ZiB0aGUgZHJvcGRvd24gYXJyb3csIHRoZW4gYWRkIGluIHRoZSByZXF1ZXN0ZWQKICAgICAgKiBz
aXplIG9mIHRoZSBhcnJvdy4gIE5vdGUgdGhhdCB0aGUgbWluaW11bSBhcnJvdyBzaXplIGlzIGZp
eGVkIGF0Ci0gICAgICogMTEgcGl4ZWxzLgorICAgICAqIDE1IHBpeGVscy4KICAgICAgKi8KIAog
ICAgICp3aWR0aCA9IDIgKiAoMSArIFhUSElDS05FU1MoZ0Ryb3Bkb3duQnV0dG9uV2lkZ2V0LT5z
dHlsZSkpOwotICAgICp3aWR0aCArPSAxMSArIEdUS19NSVNDKGdBcnJvd1dpZGdldCktPnhwYWQg
KiAyOworICAgICp3aWR0aCArPSBtaW5fYXJyb3dfc2l6ZSArIEdUS19NSVNDKGdBcnJvd1dpZGdl
dCktPnhwYWQgKiAyOwogCiAgICAgKmhlaWdodCA9IDIgKiAoMSArIFlUSElDS05FU1MoZ0Ryb3Bk
b3duQnV0dG9uV2lkZ2V0LT5zdHlsZSkpOwotICAgICpoZWlnaHQgKz0gMTEgKyBHVEtfTUlTQyhn
QXJyb3dXaWRnZXQpLT55cGFkICogMjsKKyAgICAqaGVpZ2h0ICs9IG1pbl9hcnJvd19zaXplICsg
R1RLX01JU0MoZ0Fycm93V2lkZ2V0KS0+eXBhZCAqIDI7CisKKyAgICByZXR1cm4gTU9aX0dUS19T
VUNDRVNTOworfQorCitnaW50Cittb3pfZ3RrX2dldF90b29sYmFyX3NlcGFyYXRvcl93aWR0aChn
aW50KiBzaXplKQoreworICAgIGdib29sZWFuIHdpZGVfc2VwYXJhdG9yczsKKyAgICBnaW50IHNl
cGFyYXRvcl93aWR0aDsKKyAgICBHdGtTdHlsZSogc3R5bGU7CisKKyAgICBlbnN1cmVfdG9vbGJh
cl93aWRnZXQoKTsKKworICAgIHN0eWxlID0gZ1Rvb2xiYXJXaWRnZXQtPnN0eWxlOworCisgICAg
Z3RrX3dpZGdldF9zdHlsZV9nZXQoZ1Rvb2xiYXJXaWRnZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgInNwYWNlLXNpemUiLCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ3aWRl
LXNlcGFyYXRvcnMiLCAgJndpZGVfc2VwYXJhdG9ycywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAic2VwYXJhdG9yLXdpZHRoIiwgJnNlcGFyYXRvcl93aWR0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKKworICAgIC8qIEp1c3QgaW4gY2FzZS4uLiAqLworICAgICpzaXplID0g
TUFYKCpzaXplLCAod2lkZV9zZXBhcmF0b3JzID8gc2VwYXJhdG9yX3dpZHRoIDogc3R5bGUtPnh0
aGlja25lc3MpKTsKKworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9CisKK2dpbnQKK21v
el9ndGtfZ2V0X2V4cGFuZGVyX3NpemUoZ2ludCogc2l6ZSkKK3sKKyAgICBlbnN1cmVfZXhwYW5k
ZXJfd2lkZ2V0KCk7CisgICAgZ3RrX3dpZGdldF9zdHlsZV9nZXQoZ0V4cGFuZGVyV2lkZ2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBhbmRlci1zaXplIiwgc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBOVUxMKTsKKworICAgIHJldHVybiBNT1pfR1RLX1NVQ0NFU1M7Cit9
CisKK2dpbnQKK21vel9ndGtfZ2V0X3RyZWV2aWV3X2V4cGFuZGVyX3NpemUoZ2ludCogc2l6ZSkK
K3sKKyAgICBlbnN1cmVfdHJlZV92aWV3X3dpZGdldCgpOworICAgIGd0a193aWRnZXRfc3R5bGVf
Z2V0KGdUcmVlVmlld1dpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwYW5kZXIt
c2l6ZSIsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICByZXR1
cm4gTU9aX0dUS19TVUNDRVNTOworfQorCitnaW50Cittb3pfZ3RrX2dldF9tZW51X3NlcGFyYXRv
cl9oZWlnaHQoZ2ludCAqc2l6ZSkKK3sKKyAgICBnYm9vbGVhbiB3aWRlX3NlcGFyYXRvcnM7Cisg
ICAgZ2ludCAgICAgc2VwYXJhdG9yX2hlaWdodDsKKworICAgIGVuc3VyZV9tZW51X3NlcGFyYXRv
cl93aWRnZXQoKTsKKworICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KGdNZW51U2VwYXJhdG9yV2lk
Z2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkZS1zZXBhcmF0b3JzIiwgICZ3aWRl
X3NlcGFyYXRvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXBhcmF0b3ItaGVpZ2h0
IiwgJnNlcGFyYXRvcl9oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwor
CisgICAgaWYgKHdpZGVfc2VwYXJhdG9ycykKKyAgICAgICAgKnNpemUgPSBzZXBhcmF0b3JfaGVp
Z2h0ICsgZ01lbnVTZXBhcmF0b3JXaWRnZXQtPnN0eWxlLT55dGhpY2tuZXNzOworICAgIGVsc2UK
KyAgICAgICAgKnNpemUgPSBnTWVudVNlcGFyYXRvcldpZGdldC0+c3R5bGUtPnl0aGlja25lc3Mg
KiAyOwogCiAgICAgcmV0dXJuIE1PWl9HVEtfU1VDQ0VTUzsKIH0KQEAgLTE3NjgsMTA3ICsyNTYy
LDE5MSBAQCBtb3pfZ3RrX2dldF9zY3JvbGxiYXJfbWV0cmljcyhNb3pHdGtTY3JvCiBnaW50CiBt
b3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdpZGdldFR5cGUgd2lkZ2V0LCBHZGtEcmF3YWJs
ZSogZHJhd2FibGUsCiAgICAgICAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUqIHJlY3QsIEdk
a1JlY3RhbmdsZSogY2xpcHJlY3QsCi0gICAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXRTdGF0
ZSogc3RhdGUsIGdpbnQgZmxhZ3MpCisgICAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXRTdGF0
ZSogc3RhdGUsIGdpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICBHdGtUZXh0RGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBzd2l0Y2ggKHdpZGdldCkgewogICAgIGNhc2UgTU9aX0dU
S19CVVRUT046CisgICAgICAgIGlmIChzdGF0ZS0+ZGVwcmVzc2VkKSB7CisgICAgICAgICAgICBl
bnN1cmVfdG9nZ2xlX2J1dHRvbl93aWRnZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBtb3pfZ3Rr
X2J1dHRvbl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtSZWxpZWZTdHlsZSkgZmxhZ3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1RvZ2dsZUJ1dHRvbldpZGdl
dCwgZGlyZWN0aW9uKTsKKyAgICAgICAgfQogICAgICAgICBlbnN1cmVfYnV0dG9uX3dpZGdldCgp
OwogICAgICAgICByZXR1cm4gbW96X2d0a19idXR0b25fcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNs
aXByZWN0LCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtS
ZWxpZWZTdHlsZSkgZmxhZ3MsIGdCdXR0b25XaWRnZXQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKEd0a1JlbGllZlN0eWxlKSBmbGFncywgZ0J1dHRvbldpZGdldCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTjoKICAgICBjYXNlIE1PWl9HVEtfUkFE
SU9CVVRUT046CiAgICAgICAgIHJldHVybiBtb3pfZ3RrX3RvZ2dsZV9wYWludChkcmF3YWJsZSwg
cmVjdCwgY2xpcHJlY3QsIHN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdib29sZWFuKSBmbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh3aWRnZXQgPT0gTU9aX0dUS19SQURJT0JVVFRPTikpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdpZGdldCA9PSBNT1pfR1RLX1JBRElPQlVUVE9OKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTU9aX0dUS19TQ1JPTExCQVJfQlVUVE9OOgotICAgICAgICByZXR1cm4gbW96X2d0
a19zY3JvbGxiYXJfYnV0dG9uX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgKEd0a0Fycm93
VHlwZSkgZmxhZ3MpOworICAgICAgICByZXR1cm4gbW96X2d0a19zY3JvbGxiYXJfYnV0dG9uX3Bh
aW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a1Njcm9sbGJhckJ1dHRvbkZsYWdzKSBmbGFn
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rp
b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NST0xMQkFSX1RSQUNLX0hP
UklaT05UQUw6CiAgICAgY2FzZSBNT1pfR1RLX1NDUk9MTEJBUl9UUkFDS19WRVJUSUNBTDoKICAg
ICAgICAgcmV0dXJuIG1vel9ndGtfc2Nyb2xsYmFyX3Ryb3VnaF9wYWludCh3aWRnZXQsIGRyYXdh
YmxlLCByZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsaXByZWN0LCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpcHJlY3QsIHN0YXRlLCBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1PWl9HVEtfU0NST0xMQkFSX1RIVU1CX0hPUklaT05UQUw6CiAgICAgY2FzZSBNT1pf
R1RLX1NDUk9MTEJBUl9USFVNQl9WRVJUSUNBTDoKICAgICAgICAgcmV0dXJuIG1vel9ndGtfc2Ny
b2xsYmFyX3RodW1iX3BhaW50KHdpZGdldCwgZHJhd2FibGUsIHJlY3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwcmVjdCwgc3RhdGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcHJlY3QsIHN0YXRlLCBk
aXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfSE9SSVpP
TlRBTDoKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfVkVSVElDQUw6Ci0gICAgICAgIHJldHVybiBt
b3pfZ3RrX3NjYWxlX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIChHdGtP
cmllbnRhdGlvbikgZmxhZ3MpOworICAgICAgICByZXR1cm4gbW96X2d0a19zY2FsZV9wYWludChk
cmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoR3RrT3JpZW50YXRpb24pIGZsYWdzLCBkaXJlY3Rpb24pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1PWl9HVEtfU0NBTEVfVEhVTUJfSE9SSVpPTlRBTDoKICAgICBjYXNl
IE1PWl9HVEtfU0NBTEVfVEhVTUJfVkVSVElDQUw6Ci0gICAgICAgIHJldHVybiBtb3pfZ3RrX3Nj
YWxlX3RodW1iX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsIChHdGtPcmll
bnRhdGlvbikgZmxhZ3MpOworICAgICAgICByZXR1cm4gbW96X2d0a19zY2FsZV90aHVtYl9wYWlu
dChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoR3RrT3JpZW50YXRpb24pIGZsYWdzLCBkaXJlY3Rpb24pOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTjoKKyAgICAgICAgcmV0
dXJuIG1vel9ndGtfc3Bpbl9wYWludChkcmF3YWJsZSwgcmVjdCwgZGlyZWN0aW9uKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1NQSU5CVVRUT05fVVA6CiAgICAgY2FzZSBNT1pf
R1RLX1NQSU5CVVRUT05fRE9XTjoKLSAgICAgICAgcmV0dXJuIG1vel9ndGtfc3Bpbl9wYWludChk
cmF3YWJsZSwgcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0
ID09IE1PWl9HVEtfU1BJTkJVVFRPTl9ET1dOKSwgc3RhdGUpOworICAgICAgICByZXR1cm4gbW96
X2d0a19zcGluX3VwZG93bl9wYWludChkcmF3YWJsZSwgcmVjdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHdpZGdldCA9PSBNT1pfR1RLX1NQSU5CVVRUT05fRE9X
TiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLCBkaXJl
Y3Rpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfU1BJTkJVVFRPTl9FTlRS
WToKKyAgICAgICAgZW5zdXJlX3NwaW5fd2lkZ2V0KCk7CisgICAgICAgIHJldHVybiBtb3pfZ3Rr
X2VudHJ5X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdTcGluV2lkZ2V0LCBkaXJlY3Rpb24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfR1JJUFBFUjoKLSAgICAgICAgcmV0dXJuIG1vel9n
dGtfZ3JpcHBlcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlKTsKKyAgICAg
ICAgcmV0dXJuIG1vel9ndGtfZ3JpcHBlcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3Qs
IHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTU9aX0dUS19UUkVFVklFVzoKKyAgICAgICAgcmV0
dXJuIG1vel9ndGtfdHJlZXZpZXdfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBNT1pfR1RLX1RSRUVfSEVBREVSX0NFTEw6CisgICAgICAg
IHJldHVybiBtb3pfZ3RrX3RyZWVfaGVhZGVyX2NlbGxfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNs
aXByZWN0LCBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXJlY3Rpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfVFJFRV9I
RUFERVJfU09SVEFSUk9XOgorICAgICAgICByZXR1cm4gbW96X2d0a190cmVlX2hlYWRlcl9zb3J0
X2Fycm93X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrQXJyb3dUeXBlKSBmbGFn
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aXJlY3Rpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfVFJFRVZJRVdfRVhQ
QU5ERVI6CisgICAgICAgIHJldHVybiBtb3pfZ3RrX3RyZWV2aWV3X2V4cGFuZGVyX3BhaW50KGRy
YXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChHdGtFeHBhbmRlclN0eWxlKSBmbGFncywgZGlyZWN0aW9u
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNT1pfR1RLX0VYUEFOREVSOgorICAgICAgICBy
ZXR1cm4gbW96X2d0a19leHBhbmRlcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0
YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrRXhwYW5kZXJT
dHlsZSkgZmxhZ3MsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dU
S19FTlRSWToKLSAgICAgICAgcmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQoZHJhd2FibGUsIHJl
Y3QsIGNsaXByZWN0LCBzdGF0ZSk7CisgICAgICAgIGVuc3VyZV9lbnRyeV93aWRnZXQoKTsKKyAg
ICAgICAgcmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0
LCBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0VudHJ5V2lkZ2V0
LCBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfRFJPUERPV046
Ci0gICAgICAgIHJldHVybiBtb3pfZ3RrX29wdGlvbl9tZW51X3BhaW50KGRyYXdhYmxlLCByZWN0
LCBjbGlwcmVjdCwgc3RhdGUpOworICAgICAgICByZXR1cm4gbW96X2d0a19vcHRpb25fbWVudV9w
YWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1PWl9HVEtfRFJPUERPV05fQVJST1c6Ci0gICAgICAgIHJldHVybiBtb3pfZ3RrX2Ryb3Bk
b3duX2Fycm93X3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUpOworICAgICAg
ICByZXR1cm4gbW96X2d0a19kcm9wZG93bl9hcnJvd19wYWludChkcmF3YWJsZSwgcmVjdCwgY2xp
cHJlY3QsIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXJlY3Rpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfRFJPUERPV05f
RU5UUlk6CisgICAgICAgIGVuc3VyZV9kcm9wZG93bl9lbnRyeV93aWRnZXQoKTsKKyAgICAgICAg
cmV0dXJuIG1vel9ndGtfZW50cnlfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Ryb3Bkb3duRW50cnlXaWRn
ZXQsIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JV
VFRPTl9DT05UQUlORVI6CiAgICAgY2FzZSBNT1pfR1RLX1JBRElPQlVUVE9OX0NPTlRBSU5FUjoK
ICAgICAgICAgcmV0dXJuIG1vel9ndGtfY29udGFpbmVyX3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2lkZ2V0ID09IE1PWl9HVEtfUkFESU9CVVRUT05fQ09OVEFJTkVSKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0ID09IE1PWl9HVEtfUkFESU9CVVRUT05f
Q09OVEFJTkVSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVj
dGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19DSEVDS0JVVFRPTl9MQUJF
TDoKICAgICBjYXNlIE1PWl9HVEtfUkFESU9CVVRUT05fTEFCRUw6CiAgICAgICAgIHJldHVybiBt
b3pfZ3RrX3RvZ2dsZV9sYWJlbF9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpZGdldCA9PSBN
T1pfR1RLX1JBRElPQlVUVE9OX0xBQkVMKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2lkZ2V0ID09IE1PWl9HVEtfUkFESU9CVVRUT05fTEFCRUwpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX1RPT0xCQVI6Ci0gICAgICAgIHJldHVybiBtb3pf
Z3RrX3Rvb2xiYXJfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0KTsKKyAgICAgICAgcmV0
dXJuIG1vel9ndGtfdG9vbGJhcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIGRpcmVj
dGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTU9aX0dUS19UT09MQkFSX1NFUEFSQVRP
UjoKKyAgICAgICAgcmV0dXJuIG1vel9ndGtfdG9vbGJhcl9zZXBhcmF0b3JfcGFpbnQoZHJhd2Fi
bGUsIHJlY3QsIGNsaXByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtf
VE9PTFRJUDoKLSAgICAgICAgcmV0dXJuIG1vel9ndGtfdG9vbHRpcF9wYWludChkcmF3YWJsZSwg
cmVjdCwgY2xpcHJlY3QpOworICAgICAgICByZXR1cm4gbW96X2d0a190b29sdGlwX3BhaW50KGRy
YXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNT1pfR1RLX0ZSQU1FOgotICAgICAgICByZXR1cm4gbW96X2d0a19mcmFtZV9wYWludChk
cmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QpOworICAgICAgICByZXR1cm4gbW96X2d0a19mcmFtZV9w
YWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIGRpcmVjdGlvbik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTU9aX0dUS19SRVNJWkVSOgorICAgICAgICByZXR1cm4gbW96X2d0a19yZXNp
emVyX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNT1pfR1RLX1BST0dSRVNTQkFSOgotICAgICAgICByZXR1cm4gbW96X2d0a19wcm9ncmVz
c2Jhcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QpOworICAgICAgICByZXR1cm4gbW96
X2d0a19wcm9ncmVzc2Jhcl9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIGRpcmVjdGlv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTU9aX0dUS19QUk9HUkVTU19DSFVOSzoKLSAg
ICAgICAgcmV0dXJuIG1vel9ndGtfcHJvZ3Jlc3NfY2h1bmtfcGFpbnQoZHJhd2FibGUsIHJlY3Qs
IGNsaXByZWN0KTsKKyAgICAgICAgcmV0dXJuIG1vel9ndGtfcHJvZ3Jlc3NfY2h1bmtfcGFpbnQo
ZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9H
VEtfVEFCOgotICAgICAgICByZXR1cm4gbW96X2d0a190YWJfcGFpbnQoZHJhd2FibGUsIHJlY3Qs
IGNsaXByZWN0LCBmbGFncyk7CisgICAgICAgIHJldHVybiBtb3pfZ3RrX3RhYl9wYWludChkcmF3
YWJsZSwgcmVjdCwgY2xpcHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
R3RrVGFiRmxhZ3MpIGZsYWdzLCBkaXJlY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1PWl9HVEtfVEFCUEFORUxTOgotICAgICAgICByZXR1cm4gbW96X2d0a190YWJwYW5lbHNfcGFp
bnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0KTsKKyAgICAgICAgcmV0dXJuIG1vel9ndGtfdGFi
cGFuZWxzX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgZGlyZWN0aW9uKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX01FTlVCQVI6Ci0gICAgICAgIHJldHVybiBtb3pf
Z3RrX21lbnVfYmFyX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCk7CisgICAgICAgIHJl
dHVybiBtb3pfZ3RrX21lbnVfYmFyX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgZGly
ZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNT1pfR1RLX01FTlVQT1BVUDoKLSAg
ICAgICAgcmV0dXJuIG1vel9ndGtfbWVudV9wb3B1cF9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xp
cHJlY3QpOworICAgICAgICByZXR1cm4gbW96X2d0a19tZW51X3BvcHVwX3BhaW50KGRyYXdhYmxl
LCByZWN0LCBjbGlwcmVjdCwgZGlyZWN0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
T1pfR1RLX01FTlVTRVBBUkFUT1I6CisgICAgICAgIHJldHVybiBtb3pfZ3RrX21lbnVfc2VwYXJh
dG9yX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNT1pfR1RLX01FTlVJVEVNOgotICAgICAgICByZXR1cm4gbW96X2d0a19tZW51X2l0ZW1f
cGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBzdGF0ZSk7CisgICAgICAgIHJldHVybiBt
b3pfZ3RrX21lbnVfaXRlbV9wYWludChkcmF3YWJsZSwgcmVjdCwgY2xpcHJlY3QsIHN0YXRlLCBm
bGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTU9aX0dUS19NRU5VQVJST1c6CisgICAgICAgIHJl
dHVybiBtb3pfZ3RrX21lbnVfYXJyb3dfcGFpbnQoZHJhd2FibGUsIHJlY3QsIGNsaXByZWN0LCBz
dGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24p
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1PWl9HVEtfVE9PTEJBUkJVVFRPTl9BUlJPVzoK
KyAgICAgICAgcmV0dXJuIG1vel9ndGtfZG93bmFycm93X3BhaW50KGRyYXdhYmxlLCByZWN0LCBj
bGlwcmVjdCwgc3RhdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1PWl9HVEtfQ0hFQ0tN
RU5VSVRFTToKICAgICBjYXNlIE1PWl9HVEtfUkFESU9NRU5VSVRFTToKICAgICAgICAgcmV0dXJu
IG1vel9ndGtfY2hlY2tfbWVudV9pdGVtX3BhaW50KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwg
c3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2Jv
b2xlYW4pIGZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHdpZGdldCA9PSBNT1pfR1RLX1JBRElPTUVOVUlURU0pKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQgPT0gTU9aX0dUS19SQURJT01FTlVJ
VEVNKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVj
dGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTU9aX0dUS19TUExJVFRFUl9IT1JJWk9O
VEFMOgorICAgICAgICByZXR1cm4gbW96X2d0a192cGFuZWRfcGFpbnQoZHJhd2FibGUsIHJlY3Qs
IGNsaXByZWN0LCBzdGF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTU9aX0dUS19TUExJ
VFRFUl9WRVJUSUNBTDoKKyAgICAgICAgcmV0dXJuIG1vel9ndGtfaHBhbmVkX3BhaW50KGRyYXdh
YmxlLCByZWN0LCBjbGlwcmVjdCwgc3RhdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1P
Wl9HVEtfV0lORE9XOgotICAgICAgICByZXR1cm4gbW96X2d0a193aW5kb3dfcGFpbnQoZHJhd2Fi
bGUsIHJlY3QsIGNsaXByZWN0KTsKKyAgICAgICAgcmV0dXJuIG1vel9ndGtfd2luZG93X3BhaW50
KGRyYXdhYmxlLCByZWN0LCBjbGlwcmVjdCwgZGlyZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgZ193YXJuaW5nKCJVbmtub3duIHdpZGdldCB0eXBlOiAlZCIs
IHdpZGdldCk7CkBAIC0xODk2LDE3ICsyNzc0LDIzIEBAIG1vel9ndGtfc2h1dGRvd24oKQogCiAg
ICAgZ1Byb3RvV2luZG93ID0gTlVMTDsKICAgICBnQnV0dG9uV2lkZ2V0ID0gTlVMTDsKKyAgICBn
VG9nZ2xlQnV0dG9uV2lkZ2V0ID0gTlVMTDsKICAgICBnQ2hlY2tib3hXaWRnZXQgPSBOVUxMOwog
ICAgIGdSYWRpb2J1dHRvbldpZGdldCA9IE5VTEw7CiAgICAgZ0hvcml6U2Nyb2xsYmFyV2lkZ2V0
ID0gTlVMTDsKICAgICBnVmVydFNjcm9sbGJhcldpZGdldCA9IE5VTEw7CisgICAgZ1NwaW5XaWRn
ZXQgPSBOVUxMOwogICAgIGdIU2NhbGVXaWRnZXQgPSBOVUxMOwogICAgIGdWU2NhbGVXaWRnZXQg
PSBOVUxMOwogICAgIGdFbnRyeVdpZGdldCA9IE5VTEw7CiAgICAgZ0Fycm93V2lkZ2V0ID0gTlVM
TDsKKyAgICBnT3B0aW9uTWVudVdpZGdldCA9IE5VTEw7CiAgICAgZ0Ryb3Bkb3duQnV0dG9uV2lk
Z2V0ID0gTlVMTDsKKyAgICBnRHJvcGRvd25FbnRyeVdpZGdldCA9IE5VTEw7CisgICAgZ0NvbWJv
Qm94RW50cnlXaWRnZXQgPSBOVUxMOwogICAgIGdIYW5kbGVCb3hXaWRnZXQgPSBOVUxMOwogICAg
IGdUb29sYmFyV2lkZ2V0ID0gTlVMTDsKKyAgICBnU3RhdHVzYmFyV2lkZ2V0ID0gTlVMTDsKICAg
ICBnRnJhbWVXaWRnZXQgPSBOVUxMOwogICAgIGdQcm9ncmVzc1dpZGdldCA9IE5VTEw7CiAgICAg
Z1RhYldpZGdldCA9IE5VTEw7CkBAIC0xOTE2LDYgKzI4MDAsMTQgQEAgbW96X2d0a19zaHV0ZG93
bigpCiAgICAgZ01lbnVQb3B1cFdpZGdldCA9IE5VTEw7CiAgICAgZ01lbnVJdGVtV2lkZ2V0ID0g
TlVMTDsKICAgICBnQ2hlY2tNZW51SXRlbVdpZGdldCA9IE5VTEw7CisgICAgZ1RyZWVWaWV3V2lk
Z2V0ID0gTlVMTDsKKyAgICBnVHJlZUhlYWRlckNlbGxXaWRnZXQgPSBOVUxMOworICAgIGdUcmVl
SGVhZGVyU29ydEFycm93V2lkZ2V0ID0gTlVMTDsKKyAgICBnRXhwYW5kZXJXaWRnZXQgPSBOVUxM
OworICAgIGdUb29sYmFyU2VwYXJhdG9yV2lkZ2V0ID0gTlVMTDsKKyAgICBnTWVudVNlcGFyYXRv
cldpZGdldCA9IE5VTEw7CisgICAgZ0hQYW5lZFdpZGdldCA9IE5VTEw7CisgICAgZ1ZQYW5lZFdp
ZGdldCA9IE5VTEw7CiAKICAgICBpc19pbml0aWFsaXplZCA9IEZBTFNFOwogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2d0ay9ndGtkcmF3aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvZ3RrZHJhd2luZy5oCShyZXZpc2lvbiAyOTgyMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL2d0a2RyYXdpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsOSBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAgIGd1aW50OCBkaXNhYmxlZDsKICAgZ3VpbnQ4IGlzRGVmYXVsdDsKICAg
Z3VpbnQ4IGNhbkRlZmF1bHQ7CisgIC8qIFRoZSBkZXByZXNzZWQgc3RhdGUgaXMgZm9yIGJ1dHRv
bnMgd2hpY2ggcmVtYWluIGFjdGl2ZSBmb3IgYSBsb25nZXIgcGVyaW9kOgorICAgKiBhY3RpdmF0
ZWQgdG9nZ2xlIGJ1dHRvbnMgb3IgYnV0dG9ucyBzaG93aW5nIGEgcG9wdXAgbWVudS4gKi8KKyAg
Z3VpbnQ4IGRlcHJlc3NlZDsKICAgZ2ludDMyIGN1cnBvczsgLyogY3VycG9zIGFuZCBtYXhwb3Mg
YXJlIHVzZWQgZm9yIHNjcm9sbGJhcnMgKi8KICAgZ2ludDMyIG1heHBvczsKIH0gR3RrV2lkZ2V0
U3RhdGU7CkBAIC03NSwxNiArNzgsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICBnaW50IG1pbl9z
bGlkZXJfc2l6ZTsKIH0gTW96R3RrU2Nyb2xsYmFyTWV0cmljczsKIAordHlwZWRlZiBlbnVtIHsK
KyAgTU9aX0dUS19TVEVQUEVSX0RPV04gICAgICAgID0gMSA8PCAwLAorICBNT1pfR1RLX1NURVBQ
RVJfQk9UVE9NICAgICAgPSAxIDw8IDEsCisgIE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTCAgICA9
IDEgPDwgMgorfSBHdGtTY3JvbGxiYXJCdXR0b25GbGFnczsKKwogLyoqIGZsYWdzIGZvciB0YWIg
c3RhdGUgKiovCiB0eXBlZGVmIGVudW0geworICAvKiBmaXJzdCBlaWdodCBiaXRzIGFyZSB1c2Vk
IHRvIHBhc3MgYSBtYXJnaW4gKi8KKyAgTU9aX0dUS19UQUJfTUFSR0lOX01BU0sgICAgID0gMHhG
RiwKKyAgLyogYm90dG9tIHRhYnMgKi8KKyAgTU9aX0dUS19UQUJfQk9UVE9NICAgICAgICAgID0g
MSA8PCA4LAogICAvKiB0aGUgZmlyc3QgdGFiIGluIHRoZSBncm91cCAqLwotICBNT1pfR1RLX1RB
Ql9GSVJTVCAgICAgICAgICAgPSAxIDw8IDAsCi0gIC8qIHRoZSB0YWIganVzdCBiZWZvcmUgdGhl
IHNlbGVjdGVkIHRhYiAqLwotICBNT1pfR1RLX1RBQl9CRUZPUkVfU0VMRUNURUQgPSAxIDw8IDEs
CisgIE1PWl9HVEtfVEFCX0ZJUlNUICAgICAgICAgICA9IDEgPDwgOSwKICAgLyogdGhlIHNlbGVj
dGVkIHRhYiAqLwotICBNT1pfR1RLX1RBQl9TRUxFQ1RFRCAgICAgICAgPSAxIDw8IDIKKyAgTU9a
X0dUS19UQUJfU0VMRUNURUQgICAgICAgID0gMSA8PCAxMAogfSBHdGtUYWJGbGFnczsKIAorLyoq
IGZsYWdzIGZvciBtZW51aXRlbXMgKiovCit0eXBlZGVmIGVudW0geworICAvKiBtZW51aXRlbSBp
cyBwYXJ0IG9mIHRoZSBtZW51YmFyICovCisgIE1PWl9UT1BMRVZFTF9NRU5VX0lURU0gICAgICA9
IDEgPDwgMAorfSBHdGtNZW51SXRlbUZsYWdzOworCiAvKiBmdW5jdGlvbiB0eXBlIGZvciBtb3pf
Z3RrX2VuYWJsZV9zdHlsZV9wcm9wcyAqLwogdHlwZWRlZiBnaW50ICgqc3R5bGVfcHJvcF90KShH
dGtTdHlsZSosIGNvbnN0IGdjaGFyKiwgZ2ludCk7CiAKQEAgLTExOSw4ICsxMzYsMTAgQEAgdHlw
ZWRlZiBlbnVtIHsKICAgTU9aX0dUS19TQ0FMRV9USFVNQl9IT1JJWk9OVEFMLAogICBNT1pfR1RL
X1NDQUxFX1RIVU1CX1ZFUlRJQ0FMLAogICAvKiBQYWludHMgYSBHdGtTcGluQnV0dG9uICovCisg
IE1PWl9HVEtfU1BJTkJVVFRPTiwKICAgTU9aX0dUS19TUElOQlVUVE9OX1VQLAogICBNT1pfR1RL
X1NQSU5CVVRUT05fRE9XTiwKKyAgTU9aX0dUS19TUElOQlVUVE9OX0VOVFJZLAogICAvKiBQYWlu
dHMgdGhlIGdyaXBwZXIgb2YgYSBHdGtIYW5kbGVCb3guICovCiAgIE1PWl9HVEtfR1JJUFBFUiwK
ICAgLyogUGFpbnRzIGEgR3RrRW50cnkuICovCkBAIC0xMjksNiArMTQ4LDggQEAgdHlwZWRlZiBl
bnVtIHsKICAgTU9aX0dUS19EUk9QRE9XTiwKICAgLyogUGFpbnRzIGEgZHJvcGRvd24gYXJyb3cg
KGEgR3RrQnV0dG9uIGNvbnRhaW5pbmcgYSBkb3duIEd0a0Fycm93KS4gKi8KICAgTU9aX0dUS19E
Uk9QRE9XTl9BUlJPVywKKyAgLyogUGFpbnRzIGFuIGVudHJ5IGluIGFuIGVkaXRhYmxlIG9wdGlv
biBtZW51ICovCisgIE1PWl9HVEtfRFJPUERPV05fRU5UUlksCiAgIC8qIFBhaW50cyB0aGUgY29u
dGFpbmVyIHBhcnQgb2YgYSBHdGtDaGVja0J1dHRvbi4gKi8KICAgTU9aX0dUS19DSEVDS0JVVFRP
Tl9DT05UQUlORVIsCiAgIC8qIFBhaW50cyB0aGUgY29udGFpbmVyIHBhcnQgb2YgYSBHdGtSYWRp
b0J1dHRvbi4gKi8KQEAgLTEzOSwxMCArMTYwLDE0IEBAIHR5cGVkZWYgZW51bSB7CiAgIE1PWl9H
VEtfUkFESU9CVVRUT05fTEFCRUwsCiAgIC8qIFBhaW50cyB0aGUgYmFja2dyb3VuZCBvZiBhIEd0
a0hhbmRsZUJveC4gKi8KICAgTU9aX0dUS19UT09MQkFSLAorICAvKiBQYWludHMgYSB0b29sYmFy
IHNlcGFyYXRvciAqLworICBNT1pfR1RLX1RPT0xCQVJfU0VQQVJBVE9SLAogICAvKiBQYWludHMg
YSBHdGtUb29sVGlwICovCiAgIE1PWl9HVEtfVE9PTFRJUCwKICAgLyogUGFpbnRzIGEgR3RrRnJh
bWUgKGUuZy4gYSBzdGF0dXMgYmFyIHBhbmVsKS4gKi8KICAgTU9aX0dUS19GUkFNRSwKKyAgLyog
UGFpbnRzIGEgcmVzaXplIGdyaXAgZm9yIGEgR3RrV2luZG93ICovCisgIE1PWl9HVEtfUkVTSVpF
UiwKICAgLyogUGFpbnRzIGEgR3RrUHJvZ3Jlc3NCYXIuICovCiAgIE1PWl9HVEtfUFJPR1JFU1NC
QVIsCiAgIC8qIFBhaW50cyBhIHByb2dyZXNzIGNodW5rIG9mIGEgR3RrUHJvZ3Jlc3NCYXIuICov
CkBAIC0xNTEsMTQgKzE3NiwzMyBAQCB0eXBlZGVmIGVudW0gewogICBNT1pfR1RLX1RBQiwKICAg
LyogUGFpbnRzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYSBHdGtOb3RlYm9vay4gKi8K
ICAgTU9aX0dUS19UQUJQQU5FTFMsCisgIC8qIFBhaW50cyB0aGUgYmFja2dyb3VuZCBhbmQgYm9y
ZGVyIG9mIGEgR3RrVHJlZVZpZXcgKi8KKyAgTU9aX0dUS19UUkVFVklFVywKKyAgLyogUGFpbnRz
IHRyZWVoZWFkZXIgY2VsbHMgKi8KKyAgTU9aX0dUS19UUkVFX0hFQURFUl9DRUxMLAorICAvKiBQ
YWludHMgc29ydCBhcnJvd3MgaW4gdHJlZWhlYWRlciBjZWxscyAqLworICBNT1pfR1RLX1RSRUVf
SEVBREVSX1NPUlRBUlJPVywKKyAgLyogUGFpbnRzIGFuIGV4cGFuZGVyIGZvciBhIEd0a1RyZWVW
aWV3ICovCisgIE1PWl9HVEtfVFJFRVZJRVdfRVhQQU5ERVIsCisgIC8qIFBhaW50cyBhIEd0a0V4
cGFuZGVyICovCisgIE1PWl9HVEtfRVhQQU5ERVIsCiAgIC8qIFBhaW50cyB0aGUgYmFja2dyb3Vu
ZCBvZiB0aGUgbWVudSBiYXIuICovCiAgIE1PWl9HVEtfTUVOVUJBUiwKICAgLyogUGFpbnRzIHRo
ZSBiYWNrZ3JvdW5kIG9mIG1lbnVzLCBjb250ZXh0IG1lbnVzLiAqLwogICBNT1pfR1RLX01FTlVQ
T1BVUCwKKyAgLyogUGFpbnRzIHRoZSBhcnJvdyBvZiBtZW51aXRlbXMgdGhhdCBjb250YWluIHN1
Ym1lbnVzICovCisgIE1PWl9HVEtfTUVOVUFSUk9XLAorICAvKiBQYWludHMgYW4gYXJyb3cgdGhh
dCBwb2ludHMgZG93biAqLworICBNT1pfR1RLX1RPT0xCQVJCVVRUT05fQVJST1csCiAgIC8qIFBh
aW50cyBpdGVtcyBvZiBtZW51YmFyIGFuZCBwb3B1cHMuICovCiAgIE1PWl9HVEtfTUVOVUlURU0s
CiAgIE1PWl9HVEtfQ0hFQ0tNRU5VSVRFTSwKICAgTU9aX0dUS19SQURJT01FTlVJVEVNLAorICBN
T1pfR1RLX01FTlVTRVBBUkFUT1IsCisgIC8qIFBhaW50cyBhIEd0a1ZQYW5lZCBzZXBhcmF0b3Ig
Ki8KKyAgTU9aX0dUS19TUExJVFRFUl9IT1JJWk9OVEFMLAorICAvKiBQYWludHMgYSBHdGtIUGFu
ZWQgc2VwYXJhdG9yICovCisgIE1PWl9HVEtfU1BMSVRURVJfVkVSVElDQUwsCiAgIC8qIFBhaW50
cyB0aGUgYmFja2dyb3VuZCBvZiBhIHdpbmRvdywgZGlhbG9nIG9yIHBhZ2UuICovCiAgIE1PWl9H
VEtfV0lORE9XCiB9IEd0a1RoZW1lV2lkZ2V0VHlwZTsKQEAgLTE5NCwxNiArMjM4LDE4IEBAIGdp
bnQgbW96X2d0a19zaHV0ZG93bigpOwogLyoqKiBXaWRnZXQgZHJhd2luZyAqKiovCiAvKioKICAq
IFBhaW50IGEgd2lkZ2V0IGluIHRoZSBjdXJyZW50IHRoZW1lLgotICogd2lkZ2V0OiAgIGEgY29u
c3RhbnQgZ2l2aW5nIHRoZSB3aWRnZXQgdG8gcGFpbnQKLSAqIHJlY3Q6ICAgICB0aGUgYm91bmRp
bmcgcmVjdGFuZ2xlIGZvciB0aGUgd2lkZ2V0Ci0gKiBjbGlwcmVjdDogYSBjbGlwcHJlY3QgcmVj
dGFuZ2xlIGZvciB0aGlzIHBhaW50aW5nIG9wZXJhdGlvbgotICogc3RhdGU6ICAgIHRoZSBzdGF0
ZSBvZiB0aGUgd2lkZ2V0LiAgaWdub3JlZCBmb3Igc29tZSB3aWRnZXRzLgotICogZmxhZ3M6ICAg
IHdpZGdldC1kZXBlbmRhbnQgZmxhZ3M7IHNlZSB0aGUgR3RrVGhlbWVXaWRnZXRUeXBlIGRlZmlu
aXRpb24uCisgKiB3aWRnZXQ6ICAgIGEgY29uc3RhbnQgZ2l2aW5nIHRoZSB3aWRnZXQgdG8gcGFp
bnQKKyAqIHJlY3Q6ICAgICAgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBmb3IgdGhlIHdpZGdldAor
ICogY2xpcHJlY3Q6ICBhIGNsaXBwcmVjdCByZWN0YW5nbGUgZm9yIHRoaXMgcGFpbnRpbmcgb3Bl
cmF0aW9uCisgKiBzdGF0ZTogICAgIHRoZSBzdGF0ZSBvZiB0aGUgd2lkZ2V0LiAgaWdub3JlZCBm
b3Igc29tZSB3aWRnZXRzLgorICogZmxhZ3M6ICAgICB3aWRnZXQtZGVwZW5kYW50IGZsYWdzOyBz
ZWUgdGhlIEd0a1RoZW1lV2lkZ2V0VHlwZSBkZWZpbml0aW9uLgorICogZGlyZWN0aW9uOiB0aGUg
dGV4dCBkaXJlY3Rpb24sIHRvIGRyYXcgdGhlIHdpZGdldCBjb3JyZWN0bHkgTFRSIGFuZCBSVEwu
CiAgKi8KIGdpbnQKIG1vel9ndGtfd2lkZ2V0X3BhaW50KEd0a1RoZW1lV2lkZ2V0VHlwZSB3aWRn
ZXQsIEdka0RyYXdhYmxlKiBkcmF3YWJsZSwKICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3Rh
bmdsZSogcmVjdCwgR2RrUmVjdGFuZ2xlKiBjbGlwcmVjdCwKLSAgICAgICAgICAgICAgICAgICAg
IEd0a1dpZGdldFN0YXRlKiBzdGF0ZSwgZ2ludCBmbGFncyk7CisgICAgICAgICAgICAgICAgICAg
ICBHdGtXaWRnZXRTdGF0ZSogc3RhdGUsIGdpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbik7CiAKIAogLyoqKiBXaWRnZXQgbWV0cmljcyAq
KiovCkBAIC0yMTEsMTMgKzI1NywxNSBAQCBtb3pfZ3RrX3dpZGdldF9wYWludChHdGtUaGVtZVdp
ZGdldFR5cGUgCiAgKiBHZXQgdGhlIGJvcmRlciBzaXplIG9mIGEgd2lkZ2V0CiAgKiBsZWZ0L3Jp
Z2h0OiAgW09VVF0gdGhlIHdpZGdldCdzIGxlZnQvcmlnaHQgYm9yZGVyCiAgKiB0b3AvYm90dG9t
OiAgW09VVF0gdGhlIHdpZGdldCdzIHRvcC9ib3R0b20gYm9yZGVyCisgKiBkaXJlY3Rpb246ICAg
dGhlIHRleHQgZGlyZWN0aW9uIGZvciB0aGUgd2lkZ2V0CiAgKiBpbmh0bWw6ICAgICAgYm9vbGVh
biBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyB3aWRnZXQgd2lsbCBiZSBkcmF3biBhcyBhIEhUTUwg
Zm9ybSBjb250cm9sLAogICogICAgICAgICAgICAgIGluIG9yZGVyIHRvIHdvcmthcm91bmQgYSBz
aXplIGlzc3VlIChNT1pfR1RLX0JVVFRPTiBvbmx5LCBpZ25vcmVkIG90aGVyd2lzZSkKICAqCiAg
KiByZXR1cm5zOiAgICBNT1pfR1RLX1NVQ0NFU1MgaWYgdGhlcmUgd2FzIG5vIGVycm9yLCBhbiBl
cnJvciBjb2RlIG90aGVyd2lzZQogICovCiBnaW50IG1vel9ndGtfZ2V0X3dpZGdldF9ib3JkZXIo
R3RrVGhlbWVXaWRnZXRUeXBlIHdpZGdldCwgZ2ludCogbGVmdCwgZ2ludCogdG9wLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50KiByaWdodCwgZ2ludCogYm90dG9tLCBnYm9v
bGVhbiBpbmh0bWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQqIHJpZ2h0
LCBnaW50KiBib3R0b20sIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGluaHRtbCk7CiAKIC8qKgogICogR2V0IHRoZSBk
ZXNpcmVkIHNpemUgb2YgYSBHdGtDaGVja0J1dHRvbgpAQCAtMjQxLDcgKzI4OSw4IEBAIG1vel9n
dGtfY2hlY2tib3hfZ2V0X21ldHJpY3MoZ2ludCogaW5kaWMKIGdpbnQKIG1vel9ndGtfcmFkaW9f
Z2V0X21ldHJpY3MoZ2ludCogaW5kaWNhdG9yX3NpemUsIGdpbnQqIGluZGljYXRvcl9zcGFjaW5n
KTsKIAotLyoqIEdldCB0aGUgZm9jdXMgbWV0cmljcyBmb3IgYSBidXR0b24sIGNoZWNrYm94LCBv
ciByYWRpbyBidXR0b24uCisvKiogR2V0IHRoZSBmb2N1cyBtZXRyaWNzIGZvciBhIHRyZWVoZWFk
ZXJjZWxsLCBidXR0b24sIGNoZWNrYm94LCBvciByYWRpbyBidXR0b24uCisgKiB3aWRnZXQ6ICAg
ICAgICAgICAgIFtJTl0gIHRoZSB3aWRnZXQgdG8gZ2V0IHRoZSBmb2N1cyBtZXRyaWNzIGZvciAg
ICAKICAqIGludGVyaW9yX2ZvY3VzOiAgICAgW09VVF0gd2hldGhlciB0aGUgZm9jdXMgaXMgZHJh
d24gYXJvdW5kIHRoZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCAoVFJVRSkg
b3IgYXJvdW5kIHRoZSB3aG9sZSBjb250YWluZXIgKEZBTFNFKQogICogZm9jdXNfd2lkdGg6ICAg
ICAgICBbT1VUXSB0aGUgd2lkdGggb2YgdGhlIGZvY3VzIGxpbmUKQEAgLTI1MCwxNCArMjk5LDgg
QEAgbW96X2d0a19yYWRpb19nZXRfbWV0cmljcyhnaW50KiBpbmRpY2F0bwogICogcmV0dXJuczog
ICAgTU9aX0dUS19TVUNDRVNTIGlmIHRoZXJlIHdhcyBubyBlcnJvciwgYW4gZXJyb3IgY29kZSBv
dGhlcndpc2UKICAqLwogZ2ludAotbW96X2d0a19idXR0b25fZ2V0X2ZvY3VzKGdib29sZWFuKiBp
bnRlcmlvcl9mb2N1cywKK21vel9ndGtfd2lkZ2V0X2dldF9mb2N1cyhHdGtXaWRnZXQqIHdpZGdl
dCwgZ2Jvb2xlYW4qIGludGVyaW9yX2ZvY3VzLAogICAgICAgICAgICAgICAgICAgICAgICAgIGdp
bnQqIGZvY3VzX3dpZHRoLCBnaW50KiBmb2N1c19wYWQpOwotZ2ludAotbW96X2d0a19jaGVja2Jv
eF9nZXRfZm9jdXMoZ2Jvb2xlYW4qIGludGVyaW9yX2ZvY3VzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2ludCogZm9jdXNfd2lkdGgsIGdpbnQqIGZvY3VzX3BhZCk7Ci1naW50Ci1tb3pf
Z3RrX3JhZGlvX2dldF9mb2N1cyhnYm9vbGVhbiogaW50ZXJpb3JfZm9jdXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBnaW50KiBmb2N1c193aWR0aCwgZ2ludCogZm9jdXNfcGFkKTsKIAogLyoq
CiAgKiBHZXQgdGhlIGRlc2lyZWQgc2l6ZSBvZiBhIEd0a1NjYWxlIHRodW1iCkBAIC0yODksMTEg
KzMzMiw1NyBAQCBtb3pfZ3RrX2dldF9zY3JvbGxiYXJfbWV0cmljcyhNb3pHdGtTY3JvCiBnaW50
IG1vel9ndGtfZ2V0X2Ryb3Bkb3duX2Fycm93X3NpemUoZ2ludCogd2lkdGgsIGdpbnQqIGhlaWdo
dCk7CiAKIC8qKgorICogR2V0IHRoZSBkZXNpcmVkIHNpemUgb2YgYSB0b29sYmFyIHNlcGFyYXRv
cgorICogc2l6ZTogICAgW09VVF0gdGhlIGRlc2lyZWQgd2lkdGgKKyAqCisgKiByZXR1cm5zOiBN
T1pfR1RLX1NVQ0NFU1MgaWYgdGhlcmUgd2FzIG5vIGVycm9yLCBhbiBlcnJvciBjb2RlIG90aGVy
d2lzZQorICovCitnaW50IG1vel9ndGtfZ2V0X3Rvb2xiYXJfc2VwYXJhdG9yX3dpZHRoKGdpbnQq
IHNpemUpOworCisvKioKKyAqIEdldCB0aGUgc2l6ZSBvZiBhIHJlZ3VsYXIgR1RLIGV4cGFuZGVy
IHRoYXQgc2hvd3MvaGlkZXMgY29udGVudAorICogc2l6ZTogICAgW09VVF0gdGhlIHNpemUgb2Yg
dGhlIEdUSyBleHBhbmRlciwgc2l6ZSA9IHdpZHRoID0gaGVpZ2h0LgorICoKKyAqIHJldHVybnM6
ICAgIE1PWl9HVEtfU1VDQ0VTUyBpZiB0aGVyZSB3YXMgbm8gZXJyb3IsIGFuIGVycm9yIGNvZGUg
b3RoZXJ3aXNlCisgKi8KK2dpbnQgbW96X2d0a19nZXRfZXhwYW5kZXJfc2l6ZShnaW50KiBzaXpl
KTsKKworLyoqCisgKiBHZXQgdGhlIHNpemUgb2YgYSB0cmVldmlldydzIGV4cGFuZGVyICh3ZSBj
YWxsIHRoZW0gdHdpc3RpZXMpCisgKiBzaXplOiAgICBbT1VUXSB0aGUgc2l6ZSBvZiB0aGUgR1RL
IGV4cGFuZGVyLCBzaXplID0gd2lkdGggPSBoZWlnaHQuCisgKgorICogcmV0dXJuczogICAgTU9a
X0dUS19TVUNDRVNTIGlmIHRoZXJlIHdhcyBubyBlcnJvciwgYW4gZXJyb3IgY29kZSBvdGhlcndp
c2UKKyAqLworZ2ludCBtb3pfZ3RrX2dldF90cmVldmlld19leHBhbmRlcl9zaXplKGdpbnQqIHNp
emUpOworCisvKioKKyAqIEdldCB0aGUgZGVzaXJlZCBoZWlnaHQgb2YgYSBtZW51IHNlcGFyYXRv
cgorICogc2l6ZTogICAgW09VVF0gdGhlIGRlc2lyZWQgaGVpZ2h0CisgKgorICogcmV0dXJuczog
TU9aX0dUS19TVUNDRVNTIGlmIHRoZXJlIHdhcyBubyBlcnJvciwgYW4gZXJyb3IgY29kZSBvdGhl
cndpc2UKKyAqLworZ2ludCBtb3pfZ3RrX2dldF9tZW51X3NlcGFyYXRvcl9oZWlnaHQoZ2ludCog
c2l6ZSk7CisKKy8qKgorICogR2V0IHRoZSBkZXNpcmVkIHNpemUgb2YgYSBzcGxpdHRlcgorICog
b3JpZW50YXRpb246ICAgW0lOXSAgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwgb3IgR1RLX09S
SUVOVEFUSU9OX1ZFUlRJQ0FMCisgKiBzaXplOiAgICAgICAgICBbT1VUXSB3aWR0aCBvciBoZWln
aHQgb2YgdGhlIHNwbGl0dGVyIGhhbmRsZQorICoKKyAqIHJldHVybnM6ICAgIE1PWl9HVEtfU1VD
Q0VTUyBpZiB0aGVyZSB3YXMgbm8gZXJyb3IsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8K
K2dpbnQgbW96X2d0a19zcGxpdHRlcl9nZXRfbWV0cmljcyhnaW50IG9yaWVudGF0aW9uLCBnaW50
KiBzaXplKTsKKworLyoqCiAgKiBSZXRyaWV2ZSBhbiBhY3R1YWwgR1RLIHNjcm9sbGJhciB3aWRn
ZXQgZm9yIHN0eWxlIGFuYWx5c2lzLiBJdCB3aWxsIG5vdAogICogYmUgbW9kaWZpZWQuCiAgKi8K
IEd0a1dpZGdldCogbW96X2d0a19nZXRfc2Nyb2xsYmFyX3dpZGdldCh2b2lkKTsKIAorLyoqCisg
KiBHZXQgdGhlIFlUSElDS05FU1Mgb2YgYSB0YWIgKG5vdGVib29rIGV4dGVuc2lvbikuCisgKi8K
K2dpbnQgbW96X2d0a19nZXRfdGFiX3RoaWNrbmVzcyh2b2lkKTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8K
</data>
<flag name="review"
          id="8181"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>