<?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>5874</bug_id>
          
          <creation_ts>2005-11-29 03:48:31 -0800</creation_ts>
          <short_desc>WebCore+SVG needs support for &quot;evt&quot; instead of event</short_desc>
          <delta_ts>2006-01-22 16:52:55 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6026</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>24840</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-29 03:48:31 -0800</bug_when>
    <thetext>For whatever reason the SVG working group chose to specify &quot;evt&quot; as the name of the parameter passed to 
inline event handlers.

This simple patch adds support for this to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24841</commentid>
    <comment_count>1</comment_count>
      <attachid>4844</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-29 03:48:49 -0800</bug_when>
    <thetext>Created attachment 4844
simple patch adding &quot;evt&quot; support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24842</commentid>
    <comment_count>2</comment_count>
      <attachid>4844</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-29 03:49:08 -0800</bug_when>
    <thetext>Comment on attachment 4844
simple patch adding &quot;evt&quot; support

mjs, darin or ggaren could easily review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24865</commentid>
    <comment_count>3</comment_count>
      <attachid>4844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-29 07:29:19 -0800</bug_when>
    <thetext>Comment on attachment 4844
simple patch adding &quot;evt&quot; support

I think a cleaner and clearer way to do this is to have a createSVGEventHandler
alternative to the createHTMLEventHandler function that follows the SVG rules
instead.

To control the parameter name used when constructing the event listener, I
suggest either adding a parameter to the JSLazyEventListener constructor or
creating derived classes specific to HTML and SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24894</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-11-29 15:38:47 -0800</bug_when>
    <thetext>Agreed, there should be a different code path for SVG rather than testing the element like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28470</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-15 00:21:17 -0800</bug_when>
    <thetext>I believe you should support both evt and event.  I think that&apos;s something I recall was decided (either by 
Mozilla or CDF or someone).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29364</commentid>
    <comment_count>6</comment_count>
      <attachid>5836</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-22 04:40:26 -0800</bug_when>
    <thetext>Created attachment 5836
addressed Darin&apos;s concerns

This new patch adds an JSSVGLazyEventListener subclass for SVG to use.  This patch also simplifies the way that event listeners are created by removing two unecessary layers of abstraction.  This should address both darin and maciej&apos;s concerns.  We do not currently support both &quot;evt&quot; and &quot;event&quot; for SVG event handlers like hyatt (and others) suggested.  That dual functionality can be tracked by a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29446</commentid>
    <comment_count>7</comment_count>
      <attachid>5836</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-22 10:46:20 -0800</bug_when>
    <thetext>Comment on attachment 5836
addressed Darin&apos;s concerns

I don&apos;t like the underscore-prefixed name for the local variable. We should steer away from underscore prefixes in general since they are reserved for the library and platform.

Patch does not include JSSVGLazyEventListener.h and .cpp so I couldn&apos;t review them. Because of that, review-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29485</commentid>
    <comment_count>8</comment_count>
      <attachid>5851</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-22 15:18:07 -0800</bug_when>
    <thetext>Created attachment 5851
addressed darin&apos;s further concerns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29486</commentid>
    <comment_count>9</comment_count>
      <attachid>5851</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-22 15:23:03 -0800</bug_when>
    <thetext>Comment on attachment 5851
addressed darin&apos;s further concerns

I made a couple of comments on IRC. r=me (with or without the refinements from IRC).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4844</attachid>
            <date>2005-11-29 03:48:49 -0800</date>
            <delta_ts>2006-01-22 04:40:26 -0800</delta_ts>
            <desc>simple patch adding &quot;evt&quot; support</desc>
            <filename>evt.patch</filename>
            <type>text/plain</type>
            <size>1068</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEva2pzX2V2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfZXZlbnRzLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43MQpkaWZmIC1wIC11IC1yMS43MSBraHRtbC9lY21hL2tqc19ldmVudHMuY3BwCi0t
LSBraHRtbC9lY21hL2tqc19ldmVudHMuY3BwCTI3IE5vdiAyMDA1IDA3OjU0OjUwIC0wMDAwCTEu
NzEKKysrIGtodG1sL2VjbWEva2pzX2V2ZW50cy5jcHAJMjkgTm92IDIwMDUgMTE6NDY6MjYgLTAw
MDAKQEAgLTMwNCw5ICszMDQsMTUgQEAgdm9pZCBKU0xhenlFdmVudExpc3RlbmVyOjpwYXJzZUNv
ZGUoKSBjbwogICAgICAgT2JqZWN0SW1wICpjb25zdHIgPSBpbnRlcnByZXRlci0+YnVpbHRpbkZ1
bmN0aW9uKCk7CiAgICAgICBMaXN0IGFyZ3M7CiAKLSAgICAgIHN0YXRpYyBQcm90ZWN0ZWRQdHI8
VmFsdWVJbXA+IGV2ZW50U3RyaW5nID0gU3RyaW5nKCJldmVudCIpOworICAgICAgc3RhdGljIFBy
b3RlY3RlZFB0cjxWYWx1ZUltcD4gaHRtbEV2ZW50TmFtZSA9IFN0cmluZygiZXZlbnQiKTsKICAg
ICAgIFVTdHJpbmcgc291cmNlVVJMKHBhcnQtPm1fdXJsLnVybCgpKTsKLSAgICAgIGFyZ3MuYXBw
ZW5kKGV2ZW50U3RyaW5nKTsKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgc3RhdGljIFByb3RlY3Rl
ZFB0cjxWYWx1ZUltcD4gc3ZnRXZlbnROYW1lID0gU3RyaW5nKCJldnQiKTsKKyAgICAgIGlmIChv
cmlnaW5hbE5vZGUgJiYgb3JpZ2luYWxOb2RlLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgYXJn
cy5hcHBlbmQoc3ZnRXZlbnROYW1lKTsKKyAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgYXJncy5h
cHBlbmQoaHRtbEV2ZW50TmFtZSk7CiAgICAgICBhcmdzLmFwcGVuZChTdHJpbmcoY29kZSkpOwog
ICAgICAgbGlzdGVuZXIgPSBjb25zdHItPmNvbnN0cnVjdChleGVjLCBhcmdzLCBzb3VyY2VVUkws
IGxpbmVOdW1iZXIpOyAvLyAjIyMgaXMgZ2xvYmFsRXhlYyBvayA/CiAK
</data>
<flag name="review"
          id="911"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5836</attachid>
            <date>2006-01-22 04:40:26 -0800</date>
            <delta_ts>2006-01-22 15:18:07 -0800</delta_ts>
            <desc>addressed Darin&apos;s concerns</desc>
            <filename>evt.patch</filename>
            <type>text/plain</type>
            <size>18939</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Eb2N1bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94bWwv
