<?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>42988</bug_id>
          
          <creation_ts>2010-07-26 11:53:46 -0700</creation_ts>
          <short_desc>Deliver mouse and wheel events to plug-ins</short_desc>
          <delta_ts>2010-07-26 14:15:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>dbates</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256142</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-26 11:53:46 -0700</bug_when>
    <thetext>Deliver mouse and wheel events to plug-ins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256146</commentid>
    <comment_count>1</comment_count>
      <attachid>62592</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-26 11:58:31 -0700</bug_when>
    <thetext>Created attachment 62592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256150</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-26 12:00:48 -0700</bug_when>
    <thetext>Attachment 62592 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/WebPage/WebPage.cpp:280:  g_currentEvent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h:79:  NPP_HandleEvent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:208:  NetscapePlugin::NPP_HandleEvent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256175</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-26 12:42:16 -0700</bug_when>
    <thetext>Committed r64063: &lt;http://trac.webkit.org/changeset/64063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256231</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-26 14:13:54 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed r64063: &lt;http://trac.webkit.org/changeset/64063&gt;

This change caused linker errors on the Apple Windows build bots.

See &lt;http://build.webkit.org/builders/Windows%20Debug%20%28Build%29/builds/20153/steps/compile-webkit/logs/stdio&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62592</attachid>
            <date>2010-07-26 11:58:31 -0700</date>
            <delta_ts>2010-07-26 12:01:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42988-20100726115830.patch</filename>
            <type>text/plain</type>
            <size>33264</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NzIxMzNhMzY2YWU2MTVlZmUwODY4MzViMmY1NmQ4ZjcxMDU2MDNkZi4uNzk3OGE3ZjFhZmIxYmU1