RG9jdW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyMjgyKQorKysga2h0bWwveG1sL0RvY3VtZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsNiArNDIwLDExIEBAIHB1YmxpYzoKIAogICAgIEV2
ZW50TGlzdGVuZXIgKmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvbnN0IERPTVN0cmluZyYgY29k
ZSwgTm9kZUltcGwqKTsKICAgICAKKyNpZiBTVkdfU1VQUE9SVAorICAgIC8vIEZJWE1FOiBNb3Zl
IHRvIFNWR0RvY3VtZW50RXh0ZW50aW9ucywgd2hlbiB0aGF0IGxhbmRzIHcvIGFuaW1hdGlvbgor
ICAgIEV2ZW50TGlzdGVuZXIgKmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoY29uc3QgRE9NU3RyaW5n
JiBjb2RlLCBOb2RlSW1wbCopOworI2VuZGlmCisgICAgCiAgICAgLyoqCiAgICAgICogU2VhcmNo
ZXMgdGhyb3VnaCB0aGUgZG9jdW1lbnQsIHN0YXJ0aW5nIGZyb20gZnJvbU5vZGUsIGZvciB0aGUg
bmV4dCBzZWxlY3RhYmxlIGVsZW1lbnQgdGhhdCBjb21lcyBhZnRlciBmcm9tTm9kZS4KICAgICAg
KiBUaGUgb3JkZXIgZm9sbG93ZWQgaXMgYXMgc3BlY2lmaWVkIGluIHNlY3Rpb24gMTcuMTEuMSBv
ZiB0aGUgSFRNTDQgc3BlYywgd2hpY2ggaXMgZWxlbWVudHMgd2l0aCB0YWIgaW5kZXhlcwpJbmRl
eDoga2h0bWwveG1sL0RvY3VtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwveG1sL0Rv
Y3VtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyMjgyKQorKysga2h0bWwveG1sL0RvY3VtZW50SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyODIsMTIgKzIyODIsMjMgQEAgYm9vbCBEb2N1bWVu
dEltcGw6Omhhc1dpbmRvd0V2ZW50TGlzdGVuZQogCiBFdmVudExpc3RlbmVyICpEb2N1bWVudElt
cGw6OmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvbnN0IERPTVN0cmluZyYgY29kZSwgTm9kZUlt
cGwgKm5vZGUpCiB7Ci0gICAgaWYgKGZyYW1lKCkpIHsKLSAgICAgICAgcmV0dXJuIGZyYW1lKCkt
PmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvZGUsIG5vZGUpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHJldHVybiBOVUxMOworICAgIGlmIChGcmFtZSAqX2ZyYW1lID0gZnJhbWUoKSkgeworICAg
ICAgICBpZiAoS0pTUHJveHlJbXBsICpwcm94eSA9IF9mcmFtZS0+alNjcmlwdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb3h5LT5jcmVhdGVIVE1MRXZlbnRIYW5kbGVyKGNvZGUsIG5vZGUpOwor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworI2lmIFNWR19TVVBQT1JUCitFdmVudExpc3RlbmVy
ICpEb2N1bWVudEltcGw6OmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoY29uc3QgRE9NU3RyaW5nJiBj
b2RlLCBOb2RlSW1wbCAqbm9kZSkKK3sKKyAgICBpZiAoRnJhbWUgKl9mcmFtZSA9IGZyYW1lKCkp
IHsKKyAgICAgICAgaWYgKEtKU1Byb3h5SW1wbCAqcHJveHkgPSBfZnJhbWUtPmpTY3JpcHQoKSkK
KyAgICAgICAgICAgIHJldHVybiBwcm94eS0+Y3JlYXRlU1ZHRXZlbnRIYW5kbGVyKGNvZGUsIG5v
ZGUpOwogICAgIH0KKyAgICByZXR1cm4gMDsKIH0KKyNlbmRpZgogCiB2b2lkIERvY3VtZW50SW1w
bDo6c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEF0dHJpYnV0ZUltcGwqIGF0dHIpCiB7CkluZGV4OiBraHRtbC94bWwvTm9kZUltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2RlSW1wbC5jcHAJKHJldmlzaW9uIDEyMjgyKQor
Kysga2h0bWwveG1sL05vZGVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI1LDE1ICs1MjUs
MTIgQEAgYm9vbCBOb2RlSW1wbDo6ZGlzcGF0Y2hFdmVudChFdmVudEltcGwgKgogICAgIC8vIEZJ
WE1FOiBNdWNoIGNvZGUgaW4gdGhpcyBjbGFzcyBhc3N1bWVzIGRvY3VtZW50IGlzIG5vbi1udWxs
OyBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8KICAgICAvLyBlbnN1cmUgdGhhdCBkb2N1bWVudCBjYW4g
bmV2ZXIgYmUgbnVsbC4KICAgICBGcmFtZSAqZnJhbWUgPSAwOwotICAgIEZyYW1lVmlldyAqdmll
dyA9IDA7CisgICAgUmVmUHRyPEZyYW1lVmlldz4gdmlldzsKIAogICAgIGlmIChEb2N1bWVudElt
cGwgKmRvYyA9IGdldERvY3VtZW50KCkpIHsKICAgICAgICAgZnJhbWUgPSBkb2MtPmZyYW1lKCk7
CiAgICAgICAgIHZpZXcgPSBkb2MtPnZpZXcoKTsKLSAgICAgICAgLy8gU2luY2UgZXZlbnQgaGFu
ZGxpbmcgY29kZSBjb3VsZCBjYXVzZSB0aGlzIG9iamVjdCB0byBiZSBkZWxldGVkLCBncmFiIGEg
cmVmZXJlbmNlIHRvIHRoZSB2aWV3IG5vdwotICAgICAgICBpZiAodmlldykKLSAgICAgICAgICAg
IHZpZXctPnJlZigpOwotICAgIH0gICAgCisgICAgfQogCiAgICAgYm9vbCByZXQgPSBkaXNwYXRj
aEdlbmVyaWNFdmVudCggZXZ0LCBleGNlcHRpb25jb2RlICk7CiAKQEAgLTU0Myw5ICs1NDAsNiBA
QCBib29sIE5vZGVJbXBsOjpkaXNwYXRjaEV2ZW50KEV2ZW50SW1wbCAqCiAgICAgaWYgKHRlbXBF
dmVudCAmJiBmcmFtZSAmJiBmcmFtZS0+alNjcmlwdCgpKQogICAgICAgICBmcmFtZS0+alNjcmlw
dCgpLT5maW5pc2hlZFdpdGhFdmVudChldnQpOwogCi0gICAgaWYgKHZpZXcpCi0gICAgICAgIHZp
ZXctPmRlcmVmKCk7Ci0KICAgICBldnQtPmRlcmVmKCk7CiAKICAgICByZXR1cm4gcmV0OwpJbmRl
eDoga2h0bWwvZWNtYS9ranNfZXZlbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tq
c19ldmVudHMuY3BwCShyZXZpc2lvbiAxMjI4MikKKysrIGtodG1sL2VjbWEva2pzX2V2ZW50cy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDggQEAKIAogI2luY2x1ZGUgPGtkZWJ1Zy5o
PgogCi11c2luZyBuYW1lc3BhY2UgRE9NOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2lu
ZyBuYW1lc3BhY2UgRXZlbnROYW1lczsKLXVzaW5nIG5hbWVzcGFjZSBraHRtbDsKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKIG5hbWVzcGFjZSBLSlMgewpJbmRleDoga2h0bWwvZWNtYS9r
anNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCShy
ZXZpc2lvbiAxMjI4MikKKysrIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzODIsMTEgKzEzODIsNiBAQCBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lciAqV2lu
ZG93OjpnZXRKCiAgIHJldHVybiBuZXcgSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIob2JqZWN0
LCB0aGlzLCBodG1sKTsKIH0KIAotSlNMYXp5RXZlbnRMaXN0ZW5lciAqV2luZG93OjpnZXRKU0xh
enlFdmVudExpc3RlbmVyKGNvbnN0IERPTVN0cmluZyYgY29kZSwgRE9NOjpOb2RlSW1wbCAqbm9k
ZSwgaW50IGxpbmVOdW1iZXIpCi17Ci0gIHJldHVybiBuZXcgSlNMYXp5RXZlbnRMaXN0ZW5lcihj
b2RlLCB0aGlzLCBub2RlLCBsaW5lTnVtYmVyKTsKLX0KLQogdm9pZCBXaW5kb3c6OmNsZWFyKCBF
eGVjU3RhdGUgKmV4ZWMgKQogewogICBKU0xvY2sgbG9jazsKSW5kZXg6IGtodG1sL2VjbWEva2pz
X3dpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2VjbWEva2pzX3dpbmRvdy5oCShyZXZpc2lv
biAxMjI4MikKKysrIGtodG1sL2VjbWEva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjAsNyArMTYwLDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgQmFySW5mbyAqdG9vbGJhcihFeGVj
U3RhdGUqKSBjb25zdDsKICAgICBKU0V2ZW50TGlzdGVuZXIgKmdldEpTRXZlbnRMaXN0ZW5lcihK
U1ZhbHVlKiwgYm9vbCBodG1sID0gZmFsc2UpOwogICAgIEpTVW5wcm90ZWN0ZWRFdmVudExpc3Rl
bmVyICpnZXRKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihKU1ZhbHVlKiwgYm9vbCBodG1sID0g
ZmFsc2UpOwotICAgIEpTTGF6eUV2ZW50TGlzdGVuZXIgKmdldEpTTGF6eUV2ZW50TGlzdGVuZXIo
Y29uc3QgRE9NOjpET01TdHJpbmcmIGNvZGUsIERPTTo6Tm9kZUltcGwqLCBpbnQgbGluZW5vID0g
MCk7CiAgICAgdm9pZCBjbGVhcihFeGVjU3RhdGUgKik7CiAgICAgdmlydHVhbCBVU3RyaW5nIHRv
U3RyaW5nKEV4ZWNTdGF0ZSAqKSBjb25zdDsKIApJbmRleDoga2h0bWwvZWNtYS9ranNfcHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtodG1sL2VjbWEva2pzX3Byb3h5LmNwcAkocmV2aXNpb24gMTIy
ODIpCisrKyBraHRtbC9lY21hL2tqc19wcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEy
ICsyNCwxNCBAQAogI2luY2x1ZGUgImtqc193aW5kb3cuaCIKICNpbmNsdWRlICJranNfZXZlbnRz
LmgiCiAjaW5jbHVkZSAiTm9kZUltcGwuaCIKKyNpbmNsdWRlICJKU1NWR0xhenlFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlIDxranMvY29sbGVjdG9yLmg+CiAK
LXVzaW5nIG5hbWVzcGFjZSBET007CiB1c2luZyBuYW1lc3BhY2UgS0pTOwogCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKIEtKU1Byb3h5SW1wbDo6S0pTUHJveHlJbXBsKEZyYW1lICpmcmFtZSkKIHsK
ICAgICBtX3NjcmlwdCA9IDA7CkBAIC05Myw4ICs5NSwxNyBAQCBFdmVudExpc3RlbmVyICpLSlNQ
cm94eUltcGw6OmNyZWF0ZUhUTUxFCiB7CiAgICAgaW5pdFNjcmlwdCgpOwogICAgIEpTTG9jayBs
b2NrOwotICAgIHJldHVybiBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9mcmFtZSktPmdl
dEpTTGF6eUV2ZW50TGlzdGVuZXIoY29kZSwgbm9kZSwgbV9oYW5kbGVyTGluZW5vKTsKKyAgICBy
ZXR1cm4gbmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoY29kZSwgS0pTOjpXaW5kb3c6OnJldHJpZXZl
V2luZG93KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJMaW5lbm8pOworfQorCisjaWYgU1ZHX1NV
UFBPUlQKK0V2ZW50TGlzdGVuZXIgKktKU1Byb3h5SW1wbDo6Y3JlYXRlU1ZHRXZlbnRIYW5kbGVy
KGNvbnN0IERPTVN0cmluZyYgY29kZSwgTm9kZUltcGwgKm5vZGUpCit7CisgICAgaW5pdFNjcmlw
dCgpOworICAgIEpTTG9jayBsb2NrOworICAgIHJldHVybiBuZXcgSlNTVkdMYXp5RXZlbnRMaXN0
ZW5lcihjb2RlLCBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9mcmFtZSksIG5vZGUsIG1f
aGFuZGxlckxpbmVubyk7CiB9CisjZW5kaWYKIAogdm9pZCBLSlNQcm94eUltcGw6OmZpbmlzaGVk
V2l0aEV2ZW50KEV2ZW50SW1wbCAqZXZlbnQpCiB7CkBAIC0xNTAsMyArMTYxLDUgQEAgdm9pZCBL
SlNQcm94eUltcGw6OmluaXRTY3JpcHQoKQogICAgICAgICB1c2VyQWdlbnQuZmluZChRU3RyaW5n
Ojpmcm9tTGF0aW4xKCJjb21wYXRpYmxlIikpID09IC0xKQogICAgICAgbV9zY3JpcHQtPnNldENv
bXBhdE1vZGUoSW50ZXJwcmV0ZXI6Ok5ldHNjYXBlQ29tcGF0KTsKIH0KKworfQpJbmRleDoga2h0
bWwvZWNtYS9ranNfcHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tqc19wcm94eS5o
CShyZXZpc2lvbiAxMjI4MikKKysrIGtodG1sL2VjbWEva2pzX3Byb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDI1ICsyNiwyOCBAQAogY2xhc3MgRnJhbWU7CiBjbGFzcyBRU3RyaW5nOwogCi1u
YW1lc3BhY2UgRE9NIHsKK25hbWVzcGFjZSBLSlMgeworICAgIGNsYXNzIFNjcmlwdEludGVycHJl
dGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBET01TdHJpbmc7CiAg
ICAgY2xhc3MgRXZlbnRJbXBsOwogICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiAgICAgY2xhc3Mg
Tm9kZUltcGw7Ci19OwotCi1uYW1lc3BhY2UgS0pTIHsKLSAgICBjbGFzcyBTY3JpcHRJbnRlcnBy
ZXRlcjsKLX0KIAogY2xhc3MgS0pTUHJveHlJbXBsIHsKIHB1YmxpYzoKICAgICBLSlNQcm94eUlt
cGwoRnJhbWUqKTsKICAgICB+S0pTUHJveHlJbXBsKCk7Ci0gICAgUVZhcmlhbnQgZXZhbHVhdGUo
Y29uc3QgRE9NOjpET01TdHJpbmcmIGZpbGVuYW1lLCBpbnQgYmFzZUxpbmUsIGNvbnN0IERPTTo6
RE9NU3RyaW5nJiBjb2RlLCBET006Ok5vZGVJbXBsKik7CisgICAgUVZhcmlhbnQgZXZhbHVhdGUo
Y29uc3QgRE9NU3RyaW5nJiBmaWxlbmFtZSwgaW50IGJhc2VMaW5lLCBjb25zdCBET01TdHJpbmcm
IGNvZGUsIE5vZGVJbXBsKik7CiAgICAgdm9pZCBjbGVhcigpOwotICAgIERPTTo6RXZlbnRMaXN0
ZW5lciogY3JlYXRlSFRNTEV2ZW50SGFuZGxlcihjb25zdCBET006OkRPTVN0cmluZyYgY29kZSwg
RE9NOjpOb2RlSW1wbCopOwotICAgIHZvaWQgZmluaXNoZWRXaXRoRXZlbnQoRE9NOjpFdmVudElt
cGwqKTsKKyAgICBFdmVudExpc3RlbmVyKiBjcmVhdGVIVE1MRXZlbnRIYW5kbGVyKGNvbnN0IERP
TVN0cmluZyYgY29kZSwgTm9kZUltcGwqKTsKKyNpZiBTVkdfU1VQUE9SVAorICAgIEV2ZW50TGlz
dGVuZXIqIGNyZWF0ZVNWR0V2ZW50SGFuZGxlcihjb25zdCBET01TdHJpbmcmIGNvZGUsIE5vZGVJ
bXBsKik7CisjZW5kaWYKKyAgICB2b2lkIGZpbmlzaGVkV2l0aEV2ZW50KEV2ZW50SW1wbCopOwog
ICAgIEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXIgKmludGVycHJldGVyKCk7CiAgICAgdm9pZCBzZXRF
dmVudEhhbmRsZXJMaW5lbm8oaW50IGxpbmVubykgeyBtX2hhbmRsZXJMaW5lbm8gPSBsaW5lbm87
IH0KIApAQCAtNTYsNCArNTksNiBAQCBwcml2YXRlOgogICAgIGludCBtX2hhbmRsZXJMaW5lbm87
CiB9OwogCit9CisKICNlbmRpZgpJbmRleDogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTIyODIpCisrKyBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTEzNDQsNiArMTM0NCw4IEBACiAJCUE4REY0QUY5MDk4MEM0MkMwMDUyOTgx
QiAvKiBSZW5kZXJUYWJsZVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4REY0QUU1MDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVNl
Y3Rpb24uaCAqLzsgfTsKIAkJQThERjRBRkEwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxl
Um93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
REY0QUU2MDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAgKi87IH07CiAJCUE4
REY0QUZCMDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZUNvbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjRBRTcwOTgwQzQyQzAwNTI5ODFC
IC8qIFJlbmRlclRhYmxlQ29sLmggKi87IH07CisJCUE4REY1NDVFMDk4M0E3NTEwMDUyOTgxQiAv
KiBKU1NWR0xhenlFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOERGNTQ1QzA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZl
bnRMaXN0ZW5lci5oICovOyB9OworCQlBOERGNTQ1RjA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdM
YXp5RXZlbnRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOERGNTQ1RDA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0
ZW5lci5jcHAgKi87IH07CiAJCUE4RkQ4Qjg2MDg3Q0I0NEMwMERDMzcwNyAvKiBLV1FXTWF0cml4
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3
QThDMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4LmNwcCAqLzsgfTsKIAkJQThGRDhCODcw
ODdDQjQ1NzAwREMzNzA3IC8qIEtXUVdNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0
cml4LmggKi87IH07CiAJCUE4RkVGQjBBMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWdu
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEZFRkIwODA5NzlGNDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5oICovOyB9OwpA
QCAtMjQ1NCw2ICsyNDU2LDggQEAKIAkJQThERjRBRTUwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRl
clRhYmxlU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
VGFibGVTZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4REY0QUU2MDk4
MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGFibGVSb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOERGNEFFNzA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ29sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4REY1NDVDMDk4M0E3NTEwMDUyOTgxQiAvKiBKU1NW
R0xhenlFdmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U1ZHTGF6eUV2ZW50TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThE
RjU0NUQwOTgzQTc1MTAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RkVGQjA4MDk3OUY0NzIwMDU4MzlG
RCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJGb3JlaWduT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4RkVGQjA5MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGb3JlaWduT2JqZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThGRUZCMkYwOTc5RjRGNjAwNTgzOUZE
IC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMDksNiArMzMxMyw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlBOEMwRjdGNTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHWm9vbUV2ZW50SW1wbC5jcHAg
Ki8sCiAJCQkJQThDMEY3RjYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1pvb21FdmVudEltcGwuaCAq
LywKKwkJCQlBOERGNTQ1RDA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAgKi8sCisJCQkJQThERjU0NUMwOTgzQTc1MTAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50
TGlzdGVuZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZXZlbnRzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTUwNDgsNiArNTA1NCw3IEBACiAJCQkJQThERjRBRjEwOTgwQzQyQzAw
NTI5ODFCIC8qIFJlbmRlclRhYmxlQ29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUY3RjU2MTA5
ODFBRjU3MDA3M0JFNkEgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTFGMDQyNDcwOTgzOTM4OTAwNjY5NEVBIC8qIHhtbGh0dHByZXF1ZXN0LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBOERGNTQ1RTA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC02OTcwLDYgKzY5NzcsNyBAQAogCQkJCUE4REY0QUYwMDk4
MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MUY3RjU2MDA5ODFBRjU3MDA3M0JFNkEgLyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMUYwNDI0NjA5ODM5Mzg5MDA2Njk0RUEgLyogeG1saHR0cHJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQThERjU0NUYwOTgzQTc1MTAwNTI5ODFCIC8qIEpTU1ZHTGF6
eUV2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAJ
KHJldmlzaW9uIDEyMjgyKQorKysga3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA2LDIxICsxMDYsMjEgQEAgdm9pZCBTVkdFbGVtZW50SW1wbDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dAogewogICAgIC8vIHN0YW5kYXJkIGV2ZW50cwogICAgIGlmIChhdHRyLT5u
YW1lKCkgPT0gb25jbGlja0F0dHIpCi0gICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKGNsaWNr
RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVl
KCkucXN0cmluZygpLCB0aGlzKSk7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKGNsaWNr
RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUo
KS5xc3RyaW5nKCksIHRoaXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25tb3Vz
ZWRvd25BdHRyKQotICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihtb3VzZWRvd25FdmVudCwg
Z2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3Ry
aW5nKCksIHRoaXMpKTsKKyAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIobW91c2Vkb3duRXZl
bnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5x
c3RyaW5nKCksIHRoaXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25tb3VzZW1v
dmVBdHRyKQotICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihtb3VzZW1vdmVFdmVudCwgZ2V0
RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5n
KCksIHRoaXMpKTsKKyAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIobW91c2Vtb3ZlRXZlbnQs
IGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3Ry
aW5nKCksIHRoaXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25tb3VzZW91dEF0
dHIpCi0gICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKG1vdXNlb3V0RXZlbnQsIGdldERvY3Vt
ZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkucXN0cmluZygpLCB0
aGlzKSk7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKG1vdXNlb3V0RXZlbnQsIGdldERv
Y3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCks
IHRoaXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25tb3VzZW92ZXJBdHRyKQot
ICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihtb3VzZW92ZXJFdmVudCwgZ2V0RG9jdW1lbnQo
KS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMp
KTsKKyAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIobW91c2VvdmVyRXZlbnQsIGdldERvY3Vt
ZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRo
aXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25tb3VzZXVwQXR0cikKLSAgICAg
ICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIobW91c2V1cEV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVh
dGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOworICAg
ICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihtb3VzZXVwRXZlbnQsIGdldERvY3VtZW50KCktPmNy
ZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMpKTsKICAg
ICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb2N1c0F0dHIpCi0gICAgICAgIHNldEhUTUxF
dmVudExpc3RlbmVyKERPTUZvY3VzSW5FdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2
ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMpKTsKKyAgICAgICAgc2V0
SFRNTEV2ZW50TGlzdGVuZXIoRE9NRm9jdXNJbkV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVT
VkdFdmVudExpc3RlbmVyKGF0dHItPnZhbHVlKCkucXN0cmluZygpLCB0aGlzKSk7CiAgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYmx1ckF0dHIpCi0gICAgICAgIHNldEhUTUxFdmVudExp
c3RlbmVyKERPTUZvY3VzT3V0RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExp
c3RlbmVyKGF0dHItPnZhbHVlKCkucXN0cmluZygpLCB0aGlzKSk7CisgICAgICAgIHNldEhUTUxF
dmVudExpc3RlbmVyKERPTUZvY3VzT3V0RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2
ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMpKTsKICAgICBlbHNlCiAg
ICAgICAgIEtET006OlN0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRy
KTsKIH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTIyODIpCisrKyBr
c3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsMTkg
KzIzMywxOSBAQCB2b2lkIFNWR1NWR0VsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpCiAgICAg
ICAgIC8vIE9ubHkgaGFuZGxlIGV2ZW50cyBpZiB3ZSdyZSB0aGUgb3V0ZXJtb3N0IDxzdmc+IGVs
ZW1lbnQKICAgICAgICAgUVN0cmluZyB2YWx1ZSA9IGF0dHItPnZhbHVlKCkucXN0cmluZygpOwog
ICAgICAgICBpZiAoYXR0ci0+bmFtZSgpID09IG9ubG9hZEF0dHIpCi0gICAgICAgICAgICBnZXRE
b2N1bWVudCgpLT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcihsb2FkRXZlbnQsIGdldERvY3Vt
ZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKHZhbHVlLCB0aGlzKSk7CisgICAgICAgICAg
ICBnZXREb2N1bWVudCgpLT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcihsb2FkRXZlbnQsIGdl
dERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMpKTsKICAgICAg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9udW5sb2FkQXR0cikKLSAgICAgICAgICAgIGdl
dERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExpc3RlbmVyKHVubG9hZEV2ZW50LCBnZXRE
b2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOworICAgICAg
ICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIodW5sb2FkRXZl
bnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMpKTsK
ICAgICAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYWJvcnRBdHRyKQotICAgICAgICAg
ICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIoYWJvcnRFdmVudCwg
Z2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMpKTsKKyAg
ICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExpc3RlbmVyKGFib3J0
RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMp
KTsKICAgICAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZXJyb3JBdHRyKQotICAgICAg
ICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIoZXJyb3JFdmVu
dCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMpKTsK
KyAgICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExpc3RlbmVyKGVy
cm9yRXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFsdWUsIHRo
aXMpKTsKICAgICAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ucmVzaXplQXR0cikKLSAg
ICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExpc3RlbmVyKHJlc2l6
ZUV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhp
cykpOworICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVu
ZXIocmVzaXplRXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFs
dWUsIHRoaXMpKTsKICAgICAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uc2Nyb2xsQXR0
cikKLSAgICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExpc3RlbmVy
KHNjcm9sbEV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcih2YWx1
ZSwgdGhpcykpOworICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50
TGlzdGVuZXIoc2Nyb2xsRXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVu
ZXIodmFsdWUsIHRoaXMpKTsKICAgICAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05h
bWVzOjpvbnpvb21BdHRyKQotICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRv
d0V2ZW50TGlzdGVuZXIoem9vbUV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRM
aXN0ZW5lcih2YWx1ZSwgdGhpcykpOworICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRN
TFdpbmRvd0V2ZW50TGlzdGVuZXIoem9vbUV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVTVkdF
dmVudExpc3RlbmVyKHZhbHVlLCB0aGlzKSk7CiAgICAgfQogICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gU1ZHTmFtZXM6OnhBdHRyKSB7CiAgICAgICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlLmltcGwoKSk7CkluZGV4OiBwYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
cGFnZS9GcmFtZS5oCShyZXZpc2lvbiAxMjI4MikKKysrIHBhZ2UvRnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBGcmFtZVByaXZhdGU7CiBjbGFzcyBGcmFtZVZp
ZXc7CiBjbGFzcyBLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uOwogY2xhc3MgS0hUTUxTZXR0aW5n
czsKLWNsYXNzIEtKU1Byb3h5SW1wbDsKIAogbmFtZXNwYWNlIEtKUyB7CiAgICAgY2xhc3MgUGF1
c2VkVGltZW91dHM7CkBAIC05NCw2ICs5Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBTZWxlY3Rpb25Db250cm9sbGVyOwogICAgIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKICAg
ICBjbGFzcyBYTUxUb2tlbml6ZXI7CisgICAgY2xhc3MgS0pTUHJveHlJbXBsOwogCiAgICAgc3Ry
dWN0IENoaWxkRnJhbWU7CiB9CkBAIC05NDQsMTIgKzk0NCw5IEBAIHByaXZhdGU6CiAgICAqLwog
ICBRU3RyaW5nIHJlcXVlc3RGcmFtZU5hbWUoKTsKIAotICBib29sIHJlcXVlc3RPYmplY3QoIFdl
YkNvcmU6OlJlbmRlclBhcnQgKmZyYW1lLCBjb25zdCBRU3RyaW5nICZ1cmwsIGNvbnN0IFFTdHJp
bmcgJnNlcnZpY2VUeXBlLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0
ICZwYXJhbU5hbWVzID0gUVN0cmluZ0xpc3QoKSwgY29uc3QgUVN0cmluZ0xpc3QgJnBhcmFtVmFs
dWVzID0gUVN0cmluZ0xpc3QoKSAgKTsKLQotICBib29sIHJlcXVlc3RPYmplY3QoIFdlYkNvcmU6
OkNoaWxkRnJhbWUgKmNoaWxkLCBjb25zdCBLVVJMICZ1cmwsIGNvbnN0IFdlYkNvcmU6OlVSTEFy
Z3MgJmFyZ3MgPSBXZWJDb3JlOjpVUkxBcmdzKCkgKTsKLQotICBXZWJDb3JlOjpFdmVudExpc3Rl
bmVyICpjcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihjb25zdCBXZWJDb3JlOjpET01TdHJpbmcmIGNv
ZGUsIFdlYkNvcmU6Ok5vZGVJbXBsICpub2RlKTsKKyAgYm9vbCByZXF1ZXN0T2JqZWN0KFdlYkNv
cmU6OlJlbmRlclBhcnQgKmZyYW1lLCBjb25zdCBRU3RyaW5nICZ1cmwsIGNvbnN0IFFTdHJpbmcg
JnNlcnZpY2VUeXBlLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0ICZw
YXJhbU5hbWVzID0gUVN0cmluZ0xpc3QoKSwgY29uc3QgUVN0cmluZ0xpc3QgJnBhcmFtVmFsdWVz
ID0gUVN0cmluZ0xpc3QoKSk7CisgIGJvb2wgcmVxdWVzdE9iamVjdChXZWJDb3JlOjpDaGlsZEZy
YW1lICpjaGlsZCwgY29uc3QgS1VSTCAmdXJsLCBjb25zdCBXZWJDb3JlOjpVUkxBcmdzICZhcmdz
ID0gV2ViQ29yZTo6VVJMQXJncygpKTsKIAogcHVibGljOgogICBXZWJDb3JlOjpEb2N1bWVudElt
cGwgKmRvY3VtZW50KCkgY29uc3Q7CkBAIC05NzYsNyArOTczLDcgQEAgcHJpdmF0ZToKICAgdm9p
ZCBjYW5jZWxSZWRpcmVjdGlvbihib29sIG5ld0xvYWRJblByb2dyZXNzID0gZmFsc2UpOwogCiAg
cHVibGljOgotICBLSlNQcm94eUltcGwgKmpTY3JpcHQoKTsKKyAgV2ViQ29yZTo6S0pTUHJveHlJ
bXBsICpqU2NyaXB0KCk7CiAgIEZyYW1lICpvcGVuZXIoKTsKICAgdm9pZCBzZXRPcGVuZXIoRnJh
bWUgKl9vcGVuZXIpOwogICBib29sIG9wZW5lZEJ5SlMoKTsKSW5kZXg6IHBhZ2UvRnJhbWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMjI4MikKKysrIHBhZ2Uv
RnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMwLDEzICsyNTMwLDYgQEAgdm9pZCBGcmFt
ZTo6c2xvdFBhcnRSZW1vdmVkKE9iamVjdENvbnRlbgogICAgICAgICBkLT5tX2FjdGl2ZUZyYW1l
ID0gMDsKIH0KIAotRXZlbnRMaXN0ZW5lciAqRnJhbWU6OmNyZWF0ZUhUTUxFdmVudExpc3RlbmVy
KGNvbnN0IERPTVN0cmluZyYgY29kZSwgTm9kZUltcGwgKm5vZGUpCi17Ci0gICAgaWYgKEtKU1By
b3h5SW1wbCAqcHJveHkgPSBqU2NyaXB0KCkpCi0gICAgICAgIHJldHVybiBwcm94eS0+Y3JlYXRl
SFRNTEV2ZW50SGFuZGxlcihjb2RlLCBub2RlKTsKLSAgICByZXR1cm4gMDsKLX0KLQogRnJhbWUg
KkZyYW1lOjpvcGVuZXIoKQogewogICAgIHJldHVybiBkLT5tX29wZW5lcjsKSW5kZXg6IHBhZ2Uv
RnJhbWVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFtZVByaXZhdGUuaAkocmV2aXNp
b24gMTIyODIpCisrKyBwYWdlL0ZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODYs
NyArMTg2LDcgQEAgcHVibGljOgogICBRU3RyaW5nIHNjaGVkdWxlZFNjcmlwdDsKICAgUmVmUHRy
PERPTTo6Tm9kZUltcGw+IHNjaGVkdWxlZFNjcmlwdE5vZGU7CiAKLSAgS0pTUHJveHlJbXBsICpt
X2pzY3JpcHQ7CisgIFdlYkNvcmU6OktKU1Byb3h5SW1wbCAqbV9qc2NyaXB0OwogICBpbnQgbV9y
dW5uaW5nU2NyaXB0czsKICAgYm9vbCBtX2JKU2NyaXB0RW5hYmxlZCA6MTsKICAgYm9vbCBtX2JK
YXZhRW5hYmxlZCA6MTsK
</data>
<flag name="review"
          id="1349"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5851</attachid>
            <date>2006-01-22 15:18:07 -0800</date>
            <delta_ts>2006-01-22 15:23:03 -0800</delta_ts>
            <desc>addressed darin&apos;s further concerns</desc>
            <filename>evt.patch</filename>
            <type>text/plain</type>
            <size>22810</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Eb2N1bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94bWwv
RG9jdW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyMjkxKQorKysga2h0bWwveG1sL0RvY3VtZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsNiArNDIwLDExIEBAIHB1YmxpYzoKIAogICAgIEV2
ZW50TGlzdGVuZXIgKmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvbnN0IERPTVN0cmluZyYgY29k
ZSwgTm9kZUltcGwqKTsKICAgICAKKyNpZiBTVkdfU1VQUE9SVAorICAgIC8vIEZJWE1FOiBNb3Zl
IHRvIFNWR0RvY3VtZW50RXh0ZW50aW9ucywgd2hlbiB0aGF0IGxhbmRzIHcvIGFuaW1hdGlvbgor
ICAgIEV2ZW50TGlzdGVuZXIgKmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoY29uc3QgRE9NU3RyaW5n
JiBjb2RlLCBOb2RlSW1wbCopOworI2VuZGlmCisgICAgCiAgICAgLyoqCiAgICAgICogU2VhcmNo
ZXMgdGhyb3VnaCB0aGUgZG9jdW1lbnQsIHN0YXJ0aW5nIGZyb20gZnJvbU5vZGUsIGZvciB0aGUg
bmV4dCBzZWxlY3RhYmxlIGVsZW1lbnQgdGhhdCBjb21lcyBhZnRlciBmcm9tTm9kZS4KICAgICAg
KiBUaGUgb3JkZXIgZm9sbG93ZWQgaXMgYXMgc3BlY2lmaWVkIGluIHNlY3Rpb24gMTcuMTEuMSBv
ZiB0aGUgSFRNTDQgc3BlYywgd2hpY2ggaXMgZWxlbWVudHMgd2l0aCB0YWIgaW5kZXhlcwpJbmRl
eDoga2h0bWwveG1sL0RvY3VtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwveG1sL0Rv
Y3VtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyMjkxKQorKysga2h0bWwveG1sL0RvY3VtZW50SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyODEsMTIgKzIyODEsMjMgQEAgYm9vbCBEb2N1bWVu
dEltcGw6Omhhc1dpbmRvd0V2ZW50TGlzdGVuZQogCiBFdmVudExpc3RlbmVyICpEb2N1bWVudElt
cGw6OmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvbnN0IERPTVN0cmluZyYgY29kZSwgTm9kZUlt
cGwgKm5vZGUpCiB7Ci0gICAgaWYgKGZyYW1lKCkpIHsKLSAgICAgICAgcmV0dXJuIGZyYW1lKCkt
PmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGNvZGUsIG5vZGUpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHJldHVybiBOVUxMOworICAgIGlmIChGcmFtZSAqZnJtID0gZnJhbWUoKSkgeworICAgICAg
ICBpZiAoS0pTUHJveHlJbXBsICpwcm94eSA9IGZybS0+alNjcmlwdCgpKQorICAgICAgICAgICAg
cmV0dXJuIHByb3h5LT5jcmVhdGVIVE1MRXZlbnRIYW5kbGVyKGNvZGUsIG5vZGUpOworICAgIH0K
KyAgICByZXR1cm4gMDsKK30KKworI2lmIFNWR19TVVBQT1JUCitFdmVudExpc3RlbmVyICpEb2N1
bWVudEltcGw6OmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoY29uc3QgRE9NU3RyaW5nJiBjb2RlLCBO
b2RlSW1wbCAqbm9kZSkKK3sKKyAgICBpZiAoRnJhbWUgKmZybSA9IGZyYW1lKCkpIHsKKyAgICAg
ICAgaWYgKEtKU1Byb3h5SW1wbCAqcHJveHkgPSBmcm0tPmpTY3JpcHQoKSkKKyAgICAgICAgICAg
IHJldHVybiBwcm94eS0+Y3JlYXRlU1ZHRXZlbnRIYW5kbGVyKGNvZGUsIG5vZGUpOwogICAgIH0K
KyAgICByZXR1cm4gMDsKIH0KKyNlbmRpZgogCiB2b2lkIERvY3VtZW50SW1wbDo6c2V0SFRNTFdp
bmRvd0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEF0dHJpYnV0
ZUltcGwqIGF0dHIpCiB7CkluZGV4OiBraHRtbC94bWwvTm9kZUltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtodG1sL3htbC9Ob2RlSW1wbC5jcHAJKHJldmlzaW9uIDEyMjkxKQorKysga2h0bWwveG1s
L05vZGVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAyLDE1ICs1MDIsMTIgQEAgYm9vbCBO
b2RlSW1wbDo6ZGlzcGF0Y2hFdmVudChFdmVudEltcGwgKgogICAgIC8vIEZJWE1FOiBNdWNoIGNv
ZGUgaW4gdGhpcyBjbGFzcyBhc3N1bWVzIGRvY3VtZW50IGlzIG5vbi1udWxsOyBpdCB3b3VsZCBi
ZSBiZXR0ZXIgdG8KICAgICAvLyBlbnN1cmUgdGhhdCBkb2N1bWVudCBjYW4gbmV2ZXIgYmUgbnVs
bC4KICAgICBGcmFtZSAqZnJhbWUgPSAwOwotICAgIEZyYW1lVmlldyAqdmlldyA9IDA7CisgICAg
UmVmUHRyPEZyYW1lVmlldz4gdmlldzsKIAogICAgIGlmIChEb2N1bWVudEltcGwgKmRvYyA9IGdl
dERvY3VtZW50KCkpIHsKICAgICAgICAgZnJhbWUgPSBkb2MtPmZyYW1lKCk7CiAgICAgICAgIHZp
ZXcgPSBkb2MtPnZpZXcoKTsKLSAgICAgICAgLy8gU2luY2UgZXZlbnQgaGFuZGxpbmcgY29kZSBj
b3VsZCBjYXVzZSB0aGlzIG9iamVjdCB0byBiZSBkZWxldGVkLCBncmFiIGEgcmVmZXJlbmNlIHRv
IHRoZSB2aWV3IG5vdwotICAgICAgICBpZiAodmlldykKLSAgICAgICAgICAgIHZpZXctPnJlZigp
OwotICAgIH0gICAgCisgICAgfQogCiAgICAgYm9vbCByZXQgPSBkaXNwYXRjaEdlbmVyaWNFdmVu
dCggZXZ0LCBleGNlcHRpb25jb2RlICk7CiAKQEAgLTUyMCw5ICs1MTcsNiBAQCBib29sIE5vZGVJ
bXBsOjpkaXNwYXRjaEV2ZW50KEV2ZW50SW1wbCAqCiAgICAgaWYgKHRlbXBFdmVudCAmJiBmcmFt
ZSAmJiBmcmFtZS0+alNjcmlwdCgpKQogICAgICAgICBmcmFtZS0+alNjcmlwdCgpLT5maW5pc2hl
ZFdpdGhFdmVudChldnQpOwogCi0gICAgaWYgKHZpZXcpCi0gICAgICAgIHZpZXctPmRlcmVmKCk7
Ci0KICAgICBldnQtPmRlcmVmKCk7CiAKICAgICByZXR1cm4gcmV0OwpJbmRleDoga2h0bWwvZWNt
YS9ranNfZXZlbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tqc19ldmVudHMuY3Bw
CShyZXZpc2lvbiAxMjI5MSkKKysrIGtodG1sL2VjbWEva2pzX2V2ZW50cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDkgKzM3LDggQEAKIAogI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCi11c2luZyBu
YW1lc3BhY2UgRE9NOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
RXZlbnROYW1lczsKLXVzaW5nIG5hbWVzcGFjZSBraHRtbDsKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKIG5hbWVzcGFjZSBLSlMgewpJbmRleDoga2h0bWwvZWNtYS9ranNfd2luZG93LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxMjI5
MSkKKysrIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODIs
MTEgKzEzODIsNiBAQCBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lciAqV2luZG93OjpnZXRKCiAg
IHJldHVybiBuZXcgSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIob2JqZWN0LCB0aGlzLCBodG1s
KTsKIH0KIAotSlNMYXp5RXZlbnRMaXN0ZW5lciAqV2luZG93OjpnZXRKU0xhenlFdmVudExpc3Rl
bmVyKGNvbnN0IERPTVN0cmluZyYgY29kZSwgRE9NOjpOb2RlSW1wbCAqbm9kZSwgaW50IGxpbmVO
dW1iZXIpCi17Ci0gIHJldHVybiBuZXcgSlNMYXp5RXZlbnRMaXN0ZW5lcihjb2RlLCB0aGlzLCBu
b2RlLCBsaW5lTnVtYmVyKTsKLX0KLQogdm9pZCBXaW5kb3c6OmNsZWFyKCBFeGVjU3RhdGUgKmV4
ZWMgKQogewogICBKU0xvY2sgbG9jazsKSW5kZXg6IGtodG1sL2VjbWEva2pzX2V2ZW50cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtodG1sL2VjbWEva2pzX2V2ZW50cy5oCShyZXZpc2lvbiAxMjI5MSkKKysr
IGtodG1sL2VjbWEva2pzX2V2ZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw3IEBA
IG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIEpTTGF6eUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMg
SlNFdmVudExpc3RlbmVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpTTGF6eUV2ZW50TGlzdGVu
ZXIoY29uc3QgRE9NOjpET01TdHJpbmcmIGNvZGUsIFdpbmRvdyosIERPTTo6Tm9kZUltcGwqLCBp
bnQgbGluZW5vID0gMCk7CisgICAgICAgIHZpcnR1YWwgfkpTTGF6eUV2ZW50TGlzdGVuZXIoKSB7
IH0KICAgICAgICAgdmlydHVhbCBKU09iamVjdCAqbGlzdGVuZXJPYmooKSBjb25zdDsKICAgICBw
cm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSAqZXZlbnRQYXJhbWV0ZXJOYW1lKCkg
Y29uc3Q7CkluZGV4OiBraHRtbC9lY21hL2tqc193aW5kb3cuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRt
bC9lY21hL2tqc193aW5kb3cuaAkocmV2aXNpb24gMTIyOTEpCisrKyBraHRtbC9lY21hL2tqc193
aW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw2IEBAIG5hbWVzcGFjZSBLSlMg
ewogICAgIEJhckluZm8gKnRvb2xiYXIoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgSlNFdmVudExp
c3RlbmVyICpnZXRKU0V2ZW50TGlzdGVuZXIoSlNWYWx1ZSosIGJvb2wgaHRtbCA9IGZhbHNlKTsK
ICAgICBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lciAqZ2V0SlNVbnByb3RlY3RlZEV2ZW50TGlz
dGVuZXIoSlNWYWx1ZSosIGJvb2wgaHRtbCA9IGZhbHNlKTsKLSAgICBKU0xhenlFdmVudExpc3Rl
bmVyICpnZXRKU0xhenlFdmVudExpc3RlbmVyKGNvbnN0IERPTTo6RE9NU3RyaW5nJiBjb2RlLCBE
T006Ok5vZGVJbXBsKiwgaW50IGxpbmVubyA9IDApOwogICAgIHZvaWQgY2xlYXIoRXhlY1N0YXRl
ICopOwogICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKikgY29uc3Q7CiAK
SW5kZXg6IGtodG1sL2VjbWEva2pzX3Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9lY21h
L2tqc19wcm94eS5jcHAJKHJldmlzaW9uIDEyMjkxKQorKysga2h0bWwvZWNtYS9ranNfcHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTQgQEAKICNpbmNsdWRlICJranNfd2lu
ZG93LmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgogI2luY2x1ZGUgIk5vZGVJbXBsLmgiCisj
aW5jbHVkZSAiSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSA8a2pzL2NvbGxlY3Rvci5oPgogCi11c2luZyBuYW1lc3BhY2UgRE9NOwogdXNpbmcg
bmFtZXNwYWNlIEtKUzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCiBLSlNQcm94eUltcGw6OktK
U1Byb3h5SW1wbChGcmFtZSAqZnJhbWUpCiB7CiAgICAgbV9zY3JpcHQgPSAwOwpAQCAtOTMsOCAr
OTUsMTcgQEAgRXZlbnRMaXN0ZW5lciAqS0pTUHJveHlJbXBsOjpjcmVhdGVIVE1MRQogewogICAg
IGluaXRTY3JpcHQoKTsKICAgICBKU0xvY2sgbG9jazsKLSAgICByZXR1cm4gS0pTOjpXaW5kb3c6
OnJldHJpZXZlV2luZG93KG1fZnJhbWUpLT5nZXRKU0xhenlFdmVudExpc3RlbmVyKGNvZGUsIG5v
ZGUsIG1faGFuZGxlckxpbmVubyk7CisgICAgcmV0dXJuIG5ldyBKU0xhenlFdmVudExpc3RlbmVy
KGNvZGUsIEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtX2ZyYW1lKSwgbm9kZSwgbV9oYW5k
bGVyTGluZW5vKTsKK30KKworI2lmIFNWR19TVVBQT1JUCitFdmVudExpc3RlbmVyICpLSlNQcm94
eUltcGw6OmNyZWF0ZVNWR0V2ZW50SGFuZGxlcihjb25zdCBET01TdHJpbmcmIGNvZGUsIE5vZGVJ
bXBsICpub2RlKQoreworICAgIGluaXRTY3JpcHQoKTsKKyAgICBKU0xvY2sgbG9jazsKKyAgICBy
ZXR1cm4gbmV3IEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIoY29kZSwgS0pTOjpXaW5kb3c6OnJldHJp
ZXZlV2luZG93KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJMaW5lbm8pOwogfQorI2VuZGlmCiAK
IHZvaWQgS0pTUHJveHlJbXBsOjpmaW5pc2hlZFdpdGhFdmVudChFdmVudEltcGwgKmV2ZW50KQog
ewpAQCAtMTUwLDMgKzE2MSw1IEBAIHZvaWQgS0pTUHJveHlJbXBsOjppbml0U2NyaXB0KCkKICAg
ICAgICAgdXNlckFnZW50LmZpbmQoUVN0cmluZzo6ZnJvbUxhdGluMSgiY29tcGF0aWJsZSIpKSA9
PSAtMSkKICAgICAgIG1fc2NyaXB0LT5zZXRDb21wYXRNb2RlKEludGVycHJldGVyOjpOZXRzY2Fw
ZUNvbXBhdCk7CiB9CisKK30KSW5kZXg6IGtodG1sL2VjbWEva2pzX3Byb3h5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2h0bWwvZWNtYS9ranNfcHJveHkuaAkocmV2aXNpb24gMTIyOTEpCisrKyBraHRtbC9l
Y21hL2tqc19wcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyNSArMjYsMjggQEAKIGNsYXNz
IEZyYW1lOwogY2xhc3MgUVN0cmluZzsKIAotbmFtZXNwYWNlIERPTSB7CituYW1lc3BhY2UgS0pT
IHsKKyAgICBjbGFzcyBTY3JpcHRJbnRlcnByZXRlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCiAgICAgY2xhc3MgRE9NU3RyaW5nOwogICAgIGNsYXNzIEV2ZW50SW1wbDsKICAgICBjbGFz
cyBFdmVudExpc3RlbmVyOwogICAgIGNsYXNzIE5vZGVJbXBsOwotfTsKLQotbmFtZXNwYWNlIEtK
UyB7Ci0gICAgY2xhc3MgU2NyaXB0SW50ZXJwcmV0ZXI7Ci19CiAKIGNsYXNzIEtKU1Byb3h5SW1w
bCB7CiBwdWJsaWM6CiAgICAgS0pTUHJveHlJbXBsKEZyYW1lKik7CiAgICAgfktKU1Byb3h5SW1w
bCgpOwotICAgIFFWYXJpYW50IGV2YWx1YXRlKGNvbnN0IERPTTo6RE9NU3RyaW5nJiBmaWxlbmFt
ZSwgaW50IGJhc2VMaW5lLCBjb25zdCBET006OkRPTVN0cmluZyYgY29kZSwgRE9NOjpOb2RlSW1w
bCopOworICAgIFFWYXJpYW50IGV2YWx1YXRlKGNvbnN0IERPTVN0cmluZyYgZmlsZW5hbWUsIGlu
dCBiYXNlTGluZSwgY29uc3QgRE9NU3RyaW5nJiBjb2RlLCBOb2RlSW1wbCopOwogICAgIHZvaWQg
Y2xlYXIoKTsKLSAgICBET006OkV2ZW50TGlzdGVuZXIqIGNyZWF0ZUhUTUxFdmVudEhhbmRsZXIo
Y29uc3QgRE9NOjpET01TdHJpbmcmIGNvZGUsIERPTTo6Tm9kZUltcGwqKTsKLSAgICB2b2lkIGZp
bmlzaGVkV2l0aEV2ZW50KERPTTo6RXZlbnRJbXBsKik7CisgICAgRXZlbnRMaXN0ZW5lciogY3Jl
YXRlSFRNTEV2ZW50SGFuZGxlcihjb25zdCBET01TdHJpbmcmIGNvZGUsIE5vZGVJbXBsKik7Cisj
aWYgU1ZHX1NVUFBPUlQKKyAgICBFdmVudExpc3RlbmVyKiBjcmVhdGVTVkdFdmVudEhhbmRsZXIo
Y29uc3QgRE9NU3RyaW5nJiBjb2RlLCBOb2RlSW1wbCopOworI2VuZGlmCisgICAgdm9pZCBmaW5p
c2hlZFdpdGhFdmVudChFdmVudEltcGwqKTsKICAgICBLSlM6OlNjcmlwdEludGVycHJldGVyICpp
bnRlcnByZXRlcigpOwogICAgIHZvaWQgc2V0RXZlbnRIYW5kbGVyTGluZW5vKGludCBsaW5lbm8p
IHsgbV9oYW5kbGVyTGluZW5vID0gbGluZW5vOyB9CiAKQEAgLTU2LDQgKzU5LDYgQEAgcHJpdmF0
ZToKICAgICBpbnQgbV9oYW5kbGVyTGluZW5vOwogfTsKIAorfQorCiAjZW5kaWYKSW5kZXg6IFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMjkxKQorKysgV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04NDQsNiArODQ0LDggQEAK
IAkJQThERjRBRUYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjRBRTUwOTgwQzQy
QzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oICovOyB9OwogCQlBOERGNEFGMDA5ODBD
NDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVSb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjRBRTYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRl
clRhYmxlUm93LmNwcCAqLzsgfTsKIAkJQThERjRBRjEwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRl
clRhYmxlQ29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOERGNEFFNzA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCAqLzsgfTsKKwkJ
QThERjVGNDkwOTg0NDhDNzAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjU0NUQwOTgz
QTc1MTAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuY3BwICovOyB9OworCQlBOERG
NUY0QTA5ODQ0OEM4MDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjU0NUMwOTgzQTc1MTAw
NTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuaCAqLzsgfTsKIAkJQThGRDhCODYwODdD
QjQ0QzAwREMzNzA3IC8qIEtXUVdNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRy
aXguY3BwICovOyB9OwogCQlBOEZEOEI4NzA4N0NCNDU3MDBEQzM3MDcgLyogS1dRV01hdHJpeC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEQw
ODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguaCAqLzsgfTsKIAkJQThGRUZCMEEwOTc5RjQ3
MjAwNTgzOUZEIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjA4MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5k
ZXJGb3JlaWduT2JqZWN0LmggKi87IH07CkBAIC0xNzc5LDYgKzE3ODEsOCBAQAogCQlBOERGNEFF
NTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVTZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUYWJsZVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThERjRBRTYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlUm93
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUYWJsZVJv
dy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4REY0QUU3MDk4MEM0MkMwMDUy
OTgxQiAvKiBSZW5kZXJUYWJsZUNvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyVGFibGVDb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThERjU0
NUMwOTgzQTc1MTAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBOERGNTQ1RDA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdM
YXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1NWR0xhenlFdmVudExpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThGRUZCMDgwOTc5RjQ3MjAwNTgzOUZEIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZvcmVpZ25PYmplY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThGRUZCMDkwOTc5RjQ3MjAwNTgzOUZEIC8qIFJl
bmRlckZvcmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlckZvcmVpZ25PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEZFRkIyRjA5NzlGNEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYyMCw2
ICsyNjI0LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE4QzBGN0Y1MDg5NzAxRjMwMEJBNTEx
NCAvKiBTVkdab29tRXZlbnRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjdGNjA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHWm9vbUV2ZW50SW1wbC5oICovLAorCQkJCUE4REY1NDVEMDk4M0E3NTEwMDUyOTgx
QiAvKiBKU1NWR0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKKwkJCQlBOERGNTQ1QzA5ODNBNzUx
MDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBldmVudHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDM1OSw2ICs0MzY1LDcg
QEAKIAkJCQlBOERGNEFGMTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxRjdGNTYxMDk4MUFGNTcwMDczQkU2QSAvKiBKU1hNTEh0dHBSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUYwNDI0NzA5ODM5Mzg5MDA2Njk0RUEgLyogeG1s
aHR0cHJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4REY1RjRBMDk4NDQ4QzgwMDUyOTgx
QiAvKiBKU1NWR0xhenlFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU0NTYsNiAr
NTQ2Myw3IEBACiAJCQkJQThERjRBRjAwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlUm93
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxRjdGNTYwMDk4MUFGNTcwMDczQkU2QSAvKiBKU1hN
TEh0dHBSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxRjA0MjQ2MDk4MzkzODkwMDY2
OTRFQSAvKiB4bWxodHRwcmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOERGNUY0OTA5
ODQ0OEM3MDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTIyOTEpCisrKyBrc3ZnMi9zdmcv
U1ZHRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsMjEgKzEwOCwyMSBAQCB2
b2lkIFNWR0VsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0CiB7CiAgICAgLy8gc3RhbmRh
cmQgZXZlbnRzCiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmNsaWNrQXR0cikKLSAgICAgICAg
c2V0SFRNTEV2ZW50TGlzdGVuZXIoY2xpY2tFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRN
TEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMpKTsKKyAgICAgICAg
c2V0SFRNTEV2ZW50TGlzdGVuZXIoY2xpY2tFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZH
RXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBvbm1vdXNlZG93bkF0dHIpCi0gICAgICAgIHNldEhUTUxFdmVu
dExpc3RlbmVyKG1vdXNlZG93bkV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRM
aXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOworICAgICAgICBzZXRIVE1M
RXZlbnRMaXN0ZW5lcihtb3VzZWRvd25FdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZl
bnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbm1vdXNlbW92ZUF0dHIpCi0gICAgICAgIHNldEhUTUxFdmVudExp
c3RlbmVyKG1vdXNlbW92ZUV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0
ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOworICAgICAgICBzZXRIVE1MRXZl
bnRMaXN0ZW5lcihtb3VzZW1vdmVFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRM
aXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBvbm1vdXNlb3V0QXR0cikKLSAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVu
ZXIobW91c2VvdXRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIo
YXR0ci0+dmFsdWUoKS5xc3RyaW5nKCksIHRoaXMpKTsKKyAgICAgICAgc2V0SFRNTEV2ZW50TGlz
dGVuZXIobW91c2VvdXRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5l
cihhdHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbm1vdXNlb3ZlckF0dHIpCi0gICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKG1v
dXNlb3ZlckV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRy
LT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5l
cihtb3VzZW92ZXJFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5lcihh
dHRyLT52YWx1ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBvbm1vdXNldXBBdHRyKQotICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihtb3VzZXVw
RXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKGF0dHItPnZhbHVl
KCkucXN0cmluZygpLCB0aGlzKSk7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKG1vdXNl
dXBFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1
ZSgpLnFzdHJpbmcoKSwgdGhpcykpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZv
Y3VzQXR0cikKLSAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRE9NRm9jdXNJbkV2ZW50LCBn
ZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJp
bmcoKSwgdGhpcykpOworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcihET01Gb2N1c0luRXZl
bnQsIGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5x
c3RyaW5nKCksIHRoaXMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25ibHVyQXR0
cikKLSAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRE9NRm9jdXNPdXRFdmVudCwgZ2V0RG9j
dW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoYXR0ci0+dmFsdWUoKS5xc3RyaW5nKCks
IHRoaXMpKTsKKyAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoRE9NRm9jdXNPdXRFdmVudCwg
Z2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5lcihhdHRyLT52YWx1ZSgpLnFzdHJp
bmcoKSwgdGhpcykpOwogICAgIGVsc2UKICAgICAgICAgS0RPTTo6U3R5bGVkRWxlbWVudEltcGw6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1NWR0Vs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwu
Y3BwCShyZXZpc2lvbiAxMjI5MSkKKysrIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIzNCwxOSArMjM0LDE5IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudElt
cGw6OnBhcnNlTWFwcGVkQXR0cmkKICAgICAgICAgLy8gT25seSBoYW5kbGUgZXZlbnRzIGlmIHdl
J3JlIHRoZSBvdXRlcm1vc3QgPHN2Zz4gZWxlbWVudAogICAgICAgICBRU3RyaW5nIHZhbHVlID0g
YXR0ci0+dmFsdWUoKS5xc3RyaW5nKCk7CiAgICAgICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gb25s
b2FkQXR0cikKLSAgICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dFdmVudExp
c3RlbmVyKGxvYWRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIo
dmFsdWUsIHRoaXMpKTsKKyAgICAgICAgICAgIGdldERvY3VtZW50KCktPnNldEhUTUxXaW5kb3dF
dmVudExpc3RlbmVyKGxvYWRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0
ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb251
bmxvYWRBdHRyKQotICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRNTFdpbmRvd0V2ZW50
TGlzdGVuZXIodW5sb2FkRXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3Rl
bmVyKHZhbHVlLCB0aGlzKSk7CisgICAgICAgICAgICBnZXREb2N1bWVudCgpLT5zZXRIVE1MV2lu
ZG93RXZlbnRMaXN0ZW5lcih1bmxvYWRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZHRXZl
bnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gb25hYm9ydEF0dHIpCi0gICAgICAgICAgICBnZXREb2N1bWVudCgpLT5zZXRIVE1MV2luZG93
RXZlbnRMaXN0ZW5lcihhYm9ydEV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZlbnRM
aXN0ZW5lcih2YWx1ZSwgdGhpcykpOworICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRN
TFdpbmRvd0V2ZW50TGlzdGVuZXIoYWJvcnRFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRlU1ZH
RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25lcnJvckF0dHIpCi0gICAgICAgICAgICBnZXREb2N1bWVudCgpLT5zZXRIVE1MV2lu
ZG93RXZlbnRMaXN0ZW5lcihlcnJvckV2ZW50LCBnZXREb2N1bWVudCgpLT5jcmVhdGVIVE1MRXZl
bnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOworICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0
SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIoZXJyb3JFdmVudCwgZ2V0RG9jdW1lbnQoKS0+Y3JlYXRl
U1ZHRXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gb25yZXNpemVBdHRyKQotICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0SFRN
TFdpbmRvd0V2ZW50TGlzdGVuZXIocmVzaXplRXZlbnQsIGdldERvY3VtZW50KCktPmNyZWF0ZUhU
TUxFdmVudExpc3RlbmVyKHZhbHVlLCB0aGlzKSk7CisgICAgICAgICAgICBnZXREb2N1bWVudCgp
LT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcihyZXNpemVFdmVudCwgZ2V0RG9jdW1lbnQoKS0+
Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gb25zY3JvbGxBdHRyKQotICAgICAgICAgICAgZ2V0RG9jdW1lbnQoKS0+
c2V0SFRNTFdpbmRvd0V2ZW50TGlzdGVuZXIoc2Nyb2xsRXZlbnQsIGdldERvY3VtZW50KCktPmNy
ZWF0ZUhUTUxFdmVudExpc3RlbmVyKHZhbHVlLCB0aGlzKSk7CisgICAgICAgICAgICBnZXREb2N1
bWVudCgpLT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcihzY3JvbGxFdmVudCwgZ2V0RG9jdW1l
bnQoKS0+Y3JlYXRlU1ZHRXZlbnRMaXN0ZW5lcih2YWx1ZSwgdGhpcykpOwogICAgICAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6Om9uem9vbUF0dHIpCi0gICAgICAgICAgICBn
ZXREb2N1bWVudCgpLT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcih6b29tRXZlbnQsIGdldERv
Y3VtZW50KCktPmNyZWF0ZUhUTUxFdmVudExpc3RlbmVyKHZhbHVlLCB0aGlzKSk7CisgICAgICAg
ICAgICBnZXREb2N1bWVudCgpLT5zZXRIVE1MV2luZG93RXZlbnRMaXN0ZW5lcih6b29tRXZlbnQs
IGdldERvY3VtZW50KCktPmNyZWF0ZVNWR0V2ZW50TGlzdGVuZXIodmFsdWUsIHRoaXMpKTsKICAg
ICB9CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eEF0dHIpIHsKICAgICAgICAg
eCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKSW5kZXg6IGtz
dmcyL2V2ZW50cy9KU1NWR0xhenlFdmVudExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9ldmVudHMvSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDApCisrKyBrc3Zn
Mi9ldmVudHMvSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgICAgICAgICAgICAgICAgICAKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0
IHByb2plY3QKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBTVkdfU1VQUE9SVAorCisjaW5jbHVk
ZSAiSlNTVkdMYXp5RXZlbnRMaXN0ZW5lci5oIgorCit1c2luZyBuYW1lc3BhY2UgS0pTOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTU1ZHTGF6eUV2ZW50TGlzdGVuZXI6OkpTU1ZHTGF6eUV2
ZW50TGlzdGVuZXIoY29uc3QgRE9NU3RyaW5nJiBjb2RlLCBLSlM6OldpbmRvdyogd2luLCBOb2Rl
SW1wbCogbm9kZSwgaW50IGxpbmVubykKKyAgICA6IEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIoY29k
ZSwgd2luLCBub2RlLCBsaW5lbm8pCit7Cit9CisKK0pTVmFsdWUgKkpTU1ZHTGF6eUV2ZW50TGlz
dGVuZXI6OmV2ZW50UGFyYW1ldGVyTmFtZSgpIGNvbnN0Cit7CisgICAgc3RhdGljIFByb3RlY3Rl
ZFB0cjxKU1ZhbHVlPiBldmVudFN0cmluZyA9IGpzU3RyaW5nKCJldnQiKTsKKyAgICByZXR1cm4g
ZXZlbnRTdHJpbmcuZ2V0KCk7Cit9CisKK30KKworI2VuZGlmIC8vIFNWR19TVVBQT1JUCisKKy8v
IHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL2V2ZW50cy9KU1NWR0xhenlFdmVudExpc3RlbmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvZXZlbnRzL0pTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuaAko
cmV2aXNpb24gMCkKKysrIGtzdmcyL2V2ZW50cy9KU1NWR0xhenlFdmVudExpc3RlbmVyLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCisgICAgICAgICAgICAgICAgICAKKyAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24s
IE1BIDAyMTExLTEzMDcsIFVTQS4KKyovCisKKyNpZm5kZWYgSlNTVkdMYXp5RXZlbnRMaXN0ZW5l
cl9ICisjZGVmaW5lIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXJfSAorI2lmIFNWR19TVVBQT1JUCisK
KyNpbmNsdWRlICJranNfZXZlbnRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNs
YXNzIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgS0pTOjpKU0xhenlFdmVudExpc3Rl
bmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIoY29uc3Qg
RE9NU3RyaW5nJiBjb2RlLCBLSlM6OldpbmRvdyosIE5vZGVJbXBsKiwgaW50IGxpbmVubyA9IDAp
OworICAgICAgICB2aXJ0dWFsIH5KU1NWR0xhenlFdmVudExpc3RlbmVyKCkgeyB9CisgICAgcHJv
dGVjdGVkOgorICAgICAgICB2aXJ0dWFsIEtKUzo6SlNWYWx1ZSAqZXZlbnRQYXJhbWV0ZXJOYW1l
KCkgY29uc3Q7CisgICAgfTsKK30KKworI2VuZGlmIC8vIFNWR19TVVBQT1JUCisjZW5kaWYKKwor
Ly8gdmltOnRzPTQ6bm9ldApJbmRleDogcGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2Uv
RnJhbWUuaAkocmV2aXNpb24gMTIyOTEpCisrKyBwYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDYgQEAgY2xhc3MgRnJhbWVQcml2YXRlOwogY2xhc3MgRnJhbWVWaWV3Owog
Y2xhc3MgS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbjsKIGNsYXNzIEtIVE1MU2V0dGluZ3M7Ci1j
bGFzcyBLSlNQcm94eUltcGw7CiAKIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIFBhdXNlZFRp
bWVvdXRzOwpAQCAtOTQsNiArOTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
U2VsZWN0aW9uQ29udHJvbGxlcjsKICAgICBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAgICAgY2xh
c3MgWE1MVG9rZW5pemVyOworICAgIGNsYXNzIEtKU1Byb3h5SW1wbDsKIAogICAgIHN0cnVjdCBD
aGlsZEZyYW1lOwogfQpAQCAtOTQ0LDEyICs5NDQsOSBAQCBwcml2YXRlOgogICAgKi8KICAgUVN0
cmluZyByZXF1ZXN0RnJhbWVOYW1lKCk7CiAKLSAgYm9vbCByZXF1ZXN0T2JqZWN0KCBXZWJDb3Jl
OjpSZW5kZXJQYXJ0ICpmcmFtZSwgY29uc3QgUVN0cmluZyAmdXJsLCBjb25zdCBRU3RyaW5nICZz
ZXJ2aWNlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCAmcGFy
YW1OYW1lcyA9IFFTdHJpbmdMaXN0KCksIGNvbnN0IFFTdHJpbmdMaXN0ICZwYXJhbVZhbHVlcyA9
IFFTdHJpbmdMaXN0KCkgICk7Ci0KLSAgYm9vbCByZXF1ZXN0T2JqZWN0KCBXZWJDb3JlOjpDaGls
ZEZyYW1lICpjaGlsZCwgY29uc3QgS1VSTCAmdXJsLCBjb25zdCBXZWJDb3JlOjpVUkxBcmdzICZh
cmdzID0gV2ViQ29yZTo6VVJMQXJncygpICk7Ci0KLSAgV2ViQ29yZTo6RXZlbnRMaXN0ZW5lciAq
Y3JlYXRlSFRNTEV2ZW50TGlzdGVuZXIoY29uc3QgV2ViQ29yZTo6RE9NU3RyaW5nJiBjb2RlLCBX
ZWJDb3JlOjpOb2RlSW1wbCAqbm9kZSk7CisgIGJvb2wgcmVxdWVzdE9iamVjdChXZWJDb3JlOjpS
ZW5kZXJQYXJ0ICpmcmFtZSwgY29uc3QgUVN0cmluZyAmdXJsLCBjb25zdCBRU3RyaW5nICZzZXJ2
aWNlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCAmcGFyYW1O
YW1lcyA9IFFTdHJpbmdMaXN0KCksIGNvbnN0IFFTdHJpbmdMaXN0ICZwYXJhbVZhbHVlcyA9IFFT
dHJpbmdMaXN0KCkpOworICBib29sIHJlcXVlc3RPYmplY3QoV2ViQ29yZTo6Q2hpbGRGcmFtZSAq
Y2hpbGQsIGNvbnN0IEtVUkwgJnVybCwgY29uc3QgV2ViQ29yZTo6VVJMQXJncyAmYXJncyA9IFdl
YkNvcmU6OlVSTEFyZ3MoKSk7CiAKIHB1YmxpYzoKICAgV2ViQ29yZTo6RG9jdW1lbnRJbXBsICpk
b2N1bWVudCgpIGNvbnN0OwpAQCAtOTc2LDcgKzk3Myw3IEBAIHByaXZhdGU6CiAgIHZvaWQgY2Fu
Y2VsUmVkaXJlY3Rpb24oYm9vbCBuZXdMb2FkSW5Qcm9ncmVzcyA9IGZhbHNlKTsKIAogIHB1Ymxp
YzoKLSAgS0pTUHJveHlJbXBsICpqU2NyaXB0KCk7CisgIFdlYkNvcmU6OktKU1Byb3h5SW1wbCAq
alNjcmlwdCgpOwogICBGcmFtZSAqb3BlbmVyKCk7CiAgIHZvaWQgc2V0T3BlbmVyKEZyYW1lICpf
b3BlbmVyKTsKICAgYm9vbCBvcGVuZWRCeUpTKCk7CkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTIyOTEpCisrKyBwYWdlL0ZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzMCwxMyArMjUzMCw2IEBAIHZvaWQgRnJhbWU6OnNs
b3RQYXJ0UmVtb3ZlZChPYmplY3RDb250ZW4KICAgICAgICAgZC0+bV9hY3RpdmVGcmFtZSA9IDA7
CiB9CiAKLUV2ZW50TGlzdGVuZXIgKkZyYW1lOjpjcmVhdGVIVE1MRXZlbnRMaXN0ZW5lcihjb25z
dCBET01TdHJpbmcmIGNvZGUsIE5vZGVJbXBsICpub2RlKQotewotICAgIGlmIChLSlNQcm94eUlt
cGwgKnByb3h5ID0galNjcmlwdCgpKQotICAgICAgICByZXR1cm4gcHJveHktPmNyZWF0ZUhUTUxF
dmVudEhhbmRsZXIoY29kZSwgbm9kZSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIEZyYW1lICpGcmFt
ZTo6b3BlbmVyKCkKIHsKICAgICByZXR1cm4gZC0+bV9vcGVuZXI7CkluZGV4OiBwYWdlL0ZyYW1l
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWVQcml2YXRlLmgJKHJldmlzaW9uIDEy
MjkxKQorKysgcGFnZS9GcmFtZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4
Niw3IEBAIHB1YmxpYzoKICAgUVN0cmluZyBzY2hlZHVsZWRTY3JpcHQ7CiAgIFJlZlB0cjxET006
Ok5vZGVJbXBsPiBzY2hlZHVsZWRTY3JpcHROb2RlOwogCi0gIEtKU1Byb3h5SW1wbCAqbV9qc2Ny
aXB0OworICBXZWJDb3JlOjpLSlNQcm94eUltcGwgKm1fanNjcmlwdDsKICAgaW50IG1fcnVubmlu
Z1NjcmlwdHM7CiAgIGJvb2wgbV9iSlNjcmlwdEVuYWJsZWQgOjE7CiAgIGJvb2wgbV9iSmF2YUVu
YWJsZWQgOjE7Cg==
</data>
<flag name="review"
          id="1360"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>