NGUxZTJhODU1OGNhOTAwZjlmZjhlOGMwMCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1NiBAQAogMjAxMC0wNy0yNiAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGl2ZXIgbW91c2UgYW5kIHdoZWVsIGV2ZW50
cyB0byBwbHVnLWlucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDI5ODgKKworICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6ZGVsdGFYKToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVs
dGFZKToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaKToKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgQWRkIGRlbHRhWCwgZGVs
dGFZIGFuZCBkZWx0YVogbWVtYmVyIHZhcmlhYmxlcyB0byBXZWJNb3N1ZUV2ZW50LgorCisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBSZW5hbWUg
TmV0c2NhcGVQbHVnaW5NYWMuY3BwIHRvIE5ldHNjYXBlUGx1Z2luTWFjLm1tLgorICAgICAgICAK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6TlBQX0hhbmRsZUV2ZW50KToKKyAg
ICAgICAgQWRkIE5QUF8gd3JhcHBlci4KKworICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bjo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpo
YW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgQ2FsbCB0aGUgcGxhdGZvcm0gdmFyaWFudHMuCisg
ICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBs
dWdpbk1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om1vZGlmaWVyRmxhZ3MpOiAgICAg
ICAgCisgICAgICAgIChXZWJLaXQ6OmJ1dHRvbk51bWJlcik6CisgICAgICAgIChXZWJLaXQ6Omlu
aXRpYWxpemVNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnBs
YXRmb3JtSGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIENyZWF0ZSBhbiBOUENvY29hRXZlbnQg
YW5kIHNlbmQgaXQgdG8gdGhlIHBsdWctaW4uCisgICAgICAgIAorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgR2V0IHRoZSBjdXJy
ZW50IFdlYkV2ZW50IGFuZCBzZW5kIGl0IHRvIHRoZSBwbHVnLWluIGlmIG5lY2Vzc2FyeS4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Y3VycmVudEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6Q3VycmVudEV2ZW50
OjpDdXJyZW50RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpDdXJyZW50RXZlbnQ6On5DdXJyZW50
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptb3VzZUV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmtleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICBBZGQgUkFJSSBvYmplY3QgZm9yIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGN1cnJlbnQgZXZl
bnQuCisKKzIwMTAtMDctMjYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
KwogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgogCiAgICAgICAgIENsZWFuIHVwIGV2
ZW50IGhhbmRsaW5nIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuaCBiL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmgKaW5kZXggMWU1ZDY3Y2YwYzJjZGJhZDhm
YWJlNjRlMDM2MjE5NzU3OWEyN2JkOS4uNTA1MGVhZjFkMWRkODUwN2ZmMmUzNzVlZWMxODkwYjg1
ZDJiNmFmMCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0xMjAsMTMgKzEyMCwxNiBAQCBwdWJsaWM6CiAgICAg
ewogICAgIH0KIAotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBp
bnQgeCwgaW50IHksIGludCBnbG9iYWxYLCBpbnQgZ2xvYmFsWSwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgV2ViTW91c2VFdmVudChU
eXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGludCB4LCBpbnQgeSwgaW50IGdsb2JhbFgsIGludCBn
bG9iYWxZLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xp
Y2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX2J1dHRv
bihidXR0b24pCiAgICAgICAgICwgbV9wb3NpdGlvblgoeCkKICAgICAgICAgLCBtX3Bvc2l0aW9u
WSh5KQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb25YKGdsb2JhbFgpCiAgICAgICAgICwgbV9n
bG9iYWxQb3NpdGlvblkoZ2xvYmFsWSkKKyAgICAgICAgLCBtX2RlbHRhWChkZWx0YVgpCisgICAg
ICAgICwgbV9kZWx0YVkoZGVsdGFZKQorICAgICAgICAsIG1fZGVsdGFaKGRlbHRhWikKICAgICAg
ICAgLCBtX2NsaWNrQ291bnQoY2xpY2tDb3VudCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc01v
dXNlRXZlbnRUeXBlKHR5cGUpKTsKQEAgLTEzNyw2ICsxNDAsOSBAQCBwdWJsaWM6CiAgICAgaW50
IHBvc2l0aW9uWSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25ZOyB9CiAgICAgaW50IGdsb2Jh
bFBvc2l0aW9uWCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb25YOyB9CiAgICAgaW50
IGdsb2JhbFBvc2l0aW9uWSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb25ZOyB9Cisg
ICAgZmxvYXQgZGVsdGFYKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVg7IH0KKyAgICBmbG9hdCBk
ZWx0YVkoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWTsgfQorICAgIGZsb2F0IGRlbHRhWigpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFaOyB9CiAgICAgaW50IGNsaWNrQ291bnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWNrQ291bnQ7IH0KIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTE2MCw2ICsxNjYsOSBAQCBwcml2YXRlOgogICAg
IGludCBtX3Bvc2l0aW9uWTsKICAgICBpbnQgbV9nbG9iYWxQb3NpdGlvblg7CiAgICAgaW50IG1f
Z2xvYmFsUG9zaXRpb25ZOworICAgIGZsb2F0IG1fZGVsdGFYOworICAgIGZsb2F0IG1fZGVsdGFZ
OworICAgIGZsb2F0IG1fZGVsdGFaOwogICAgIGludCBtX2NsaWNrQ291bnQ7CiB9OwogCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA5Y2E0ODhlOGJmYjliMTY1MjFmZmFi
YWI4MGFkZWJkZWFjNzA4ODk2Li41ZGM1OTRjNTY4ZjlhYTRiNTUxMzNhMTBjMzM2YWViNTdiY2Fj
YzAzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisr
KyBiL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTk2MywxMSArOTYz
LDE0IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50
KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgaW50IHBvc2l0aW9uWSAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gcG9zaXRpb24ueTsKICAgICBpbnQgZ2xvYmFsUG9zaXRpb25Y
ICAgICAgICAgICAgICAgICAgICAgPSBnbG9iYWxQb3NpdGlvbi54OwogICAgIGludCBnbG9iYWxQ
b3NpdGlvblkgICAgICAgICAgICAgICAgICAgICA9IGdsb2JhbFBvc2l0aW9uLnk7CisgICAgZmxv
YXQgZGVsdGFYICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gW2V2ZW50IGRlbHRhWF07Cisg
ICAgZmxvYXQgZGVsdGFZICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gW2V2ZW50IGRlbHRh
WV07CisgICAgZmxvYXQgZGVsdGFaICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gW2V2ZW50
IGRlbHRhWl07CiAgICAgaW50IGNsaWNrQ291bnQgICAgICAgICAgICAgICAgICAgICAgICAgID0g
Y2xpY2tDb3VudEZvckV2ZW50KGV2ZW50KTsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVycyAgICAgICAgICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CiAgICAgZG91YmxlIHRp
bWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgID0gW2V2ZW50IHRpbWVzdGFtcF07CiAKLSAg
ICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIHBvc2l0aW9uWCwgcG9zaXRpb25Z
LCBnbG9iYWxQb3NpdGlvblgsIGdsb2JhbFBvc2l0aW9uWSwgY2xpY2tDb3VudCwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9z
aXRpb25YLCBwb3NpdGlvblksIGdsb2JhbFBvc2l0aW9uWCwgZ2xvYmFsUG9zaXRpb25ZLCBkZWx0
YVgsIGRlbHRhWSwgZGVsdGFaLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9
CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5T
RXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIwMTYwYjkyZmEzZTA0N2ViNDQ5NGUxOTZmNDJiYmRj
ZTcxYWI5NDIuLmNkZTI3ZWQ5MDk4MDM3NTA2NTRmYzliMDJmNzMwN2IyY2JkNTA2OWUgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03Myw3ICs3Myw3IEBA
CiAJCTFBQTU4ODkzMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE1ODg5MTEx
RUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwICovOyB9OwogCQkxQUFE
RTZGRjEwRDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUFERTZGRTEw
RDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsgKi87IH07CiAJ
CTFBRTExN0Y2MTFEQkIzMDkwMDk4MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFMTE3RjUxMURCQjMwOTAw
OTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgKi87IH07Ci0JCTFBRTVCN0ZCMTFFN0FFRDIw
MEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2Nh
cGVQbHVnaW5NYWMuY3BwICovOyB9OworCQkxQUU1QjdGQjExRTdBRUQyMDBCQTY3NjcgLyogTmV0
c2NhcGVQbHVnaW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0g
Ki87IH07CiAJCTFBRUZDQzEyMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUZDQzEwMTFE
MDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCAqLzsgfTsKIAkJMUFFRkNDMTMxMUQw
MUY5NjAwODIxOUQzIC8qIFBsdWdpbkluZm9TdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUVGQ0MxMTExRDAxRjk2MDA4MjE5RDMgLyogUGx1
Z2luSW5mb1N0b3JlLmNwcCAqLzsgfTsKIAkJMUFFRkNDQkQxMUQwMkM1RTAwODIxOUQzIC8qIFBs
dWdpbkluZm9TdG9yZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBRUZDQ0JDMTFEMDJDNUUwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmVNYWMu
bW0gKi87IH07CkBAIC0zNTgsNyArMzU4LDcgQEAKIAkJMUFBNTg4OTExMUVFNzA0MDAwNjFCODgy
IC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFBREU2RkUxMEQ4NTVGQzAwRDNENjNEIC8qIEFwcGxpY2F0aW9uU2VydmljZXMu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29y
azsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m
cmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQkxQUUxMTdGNTExREJCMzA5MDA5
ODE2MTUgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFByb2Nlc3NMYXVuY2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTFBRTVCN0Y5MTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXRzY2FwZVBsdWdpbk1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBRTVCN0Y5MTFFN0FFRDIwMEJBNjc2NyAv
KiBOZXRzY2FwZVBsdWdpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE5ldHNjYXBlUGx1Z2luTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQUVGQ0MxMDExRDAxRjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpbkluZm9TdG9yZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQUVGQ0MxMTExRDAxRjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0
b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkluZm9T
dG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRUZDQ0JDMTFEMDJDNUUw
MDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbHVnaW5JbmZvU3RvcmVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MDgsNyArNzA4LDcgQEAKIAkJMUE2RkJBMDExMUU2ODEyQjAwREIxMzcx
IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
MUFFNUI3RjkxMUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLmNwcCAqLywKKwkJ
CQkxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gKi8sCiAJ
CQkJMUE2RkJBMDIxMUU2ODEzRTAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLmNw
cCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwpAQCAtMTQwMSw3ICsxNDAxLDcgQEAKIAkJCQkw
RjUyNjVCQzExREQzNzg2MDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5TWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkJBMkIxMUU2ODYyNzAwREIxMzcxIC8qIE5ldHNj
YXBlQnJvd3NlckZ1bmNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCRDI5MTFFNjlCQzIw
MERCMTM3MSAvKiBOZXRzY2FwZVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQUU1QjdG
QjExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUFFNUI3RkIxMUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI5MEMxMUU2NkZCQzAwREIxMzcxIC8qIE5ldHNjYXBlUGx1
Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCQTAzMTFFNjgxM0UwMERCMTM3
MSAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUE1
ODg5MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9EdW1teVBsdWdp
bi5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9EdW1teVBsdWdpbi5jcHAKaW5kZXgg
N2ZiZDlkNWNjNmQxYzBjZTgxMGRjNWUwZTQ4MGFmOTc0OWU0OWYxNy4uZDlkNjYzYTQ0OWVmYTEw
YmE3NWI4OWZmZmEwNjU4ZjRkZTA2YWUzMCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvRHVtbXlQbHVnaW4uY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L0R1bW15UGx1Z2luLmNwcApAQCAtOTUsNCArOTUsMTQgQEAgdm9pZCBEdW1teVBsdWdpbjo6c3Ry
ZWFtRGlkRmFpbCh1aW50NjRfdCBzdHJlYW1JRCwgYm9vbCB3YXNDYW5jZWxsZWQpCiB7CiB9CiAK
K2Jvb2wgRHVtbXlQbHVnaW46OmhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIER1bW15UGx1Z2luOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9EdW1teVBsdWdpbi5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvRHVtbXlQbHVn
aW4uaAppbmRleCBiYjVhOTQyMTgyZGI1ZDdiZTJlZWJhNmQwMWUxMDU0OWY1ODUzZWEzLi5mYjYw
MDU3YTBiMDA1OTk3MDEyZjUyMjRiM2UwZWEzMTI3ODJlY2RjIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9EdW1teVBsdWdpbi5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL0R1bW15UGx1Z2luLmgKQEAgLTU0LDcgKzU0LDkgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc3RyZWFtRGlkUmVjZWl2ZURhdGEodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0
IGNoYXIqIGJ5dGVzLCBpbnQgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlkRmlu
aXNoTG9hZGluZyh1aW50NjRfdCBzdHJlYW1JRCk7CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbURp
ZEZhaWwodWludDY0X3Qgc3RyZWFtSUQsIGJvb2wgd2FzQ2FuY2VsbGVkKTsKLQorICAgIHZpcnR1
YWwgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CisgICAgCiAg
ICAgdmlydHVhbCBQbHVnaW5Db250cm9sbGVyKiBjb250cm9sbGVyKCk7CiB9OwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAKaW5kZXggNmY3OGI2NmRhZGY1ZDNkMDA2MGE5ODI2YmUwYjk0ZTg5ZDUyOGRiMy4uOGIyNGI5
ZDk3NTQwZjcyNzhkZjJkM2NmNTdhZTQ0YzJjNGQ4NDk2YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCisrKyBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMjA1
LDYgKzIwNSwxMSBAQCBpbnQzMl90IE5ldHNjYXBlUGx1Z2luOjpOUFBfV3JpdGUoTlBTdHJlYW0q
IHN0cmVhbSwgaW50MzJfdCBvZmZzZXQsIGludDMyX3QgbGVuLAogICAgIHJldHVybiBtX3BsdWdp
bk1vZHVsZS0+cGx1Z2luRnVuY3MoKS53cml0ZSgmbV9ucHAsIHN0cmVhbSwgb2Zmc2V0LCBsZW4s
IGJ1ZmZlcik7CiB9CiAKK2ludDE2X3QgTmV0c2NhcGVQbHVnaW46Ok5QUF9IYW5kbGVFdmVudCh2
b2lkKiBldmVudCkKK3sKKyAgICByZXR1cm4gbV9wbHVnaW5Nb2R1bGUtPnBsdWdpbkZ1bmNzKCku
ZXZlbnQoJm1fbnBwLCBldmVudCk7Cit9CisKIHZvaWQgTmV0c2NhcGVQbHVnaW46Ok5QUF9VUkxO
b3RpZnkoY29uc3QgY2hhciogdXJsLCBOUFJlYXNvbiByZWFzb24sIHZvaWQqIG5vdGlmeURhdGEp
CiB7CiAgICAgbV9wbHVnaW5Nb2R1bGUtPnBsdWdpbkZ1bmNzKCkudXJsbm90aWZ5KCZtX25wcCwg
dXJsLCByZWFzb24sIG5vdGlmeURhdGEpOwpAQCAtNDA4LDYgKzQxMywxNiBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHdhc0NhbmNl
bGxlZCkKICAgICAgICAgcGx1Z2luU3RyZWFtLT5kaWRGYWlsKHdhc0NhbmNlbGxlZCk7CiB9CiAK
K2Jvb2wgTmV0c2NhcGVQbHVnaW46OmhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYgbW91c2VFdmVudCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50KG1v
dXNlRXZlbnQpOworfQorICAgIAorYm9vbCBOZXRzY2FwZVBsdWdpbjo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQoreworICAgIHJldHVybiBwbGF0Zm9y
bUhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7Cit9CisKIFBsdWdpbkNvbnRyb2xsZXIqIE5l
dHNjYXBlUGx1Z2luOjpjb250cm9sbGVyKCkKIHsKICAgICByZXR1cm4gbV9wbHVnaW5Db250cm9s
bGVyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmgKaW5kZXggNWQxMzYwNGRjZGY0OTYxMmNmZjRlZjk5YjI5ZjBkMWM1ZGZkYTE3
Yy4uM2MyYjU1MWQ1NzE5YzJhOGZhODFmYmJkMDA0OWFhM2JmNWNkY2MxMyAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBA
IC03NCw5ICs3NCw5IEBAIHB1YmxpYzoKICAgICBOUEVycm9yIE5QUF9OZXdTdHJlYW0oTlBNSU1F
VHlwZSwgTlBTdHJlYW0qLCBOUEJvb2wgc2Vla2FibGUsIHVpbnQxNl90KiBzdHlwZSk7CiAgICAg
TlBFcnJvciBOUFBfRGVzdHJveVN0cmVhbShOUFN0cmVhbSosIE5QUmVhc29uKTsKICAgICB2b2lk
IE5QUF9TdHJlYW1Bc0ZpbGUoTlBTdHJlYW0qLCBjb25zdCBjaGFyKiBmaWxlbmFtZSk7Ci0KICAg
ICBpbnQzMl90IE5QUF9Xcml0ZVJlYWR5KE5QU3RyZWFtKik7CiAgICAgaW50MzJfdCBOUFBfV3Jp
dGUoTlBTdHJlYW0qLCBpbnQzMl90IG9mZnNldCwgaW50MzJfdCBsZW4sIHZvaWQqIGJ1ZmZlcik7
CisgICAgaW50MTZfdCBOUFBfSGFuZGxlRXZlbnQodm9pZCogZXZlbnQpOwogICAgIHZvaWQgTlBQ
X1VSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIE5QUmVhc29uLCB2b2lkKiBub3RpZnlEYXRhKTsK
ICAgICBOUEVycm9yIE5QUF9HZXRWYWx1ZShOUFBWYXJpYWJsZSwgdm9pZCAqdmFsdWUpOwogCkBA
IC05Miw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9ybVBvc3RJbml0aWFsaXpl
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybVBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCk7CiAKKyAgICBib29sIHBsYXRmb3JtSGFu
ZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jik7CisgICAgYm9vbCBwbGF0Zm9ybUhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYpOworCiAgICAgLy8gUGx1Z2luCiAg
ICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciosIGNvbnN0IFBhcmFt
ZXRlcnMmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwpAQCAtMTA1LDYgKzEwOCw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbURpZFJlY2VpdmVEYXRhKHVpbnQ2NF90
IHN0cmVhbUlELCBjb25zdCBjaGFyKiBieXRlcywgaW50IGxlbmd0aCk7CiAgICAgdmlydHVhbCB2
b2lkIHN0cmVhbURpZEZpbmlzaExvYWRpbmcodWludDY0X3Qgc3RyZWFtSUQpOwogICAgIHZpcnR1
YWwgdm9pZCBzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHdhc0NhbmNlbGxl
ZCk7CisgICAgdmlydHVhbCBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYpOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZl
bnQmKTsKIAogICAgIHZpcnR1YWwgUGx1Z2luQ29udHJvbGxlciogY29udHJvbGxlcigpOwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2Nh
cGVQbHVnaW5NYWMuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY5
NTQ1MzFjNzM5YzM4MDhlYTE5NjgxYjViNDFmNzFkNzUwZDVjNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKLQotI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotTlBFcnJvciBOZXRzY2FwZVBsdWdpbjo6c2V0
RHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsIGRyYXdpbmdNb2RlbCkKLXsKLSAgICAvLyBUaGUg
ZHJhd2luZyBtb2RlbCBjYW4gb25seSBiZSBzZXQgZnJvbSBOUFBfTmV3LgotICAgIGlmICghbV9p
bk5QUE5ldykKLSAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0KLSAgICBzd2l0
Y2ggKGRyYXdpbmdNb2RlbCkgewotI2lmbmRlZiBOUF9OT19RVUlDS0RSQVcKLSAgICAgICAgY2Fz
ZSBOUERyYXdpbmdNb2RlbFF1aWNrRHJhdzoKLSNlbmRpZgotICAgICAgICBjYXNlIE5QRHJhd2lu
Z01vZGVsQ29yZUdyYXBoaWNzOgotICAgICAgICBjYXNlIE5QRHJhd2luZ01vZGVsQ29yZUFuaW1h
dGlvbjoKLSAgICAgICAgICAgIG1fZHJhd2luZ01vZGVsID0gZHJhd2luZ01vZGVsOwotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBOUEVS
Ul9HRU5FUklDX0VSUk9SOwotICAgIH0KLQotICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKLX0K
LSAgICAKLU5QRXJyb3IgTmV0c2NhcGVQbHVnaW46OnNldEV2ZW50TW9kZWwoTlBFdmVudE1vZGVs
IGV2ZW50TW9kZWwpCi17Ci0gICAgLy8gVGhlIGV2ZW50IG1vZGVsIGNhbiBvbmx5IGJlIHNldCBm
cm9tIE5QUF9OZXcuCi0gICAgaWYgKCFtX2luTlBQTmV3KQotICAgICAgICByZXR1cm4gTlBFUlJf
R0VORVJJQ19FUlJPUjsKLQotICAgIHN3aXRjaCAoZXZlbnRNb2RlbCkgewotI2lmbmRlZiBOUF9O
T19DQVJCT04KLSAgICAgICAgY2FzZSBOUEV2ZW50TW9kZWxDYXJib246Ci0jZW5kaWYKLSAgICAg
ICAgY2FzZSBOUEV2ZW50TW9kZWxDb2NvYToKLSAgICAgICAgICAgIG1fZXZlbnRNb2RlbCA9IGV2
ZW50TW9kZWw7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Ci0gICAgfQotICAgIAotICAgIHJldHVy
biBOUEVSUl9OT19FUlJPUjsKLX0KLQotYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1Qb3N0
SW5pdGlhbGl6ZSgpCi17Ci0gICAgaWYgKG1fZHJhd2luZ01vZGVsID09IHN0YXRpY19jYXN0PE5Q
RHJhd2luZ01vZGVsPigtMSkpIHsKLSNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCi0gICAgICAgIC8v
IERlZmF1bHQgdG8gUXVpY2tEcmF3IGlmIHRoZSBwbHVnaW4gZGlkIG5vdCBzcGVjaWZ5IGEgZHJh
d2luZyBtb2RlbC4KLSAgICAgICAgbV9kcmF3aW5nTW9kZWwgPSBOUERyYXdpbmdNb2RlbFF1aWNr
RHJhdzsKLSNlbHNlCi0gICAgICAgIC8vIFF1aWNrRHJhdyBpcyBub3QgYXZhaWxhYmxlLCBzbyB3
ZSBjYW4ndCBkZWZhdWx0IHRvIGl0LiBJbnN0ZWFkLCBkZWZhdWx0IHRvIENvcmVHcmFwaGljcy4K
LSAgICAgICAgbV9kcmF3aW5nTW9kZWwgPSBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljczsKLSNl
bmRpZgotICAgIH0KLSAgICAKLSAgICBpZiAobV9ldmVudE1vZGVsID09IHN0YXRpY19jYXN0PE5Q
RXZlbnRNb2RlbD4oLTEpKSB7Ci0gICAgICAgIC8vIElmIHRoZSBwbHVnLWluIGRpZCBub3Qgc3Bl
Y2lmeSBhIGRyYXdpbmcgbW9kZWwgd2UgZGVmYXVsdCB0byBDYXJib24gd2hlbiBpdCBpcyBhdmFp
bGFibGUuCi0jaWZuZGVmIE5QX05PX0NBUkJPTgotICAgICAgICBtX2V2ZW50TW9kZWwgPSBOUEV2
ZW50TW9kZWxDYXJib247Ci0jZWxzZQotICAgICAgICBtX2V2ZW50TW9kZWwgPSBOUEV2ZW50TW9k
ZWxDb2NvYTsKLSNlbmRpZiAvLyBOUF9OT19DQVJCT04KLSAgICB9Ci0KLSNpZiAhZGVmaW5lZChO
UF9OT19DQVJCT04pICYmICFkZWZpbmVkKE5QX05PX1FVSUNLRFJBVykKLSAgICAvLyBUaGUgQ0Eg
ZHJhd2luZyBtb2RlbCBkb2VzIG5vdCB3b3JrIHdpdGggdGhlIENhcmJvbiBldmVudCBtb2RlbC4K
LSAgICBpZiAobV9kcmF3aW5nTW9kZWwgPT0gTlBEcmF3aW5nTW9kZWxDb3JlQW5pbWF0aW9uICYm
IG1fZXZlbnRNb2RlbCA9PSBOUEV2ZW50TW9kZWxDYXJib24pCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKLSAgICAvLyBUaGUgQ29jb2EgZXZlbnQgbW9kZWwgZG9lcyBub3Qgd29yayB3aXRo
IHRoZSBRdWlja0RyYXcgZHJhd2luZyBtb2RlbC4KLSAgICBpZiAobV9ldmVudE1vZGVsID09IE5Q
RXZlbnRNb2RlbENvY29hICYmIG1fZHJhd2luZ01vZGVsID09IE5QRHJhd2luZ01vZGVsUXVpY2tE
cmF3KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAgICAKLSNpZm5kZWYgTlBfTk9f
UVVJQ0tEUkFXCi0gICAgLy8gUmlnaHQgbm93IHdlIGRvbid0IHN1cHBvcnQgdGhlIFF1aWNrRHJh
dyBkcmF3aW5nIG1vZGVsIGF0IGFsbAotICAgIGlmIChtX2RyYXdpbmdNb2RlbCA9PSBOUERyYXdp
bmdNb2RlbFF1aWNrRHJhdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGlubGluZSBOUENvY29hRXZlbnQgaW5pdGlhbGl6ZUV2
ZW50KE5QQ29jb2FFdmVudFR5cGUgdHlwZSkKLXsKLSAgICBOUENvY29hRXZlbnQgZXZlbnQ7Ci0g
ICAgCi0gICAgZXZlbnQudHlwZSA9IHR5cGU7Ci0gICAgZXZlbnQudmVyc2lvbiA9IDA7Ci0gICAg
Ci0gICAgcmV0dXJuIGV2ZW50OwotfQotCi12b2lkIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybVBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQot
ewotICAgIHN3aXRjaCAobV9ldmVudE1vZGVsKSB7Ci0gICAgICAgIGNhc2UgTlBFdmVudE1vZGVs
Q29jb2E6IHsKLSAgICAgICAgICAgIE5QQ29jb2FFdmVudCBldmVudCA9IGluaXRpYWxpemVFdmVu
dChOUENvY29hRXZlbnREcmF3UmVjdCk7Ci0KLSAgICAgICAgICAgIGV2ZW50LmRhdGEuZHJhdy5j
b250ZXh0ID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgICAgICBldmVudC5k
YXRhLmRyYXcueCA9IGRpcnR5UmVjdC54KCkgLSBtX2ZyYW1lUmVjdC54KCk7Ci0gICAgICAgICAg
ICBldmVudC5kYXRhLmRyYXcueSA9IGRpcnR5UmVjdC55KCkgLSBtX2ZyYW1lUmVjdC55KCk7Ci0g
ICAgICAgICAgICBldmVudC5kYXRhLmRyYXcud2lkdGggPSBkaXJ0eVJlY3Qud2lkdGgoKTsKLSAg
ICAgICAgICAgIGV2ZW50LmRhdGEuZHJhdy5oZWlnaHQgPSBkaXJ0eVJlY3QuaGVpZ2h0KCk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIG1fcGx1Z2luTW9kdWxlLT5wbHVnaW5GdW5jcygpLmV2
ZW50KCZtX25wcCwgJmV2ZW50KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDljOTNjYjQ0ZmNhNDljOGQ0YTRjNjg4NTRlOGYzZjVjNjk5MWUxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCisKKyNpbmNsdWRlIDxBcHBLaXQvQXBwS2l0Lmg+Cisj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05Q
RXJyb3IgTmV0c2NhcGVQbHVnaW46OnNldERyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBkcmF3
aW5nTW9kZWwpCit7CisgICAgLy8gVGhlIGRyYXdpbmcgbW9kZWwgY2FuIG9ubHkgYmUgc2V0IGZy
b20gTlBQX05ldy4KKyAgICBpZiAoIW1faW5OUFBOZXcpCisgICAgICAgIHJldHVybiBOUEVSUl9H
RU5FUklDX0VSUk9SOworCisgICAgc3dpdGNoIChkcmF3aW5nTW9kZWwpIHsKKyNpZm5kZWYgTlBf
Tk9fUVVJQ0tEUkFXCisgICAgICAgIGNhc2UgTlBEcmF3aW5nTW9kZWxRdWlja0RyYXc6CisjZW5k
aWYKKyAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljczoKKyAgICAgICAgY2Fz
ZSBOUERyYXdpbmdNb2RlbENvcmVBbmltYXRpb246CisgICAgICAgICAgICBtX2RyYXdpbmdNb2Rl
bCA9IGRyYXdpbmdNb2RlbDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gTlBFUlJfTk9fRVJST1I7Cit9CisgICAgCitOUEVycm9yIE5ldHNjYXBlUGx1Z2luOjpz
ZXRFdmVudE1vZGVsKE5QRXZlbnRNb2RlbCBldmVudE1vZGVsKQoreworICAgIC8vIFRoZSBldmVu
dCBtb2RlbCBjYW4gb25seSBiZSBzZXQgZnJvbSBOUFBfTmV3LgorICAgIGlmICghbV9pbk5QUE5l
dykKKyAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAgICBzd2l0Y2ggKGV2
ZW50TW9kZWwpIHsKKyNpZm5kZWYgTlBfTk9fQ0FSQk9OCisgICAgICAgIGNhc2UgTlBFdmVudE1v
ZGVsQ2FyYm9uOgorI2VuZGlmCisgICAgICAgIGNhc2UgTlBFdmVudE1vZGVsQ29jb2E6CisgICAg
ICAgICAgICBtX2V2ZW50TW9kZWwgPSBldmVudE1vZGVsOworICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9S
OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Cit9CisKK2Jvb2wgTmV0
c2NhcGVQbHVnaW46OnBsYXRmb3JtUG9zdEluaXRpYWxpemUoKQoreworICAgIGlmIChtX2RyYXdp
bmdNb2RlbCA9PSBzdGF0aWNfY2FzdDxOUERyYXdpbmdNb2RlbD4oLTEpKSB7CisjaWZuZGVmIE5Q
X05PX1FVSUNLRFJBVworICAgICAgICAvLyBEZWZhdWx0IHRvIFF1aWNrRHJhdyBpZiB0aGUgcGx1
Z2luIGRpZCBub3Qgc3BlY2lmeSBhIGRyYXdpbmcgbW9kZWwuCisgICAgICAgIG1fZHJhd2luZ01v
ZGVsID0gTlBEcmF3aW5nTW9kZWxRdWlja0RyYXc7CisjZWxzZQorICAgICAgICAvLyBRdWlja0Ry
YXcgaXMgbm90IGF2YWlsYWJsZSwgc28gd2UgY2FuJ3QgZGVmYXVsdCB0byBpdC4gSW5zdGVhZCwg
ZGVmYXVsdCB0byBDb3JlR3JhcGhpY3MuCisgICAgICAgIG1fZHJhd2luZ01vZGVsID0gTlBEcmF3
aW5nTW9kZWxDb3JlR3JhcGhpY3M7CisjZW5kaWYKKyAgICB9CisgICAgCisgICAgaWYgKG1fZXZl
bnRNb2RlbCA9PSBzdGF0aWNfY2FzdDxOUEV2ZW50TW9kZWw+KC0xKSkgeworICAgICAgICAvLyBJ
ZiB0aGUgcGx1Zy1pbiBkaWQgbm90IHNwZWNpZnkgYSBkcmF3aW5nIG1vZGVsIHdlIGRlZmF1bHQg
dG8gQ2FyYm9uIHdoZW4gaXQgaXMgYXZhaWxhYmxlLgorI2lmbmRlZiBOUF9OT19DQVJCT04KKyAg
ICAgICAgbV9ldmVudE1vZGVsID0gTlBFdmVudE1vZGVsQ2FyYm9uOworI2Vsc2UKKyAgICAgICAg
bV9ldmVudE1vZGVsID0gTlBFdmVudE1vZGVsQ29jb2E7CisjZW5kaWYgLy8gTlBfTk9fQ0FSQk9O
CisgICAgfQorCisjaWYgIWRlZmluZWQoTlBfTk9fQ0FSQk9OKSAmJiAhZGVmaW5lZChOUF9OT19R
VUlDS0RSQVcpCisgICAgLy8gVGhlIENBIGRyYXdpbmcgbW9kZWwgZG9lcyBub3Qgd29yayB3aXRo
IHRoZSBDYXJib24gZXZlbnQgbW9kZWwuCisgICAgaWYgKG1fZHJhd2luZ01vZGVsID09IE5QRHJh
d2luZ01vZGVsQ29yZUFuaW1hdGlvbiAmJiBtX2V2ZW50TW9kZWwgPT0gTlBFdmVudE1vZGVsQ2Fy
Ym9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgLy8gVGhlIENvY29hIGV2ZW50
IG1vZGVsIGRvZXMgbm90IHdvcmsgd2l0aCB0aGUgUXVpY2tEcmF3IGRyYXdpbmcgbW9kZWwuCisg
ICAgaWYgKG1fZXZlbnRNb2RlbCA9PSBOUEV2ZW50TW9kZWxDb2NvYSAmJiBtX2RyYXdpbmdNb2Rl
bCA9PSBOUERyYXdpbmdNb2RlbFF1aWNrRHJhdykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgCisjaWZuZGVmIE5QX05PX1FVSUNLRFJBVworICAgIC8vIFJpZ2h0IG5vdyB3ZSBk
b24ndCBzdXBwb3J0IHRoZSBRdWlja0RyYXcgZHJhd2luZyBtb2RlbCBhdCBhbGwKKyAgICBpZiAo
bV9kcmF3aW5nTW9kZWwgPT0gTlBEcmF3aW5nTW9kZWxRdWlja0RyYXcpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbmxpbmUg
TlBDb2NvYUV2ZW50IGluaXRpYWxpemVFdmVudChOUENvY29hRXZlbnRUeXBlIHR5cGUpCit7Cisg
ICAgTlBDb2NvYUV2ZW50IGV2ZW50OworICAgIAorICAgIGV2ZW50LnR5cGUgPSB0eXBlOworICAg
IGV2ZW50LnZlcnNpb24gPSAwOworICAgIAorICAgIHJldHVybiBldmVudDsKK30KKwordm9pZCBO
ZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1QYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIGRpcnR5UmVjdCkKK3sKKyAgICBzd2l0Y2ggKG1fZXZlbnRNb2RlbCkgewor
ICAgICAgICBjYXNlIE5QRXZlbnRNb2RlbENvY29hOiB7CisgICAgICAgICAgICBOUENvY29hRXZl
bnQgZXZlbnQgPSBpbml0aWFsaXplRXZlbnQoTlBDb2NvYUV2ZW50RHJhd1JlY3QpOworCisgICAg
ICAgICAgICBldmVudC5kYXRhLmRyYXcuY29udGV4dCA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpOworICAgICAgICAgICAgZXZlbnQuZGF0YS5kcmF3LnggPSBkaXJ0eVJlY3QueCgpIC0gbV9m
cmFtZVJlY3QueCgpOworICAgICAgICAgICAgZXZlbnQuZGF0YS5kcmF3LnkgPSBkaXJ0eVJlY3Qu
eSgpIC0gbV9mcmFtZVJlY3QueSgpOworICAgICAgICAgICAgZXZlbnQuZGF0YS5kcmF3LndpZHRo
ID0gZGlydHlSZWN0LndpZHRoKCk7CisgICAgICAgICAgICBldmVudC5kYXRhLmRyYXcuaGVpZ2h0
ID0gZGlydHlSZWN0LmhlaWdodCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBOUFBfSGFu
ZGxlRXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorfQorCitzdGF0aWMgdWludDMyX3QgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJFdmVudCYg
ZXZlbnQpCit7CisgICAgdWludDMyX3QgbW9kaWZpZXJzID0gMDsKKworICAgIGlmIChldmVudC5z
aGlmdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgaWYg
KGV2ZW50LmNvbnRyb2xLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TQ29udHJvbEtleU1h
c2s7CisgICAgaWYgKGV2ZW50LmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTlNBbHRl
cm5hdGVLZXlNYXNrOworICAgIGlmIChldmVudC5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBOU0NvbW1hbmRLZXlNYXNrOworICAgIAorICAgIHJldHVybiBtb2RpZmllcnM7Cit9Cisg
ICAgCitzdGF0aWMgaW50MzJfdCBidXR0b25OdW1iZXIoV2ViTW91c2VFdmVudDo6QnV0dG9uIGJ1
dHRvbikKK3sKKyAgICBzd2l0Y2ggKGJ1dHRvbikgeworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6
Tm9CdXR0b246CisgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgorICAgICAgICBy
ZXR1cm4gMTsKKyAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjoKKyAgICAgICAg
cmV0dXJuIDI7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IC0xOworfQorCitzdGF0aWMgTlBDb2NvYUV2ZW50IGluaXRpYWxpemVNb3VzZUV2ZW50KGNvbnN0
IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwbHVn
aW5Mb2NhdGlvbikKK3sKKyAgICBOUENvY29hRXZlbnRUeXBlIGV2ZW50VHlwZTsKKworICAgIHN3
aXRjaCAobW91c2VFdmVudC50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZURvd246
CisgICAgICAgIGV2ZW50VHlwZSA9IE5QQ29jb2FFdmVudE1vdXNlRG93bjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKKyAgICAgICAgZXZlbnRUeXBlID0gTlBD
b2NvYUV2ZW50TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJFdmVudDo6TW91
c2VNb3ZlOgorICAgICAgICBpZiAobW91c2VFdmVudC5idXR0b24oKSA9PSBXZWJNb3VzZUV2ZW50
OjpOb0J1dHRvbikKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5QQ29jb2FFdmVudE1vdXNlTW92
ZWQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5QQ29jb2FFdmVudE1v
dXNlRHJhZ2dlZDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOUENvY29hRXZlbnQoKTsKKyAgICB9CisK
KyAgICBOUENvY29hRXZlbnQgZXZlbnQgPSBpbml0aWFsaXplRXZlbnQoZXZlbnRUeXBlKTsKKyAg
ICAKKyAgICBldmVudC5kYXRhLm1vdXNlLm1vZGlmaWVyRmxhZ3MgPSBtb2RpZmllckZsYWdzKG1v
dXNlRXZlbnQpOworICAgIGV2ZW50LmRhdGEubW91c2UucGx1Z2luWCA9IG1vdXNlRXZlbnQucG9z
aXRpb25YKCkgLSBwbHVnaW5Mb2NhdGlvbi54KCk7CisgICAgZXZlbnQuZGF0YS5tb3VzZS5wbHVn
aW5ZID0gbW91c2VFdmVudC5wb3NpdGlvblkoKSAtIHBsdWdpbkxvY2F0aW9uLnkoKTsKKyAgICBl
dmVudC5kYXRhLm1vdXNlLmJ1dHRvbk51bWJlciA9IGJ1dHRvbk51bWJlcihtb3VzZUV2ZW50LmJ1
dHRvbigpKTsKKyAgICBldmVudC5kYXRhLm1vdXNlLmNsaWNrQ291bnQgPSBtb3VzZUV2ZW50LmNs
aWNrQ291bnQoKTsKKyAgICBldmVudC5kYXRhLm1vdXNlLmRlbHRhWCA9IG1vdXNlRXZlbnQuZGVs
dGFYKCk7CisgICAgZXZlbnQuZGF0YS5tb3VzZS5kZWx0YVkgPSBtb3VzZUV2ZW50LmRlbHRhWSgp
OworICAgIGV2ZW50LmRhdGEubW91c2UuZGVsdGFaID0gbW91c2VFdmVudC5kZWx0YVooKTsKKwor
ICAgIHJldHVybiBldmVudDsKK30KKworYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5k
bGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCit7CisgICAgc3dp
dGNoIChtX2V2ZW50TW9kZWwpIHsKKyAgICAgICAgY2FzZSBOUEV2ZW50TW9kZWxDb2NvYTogewor
ICAgICAgICAgICAgTlBDb2NvYUV2ZW50IGV2ZW50ID0gaW5pdGlhbGl6ZU1vdXNlRXZlbnQobW91
c2VFdmVudCwgbV9mcmFtZVJlY3QubG9jYXRpb24oKSk7CisgICAgICAgICAgICByZXR1cm4gTlBQ
X0hhbmRsZUV2ZW50KCZldmVudCk7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIAorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCit7CisgICAgc3dpdGNoIChtX2V2ZW50
TW9kZWwpIHsKKyAgICAgICAgY2FzZSBOUEV2ZW50TW9kZWxDb2NvYTogeworICAgICAgICAgICAg
TlBDb2NvYUV2ZW50IGV2ZW50ID0gaW5pdGlhbGl6ZUV2ZW50KE5QQ29jb2FFdmVudFNjcm9sbFdo
ZWVsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXZlbnQuZGF0YS5tb3VzZS5tb2RpZmll
ckZsYWdzID0gbW9kaWZpZXJGbGFncyh3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgIGV2ZW50LmRh
dGEubW91c2UucGx1Z2luWCA9IHdoZWVsRXZlbnQucG9zaXRpb25YKCkgLSBtX2ZyYW1lUmVjdC54
KCk7CisgICAgICAgICAgICBldmVudC5kYXRhLm1vdXNlLnBsdWdpblkgPSB3aGVlbEV2ZW50LnBv
c2l0aW9uWSgpIC0gbV9mcmFtZVJlY3QueSgpOworICAgICAgICAgICAgZXZlbnQuZGF0YS5tb3Vz
ZS5idXR0b25OdW1iZXIgPSAwOworICAgICAgICAgICAgZXZlbnQuZGF0YS5tb3VzZS5jbGlja0Nv
dW50ID0gMDsKKyAgICAgICAgICAgIGV2ZW50LmRhdGEubW91c2UuZGVsdGFYID0gd2hlZWxFdmVu
dC5kZWx0YVgoKTsKKyAgICAgICAgICAgIGV2ZW50LmRhdGEubW91c2UuZGVsdGFZID0gd2hlZWxF
dmVudC5kZWx0YVkoKTsKKyAgICAgICAgICAgIGV2ZW50LmRhdGEubW91c2UuZGVsdGFaID0gMDsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIE5QUF9IYW5kbGVFdmVudCgmZXZlbnQp
OworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKyAgICAKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAppbmRleCAxOGNlODdj
YTJlYjBhNzYxMzNjMjhkYmYwZWFhODU5NWY1NjNmYTEzLi5iM2M4MzZlM2E4ODhlNWQ5MzQxMzJj
NWNiNjEwNjUzNzFhZDM1OGRjIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaApAQCAt
MzcsNiArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CitjbGFzcyBXZWJNb3VzZUV2ZW50OworY2xhc3MgV2ViV2hlZWxFdmVudDsKKyAgICAKIGNsYXNz
IFBsdWdpbkNvbnRyb2xsZXI7CiAKIGNsYXNzIFBsdWdpbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBs
dWdpbj4gewpAQCAtODYsNiArODksMTIgQEAgcHVibGljOgogICAgIC8vIFRlbGxzIHRoZSBwbHVn
LWluIHRoYXQgYSBzdHJlYW0gaGFzIGZhaWxlZCB0byBsb2FkLCBlaXRoZXIgYmVjYXVzZSBvZiBu
ZXR3b3JrIGVycm9ycyBvciBiZWNhdXNlIHRoZSBsb2FkIHdhcyBjYW5jZWxsZWQuCiAgICAgdmly
dHVhbCB2b2lkIHN0cmVhbURpZEZhaWwodWludDY0X3Qgc3RyZWFtSUQsIGJvb2wgd2FzQ2FuY2Vs
bGVkKSA9IDA7CiAKKyAgICAvLyBUZWxscyB0aGUgcGx1Zy1pbiB0byBoYW5kbGUgdGhlIHBhc3Nl
ZCBpbiBtb3VzZSBldmVudC4gVGhlIHBsdWctaW4gc2hvdWxkIHJldHVybiB0cnVlIGlmIGl0IHBy
b2Nlc3NlZCB0aGUgZXZlbnQuCisgICAgdmlydHVhbCBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYpID0gMDsKKworICAgIC8vIFRlbGxzIHRoZSBwbHVnLWluIHRvIGhh
bmRsZSB0aGUgcGFzc2VkIGluIHdoZWVsIGV2ZW50LiBUaGUgcGx1Zy1pbiBzaG91bGQgcmV0dXJu
IHRydWUgaWYgaXQgcHJvY2Vzc2VkIHRoZSBldmVudC4KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JikgPSAwOworCiAgICAgLy8gUmV0dXJucyB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIGZvciB0aGlzIHBsdWctaW4uCiAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGp1c3QgaGF2ZSB0aGUgY29udHJvbGxlciBiZSBhIG1lbWJlciB2YXJpYWJsZSBvZiBQ
bHVnaW4uCiAgICAgdmlydHVhbCBQbHVnaW5Db250cm9sbGVyKiBjb250cm9sbGVyKCkgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA3N2E5OGYxYmRh
ZGMzOWY2MTQxYTAwZDQyZTM0Njk3MGQ4NTFhMThkLi5jZTVhN2EwOThiNTA0OTcxMThmNzZmNGMy
NjRjMTlhZjQ4NDllYjk3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKIAogI2luY2x1
ZGUgIlBsdWdpbi5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0V2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBAIC0zMTgs
OSArMzIwLDI2IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHNjcm9s
bFZpZXcpCiAgICAgdmlld0dlb21ldHJ5RGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmll
dzo6aGFuZGxlRXZlbnQoRXZlbnQqKQordm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVu
dCogZXZlbnQpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBjb25zdCBXZWJFdmVu
dCogY3VycmVudEV2ZW50ID0gV2ViUGFnZTo6Y3VycmVudEV2ZW50KCk7CisgICAgaWYgKCFjdXJy
ZW50RXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgZGlkSGFuZGxlRXZlbnQgPSBm
YWxzZTsKKworICAgIGlmICgoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgY3VycmVudEV2ZW50LT50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlTW92ZSkgCisg
ICAgICAgIHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAm
JiBjdXJyZW50RXZlbnQtPnR5cGUoKSA9PSBXZWJFdmVudDo6TW91c2VEb3duKQorICAgICAgICB8
fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGN1cnJlbnRF
dmVudC0+dHlwZSgpID09IFdlYkV2ZW50OjpNb3VzZVVwKSkgeworICAgICAgICAvLyBXZSBoYXZl
IGEgbW91c2UgZXZlbnQuCisgICAgICAgIGRpZEhhbmRsZUV2ZW50ID0gbV9wbHVnaW4tPmhhbmRs
ZU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KCpjdXJyZW50RXZl
bnQpKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNl
d2hlZWxFdmVudCAmJiBjdXJyZW50RXZlbnQtPnR5cGUoKSA9PSBXZWJFdmVudDo6V2hlZWwpIHsK
KyAgICAgICAgLy8gV2UgaGF2ZSBhIHdoZWVsIGV2ZW50LgorICAgICAgICBkaWRIYW5kbGVFdmVu
dCA9IG1fcGx1Z2luLT5oYW5kbGVXaGVlbEV2ZW50KHN0YXRpY19jYXN0PGNvbnN0IFdlYldoZWVs
RXZlbnQmPigqY3VycmVudEV2ZW50KSk7CisgICAgfQorCisgICAgaWYgKGRpZEhhbmRsZUV2ZW50
KQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KICAgICAKIHZvaWQgUGx1
Z2luVmlldzo6dmlld0dlb21ldHJ5RGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggOGJiYjE5NDYwMWE2OWUzOGY5NzYwYTMzNDkyMTkzODdiOTc5ZGVj
My4uNzIwNjA3MjYyZDhlZDZiZWY4MDA4ZjJjYzg3NzBlNWE1ZjdmNWY0OSAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI3Nyw4ICsyNzcsMzcgQEAgdm9pZCBXZWJQ
YWdlOjpkcmF3UmVjdChHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIAogLy8gRXZlbnRzIAogCitzdGF0aWMgY29uc3QgV2ViRXZlbnQqIGdfY3Vy
cmVudEV2ZW50ID0gMDsKKworLy8gRklYTUU6IFdlYlBhZ2U6OmN1cnJlbnRFdmVudCBpcyB1c2Vk
IGJ5IHRoZSBwbHVnLWluIGNvZGUgdG8gYXZvaWQgaGF2aW5nIHRvIGNvbnZlcnQgZnJvbSBET00g
ZXZlbnRzIGJhY2sgdG8KKy8vIFdlYkV2ZW50cy4gV2hlbiB3ZSBnZXQgdGhlIGV2ZW50IGhhbmRs
aW5nIHNvcnRlZCBvdXQsIHRoaXMgc2hvdWxkIGdvIGF3YXkgYW5kIHRoZSBXaWRnZXRzIHNob3Vs
ZCBnZXQgdGhlIGNvcnJlY3QKKy8vIHBsYXRmb3JtIGV2ZW50cyBwYXNzZWQgdG8gdGhlIGV2ZW50
IGhhbmRsZXIgY29kZS4KK2NvbnN0IFdlYkV2ZW50KiBXZWJQYWdlOjpjdXJyZW50RXZlbnQoKQor
eworICAgIHJldHVybiBnX2N1cnJlbnRFdmVudDsKK30KKworY2xhc3MgQ3VycmVudEV2ZW50IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBDdXJyZW50RXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50
KQorICAgICAgICA6IG1fcHJldmlvdXNDdXJyZW50RXZlbnQoZ19jdXJyZW50RXZlbnQpCisgICAg
eworICAgICAgICBnX2N1cnJlbnRFdmVudCA9ICZldmVudDsKKyAgICB9CisKKyAgICB+Q3VycmVu
dEV2ZW50KCkKKyAgICB7CisgICAgICAgIGdfY3VycmVudEV2ZW50ID0gbV9wcmV2aW91c0N1cnJl
bnRFdmVudDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgV2ViRXZlbnQqIG1fcHJldmlv
dXNDdXJyZW50RXZlbnQ7Cit9OworCiB2b2lkIFdlYlBhZ2U6Om1vdXNlRXZlbnQoY29uc3QgV2Vi
TW91c2VFdmVudCYgbW91c2VFdmVudCkKIHsKKyAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50
KG1vdXNlRXZlbnQpOworCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5z
ZW5kKFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkRpZFJlY2VpdmVFdmVudCwgbV9wYWdlSUQsIENvcmVJ
UEM6OkluKHN0YXRpY19jYXN0PHVpbnQzMl90Pihtb3VzZUV2ZW50LnR5cGUoKSkpKTsKIAogICAg
IGlmICghbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkpCkBAIC0zMDQsNiArMzMzLDgg
QEAgdm9pZCBXZWJQYWdlOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQpCiAKIHZvaWQgV2ViUGFnZTo6d2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogeworICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQod2hlZWxFdmVudCk7CisK
ICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoV2ViUGFnZVByb3h5
TWVzc2FnZTo6RGlkUmVjZWl2ZUV2ZW50LCBtX3BhZ2VJRCwgQ29yZUlQQzo6SW4oc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KHdoZWVsRXZlbnQudHlwZSgpKSkpOwogICAgIGlmICghbV9tYWluRnJhbWUt
PmNvcmVGcmFtZSgpLT52aWV3KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMxNCw2ICszNDUsOCBA
QCB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCkKIAogdm9pZCBXZWJQYWdlOjprZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXli
b2FyZEV2ZW50KQogeworICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQoa2V5Ym9hcmRFdmVu
dCk7CisKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoV2ViUGFn
ZVByb3h5TWVzc2FnZTo6RGlkUmVjZWl2ZUV2ZW50LCBtX3BhZ2VJRCwgQ29yZUlQQzo6SW4oc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KGtleWJvYXJkRXZlbnQudHlwZSgpKSkpOwogCiAgICAgaWYgKCFt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKSkKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBhYTU1NmZjOTQxNmZiMWY2NjBmNTg0NGY1ODMxNWMwN2JkMDBhZmVhLi44
MmIwOWIxOGViZDk4YjZhMzNiYzQwYTg2ZTM3ZjM1MDZiODhmNTUxIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01NCw2ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYTsKK2NsYXNzIFdlYkV2ZW50
OwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91
c2VFdmVudDsKQEAgLTEwOSw2ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICNlbmRpZgogCisgICAgc3RhdGljIGNvbnN0IFdlYkV2
ZW50KiBjdXJyZW50RXZlbnQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmLCBEcmF3aW5nQXJlYTo6VHlwZSk7CiAK
</data>
<flag name="review"
          id="50820"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>