<?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>6665</bug_id>
          
          <creation_ts>2006-01-18 22:50:20 -0800</creation_ts>
          <short_desc>Implement NSView-less version of &lt;input type=&quot;text&quot;&gt;</short_desc>
          <delta_ts>2006-01-19 01:34:57 -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>Forms</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adele Peterson">adele</reporter>
          <assigned_to name="Adele Peterson">adele</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28877</commentid>
    <comment_count>0</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-18 22:50:20 -0800</bug_when>
    <thetext> </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28878</commentid>
    <comment_count>1</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-18 22:51:21 -0800</bug_when>
    <thetext>The initial implementation can be turned on with -khtml-appearance: textfield .  We&apos;ll use this until the 
basic functionality and style is finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28879</commentid>
    <comment_count>2</comment_count>
      <attachid>5774</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-18 22:52:04 -0800</bug_when>
    <thetext>Created attachment 5774
initial implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28883</commentid>
    <comment_count>3</comment_count>
      <attachid>5774</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-18 23:15:04 -0800</bug_when>
    <thetext>Comment on attachment 5774
initial implementation

(1) Make a note about focusability.  By making the shadow div focusable, the
input field won&apos;t have the focus (and so onfocus/blur won&apos;t work).  You will
have to do something similar to XBL, making both the div and the input element
focused together (changes in focus that remain inside shadow content don&apos;t
affect the focus on the outer element).

(2) Make a note about mouse events as well.  Shadow content cannot be exposed
to the user/author by default, so the engine should internally know when it&apos;s
over shadow content but will have to retarget DOM events when it crosses shadow
scope boundaries.

(3) In places where you rely on falling through to a subsequent case statement,
it might be nice to have a &quot;// Fall through&quot; comment to make that clear.

(4) For destroyLeftoverChildren, I&apos;d add a comment along the lines of:

&quot;Destroy any anonymous children remaining in the render tree, as well as
implicit (shadow) DOM elements like those used in the engine-based textfields.&quot;

(5) You don&apos;t need &quot;using namespace DOM in RenderTextField.cpp, since DOM =
khtml = WebCore now.  Also go ahead and put the header and implementation files
in namespace WebCore rather than khtml, since we&apos;re switching to that.

(6) I would actually add a comment to the RenderTextField destructor that the
renderer m_div has already been destroyed by destroyLeftoverChildren.

(7) You do not need to override addChild and removeChild.  An input field
doesn&apos;t have child content from the DOM.  I assume you copied that from button,
but you shouldn&apos;t need it.

(8) I would change your &quot;getDivStyle&quot; method to be &quot;createDivStyle&quot;, since it
always makes a new one.

(9) Single line ifs should not have braces (as in RenderTextField::setStyle).

(10) I&apos;m not sure why button-bevel has been added to cssvalues.in.  I assume
that&apos;s a typo.

Looks great!  It&apos;s awesome that it&apos;s pretty functional without a huge amount of
code!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28889</commentid>
    <comment_count>4</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-18 23:48:19 -0800</bug_when>
    <thetext>For reference, adding link hyatt sent me about events in xbl: http://www.mozilla.org/projects/xbl/
xbl2.html#event2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28891</commentid>
    <comment_count>5</comment_count>
      <attachid>5777</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-19 00:26:57 -0800</bug_when>
    <thetext>Created attachment 5777
latest patch

Uploading new patch to address hyatt&apos;s comments.  Also, we discussed the
button-bevel fix- which is to match the enum in RenderStyle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28892</commentid>
    <comment_count>6</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-19 00:27:39 -0800</bug_when>
    <thetext>also, layout tests pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28895</commentid>
    <comment_count>7</comment_count>
      <attachid>5779</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-01-19 00:35:00 -0800</bug_when>
    <thetext>Created attachment 5779
a few minor tweaks</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5774</attachid>
            <date>2006-01-18 22:52:04 -0800</date>
            <delta_ts>2006-01-19 00:35:00 -0800</delta_ts>
            <desc>initial implementation</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23333</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Ob2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2Rl
SW1wbC5oCShyZXZpc2lvbiAxMjIyOSkKKysrIGtodG1sL3htbC9Ob2RlSW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKICAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJl
dHVybiBtX2hvdmVyZWQ7IH0KICAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWQ7IH0KICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgICB7IHJldHVybiBtX2F0dGFjaGVk
OyB9CisgICAgdm9pZCBzZXRBdHRhY2hlZChib29sIGI9dHJ1ZSkgeyBtX2F0dGFjaGVkID0gYjsg
fQogICAgIGJvb2wgY2hhbmdlZCgpIGNvbnN0ICAgIHsgcmV0dXJuIG1fY2hhbmdlZDsgfQogICAg
IGJvb2wgaGFzQ2hhbmdlZENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDaGFuZ2VkQ2hpbGQ7
IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IHsgcmV0dXJuIG1faXNMaW5rOyB9CkluZGV4OiBr
aHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwv
aHRtbF9lbGVtZW50aW1wbC5jcHAJKHJldmlzaW9uIDEyMjI5KQorKysga2h0bWwvaHRtbC9odG1s
X2VsZW1lbnRpbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYxLDcgKzQ2MSw3IEBACiAKIGJv
b2wgSFRNTEVsZW1lbnRJbXBsOjppc0ZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlz
Q29udGVudEVkaXRhYmxlKCkgJiYgcGFyZW50KCkgJiYgIXBhcmVudCgpLT5pc0NvbnRlbnRFZGl0
YWJsZSgpOworICAgIHJldHVybiBpc0NvbnRlbnRFZGl0YWJsZSgpICYmICgocGFyZW50KCkgJiYg
IXBhcmVudCgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB8fCAhcGFyZW50KCkpOwogfQogCiBib29s
IEhUTUxFbGVtZW50SW1wbDo6aXNDb250ZW50RWRpdGFibGUoKSBjb25zdCAKSW5kZXg6IGtodG1s
L2h0bWwvSFRNTElucHV0RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwv
SFRNTElucHV0RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjIyOSkKKysrIGtodG1sL2h0bWwv
SFRNTElucHV0RWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJf
Zm9ybS5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfYnV0dG9uLmgiCisjaW5jbHVkZSAi
cmVuZGVyaW5nL1JlbmRlclRleHRGaWVsZC5oIgogI2luY2x1ZGUgInJlbmRlcl90aGVtZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogCkBAIC0yODIsOCArMjgzLDEwIEBACiAgICAgCiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2Fz
ZSBURVhUOgorICAgICAgICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3JlbmRlciktPnNlbGVjdGlvblN0YXJ0KCk7CiAgICAg
ICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6CiAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9yZW5kZXIpLT5zZWxlY3Rpb25TdGFydCgp
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CkBAIC0yOTcsOCArMzAwLDEw
IEBACiAgICAgCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBQQVNTV09SRDoK
KyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3JlbmRlciktPnNlbGVjdGlvbkVu
ZCgpOwogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURVhUOgogICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckxpbmVFZGl0ICo+KG1fcmVuZGVyKS0+c2VsZWN0
aW9uRW5kKCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKQEAgLTMxMiw4
ICszMTcsMTAgQEAKICAgICAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFBB
U1NXT1JEOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAgICAgICBpZiAobV9yZW5kZXItPnN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBUZXh0RmllbGRBcHBlYXJhbmNlKQorICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0RmllbGQgKj4obV9yZW5kZXIpLT5zZXRTZWxlY3Rp
b25TdGFydChzdGFydCk7CiAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJMaW5lRWRpdCAqPihtX3JlbmRlciktPnNl
dFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZh
dWx0OgpAQCAtMzI3LDggKzMzNCwxMCBAQAogICAgIAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAg
ICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAgIGlm
IChtX3JlbmRlci0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFRleHRGaWVsZEFwcGVhcmFuY2Up
CisgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3JlbmRl
ciktPnNldFNlbGVjdGlvbkVuZChlbmQpOwogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAg
Y2FzZSBURVhUOgogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9y
ZW5kZXIpLT5zZXRTZWxlY3Rpb25FbmQoZW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBkZWZhdWx0OgpAQCAtMzQ1LDggKzM1NCwxMCBAQAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
UmVuZGVyRmlsZUJ1dHRvbio+KG1fcmVuZGVyKS0+c2VsZWN0KCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAg
ICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBwZWFy
YW5jZSkKKyAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dEZpZWxkICo+KG1f
cmVuZGVyKS0+c2VsZWN0KCk7CiAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRF
WFQ6CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJMaW5lRWRpdCo+KG1fcmVuZGVyKS0+
c2VsZWN0KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBCVVRUT046CkBAIC0z
NjgsOCArMzc5LDEwIEBACiAgICAgCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2Fz
ZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgaWYgKG1fcmVuZGVy
LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0RmllbGQgKj4obV9yZW5kZXIpLT5zZXRTZWxl
Y3Rpb25SYW5nZShzdGFydCwgZW5kKTsKICAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNh
c2UgVEVYVDoKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlckxpbmVFZGl0ICo+KG1fcmVu
ZGVyKS0+c2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKQEAgLTU3Miw2ICs1ODUsOCBAQAogICAgIHsKICAgICBjYXNlIFRF
WFQ6CiAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkg
PT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJUZXh0RmllbGQodGhpcyk7CiAgICAgY2FzZSBTRUFSQ0g6CiAgICAgY2FzZSBJU0lOREVY
OiAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckxpbmVFZGl0KHRoaXMpOwogICAgIGNhc2UgQ0hF
Q0tCT1g6CkBAIC05NzAsMTcgKzk4NSwxMSBAQAogICAgIGlmIChtX3R5cGUgPT0gSU1BR0UgJiYg
ZXZ0LT5pc01vdXNlRXZlbnQoKSAmJiBldnQtPnR5cGUoKSA9PSBjbGlja0V2ZW50ICYmIG1fcmVu
ZGVyKSB7CiAgICAgICAgIC8vIHJlY29yZCB0aGUgbW91c2UgcG9zaXRpb24gZm9yIHdoZW4gd2Ug
Z2V0IHRoZSBET01BY3RpdmF0ZSBldmVudAogICAgICAgICBNb3VzZUV2ZW50SW1wbCAqbWUgPSBz
dGF0aWNfY2FzdDxNb3VzZUV2ZW50SW1wbCo+KGV2dCk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBj
b3VsZCBqdXN0IGNhbGwgb2Zmc2V0WCgpIGFuZCBvZmZzZXRZKCkgb24gdGhlIGV2ZW50LAotICAg
ICAgICAvLyBidXQgdGhhdCdzIGN1cnJlbnRseSBicm9rZW4sIHNvIGZvciBub3cgZG8gdGhlIGNv
bXB1dGF0aW9uIGhlcmUuCi0gICAgICAgIGlmIChtZS0+aXNTaW11bGF0ZWQoKSB8fCAhbV9yZW5k
ZXIpIHsKLSAgICAgICAgICAgIHhQb3MgPSAwOwotICAgICAgICAgICAgeVBvcyA9IDA7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0WCwgb2Zmc2V0WTsKLSAgICAgICAg
ICAgIG1fcmVuZGVyLT5hYnNvbHV0ZVBvc2l0aW9uKG9mZnNldFgsb2Zmc2V0WSk7Ci0gICAgICAg
ICAgICB4UG9zID0gbWUtPmNsaWVudFgoKSAtIG9mZnNldFg7Ci0gICAgICAgICAgICB5UG9zID0g
bWUtPmNsaWVudFkoKSAtIG9mZnNldFk7Ci0gICAgICAgIH0KKyAgICAgICAgaW50IG9mZnNldFgs
IG9mZnNldFk7CisgICAgICAgIG1fcmVuZGVyLT5hYnNvbHV0ZVBvc2l0aW9uKG9mZnNldFgsb2Zm
c2V0WSk7CisgICAgICAgIHhQb3MgPSBtZS0+Y2xpZW50WCgpLW9mZnNldFg7CisgICAgICAgIHlQ
b3MgPSBtZS0+Y2xpZW50WSgpLW9mZnNldFk7CisKICAgICAgICAgbWUtPnNldERlZmF1bHRIYW5k
bGVkKCk7CiAgICAgfQogCkluZGV4OiBraHRtbC9odG1sL0hUTUxJbnB1dEVsZW1lbnRJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50SW1wbC5oCShyZXZpc2lv
biAxMjIyOSkKKysrIGtodG1sL2h0bWwvSFRNTElucHV0RWxlbWVudEltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsNyBAQAogICAgIGNsYXNzIFJlbmRlckxpbmVFZGl0OwogICAgIGNs
YXNzIFJlbmRlckZpbGVCdXR0b247CiAgICAgY2xhc3MgUmVuZGVyU2xpZGVyOworICAgIGNsYXNz
IFJlbmRlclRleHRGaWVsZDsKIH0KIAogbmFtZXNwYWNlIERPTSB7CkluZGV4OiByZW5kZXJpbmcv
cmVuZGVyX2NvbnRhaW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfY29udGFp
bmVyLmgJKHJldmlzaW9uIDEyMjI5KQorKysgcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVD
aGlsZChSZW5kZXJPYmplY3QgKm9sZENoaWxkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
KCk7Ci0gICAgdm9pZCBkZXN0cm95TGVmdG92ZXJBbm9ueW1vdXNDaGlsZHJlbigpOworICAgIHZv
aWQgZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKICAgICAKICAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogcmVtb3ZlQ2hpbGROb2RlKFJlbmRlck9iamVjdCogY2hpbGQpOwogICAgIHZpcnR1YWwg
dm9pZCBhcHBlbmRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBjaGlsZCk7CkluZGV4OiByZW5kZXJp
bmcvUmVuZGVyVGV4dEZpZWxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRleHRG
aWVsZC5oCShyZXZpc2lvbiAwKQorKysgcmVuZGVyaW5nL1JlbmRlclRleHRGaWVsZC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisg
KgorICovCisjaWZuZGVmIEtIVE1MX1JlbmRlclRleHRGaWVsZF9ICisjZGVmaW5lIEtIVE1MX1Jl
bmRlclRleHRGaWVsZF9ICisKKyNpbmNsdWRlICJyZW5kZXJfZmxleGJveC5oIgorI2luY2x1ZGUg
Imh0bWxfYmxvY2tpbXBsLmgiCisKK25hbWVzcGFjZSBraHRtbAoreworCitjbGFzcyBSZW5kZXJU
ZXh0RmllbGQgOiBwdWJsaWMgUmVuZGVyQmxvY2sKK3sKK3B1YmxpYzoKKyAgICBSZW5kZXJUZXh0
RmllbGQoRE9NOjpOb2RlSW1wbCogbm9kZSk7CisgICAgdmlydHVhbCB+UmVuZGVyVGV4dEZpZWxk
KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0ICpuZXdDaGlsZCwg
UmVuZGVyT2JqZWN0ICpiZWZvcmVDaGlsZCA9IDApOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVD
aGlsZChSZW5kZXJPYmplY3QgKm9sZENoaWxkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGVm
dG92ZXJBbm9ueW1vdXNCb3hlcygpIHt9OworCisgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFJl
bmRlclN0eWxlKiBzdHlsZSk7CisgICAgUmVuZGVyU3R5bGUqIGdldERpdlN0eWxlKFJlbmRlclN0
eWxlKiBzdGFydFN0eWxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsK
KworICAgIHZpcnR1YWwgY29uc3QgY2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJS
ZW5kZXJUZXh0RmllbGQiOyB9CisgICAgCisgICAgaW50IHNlbGVjdGlvblN0YXJ0KCk7CisgICAg
aW50IHNlbGVjdGlvbkVuZCgpOworICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnQoaW50KTsKKyAg
ICB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQpOworICAgIAorICAgIHZvaWQgc2VsZWN0KCk7Cisg
ICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQsIGludCk7CisKK3Byb3RlY3RlZDoKKyAgICBS
ZWZQdHI8SFRNTERpdkVsZW1lbnRJbXBsPiBtX2RpdjsKK307CisKK307CisjZW5kaWYKSW5kZXg6
IHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
cmVuZGVyX2NvbnRhaW5lci5jcHAJKHJldmlzaW9uIDEyMjI5KQorKysgcmVuZGVyaW5nL3JlbmRl
cl9jb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxNyArNTYsMjAgQEAKIAogdm9p
ZCBSZW5kZXJDb250YWluZXI6OmRlc3Ryb3koKQogewotICAgIGRlc3Ryb3lMZWZ0b3ZlckFub255
bW91c0NoaWxkcmVuKCk7CisgICAgZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKICAgICBSZW5k
ZXJCb3g6OmRlc3Ryb3koKTsKIH0KIAotdm9pZCBSZW5kZXJDb250YWluZXI6OmRlc3Ryb3lMZWZ0
b3ZlckFub255bW91c0NoaWxkcmVuKCkKK3ZvaWQgUmVuZGVyQ29udGFpbmVyOjpkZXN0cm95TGVm
dG92ZXJDaGlsZHJlbigpCiB7CiAgICAgd2hpbGUgKG1fZmlyc3QpIHsKICAgICAgICAgaWYgKG1f
Zmlyc3QtPmlzTGlzdE1hcmtlcigpKQogICAgICAgICAgICAgbV9maXJzdC0+cmVtb3ZlKCk7ICAv
LyBMaXN0IG1hcmtlcnMgYXJlIG93bmVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsaXN0IGFuZCBzbyBk
b24ndCBnZXQgZGVzdHJveWVkIGJ5IHRoaXMgY29udGFpbmVyLgotICAgICAgICBlbHNlCisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG1fZmlyc3QtPmVsZW1lbnQoKSkKKyAgICAgICAg
ICAgICAgICBtX2ZpcnN0LT5lbGVtZW50KCktPnNldFJlbmRlcmVyKDApOwogICAgICAgICAgICAg
bV9maXJzdC0+ZGVzdHJveSgpOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4OiByZW5kZXJp
bmcvcmVuZGVyX2Zsb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfZmxvdy5j
cHAJKHJldmlzaW9uIDEyMjI5KQorKysgcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBACiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRl
c3Ryb3kgYW5vbnltb3VzIGNoaWxkcmVuIGZpcnN0IHdoaWxlIHRoZXkgYXJlIHN0aWxsIGNvbm5l
Y3RlZCB0byB0aGUgcmVzdCBvZiB0aGUgdHJlZSwgc28gdGhhdCB0aGV5IHdpbGwKICAgICAvLyBw
cm9wZXJseSBkaXJ0eSBsaW5lIGJveGVzIHRoYXQgdGhleSBhcmUgcmVtb3ZlZCBmcm9tLiAgRWZm
ZWN0cyB0aGF0IGRvIDpiZWZvcmUvOmFmdGVyIG9ubHkgb24gaG92ZXIgY291bGQgY3Jhc2ggb3Ro
ZXJ3aXNlLgotICAgIFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJveUxlZnRvdmVyQW5vbnltb3VzQ2hp
bGRyZW4oKTsKKyAgICBSZW5kZXJDb250YWluZXI6OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCk7
CiAgICAgCiAgICAgaWYgKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgaWYg
KG1fZmlyc3RMaW5lQm94KSB7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNwcAkocmV2aXNpb24gMCkK
KysrIHJlbmRlcmluZy9SZW5kZXJUZXh0RmllbGQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE3MCBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug
LSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUg
IlJlbmRlclRleHRGaWVsZC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJo
dG1sbmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50SW1wbC5oIgorCit1c2luZyBu
YW1lc3BhY2UgRE9NOwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworbmFtZXNwYWNlIGto
dG1sIHsKKworUmVuZGVyVGV4dEZpZWxkOjpSZW5kZXJUZXh0RmllbGQoTm9kZUltcGwqIG5vZGUp
Cis6UmVuZGVyQmxvY2sobm9kZSkKK3sKK30KKworUmVuZGVyVGV4dEZpZWxkOjp+UmVuZGVyVGV4
dEZpZWxkKCkKK3sKKyAgICBpZiAobV9kaXYpCisgICAgICAgIG1fZGl2LT5kZXRhY2goKTsKK30K
Kwordm9pZCBSZW5kZXJUZXh0RmllbGQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCAqbmV3Q2hpbGQs
IFJlbmRlck9iamVjdCAqYmVmb3JlQ2hpbGQpCit7CisgICAgUmVuZGVyQmxvY2sqIGRpdlJlbmRl
cmVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihtX2Rpdi0+cmVuZGVyZXIoKSk7CisgICAg
aWYgKGRpdlJlbmRlcmVyICYmIGRpdlJlbmRlcmVyLT5maXJzdENoaWxkKCkpCisgICAgICAgIGRp
dlJlbmRlcmVyLT5maXJzdENoaWxkKCktPmFkZENoaWxkKG5ld0NoaWxkLCBiZWZvcmVDaGlsZCk7
Cit9CisKK3ZvaWQgUmVuZGVyVGV4dEZpZWxkOjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QgKm9s
ZENoaWxkKQoreworICAgIFJlbmRlckJsb2NrKiBkaXZSZW5kZXJlciA9IHN0YXRpY19jYXN0PFJl
bmRlckJsb2NrKj4obV9kaXYtPnJlbmRlcmVyKCkpOworICAgIGlmIChvbGRDaGlsZCA9PSBkaXZS
ZW5kZXJlciB8fCAhZGl2UmVuZGVyZXIpIHsKKyAgICAgICAgUmVuZGVyQmxvY2s6OnJlbW92ZUNo
aWxkKG9sZENoaWxkKTsKKyAgICB9IGVsc2UgaWYgKG9sZENoaWxkID09IGRpdlJlbmRlcmVyLT5m
aXJzdENoaWxkKCkgfHwgIWRpdlJlbmRlcmVyLT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgUmVu
ZGVyQmxvY2s6OnJlbW92ZUNoaWxkKG9sZENoaWxkKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGl2
UmVuZGVyZXItPmZpcnN0Q2hpbGQoKS0+cmVtb3ZlQ2hpbGQob2xkQ2hpbGQpOworfQorCit2b2lk
IFJlbmRlclRleHRGaWVsZDo6c2V0U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIFJl
bmRlckJsb2NrOjpzZXRTdHlsZShzdHlsZSk7CisgICAgaWYgKG1fZGl2KSB7CisgICAgICAgIFJl
bmRlckJsb2NrKiBkaXZSZW5kZXJlciA9IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4obV9kaXYt
PnJlbmRlcmVyKCkpOworICAgICAgICBSZW5kZXJTdHlsZSogZGl2U3R5bGUgPSBnZXREaXZTdHls
ZShzdHlsZSk7CisgICAgICAgIGlmIChkaXZSZW5kZXJlci0+Zmlyc3RDaGlsZCgpKSB7CisgICAg
ICAgICAgICBkaXZSZW5kZXJlci0+Zmlyc3RDaGlsZCgpLT5zZXRTdHlsZShkaXZTdHlsZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZGl2UmVuZGVyZXItPnNldFN0eWxlKGRpdlN0eWxlKTsKKyAgICB9
CisgICAgc2V0UmVwbGFjZWQoaXNJbmxpbmUoKSk7Cit9CisKK1JlbmRlclN0eWxlKiBSZW5kZXJU
ZXh0RmllbGQ6OmdldERpdlN0eWxlKFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKQoreworICAgIFJl
bmRlclN0eWxlKiBkaXZTdHlsZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyU3R5bGUoKTsK
KyAgICBkaXZTdHlsZS0+aW5oZXJpdEZyb20oc3RhcnRTdHlsZSk7CisgICAgZGl2U3R5bGUtPnNl
dERpc3BsYXkoQkxPQ0spOworICAgIGRpdlN0eWxlLT5zZXRPdmVyZmxvdyhPSElEREVOKTsKKyAg
ICBkaXZTdHlsZS0+c2V0V2hpdGVTcGFjZShOT1dSQVApOworICAgIGRpdlN0eWxlLT5zZXRVc2Vy
TW9kaWZ5KFJFQURfV1JJVEUpOworICAgIAorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2Ugb25j
ZSB3ZSBnZXQgdGhlIHJlbmRlciB0aGVtZSB1cCBhbmQgd29ya2luZy4KKyAgICBkaXZTdHlsZS0+
c2V0T3V0bGluZVdpZHRoKDEpOworICAgIGRpdlN0eWxlLT5zZXRPdXRsaW5lU3R5bGUoU09MSUQp
OworICAgIGRpdlN0eWxlLT5zZXRQYWRkaW5nVG9wKExlbmd0aCgyLCBGaXhlZCkpOworICAgIGRp
dlN0eWxlLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aCgyLCBGaXhlZCkpOworICAgIGRpdlN0eWxl
LT5zZXRQYWRkaW5nTGVmdChMZW5ndGgoMiwgRml4ZWQpKTsKKyAgICBkaXZTdHlsZS0+c2V0UGFk
ZGluZ1JpZ2h0KExlbmd0aCgyLCBGaXhlZCkpOworICAgIGRpdlN0eWxlLT5zZXRXaWR0aChMZW5n
dGgoMTUwLCBGaXhlZCkpOworICAgIAorICAgIHJldHVybiBkaXZTdHlsZTsKK30KKwordm9pZCBS
ZW5kZXJUZXh0RmllbGQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKKyAgICBpZiAoZWxlbWVudCgp
LT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50SW1wbCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50SW1wbCo+KGVsZW1lbnQoKSk7Cisg
ICAgICAgIERPTVN0cmluZyB2YWx1ZSA9IGlucHV0LT52YWx1ZSgpOworICAgICAgICAKKyAgICAg
ICAgaWYgKCFtX2RpdikgeworICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBkaXYgYW5kIGdpdmUg
aXQgYSBwYXJlbnQsIHJlbmRlcmVyLCBhbmQgc3R5bGUKKyAgICAgICAgICAgIG1fZGl2ID0gbmV3
IEhUTUxEaXZFbGVtZW50SW1wbChkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIFJlbmRlckJsb2Nr
KiBkaXZSZW5kZXJlciA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2sobV9kaXYuZ2V0
KCkpOworICAgICAgICAgICAgbV9kaXYtPnNldFJlbmRlcmVyKGRpdlJlbmRlcmVyKTsKKyAgICAg
ICAgICAgIG1fZGl2LT5zZXRBdHRhY2hlZCgpOworICAgICAgICAgICAgbV9kaXYtPnNldEluRG9j
dW1lbnQodHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlclN0eWxlKiBkaXZT
dHlsZSA9IGdldERpdlN0eWxlKHN0eWxlKCkpOworICAgICAgICAgICAgZGl2UmVuZGVyZXItPnNl
dFN0eWxlKGRpdlN0eWxlKTsgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEFkZCBkaXYg
dG8gUmVuZGVyIHRyZWUKKyAgICAgICAgICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChkaXZSZW5k
ZXJlcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRleHRJbXBsKiB0ZXh0ID0gc3Rh
dGljX2Nhc3Q8VGV4dEltcGwqPihtX2Rpdi0+Zmlyc3RDaGlsZCgpKTsKKyAgICAgICAgaWYgKCF0
ZXh0KSB7CisgICAgICAgICAgICAvLyBBZGQgdGV4dCBub2RlIHRvIERPTSB0cmVlCisgICAgICAg
ICAgICB0ZXh0ID0gbmV3IFRleHRJbXBsKGRvY3VtZW50KCksIHZhbHVlLmltcGwoKSk7CisgICAg
ICAgICAgICBpbnQgZXhjZXB0aW9uID0gMDsKKyAgICAgICAgICAgIG1fZGl2LT5hcHBlbmRDaGls
ZCh0ZXh0LCBleGNlcHRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIWlu
cHV0LT52YWx1ZU1hdGNoZXNSZW5kZXJlcigpKSB7CisgICAgICAgICAgICBET01TdHJpbmcgb2xk
VGV4dCA9IHRleHQtPmRhdGEoKTsKKyAgICAgICAgICAgIHZhbHVlLnJlcGxhY2UoUUNoYXIoJ1xc
JyksIGJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSk7CisgICAgICAgICAgICBpZiAodmFsdWUg
IT0gb2xkVGV4dCkgeworICAgICAgICAgICAgICAgIGludCBleGNlcHRpb24gPSAwOworICAgICAg
ICAgICAgICAgIHRleHQtPnNldERhdGEodmFsdWUsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICAg
ICAgLy9GSVhNRTogVXBkYXRlIGN1cnNvciBhcyBuZWNlc3NhcnkKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcigpOworICAgICAgICB9Cisg
ICAgfQorfQorCisKK2ludCBSZW5kZXJUZXh0RmllbGQ6OnNlbGVjdGlvblN0YXJ0KCkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworaW50IFJlbmRlclRleHRGaWVsZDo6c2VsZWN0aW9uRW5kKCkKK3sK
KyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW5kZXJUZXh0RmllbGQ6OnNldFNlbGVjdGlvblN0
YXJ0KGludCBzdGFydCkKK3sKKworfQorIAordm9pZCBSZW5kZXJUZXh0RmllbGQ6OnNldFNlbGVj
dGlvbkVuZChpbnQgZW5kKQoreworCit9CisgICAgCit2b2lkIFJlbmRlclRleHRGaWVsZDo6c2Vs
ZWN0KCkKK3sKKworfQorCit2b2lkIFJlbmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uUmFuZ2Uo
aW50IHN0YXJ0LCBpbnQgZW5kKQoreworCit9CisKK30KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDEyMjI5KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI4LDYgKzEzMjgsMTAgQEAKIAkJQThGRUZCMEIw
OTc5RjQ3MjAwNTgzOUZEIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThGRUZCMDkwOTc5RjQ3MjAwNTgzOUZE
IC8qIFJlbmRlckZvcmVpZ25PYmplY3QuY3BwICovOyB9OwogCQlBOEZFRkIzMTA5NzlGNEY2MDA1
ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjJGMDk3OUY0RjYwMDU4MzlGRCAv
KiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuY3BwICovOyB9OwogCQlBOEZFRkIzMjA5NzlG
NEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIzMDA5NzlGNEY2MDA1ODM5
RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmggKi87IH07CisJCUFCNjdEMUE4MDk3
RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJl
bmRlclRleHRGaWVsZC5jcHAgKi87IH07CisJCUFCNjdEMUE5MDk3RjNBRTMwMEY5MzkyRSAvKiBS
ZW5kZXJUZXh0RmllbGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFCNjdEMUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuaCAqLzsg
fTsKKwkJQUI2N0QxQUEwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0Yz
QUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCAqLzsgfTsKKwkJQUI2N0QxQUIwOTdG
M0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRl
clRleHRGaWVsZC5oICovOyB9OwogCQlBRUQ5ODAwQzA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFF
RDk4MDBBMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uY3BwICovOyB9OwogCQlBRUQ5ODAw
RDA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRUQ5ODAwQjA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0
aW9uLmggKi87IH07CiAJCUFFRDk4MDBFMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUVEOTgwMEEw
OTc2QjM4RTAwMDYwOUY2IC8qIFNlbGVjdGlvbi5jcHAgKi87IH07CkBAIC0yNDEyLDYgKzI0MTYs
OCBAQAogCQlBOEZFRkIwOTA5NzlGNDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRm9yZWlnbk9i
amVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RkVGQjJGMDk3OUY0RjYw
MDU4MzlGRCAvKiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RkVGQjMwMDk3OUY0RjYwMDU4MzlGRCAv
KiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxk
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Rmll
bGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQjY3RDFBNzA5N0YzQUUzMDBG
OTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJUZXh0RmllbGQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUVE
OTgwMEEwOTc2QjM4RTAwMDYwOUY2IC8qIFNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU2VsZWN0aW9uLmNwcDsgcGF0aCA9IGVkaXRpbmcvU2VsZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUVEOTgwMEIwOTc2QjM4RTAw
MDYwOUY2IC8qIFNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
U2VsZWN0aW9uLmg7IHBhdGggPSBlZGl0aW5nL1NlbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzA2RjI0OTA2RDE4QTdFMDA0QTZGQTMgLyogeHNsX3N0eWxlc2hlZXRp
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IHhzbF9zdHlsZXNoZWV0aW1wbC5jcHA7IHBhdGggPSB4c2wveHNsX3N0eWxlc2hlZXRp
bXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CkBAIC00MTAyLDYgKzQxMDgsOCBAQAogCQlGNTIzRDJGMzAyREU0NDNCMDE4NjM1Q0Eg
LyogcmVuZGVyaW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQlBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCAqLywK
KwkJCQlBQjY3RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggKi8sCiAJ
CQkJQkNFQTQ4MTMwOTdEOTMwMjAwOTRDOUU0IC8qIGJpZGkuY3BwICovLAogCQkJCUJDRUE0ODE0
MDk3RDkzMDIwMDk0QzlFNCAvKiBiaWRpLmggKi8sCiAJCQkJQkNFQTQ4MTUwOTdEOTMwMjAwOTRD
OUU0IC8qIGJyZWFrX2xpbmVzLmNwcCAqLywKQEAgLTQ5NzMsNiArNDk4MSw3IEBACiAJCQkJQkNF
QTQ4OTAwOTdEOTMwMjAwOTRDOUU0IC8qIHRhYmxlX2xheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFQTQ5NDQwOTdGMEY1QzAwOTRDOUU0IC8qIEJyb3dzZXJFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRUE0OTQ3MDk3RjBGNzcwMDk0QzlFNCAvKiBCcm93c2VyRXh0ZW5zaW9u
TWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQjY3RDFBOTA5N0YzQUUzMDBGOTM5MkUgLyogUmVu
ZGVyVGV4dEZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTUzMTgsNiArNTMyNyw3IEBACiAJCQkJ
QkNFQTQ4Q0IwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRUE0OENEMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUZXh0RnJhZ21lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRUE0OENGMDk3RDkzMDIwMDk0QzlFNCAvKiB0YWJsZV9sYXlvdXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUFCNjdEMUFCMDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJU
ZXh0RmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjg4MCw2ICs2ODkwLDcgQEAKIAkJCQlCQ0VB
NDg4RjA5N0Q5MzAyMDA5NEM5RTQgLyogdGFibGVfbGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzN0EzNkE3MDk3RTJFMzIwMEU0RUUyRiAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0cy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDk0ODA5N0YwRjc3MDA5NEM5RTQgLyogQnJvd3NlckV4
dGVuc2lvbk1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUFCNjdEMUE4MDk3RjNBRTMwMEY5Mzky
RSAvKiBSZW5kZXJUZXh0RmllbGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC03MTc4LDYgKzcxODks
NyBAQAogCQkJCUJDRUE0OENDMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUZXh0RnJhZ21lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4Q0UwOTdEOTMwMjAwOTRDOUU0IC8qIHRhYmxl
X2xheW91dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzdBMzZBODA5N0UyRTMyMDBFNEVFMkYg
LyogVXNlckFnZW50U3R5bGVTaGVldHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUI2N0QxQUEw
OTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjI5KQor
KysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMDYtMDEtMTgg
IEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgbmV3
IGFuZCBpbXByb3ZlZCB0ZXh0IGZpZWxkcy4gIAorICAgICAgICBUaGlzIHdpbGwgb25seSBiZSB0
dXJuZWQgb24gaWYgYW4gaW5wdXQgZWxlbWVudCBoYXMga2h0bWwtYXBwZWFyYW5jZTogdGV4dGZp
ZWxkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZCBSZW5kZXJUZXh0RmllbGQuaCBhbmQgUmVuZGVyVGV4dEZpZWxkLmNwcAorICAgICAgICAqIGNz
cy9jc3N2YWx1ZXMuaW46IEZpeGVkIG9taXR0ZWQgYnV0dG9uLWJldmVsIHZhbHVlLiAgCisgICAg
ICAgICAgVGhpcyB3YXMgY2F1c2luZyBhbiBvZmYtYnktb25lIGVycm9yIHdoZW4gZ2V0dGluZyBr
aHRtbC1hcHBlYXJhbmNlIHZhbHVlLgorICAgICAgICAqIGtodG1sL2h0bWwvSFRNTElucHV0RWxl
bWVudEltcGwuY3BwOiBBZGRlZCBjaGVja3MgZm9yIGtodG1sLWFwcGVhcmFuY2UgdG8gZGVjaWRl
IAorICAgICAgICAgIHdoZW4gdG8gdXNlIFJlbmRlclRleHRGaWVsZCBpbnN0ZWFkIG9mIFJlbmRl
ckxpbmVFZGl0LgorICAgICAgICAoRE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2VsZWN0aW9u
U3RhcnQpOgorICAgICAgICAoRE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2VsZWN0aW9uRW5k
KToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OnNldFNlbGVjdGlvblN0YXJ0
KToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OnNldFNlbGVjdGlvbkVuZCk6
CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpzZWxlY3QpOgorICAgICAgICAo
RE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAo
RE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoRE9N
OjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICog
a2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50SW1wbC5oOgorICAgICAgICAqIGtodG1sL2h0bWwv
aHRtbF9lbGVtZW50aW1wbC5jcHA6CisgICAgICAgIChIVE1MRWxlbWVudEltcGw6OmlzRm9jdXNh
YmxlKTogQWxzbyBhbGxvdyBlZGl0YWJsZSBlbGVtZW50cyB3aXRoIG5vIHBhcmVudCB0byBiZSBm
b2N1c2FibGUuCisgICAgICAgICoga2h0bWwveG1sL05vZGVJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlSW1wbDo6c2V0QXR0YWNoZWQpOiBBZGRlZCB0byBzZXQgbV9hdHRhY2hlZCB3aXRo
b3V0IGhhdmluZyB0byBjYWxsIGF0dGFjaCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0RmllbGQuY3BwOiBBZGRlZC4KKyAgICAgICAgKGtodG1sOjo6UmVuZGVyQmxvY2spOgorICAg
ICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6flJlbmRlclRleHRGaWVsZCk6CisgICAgICAg
IChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjphZGRDaGlsZCk6CisgICAgICAgIChraHRtbDo6UmVu
ZGVyVGV4dEZpZWxkOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZp
ZWxkOjpzZXRTdHlsZSk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpnZXREaXZT
dHlsZSk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjp1cGRhdGVGcm9tRWxlbWVu
dCk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpzZWxlY3Rpb25TdGFydCk6Cisg
ICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpzZWxlY3Rpb25FbmQpOgorICAgICAgICAo
a2h0bWw6OlJlbmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoa2h0
bWw6OlJlbmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKGtodG1sOjpS
ZW5kZXJUZXh0RmllbGQ6OnNlbGVjdCk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxk
OjpzZXRTZWxlY3Rpb25SYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRGaWVs
ZC5oOiBBZGRlZC4KKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnJlbW92ZUxlZnRv
dmVyQW5vbnltb3VzQm94ZXMpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6cmVu
ZGVyTmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuY3BwOgorICAg
ICAgICAoUmVuZGVyQ29udGFpbmVyOjpkZXN0cm95KTogdXNlIHJlbmFtZWQgZGVzdHJveUxlZnRv
dmVyQ2hpbGRyZW4uCisgICAgICAgIChSZW5kZXJDb250YWluZXI6OmRlc3Ryb3lMZWZ0b3ZlckNo
aWxkcmVuKTogcmVuYW1lZCBmcm9tIGRlc3Ryb3lMZWZ0b3ZlckFub255bW91c0NoaWxkcmVuLgor
ICAgICAgICAqIHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3JlbmRlcl9mbG93LmNwcDoKKyAgICAgICAgKFJlbmRlckZsb3c6OmRlc3Ryb3kpOiB1c2Ug
cmVuYW1lZCBkZXN0cm95TGVmdG92ZXJDaGlsZHJlbi4KKwogMjAwNi0wMS0xOCAgRGF2aWQgSHlh
dHQgPGh5YXR0QGFwcGxlLmNvbQogCiAgICAgICAgIEZpeCBmb3IgYnVnIDY2NTcsIHJlbW92ZSBh
bGwgdXNlcyBvZiBNYWNGcmFtZSBmcm9tIGNyb3NzLXBsYXRmb3JtCkluZGV4OiBjc3MvY3NzdmFs
dWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGNzcy9jc3N2YWx1ZXMuaW4JKHJldmlzaW9uIDEyMjI5KQor
KysgY3NzL2Nzc3ZhbHVlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDQ1LDYgKzQ0NSw3IEBACiBw
dXNoLWJ1dHRvbgogc3F1YXJlLWJ1dHRvbgogYnV0dG9uCitidXR0b24tYmV2ZWwKIGxpc3Rib3gK
IGxpc3RpdGVtCiBtZW51bGlzdAo=
</data>
<flag name="review"
          id="1318"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5777</attachid>
            <date>2006-01-19 00:26:57 -0800</date>
            <delta_ts>2006-01-19 00:35:10 -0800</delta_ts>
            <desc>latest patch</desc>
            <filename>patch3.txt</filename>
            <type>text/plain</type>
            <size>23061</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Ob2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2Rl
SW1wbC5oCShyZXZpc2lvbiAxMjIzMCkKKysrIGtodG1sL3htbC9Ob2RlSW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKICAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJl
dHVybiBtX2hvdmVyZWQ7IH0KICAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWQ7IH0KICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgICB7IHJldHVybiBtX2F0dGFjaGVk
OyB9CisgICAgdm9pZCBzZXRBdHRhY2hlZChib29sIGI9dHJ1ZSkgeyBtX2F0dGFjaGVkID0gYjsg
fQogICAgIGJvb2wgY2hhbmdlZCgpIGNvbnN0ICAgIHsgcmV0dXJuIG1fY2hhbmdlZDsgfQogICAg
IGJvb2wgaGFzQ2hhbmdlZENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDaGFuZ2VkQ2hpbGQ7
IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IHsgcmV0dXJuIG1faXNMaW5rOyB9CkluZGV4OiBr
aHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwv
aHRtbF9lbGVtZW50aW1wbC5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9odG1s
X2VsZW1lbnRpbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYxLDcgKzQ2MSw5IEBACiAKIGJv
b2wgSFRNTEVsZW1lbnRJbXBsOjppc0ZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlz
Q29udGVudEVkaXRhYmxlKCkgJiYgcGFyZW50KCkgJiYgIXBhcmVudCgpLT5pc0NvbnRlbnRFZGl0
YWJsZSgpOworICAgIC8vIEFkZGVkIHRoZSBjaGVjayBmb3IgIXBhcmVudCgpIHNvIHNoYWRvdyBl
bGVtZW50cywgbGlrZSB0aG9zZSBpbiBlbmdpbmUtYmFzZWQgdGV4dGZpZWxkcywgY2FuIGdldCBm
b2N1cy4KKyAgICAvLyBXZSBtYXkgcmVldmFsdWF0ZSB0aGlzIHdoZW4gd2UgcmVzb2x2ZSBvdXRz
dGFuZGluZyBmb2N1cyBpc3N1ZXMgd2l0aCB0aGVzZSBzaGFkb3cgZWxlbWVudHMuCisgICAgcmV0
dXJuIGlzQ29udGVudEVkaXRhYmxlKCkgJiYgKChwYXJlbnQoKSAmJiAhcGFyZW50KCktPmlzQ29u
dGVudEVkaXRhYmxlKCkpIHx8ICFwYXJlbnQoKSk7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnRJbXBs
Ojppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0IApJbmRleDoga2h0bWwvaHRtbC9IVE1MSW5wdXRF
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50
SW1wbC5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDkgQEAKICNpbmNsdWRlICJGb3Jt
RGF0YUxpc3QuaCIKIAogI2luY2x1ZGUgImNzc3Byb3BlcnRpZXMuaCIKLSNpbmNsdWRlICJyZW5k
ZXJpbmcvcmVuZGVyX2Zvcm0uaCIKLSNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2J1dHRvbi5o
IgorI2luY2x1ZGUgInJlbmRlcl9mb3JtLmgiCisjaW5jbHVkZSAicmVuZGVyX2J1dHRvbi5oIgor
I2luY2x1ZGUgIlJlbmRlclRleHRGaWVsZC5oIgogI2luY2x1ZGUgInJlbmRlcl90aGVtZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogCkBAIC0yODIsOCArMjgzLDExIEBACiAgICAgCiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2Fz
ZSBURVhUOgorICAgICAgICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3JlbmRlciktPnNlbGVjdGlvblN0YXJ0KCk7CisgICAg
ICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIHRleHQgZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lm
eSBhcHBlYXJhbmNlCiAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6CiAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9yZW5kZXIp
LT5zZWxlY3Rpb25TdGFydCgpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7
CkBAIC0yOTcsOCArMzAxLDExIEBACiAgICAgCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAg
ICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgaWYgKG1f
cmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3Jl
bmRlciktPnNlbGVjdGlvbkVuZCgpOworICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIHRleHQg
ZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhcHBlYXJhbmNlCiAgICAgICAgIGNhc2UgU0VBUkNI
OgotICAgICAgICBjYXNlIFRFWFQ6CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyTGluZUVkaXQgKj4obV9yZW5kZXIpLT5zZWxlY3Rpb25FbmQoKTsKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzEyLDggKzMxOSwxMSBAQAogICAgIAogICAgIHN3
aXRjaCAobV90eXBlKSB7CiAgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIGNhc2UgVEVY
VDoKKyAgICAgICAgICAgIGlmIChtX3JlbmRlci0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFRl
eHRGaWVsZEFwcGVhcmFuY2UpCisgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRl
eHRGaWVsZCAqPihtX3JlbmRlciktPnNldFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICAgICAg
Ly8gRmFsbCB0aHJvdWdoIGZvciB0ZXh0IGZpZWxkcyB0aGF0IGRvbid0IHNwZWNpZnkgYXBwZWFy
YW5jZQogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURVhUOgogICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9yZW5kZXIpLT5zZXRTZWxlY3Rpb25T
dGFydChzdGFydCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAgLTMy
Nyw4ICszMzcsMTEgQEAKICAgICAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNl
IFBBU1NXT1JEOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAgICAgICBpZiAobV9yZW5kZXIt
PnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBUZXh0RmllbGRBcHBlYXJhbmNlKQorICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0RmllbGQgKj4obV9yZW5kZXIpLT5zZXRTZWxl
Y3Rpb25FbmQoZW5kKTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGZvciB0ZXh0IGZpZWxkcyB0
aGF0IGRvbid0IHNwZWNpZnkgYXBwZWFyYW5jZQogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAg
ICAgY2FzZSBURVhUOgogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4o
bV9yZW5kZXIpLT5zZXRTZWxlY3Rpb25FbmQoZW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBkZWZhdWx0OgpAQCAtMzQ1LDggKzM1OCwxMSBAQAogICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8UmVuZGVyRmlsZUJ1dHRvbio+KG1fcmVuZGVyKS0+c2VsZWN0KCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAg
ICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBw
ZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dEZpZWxkICo+
KG1fcmVuZGVyKS0+c2VsZWN0KCk7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBmb3IgdGV4dCBm
aWVsZHMgdGhhdCBkb24ndCBzcGVjaWZ5IGFwcGVhcmFuY2UKICAgICAgICAgY2FzZSBTRUFSQ0g6
Ci0gICAgICAgIGNhc2UgVEVYVDoKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlckxpbmVF
ZGl0Kj4obV9yZW5kZXIpLT5zZWxlY3QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEJVVFRPTjoKQEAgLTM2OCw4ICszODQsMTEgQEAKICAgICAKICAgICBzd2l0Y2ggKG1fdHlw
ZSkgewogICAgICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAg
ICAgICBpZiAobV9yZW5kZXItPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBUZXh0RmllbGRBcHBl
YXJhbmNlKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPiht
X3JlbmRlciktPnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGYWxs
IHRocm91Z2ggZm9yIHRleHQgZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhcHBlYXJhbmNlCiAg
ICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6CiAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxSZW5kZXJMaW5lRWRpdCAqPihtX3JlbmRlciktPnNldFNlbGVjdGlvblJhbmdlKHN0
YXJ0LCBlbmQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC01NzIs
NiArNTkxLDkgQEAKICAgICB7CiAgICAgY2FzZSBURVhUOgogICAgIGNhc2UgUEFTU1dPUkQ6Cisg
ICAgICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IFRleHRGaWVsZEFwcGVhcmFuY2UpCisg
ICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dEZpZWxkKHRoaXMpOworICAg
IC8vIEZhbGwgdGhyb3VnaCBmb3IgdGV4dCBmaWVsZHMgdGhhdCBkb24ndCBzcGVjaWZ5IGFwcGVh
cmFuY2UKICAgICBjYXNlIFNFQVJDSDoKICAgICBjYXNlIElTSU5ERVg6ICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVyTGluZUVkaXQodGhpcyk7CiAgICAgY2FzZSBDSEVDS0JPWDoKSW5kZXg6IGto
dG1sL2h0bWwvSFRNTElucHV0RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1s
L0hUTUxJbnB1dEVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9I
VE1MSW5wdXRFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAg
ICAgY2xhc3MgUmVuZGVyTGluZUVkaXQ7CiAgICAgY2xhc3MgUmVuZGVyRmlsZUJ1dHRvbjsKICAg
ICBjbGFzcyBSZW5kZXJTbGlkZXI7CisgICAgY2xhc3MgUmVuZGVyVGV4dEZpZWxkOwogfQogCiBu
YW1lc3BhY2UgRE9NIHsKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaAkocmV2aXNpb24gMTIyMzApCisr
KyByZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0
OSw3IEBACiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCAqb2xkQ2hp
bGQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKLSAgICB2b2lkIGRlc3Ryb3lMZWZ0
b3ZlckFub255bW91c0NoaWxkcmVuKCk7CisgICAgdm9pZCBkZXN0cm95TGVmdG92ZXJDaGlsZHJl
bigpOwogICAgIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiByZW1vdmVDaGlsZE5vZGUoUmVu
ZGVyT2JqZWN0KiBjaGlsZCk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZENoaWxkTm9kZShSZW5k
ZXJPYmplY3QqIGNoaWxkKTsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUZXh0RmllbGQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmgJKHJldmlzaW9uIDApCisrKyBy
ZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisg
KiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgS0hUTUxfUmVu
ZGVyVGV4dEZpZWxkX0gKKyNkZWZpbmUgS0hUTUxfUmVuZGVyVGV4dEZpZWxkX0gKKworI2luY2x1
ZGUgInJlbmRlcl9mbGV4Ym94LmgiCisjaW5jbHVkZSAiaHRtbF9ibG9ja2ltcGwuaCIKKworbmFt
ZXNwYWNlIGtodG1sCit7CisKK2NsYXNzIFJlbmRlclRleHRGaWVsZCA6IHB1YmxpYyBSZW5kZXJC
bG9jaworeworcHVibGljOgorICAgIFJlbmRlclRleHRGaWVsZChET006Ok5vZGVJbXBsKiBub2Rl
KTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0RmllbGQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZChSZW5kZXJPYmplY3QgKm5ld0NoaWxkLCBSZW5kZXJPYmplY3QgKmJlZm9yZUNoaWxk
ID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCAqb2xkQ2hp
bGQpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0JveGVzKCkge307
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlKTsKKyAgICBS
ZW5kZXJTdHlsZSogY3JlYXRlRGl2U3R5bGUoUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworCisgICAgdmlydHVhbCBjb25zdCBj
aGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclRleHRGaWVsZCI7IH0KKyAg
ICAKKyAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKTsKKyAgICBpbnQgc2VsZWN0aW9uRW5kKCk7Cisg
ICAgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQpOworICAgIHZvaWQgc2V0U2VsZWN0aW9uRW5k
KGludCk7CisgICAgCisgICAgdm9pZCBzZWxlY3QoKTsKKyAgICB2b2lkIHNldFNlbGVjdGlvblJh
bmdlKGludCwgaW50KTsKKworcHJvdGVjdGVkOgorICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudElt
cGw+IG1fZGl2OworfTsKKworfTsKKyNlbmRpZgpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9jb250
YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcAko
cmV2aXNpb24gMTIyMzApCisrKyByZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDE3ICs1NiwyMSBAQAogCiB2b2lkIFJlbmRlckNvbnRhaW5lcjo6ZGVz
dHJveSgpCiB7Ci0gICAgZGVzdHJveUxlZnRvdmVyQW5vbnltb3VzQ2hpbGRyZW4oKTsKKyAgICBk
ZXN0cm95TGVmdG92ZXJDaGlsZHJlbigpOwogICAgIFJlbmRlckJveDo6ZGVzdHJveSgpOwogfQog
Ci12b2lkIFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJveUxlZnRvdmVyQW5vbnltb3VzQ2hpbGRyZW4o
KQordm9pZCBSZW5kZXJDb250YWluZXI6OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCkKIHsKICAg
ICB3aGlsZSAobV9maXJzdCkgewogICAgICAgICBpZiAobV9maXJzdC0+aXNMaXN0TWFya2VyKCkp
CiAgICAgICAgICAgICBtX2ZpcnN0LT5yZW1vdmUoKTsgIC8vIExpc3QgbWFya2VycyBhcmUgb3du
ZWQgYnkgdGhlaXIgZW5jbG9zaW5nIGxpc3QgYW5kIHNvIGRvbid0IGdldCBkZXN0cm95ZWQgYnkg
dGhpcyBjb250YWluZXIuCi0gICAgICAgIGVsc2UKKyAgICAgICAgZWxzZSB7CisgICAgICAgIC8v
IERlc3Ryb3kgYW55IGFub255bW91cyBjaGlsZHJlbiByZW1haW5pbmcgaW4gdGhlIHJlbmRlciB0
cmVlLCBhcyB3ZWxsIGFzIGltcGxpY2l0IChzaGFkb3cpIERPTSBlbGVtZW50cyBsaWtlIHRob3Nl
IHVzZWQgaW4gdGhlIGVuZ2luZS1iYXNlZCB0ZXh0ZmllbGRzLgorICAgICAgICAgICAgaWYgKG1f
Zmlyc3QtPmVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBtX2ZpcnN0LT5lbGVtZW50KCktPnNl
dFJlbmRlcmVyKDApOwogICAgICAgICAgICAgbV9maXJzdC0+ZGVzdHJveSgpOworICAgICAgICB9
CiAgICAgfQogfQogCkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysgcmVuZGVy
aW5nL3JlbmRlcl9mbG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBACiAg
ICAgCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRlc3Ryb3kgYW5vbnltb3VzIGNoaWxkcmVuIGZpcnN0
IHdoaWxlIHRoZXkgYXJlIHN0aWxsIGNvbm5lY3RlZCB0byB0aGUgcmVzdCBvZiB0aGUgdHJlZSwg
c28gdGhhdCB0aGV5IHdpbGwKICAgICAvLyBwcm9wZXJseSBkaXJ0eSBsaW5lIGJveGVzIHRoYXQg
dGhleSBhcmUgcmVtb3ZlZCBmcm9tLiAgRWZmZWN0cyB0aGF0IGRvIDpiZWZvcmUvOmFmdGVyIG9u
bHkgb24gaG92ZXIgY291bGQgY3Jhc2ggb3RoZXJ3aXNlLgotICAgIFJlbmRlckNvbnRhaW5lcjo6
ZGVzdHJveUxlZnRvdmVyQW5vbnltb3VzQ2hpbGRyZW4oKTsKKyAgICBSZW5kZXJDb250YWluZXI6
OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCk7CiAgICAgCiAgICAgaWYgKCFkb2N1bWVudEJlaW5n
RGVzdHJveWVkKCkpIHsKICAgICAgICAgaWYgKG1fZmlyc3RMaW5lQm94KSB7CkluZGV4OiByZW5k
ZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVy
VGV4dEZpZWxkLmNwcAkocmV2aXNpb24gMCkKKysrIHJlbmRlcmluZy9SZW5kZXJUZXh0RmllbGQu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1NSBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRGaWVsZC5oIgorI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJodG1sbmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50SW1wbC5oIgorCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlbmRlclRleHRGaWVsZDo6UmVuZGVyVGV4dEZpZWxkKE5vZGVJbXBs
KiBub2RlKQorOlJlbmRlckJsb2NrKG5vZGUpCit7Cit9CisKK1JlbmRlclRleHRGaWVsZDo6flJl
bmRlclRleHRGaWVsZCgpCit7CisgICAgLy8gVGhlIHJlbmRlcmVyIGZvciB0aGUgZGl2IGhhcyBh
bHJlYWR5IGJlZW4gZGVzdHJveWVkIGJ5IGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuCisgICAgaWYg
KG1fZGl2KQorICAgICAgICBtX2Rpdi0+ZGV0YWNoKCk7Cit9CisKK3ZvaWQgUmVuZGVyVGV4dEZp
ZWxkOjpzZXRTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgUmVuZGVyQmxvY2s6OnNl
dFN0eWxlKHN0eWxlKTsKKyAgICBpZiAobV9kaXYpIHsKKyAgICAgICAgUmVuZGVyQmxvY2sqIGRp
dlJlbmRlcmVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihtX2Rpdi0+cmVuZGVyZXIoKSk7
CisgICAgICAgIFJlbmRlclN0eWxlKiBkaXZTdHlsZSA9IGNyZWF0ZURpdlN0eWxlKHN0eWxlKTsK
KyAgICAgICAgaWYgKGRpdlJlbmRlcmVyLT5maXJzdENoaWxkKCkpCisgICAgICAgICAgICBkaXZS
ZW5kZXJlci0+Zmlyc3RDaGlsZCgpLT5zZXRTdHlsZShkaXZTdHlsZSk7CisgICAgICAgIGRpdlJl
bmRlcmVyLT5zZXRTdHlsZShkaXZTdHlsZSk7CisgICAgfQorICAgIHNldFJlcGxhY2VkKGlzSW5s
aW5lKCkpOworfQorCitSZW5kZXJTdHlsZSogUmVuZGVyVGV4dEZpZWxkOjpjcmVhdGVEaXZTdHls
ZShSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSkKK3sKKyAgICBSZW5kZXJTdHlsZSogZGl2U3R5bGUg
PSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclN0eWxlKCk7CisgICAgZGl2U3R5bGUtPmluaGVy
aXRGcm9tKHN0YXJ0U3R5bGUpOworICAgIGRpdlN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKKyAg
ICBkaXZTdHlsZS0+c2V0T3ZlcmZsb3coT0hJRERFTik7CisgICAgZGl2U3R5bGUtPnNldFdoaXRl
U3BhY2UoTk9XUkFQKTsKKyAgICBkaXZTdHlsZS0+c2V0VXNlck1vZGlmeShSRUFEX1dSSVRFKTsK
KyAgICAKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugd2UgZ2V0IHRoZSByZW5kZXIg
dGhlbWUgdXAgYW5kIHdvcmtpbmcuCisgICAgZGl2U3R5bGUtPnNldE91dGxpbmVXaWR0aCgxKTsK
KyAgICBkaXZTdHlsZS0+c2V0T3V0bGluZVN0eWxlKFNPTElEKTsKKyAgICBkaXZTdHlsZS0+c2V0
UGFkZGluZ1RvcChMZW5ndGgoMiwgRml4ZWQpKTsKKyAgICBkaXZTdHlsZS0+c2V0UGFkZGluZ0Jv
dHRvbShMZW5ndGgoMiwgRml4ZWQpKTsKKyAgICBkaXZTdHlsZS0+c2V0UGFkZGluZ0xlZnQoTGVu
Z3RoKDIsIEZpeGVkKSk7CisgICAgZGl2U3R5bGUtPnNldFBhZGRpbmdSaWdodChMZW5ndGgoMiwg
Rml4ZWQpKTsKKyAgICBkaXZTdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKDE1MCwgRml4ZWQpKTsKKyAg
ICAKKyAgICByZXR1cm4gZGl2U3R5bGU7Cit9CisKK3ZvaWQgUmVuZGVyVGV4dEZpZWxkOjp1cGRh
dGVGcm9tRWxlbWVudCgpCit7CisgICAgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZShpbnB1dFRh
ZykpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudEltcGwqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudEltcGwqPihlbGVtZW50KCkpOworICAgICAgICBET01TdHJpbmcgdmFs
dWUgPSBpbnB1dC0+dmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghbV9kaXYpIHsKKyAg
ICAgICAgICAgIC8vIENyZWF0ZSB0aGUgZGl2IGFuZCBnaXZlIGl0IGEgcGFyZW50LCByZW5kZXJl
ciwgYW5kIHN0eWxlCisgICAgICAgICAgICBtX2RpdiA9IG5ldyBIVE1MRGl2RWxlbWVudEltcGwo
ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBSZW5kZXJCbG9jayogZGl2UmVuZGVyZXIgPSBuZXcg
KHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKG1fZGl2LmdldCgpKTsKKyAgICAgICAgICAgIG1f
ZGl2LT5zZXRSZW5kZXJlcihkaXZSZW5kZXJlcik7CisgICAgICAgICAgICBtX2Rpdi0+c2V0QXR0
YWNoZWQoKTsKKyAgICAgICAgICAgIG1fZGl2LT5zZXRJbkRvY3VtZW50KHRydWUpOworICAgICAg
ICAgICAgLy8gRklYTUU6ICBBZGRyZXNzIGZvY3VzIGFuZCBldmVudCBwcm9ibGVtcyB3aXRoIHRo
aXMgc2hhZG93IERPTS4KKyAgICAgICAgICAgIC8vIEZvciBleGFtcGxlLCBldmVudHMgc2hvdWxk
IGFwcGVhciB0byBvY2N1ciBvbiB0aGUgaW5wdXQgZWxlbWVudCwgYnV0IG11c3QgdGFrZSBhZmZl
Y3Qgb24gdGhpcyBkaXYuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlclN0eWxlKiBk
aXZTdHlsZSA9IGNyZWF0ZURpdlN0eWxlKHN0eWxlKCkpOworICAgICAgICAgICAgZGl2UmVuZGVy
ZXItPnNldFN0eWxlKGRpdlN0eWxlKTsgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEFk
ZCBkaXYgdG8gUmVuZGVyIHRyZWUKKyAgICAgICAgICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChk
aXZSZW5kZXJlcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRleHRJbXBsKiB0ZXh0
ID0gc3RhdGljX2Nhc3Q8VGV4dEltcGwqPihtX2Rpdi0+Zmlyc3RDaGlsZCgpKTsKKyAgICAgICAg
aWYgKCF0ZXh0KSB7CisgICAgICAgICAgICAvLyBBZGQgdGV4dCBub2RlIHRvIERPTSB0cmVlCisg
ICAgICAgICAgICB0ZXh0ID0gbmV3IFRleHRJbXBsKGRvY3VtZW50KCksIHZhbHVlLmltcGwoKSk7
CisgICAgICAgICAgICBpbnQgZXhjZXB0aW9uID0gMDsKKyAgICAgICAgICAgIG1fZGl2LT5hcHBl
bmRDaGlsZCh0ZXh0LCBleGNlcHRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAoIWlucHV0LT52YWx1ZU1hdGNoZXNSZW5kZXJlcigpKSB7CisgICAgICAgICAgICBET01TdHJp
bmcgb2xkVGV4dCA9IHRleHQtPmRhdGEoKTsKKyAgICAgICAgICAgIHZhbHVlLnJlcGxhY2UoUUNo
YXIoJ1xcJyksIGJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSk7CisgICAgICAgICAgICBpZiAo
dmFsdWUgIT0gb2xkVGV4dCkgeworICAgICAgICAgICAgICAgIGludCBleGNlcHRpb24gPSAwOwor
ICAgICAgICAgICAgICAgIHRleHQtPnNldERhdGEodmFsdWUsIGV4Y2VwdGlvbik7CisgICAgICAg
ICAgICAgICAgLy9GSVhNRTogVXBkYXRlIGN1cnNvciBhcyBuZWNlc3NhcnkKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcigpOworICAgICAg
ICB9CisgICAgfQorfQorCisKK2ludCBSZW5kZXJUZXh0RmllbGQ6OnNlbGVjdGlvblN0YXJ0KCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBSZW5kZXJUZXh0RmllbGQ6OnNlbGVjdGlvbkVuZCgpCit7CisgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aGlzLgorICAgIHJldHVybiAwOworfQorCit2b2lkIFJlbmRlclRleHRGaWVsZDo6c2V0
U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cy4KK30KKyAKK3ZvaWQgUmVuZGVyVGV4dEZpZWxkOjpzZXRTZWxlY3Rpb25FbmQoaW50IGVuZCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisgICAgCit2b2lkIFJlbmRlclRl
eHRGaWVsZDo6c2VsZWN0KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisK
K3ZvaWQgUmVuZGVyVGV4dEZpZWxkOjpzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBl
bmQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCit9CkluZGV4OiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMjIzMCkKKysrIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMyOCw2ICsxMzI4LDEwIEBA
CiAJCUE4RkVGQjBCMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjA5MDk3
OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNwcCAqLzsgfTsKIAkJQThGRUZC
MzEwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIyRjA5NzlG
NEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmNwcCAqLzsgfTsKIAkJ
QThGRUZCMzIwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThGRUZCMzAw
OTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5oICovOyB9Owor
CQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMw
MEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuY3BwICovOyB9OworCQlBQjY3RDFBOTA5N0YzQUUz
MDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4
dEZpZWxkLmggKi87IH07CisJCUFCNjdEMUFBMDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0
RmllbGQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5jcHAgKi87IH07CisJ
CUFCNjdEMUFCMDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE3MDk3RjNBRTMwMEY5
MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuaCAqLzsgfTsKIAkJQUVEOTgwMEMwOTc2QjM4RTAwMDYw
OUY2IC8qIFNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRUQ5ODAwQTA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0aW9uLmNwcCAqLzsg
fTsKIAkJQUVEOTgwMEQwOTc2QjM4RTAwMDYwOUY2IC8qIFNlbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUVEOTgwMEIwOTc2QjM4RTAwMDYw
OUY2IC8qIFNlbGVjdGlvbi5oICovOyB9OwogCQlBRUQ5ODAwRTA5NzZCMzhFMDAwNjA5RjYgLyog
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFFRDk4MDBBMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uY3BwICovOyB9OwpAQCAt
MjQxMiw2ICsyNDE2LDggQEAKIAkJQThGRUZCMDkwOTc5RjQ3MjAwNTgzOUZEIC8qIFJlbmRlckZv
cmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlckZvcmVpZ25PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEZF
RkIyRjA5NzlGNEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGb3JlaWduT2JqZWN0RWxl
bWVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEZFRkIzMDA5NzlG
NEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJl
bmRlclRleHRGaWVsZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyVGV4dEZpZWxkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUI2N0Qx
QTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dEZpZWxkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFFRDk4MDBBMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNlbGVjdGlvbi5jcHA7IHBhdGggPSBl
ZGl0aW5nL1NlbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFFRDk4
MDBCMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFNlbGVjdGlvbi5oOyBwYXRoID0gZWRpdGluZy9TZWxlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwNkYyNDkwNkQxOEE3RTAwNEE2RkEzIC8qIHhz
bF9zdHlsZXNoZWV0aW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSB4c2xfc3R5bGVzaGVldGltcGwuY3BwOyBwYXRoID0geHNsL3hz
bF9zdHlsZXNoZWV0aW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtNDEwMiw2ICs0MTA4LDggQEAKIAkJRjUyM0QyRjMwMkRF
NDQzQjAxODYzNUNBIC8qIHJlbmRlcmluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRG
aWVsZC5jcHAgKi8sCisJCQkJQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRG
aWVsZC5oICovLAogCQkJCUJDRUE0ODEzMDk3RDkzMDIwMDk0QzlFNCAvKiBiaWRpLmNwcCAqLywK
IAkJCQlCQ0VBNDgxNDA5N0Q5MzAyMDA5NEM5RTQgLyogYmlkaS5oICovLAogCQkJCUJDRUE0ODE1
MDk3RDkzMDIwMDk0QzlFNCAvKiBicmVha19saW5lcy5jcHAgKi8sCkBAIC00OTczLDYgKzQ5ODEs
NyBAQAogCQkJCUJDRUE0ODkwMDk3RDkzMDIwMDk0QzlFNCAvKiB0YWJsZV9sYXlvdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRUE0OTQ0MDk3RjBGNUMwMDk0QzlFNCAvKiBCcm93c2VyRXh0ZW5z
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDk0NzA5N0YwRjc3MDA5NEM5RTQgLyogQnJv
d3NlckV4dGVuc2lvbk1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUI2N0QxQTkwOTdGM0FFMzAw
RjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01MzE4LDYgKzUz
MjcsNyBAQAogCQkJCUJDRUE0OENCMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0VBNDhDRDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGV4dEZy
YWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDhDRjA5N0Q5MzAyMDA5NEM5RTQgLyog
dGFibGVfbGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQjY3RDFBQjA5N0YzQUUzMDBGOTM5
MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY4ODAsNiArNjg5MCw3
IEBACiAJCQkJQkNFQTQ4OEYwOTdEOTMwMjAwOTRDOUU0IC8qIHRhYmxlX2xheW91dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzdBMzZBNzA5N0UyRTMyMDBFNEVFMkYgLyogVXNlckFnZW50U3R5
bGVTaGVldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ5NDgwOTdGMEY3NzAwOTRDOUU0
IC8qIEJyb3dzZXJFeHRlbnNpb25NYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlBQjY3RDFBODA5
N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NzE3OCw2ICs3MTg5LDcgQEAKIAkJCQlCQ0VBNDhDQzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVy
VGV4dEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0OENFMDk3RDkzMDIwMDk0
QzlFNCAvKiB0YWJsZV9sYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM3QTM2QTgwOTdF
MkUzMjAwRTRFRTJGIC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUFCNjdEMUFBMDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMjIzMCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDA2LTAxLTE4ICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsIGltcGxlbWVu
dGF0aW9uIG9mIG5ldyBhbmQgaW1wcm92ZWQgdGV4dCBmaWVsZHMuICAKKyAgICAgICAgVGhpcyB3
aWxsIG9ubHkgYmUgdHVybmVkIG9uIGlmIGFuIGlucHV0IGVsZW1lbnQgaGFzIGtodG1sLWFwcGVh
cmFuY2U6IHRleHRmaWVsZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogQWRkZWQgUmVuZGVyVGV4dEZpZWxkLmggYW5kIFJlbmRlclRleHRGaWVsZC5jcHAK
KyAgICAgICAgKiBjc3MvY3NzdmFsdWVzLmluOiBGaXhlZCBvbWl0dGVkIGJ1dHRvbi1iZXZlbCB2
YWx1ZS4gIAorICAgICAgICAgIFRoaXMgd2FzIGNhdXNpbmcgYW4gb2ZmLWJ5LW9uZSBlcnJvciB3
aGVuIGdldHRpbmcga2h0bWwtYXBwZWFyYW5jZSB2YWx1ZS4KKyAgICAgICAgKiBraHRtbC9odG1s
L0hUTUxJbnB1dEVsZW1lbnRJbXBsLmNwcDogQWRkZWQgY2hlY2tzIGZvciBraHRtbC1hcHBlYXJh
bmNlIHRvIGRlY2lkZSAKKyAgICAgICAgICB3aGVuIHRvIHVzZSBSZW5kZXJUZXh0RmllbGQgaW5z
dGVhZCBvZiBSZW5kZXJMaW5lRWRpdC4KKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudElt
cGw6OnNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6
OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpzZXRT
ZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpzZXRT
ZWxlY3Rpb25FbmQpOgorICAgICAgICAoRE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2VsZWN0
KToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OnNldFNlbGVjdGlvblJhbmdl
KToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OmNyZWF0ZVJlbmRlcmVyKToK
KyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OmRlZmF1bHRFdmVudEhhbmRsZXIp
OgorICAgICAgICAqIGtodG1sL2h0bWwvSFRNTElucHV0RWxlbWVudEltcGwuaDoKKyAgICAgICAg
KiBraHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwOgorICAgICAgICAoSFRNTEVsZW1lbnRJ
bXBsOjppc0ZvY3VzYWJsZSk6IEFsc28gYWxsb3cgZWRpdGFibGUgZWxlbWVudHMgd2l0aCBubyBw
YXJlbnQgdG8gYmUgZm9jdXNhYmxlLgorICAgICAgICAqIGtodG1sL3htbC9Ob2RlSW1wbC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZUltcGw6OnNldEF0dGFjaGVkKTogQWRkZWQgdG8gc2V0IG1f
YXR0YWNoZWQgd2l0aG91dCBoYXZpbmcgdG8gY2FsbCBhdHRhY2goKS4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNwcDogQWRkZWQuCisgICAgICAgIChraHRtbDo6OlJlbmRl
ckJsb2NrKToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6On5SZW5kZXJUZXh0Rmll
bGQpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6YWRkQ2hpbGQpOgorICAgICAg
ICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoa2h0bWw6
OlJlbmRlclRleHRGaWVsZDo6c2V0U3R5bGUpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRG
aWVsZDo6Z2V0RGl2U3R5bGUpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6c2VsZWN0
aW9uU3RhcnQpOgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6c2VsZWN0aW9uRW5k
KToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnNldFNlbGVjdGlvblN0YXJ0KToK
KyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnNldFNlbGVjdGlvbkVuZCk6CisgICAg
ICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpzZWxlY3QpOgorICAgICAgICAoa2h0bWw6OlJl
bmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0RmllbGQuaDogQWRkZWQuCisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxk
OjpyZW1vdmVMZWZ0b3ZlckFub255bW91c0JveGVzKToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJU
ZXh0RmllbGQ6OnJlbmRlck5hbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9yZW5kZXJfY29udGFp
bmVyLmNwcDoKKyAgICAgICAgKFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJveSk6IHVzZSByZW5hbWVk
IGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuLgorICAgICAgICAoUmVuZGVyQ29udGFpbmVyOjpkZXN0
cm95TGVmdG92ZXJDaGlsZHJlbik6IHJlbmFtZWQgZnJvbSBkZXN0cm95TGVmdG92ZXJBbm9ueW1v
dXNDaGlsZHJlbi4KKyAgICAgICAgKiByZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHA6CisgICAgICAgIChSZW5kZXJGbG93Ojpk
ZXN0cm95KTogdXNlIHJlbmFtZWQgZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4uCisKIDIwMDYtMDEt
MTggIERhdmlkIEh5YXR0IDxoeWF0dEBhcHBsZS5jb20KIAogICAgICAgICBGaXggZm9yIGJ1ZyA2
NjU3LCByZW1vdmUgYWxsIHVzZXMgb2YgTWFjRnJhbWUgZnJvbSBjcm9zcy1wbGF0Zm9ybQpJbmRl
eDogY3NzL2Nzc3ZhbHVlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvY3NzdmFsdWVzLmluCShyZXZp
c2lvbiAxMjIzMCkKKysrIGNzcy9jc3N2YWx1ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTQ0NSw2
ICs0NDUsNyBAQAogcHVzaC1idXR0b24KIHNxdWFyZS1idXR0b24KIGJ1dHRvbgorYnV0dG9uLWJl
dmVsCiBsaXN0Ym94CiBsaXN0aXRlbQogbWVudWxpc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5779</attachid>
            <date>2006-01-19 00:35:00 -0800</date>
            <delta_ts>2006-01-19 01:17:23 -0800</delta_ts>
            <desc>a few minor tweaks</desc>
            <filename>patch4.txt</filename>
            <type>text/plain</type>
            <size>22945</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Ob2RlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9Ob2Rl
SW1wbC5oCShyZXZpc2lvbiAxMjIzMCkKKysrIGtodG1sL3htbC9Ob2RlSW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKICAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJl
dHVybiBtX2hvdmVyZWQ7IH0KICAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWQ7IH0KICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgICB7IHJldHVybiBtX2F0dGFjaGVk
OyB9CisgICAgdm9pZCBzZXRBdHRhY2hlZChib29sIGI9dHJ1ZSkgeyBtX2F0dGFjaGVkID0gYjsg
fQogICAgIGJvb2wgY2hhbmdlZCgpIGNvbnN0ICAgIHsgcmV0dXJuIG1fY2hhbmdlZDsgfQogICAg
IGJvb2wgaGFzQ2hhbmdlZENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDaGFuZ2VkQ2hpbGQ7
IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IHsgcmV0dXJuIG1faXNMaW5rOyB9CkluZGV4OiBr
aHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwv
aHRtbF9lbGVtZW50aW1wbC5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9odG1s
X2VsZW1lbnRpbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYxLDcgKzQ2MSw5IEBACiAKIGJv
b2wgSFRNTEVsZW1lbnRJbXBsOjppc0ZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlz
Q29udGVudEVkaXRhYmxlKCkgJiYgcGFyZW50KCkgJiYgIXBhcmVudCgpLT5pc0NvbnRlbnRFZGl0
YWJsZSgpOworICAgIC8vIEFkZGVkIHRoZSBjaGVjayBmb3IgIXBhcmVudCgpIHNvIHNoYWRvdyBl
bGVtZW50cywgbGlrZSB0aG9zZSBpbiBlbmdpbmUtYmFzZWQgdGV4dGZpZWxkcywgY2FuIGdldCBm
b2N1cy4KKyAgICAvLyBXZSBtYXkgcmVldmFsdWF0ZSB0aGlzIHdoZW4gd2UgcmVzb2x2ZSBvdXRz
dGFuZGluZyBmb2N1cyBpc3N1ZXMgd2l0aCB0aGVzZSBzaGFkb3cgZWxlbWVudHMuCisgICAgcmV0
dXJuIGlzQ29udGVudEVkaXRhYmxlKCkgJiYgKChwYXJlbnQoKSAmJiAhcGFyZW50KCktPmlzQ29u
dGVudEVkaXRhYmxlKCkpIHx8ICFwYXJlbnQoKSk7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnRJbXBs
Ojppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0IApJbmRleDoga2h0bWwvaHRtbC9IVE1MSW5wdXRF
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50
SW1wbC5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9IVE1MSW5wdXRFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDkgQEAKICNpbmNsdWRlICJGb3Jt
RGF0YUxpc3QuaCIKIAogI2luY2x1ZGUgImNzc3Byb3BlcnRpZXMuaCIKLSNpbmNsdWRlICJyZW5k
ZXJpbmcvcmVuZGVyX2Zvcm0uaCIKLSNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2J1dHRvbi5o
IgorI2luY2x1ZGUgInJlbmRlcl9mb3JtLmgiCisjaW5jbHVkZSAicmVuZGVyX2J1dHRvbi5oIgor
I2luY2x1ZGUgIlJlbmRlclRleHRGaWVsZC5oIgogI2luY2x1ZGUgInJlbmRlcl90aGVtZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogCkBAIC0yODIsOCArMjgzLDExIEBACiAgICAgCiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2Fz
ZSBURVhUOgorICAgICAgICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3JlbmRlciktPnNlbGVjdGlvblN0YXJ0KCk7CisgICAg
ICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIHRleHQgZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lm
eSBhcHBlYXJhbmNlCiAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6CiAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9yZW5kZXIp
LT5zZWxlY3Rpb25TdGFydCgpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7
CkBAIC0yOTcsOCArMzAxLDExIEBACiAgICAgCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAg
ICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgaWYgKG1f
cmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBwZWFyYW5jZSkKKyAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPihtX3Jl
bmRlciktPnNlbGVjdGlvbkVuZCgpOworICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIHRleHQg
ZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhcHBlYXJhbmNlCiAgICAgICAgIGNhc2UgU0VBUkNI
OgotICAgICAgICBjYXNlIFRFWFQ6CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyTGluZUVkaXQgKj4obV9yZW5kZXIpLT5zZWxlY3Rpb25FbmQoKTsKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzEyLDggKzMxOSwxMSBAQAogICAgIAogICAgIHN3
aXRjaCAobV90eXBlKSB7CiAgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIGNhc2UgVEVY
VDoKKyAgICAgICAgICAgIGlmIChtX3JlbmRlci0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFRl
eHRGaWVsZEFwcGVhcmFuY2UpCisgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRl
eHRGaWVsZCAqPihtX3JlbmRlciktPnNldFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICAgICAg
Ly8gRmFsbCB0aHJvdWdoIGZvciB0ZXh0IGZpZWxkcyB0aGF0IGRvbid0IHNwZWNpZnkgYXBwZWFy
YW5jZQogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURVhUOgogICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4obV9yZW5kZXIpLT5zZXRTZWxlY3Rpb25T
dGFydChzdGFydCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAgLTMy
Nyw4ICszMzcsMTEgQEAKICAgICAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNl
IFBBU1NXT1JEOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAgICAgICBpZiAobV9yZW5kZXIt
PnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBUZXh0RmllbGRBcHBlYXJhbmNlKQorICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0RmllbGQgKj4obV9yZW5kZXIpLT5zZXRTZWxl
Y3Rpb25FbmQoZW5kKTsKKyAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGZvciB0ZXh0IGZpZWxkcyB0
aGF0IGRvbid0IHNwZWNpZnkgYXBwZWFyYW5jZQogICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAg
ICAgY2FzZSBURVhUOgogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyTGluZUVkaXQgKj4o
bV9yZW5kZXIpLT5zZXRTZWxlY3Rpb25FbmQoZW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBkZWZhdWx0OgpAQCAtMzQ1LDggKzM1OCwxMSBAQAogICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8UmVuZGVyRmlsZUJ1dHRvbio+KG1fcmVuZGVyKS0+c2VsZWN0KCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAg
ICAgICAgaWYgKG1fcmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkQXBw
ZWFyYW5jZSkKKyAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dEZpZWxkICo+
KG1fcmVuZGVyKS0+c2VsZWN0KCk7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBmb3IgdGV4dCBm
aWVsZHMgdGhhdCBkb24ndCBzcGVjaWZ5IGFwcGVhcmFuY2UKICAgICAgICAgY2FzZSBTRUFSQ0g6
Ci0gICAgICAgIGNhc2UgVEVYVDoKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlckxpbmVF
ZGl0Kj4obV9yZW5kZXIpLT5zZWxlY3QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEJVVFRPTjoKQEAgLTM2OCw4ICszODQsMTEgQEAKICAgICAKICAgICBzd2l0Y2ggKG1fdHlw
ZSkgewogICAgICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAg
ICAgICBpZiAobV9yZW5kZXItPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBUZXh0RmllbGRBcHBl
YXJhbmNlKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRleHRGaWVsZCAqPiht
X3JlbmRlciktPnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGYWxs
IHRocm91Z2ggZm9yIHRleHQgZmllbGRzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhcHBlYXJhbmNlCiAg
ICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFWFQ6CiAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxSZW5kZXJMaW5lRWRpdCAqPihtX3JlbmRlciktPnNldFNlbGVjdGlvblJhbmdlKHN0
YXJ0LCBlbmQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC01NzIs
NiArNTkxLDkgQEAKICAgICB7CiAgICAgY2FzZSBURVhUOgogICAgIGNhc2UgUEFTU1dPUkQ6Cisg
ICAgICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IFRleHRGaWVsZEFwcGVhcmFuY2UpCisg
ICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dEZpZWxkKHRoaXMpOworICAg
IC8vIEZhbGwgdGhyb3VnaCBmb3IgdGV4dCBmaWVsZHMgdGhhdCBkb24ndCBzcGVjaWZ5IGFwcGVh
cmFuY2UKICAgICBjYXNlIFNFQVJDSDoKICAgICBjYXNlIElTSU5ERVg6ICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVyTGluZUVkaXQodGhpcyk7CiAgICAgY2FzZSBDSEVDS0JPWDoKSW5kZXg6IGto
dG1sL2h0bWwvSFRNTElucHV0RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1s
L0hUTUxJbnB1dEVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyMjMwKQorKysga2h0bWwvaHRtbC9I
VE1MSW5wdXRFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAg
ICAgY2xhc3MgUmVuZGVyTGluZUVkaXQ7CiAgICAgY2xhc3MgUmVuZGVyRmlsZUJ1dHRvbjsKICAg
ICBjbGFzcyBSZW5kZXJTbGlkZXI7CisgICAgY2xhc3MgUmVuZGVyVGV4dEZpZWxkOwogfQogCiBu
YW1lc3BhY2UgRE9NIHsKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaAkocmV2aXNpb24gMTIyMzApCisr
KyByZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0
OSw3IEBACiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCAqb2xkQ2hp
bGQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKLSAgICB2b2lkIGRlc3Ryb3lMZWZ0
b3ZlckFub255bW91c0NoaWxkcmVuKCk7CisgICAgdm9pZCBkZXN0cm95TGVmdG92ZXJDaGlsZHJl
bigpOwogICAgIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiByZW1vdmVDaGlsZE5vZGUoUmVu
ZGVyT2JqZWN0KiBjaGlsZCk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZENoaWxkTm9kZShSZW5k
ZXJPYmplY3QqIGNoaWxkKTsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUZXh0RmllbGQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmgJKHJldmlzaW9uIDApCisrKyBy
ZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisg
KiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKyNpZm5kZWYgS0hUTUxfUmVu
ZGVyVGV4dEZpZWxkX0gKKyNkZWZpbmUgS0hUTUxfUmVuZGVyVGV4dEZpZWxkX0gKKworI2luY2x1
ZGUgInJlbmRlcl9mbGV4Ym94LmgiCisjaW5jbHVkZSAiaHRtbF9ibG9ja2ltcGwuaCIKKworbmFt
ZXNwYWNlIGtodG1sCit7CisKK2NsYXNzIFJlbmRlclRleHRGaWVsZCA6IHB1YmxpYyBSZW5kZXJC
bG9jaworeworcHVibGljOgorICAgIFJlbmRlclRleHRGaWVsZChET006Ok5vZGVJbXBsKiBub2Rl
KTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0RmllbGQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVMZWZ0b3ZlckFub255bW91c0JveGVzKCkge307CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlKTsKKyAgICBSZW5kZXJTdHlsZSogY3JlYXRlRGl2U3R5
bGUoUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpOworCisgICAgdmlydHVhbCBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3Qg
eyByZXR1cm4gIlJlbmRlclRleHRGaWVsZCI7IH0KKyAgICAKKyAgICBpbnQgc2VsZWN0aW9uU3Rh
cnQoKTsKKyAgICBpbnQgc2VsZWN0aW9uRW5kKCk7CisgICAgdm9pZCBzZXRTZWxlY3Rpb25TdGFy
dChpbnQpOworICAgIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCk7CisgICAgCisgICAgdm9pZCBz
ZWxlY3QoKTsKKyAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCwgaW50KTsKKworcHJvdGVj
dGVkOgorICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudEltcGw+IG1fZGl2OworfTsKKworfTsKKyNl
bmRpZgpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHJlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmNwcAkocmV2aXNpb24gMTIyMzApCisrKyByZW5k
ZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE3ICs1Niwy
MSBAQAogCiB2b2lkIFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJveSgpCiB7Ci0gICAgZGVzdHJveUxl
ZnRvdmVyQW5vbnltb3VzQ2hpbGRyZW4oKTsKKyAgICBkZXN0cm95TGVmdG92ZXJDaGlsZHJlbigp
OwogICAgIFJlbmRlckJveDo6ZGVzdHJveSgpOwogfQogCi12b2lkIFJlbmRlckNvbnRhaW5lcjo6
ZGVzdHJveUxlZnRvdmVyQW5vbnltb3VzQ2hpbGRyZW4oKQordm9pZCBSZW5kZXJDb250YWluZXI6
OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAobV9maXJzdCkgewogICAg
ICAgICBpZiAobV9maXJzdC0+aXNMaXN0TWFya2VyKCkpCiAgICAgICAgICAgICBtX2ZpcnN0LT5y
ZW1vdmUoKTsgIC8vIExpc3QgbWFya2VycyBhcmUgb3duZWQgYnkgdGhlaXIgZW5jbG9zaW5nIGxp
c3QgYW5kIHNvIGRvbid0IGdldCBkZXN0cm95ZWQgYnkgdGhpcyBjb250YWluZXIuCi0gICAgICAg
IGVsc2UKKyAgICAgICAgZWxzZSB7CisgICAgICAgIC8vIERlc3Ryb3kgYW55IGFub255bW91cyBj
aGlsZHJlbiByZW1haW5pbmcgaW4gdGhlIHJlbmRlciB0cmVlLCBhcyB3ZWxsIGFzIGltcGxpY2l0
IChzaGFkb3cpIERPTSBlbGVtZW50cyBsaWtlIHRob3NlIHVzZWQgaW4gdGhlIGVuZ2luZS1iYXNl
ZCB0ZXh0ZmllbGRzLgorICAgICAgICAgICAgaWYgKG1fZmlyc3QtPmVsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICBtX2ZpcnN0LT5lbGVtZW50KCktPnNldFJlbmRlcmVyKDApOwogICAgICAgICAg
ICAgbV9maXJzdC0+ZGVzdHJveSgpOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4OiByZW5k
ZXJpbmcvcmVuZGVyX2Zsb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfZmxv
dy5jcHAJKHJldmlzaW9uIDEyMjMwKQorKysgcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBACiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRv
IGRlc3Ryb3kgYW5vbnltb3VzIGNoaWxkcmVuIGZpcnN0IHdoaWxlIHRoZXkgYXJlIHN0aWxsIGNv
bm5lY3RlZCB0byB0aGUgcmVzdCBvZiB0aGUgdHJlZSwgc28gdGhhdCB0aGV5IHdpbGwKICAgICAv
LyBwcm9wZXJseSBkaXJ0eSBsaW5lIGJveGVzIHRoYXQgdGhleSBhcmUgcmVtb3ZlZCBmcm9tLiAg
RWZmZWN0cyB0aGF0IGRvIDpiZWZvcmUvOmFmdGVyIG9ubHkgb24gaG92ZXIgY291bGQgY3Jhc2gg
b3RoZXJ3aXNlLgotICAgIFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJveUxlZnRvdmVyQW5vbnltb3Vz
Q2hpbGRyZW4oKTsKKyAgICBSZW5kZXJDb250YWluZXI6OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVu
KCk7CiAgICAgCiAgICAgaWYgKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAg
aWYgKG1fZmlyc3RMaW5lQm94KSB7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGV4dEZpZWxkLmNwcAkocmV2aXNpb24g
MCkKKysrIHJlbmRlcmluZy9SZW5kZXJUZXh0RmllbGQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1NiBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1
ZGUgIlJlbmRlclRleHRGaWVsZC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRl
ICJodG1sbmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50SW1wbC5oIgorCit1c2lu
ZyBuYW1lc3BhY2UgRE9NOwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitSZW5kZXJUZXh0RmllbGQ6OlJlbmRlclRleHRGaWVsZChOb2RlSW1wbCog
bm9kZSkKKzpSZW5kZXJCbG9jayhub2RlKQoreworfQorCitSZW5kZXJUZXh0RmllbGQ6On5SZW5k
ZXJUZXh0RmllbGQoKQoreworICAgIC8vIFRoZSByZW5kZXJlciBmb3IgdGhlIGRpdiBoYXMgYWxy
ZWFkeSBiZWVuIGRlc3Ryb3llZCBieSBkZXN0cm95TGVmdG92ZXJDaGlsZHJlbgorICAgIGlmICht
X2RpdikKKyAgICAgICAgbV9kaXYtPmRldGFjaCgpOworfQorCit2b2lkIFJlbmRlclRleHRGaWVs
ZDo6c2V0U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIFJlbmRlckJsb2NrOjpzZXRT
dHlsZShzdHlsZSk7CisgICAgaWYgKG1fZGl2KSB7CisgICAgICAgIFJlbmRlckJsb2NrKiBkaXZS
ZW5kZXJlciA9IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4obV9kaXYtPnJlbmRlcmVyKCkpOwor
ICAgICAgICBSZW5kZXJTdHlsZSogZGl2U3R5bGUgPSBjcmVhdGVEaXZTdHlsZShzdHlsZSk7Cisg
ICAgICAgIGlmIChkaXZSZW5kZXJlci0+Zmlyc3RDaGlsZCgpKQorICAgICAgICAgICAgZGl2UmVu
ZGVyZXItPmZpcnN0Q2hpbGQoKS0+c2V0U3R5bGUoZGl2U3R5bGUpOworICAgICAgICBkaXZSZW5k
ZXJlci0+c2V0U3R5bGUoZGl2U3R5bGUpOworICAgIH0KKyAgICBzZXRSZXBsYWNlZChpc0lubGlu
ZSgpKTsKK30KKworUmVuZGVyU3R5bGUqIFJlbmRlclRleHRGaWVsZDo6Y3JlYXRlRGl2U3R5bGUo
UmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpCit7CisgICAgUmVuZGVyU3R5bGUqIGRpdlN0eWxlID0g
bmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJTdHlsZSgpOworICAgIGRpdlN0eWxlLT5pbmhlcml0
RnJvbShzdGFydFN0eWxlKTsKKyAgICBkaXZTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CisgICAg
ZGl2U3R5bGUtPnNldE92ZXJmbG93KE9ISURERU4pOworICAgIGRpdlN0eWxlLT5zZXRXaGl0ZVNw
YWNlKE5PV1JBUCk7CisgICAgZGl2U3R5bGUtPnNldFVzZXJNb2RpZnkoUkVBRF9XUklURSk7Cisg
ICAgCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIHdlIGdldCB0aGUgcmVuZGVyIHRo
ZW1lIHVwIGFuZCB3b3JraW5nLgorICAgIGRpdlN0eWxlLT5zZXRPdXRsaW5lV2lkdGgoMSk7Cisg
ICAgZGl2U3R5bGUtPnNldE91dGxpbmVTdHlsZShTT0xJRCk7CisgICAgZGl2U3R5bGUtPnNldFBh
ZGRpbmdUb3AoTGVuZ3RoKDIsIEZpeGVkKSk7CisgICAgZGl2U3R5bGUtPnNldFBhZGRpbmdCb3R0
b20oTGVuZ3RoKDIsIEZpeGVkKSk7CisgICAgZGl2U3R5bGUtPnNldFBhZGRpbmdMZWZ0KExlbmd0
aCgyLCBGaXhlZCkpOworICAgIGRpdlN0eWxlLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKDIsIEZp
eGVkKSk7CisgICAgZGl2U3R5bGUtPnNldFdpZHRoKExlbmd0aCgxNTAsIEZpeGVkKSk7CisgICAg
CisgICAgcmV0dXJuIGRpdlN0eWxlOworfQorCit2b2lkIFJlbmRlclRleHRGaWVsZDo6dXBkYXRl
RnJvbUVsZW1lbnQoKQoreworICAgIGlmIChlbGVtZW50KCktPmhhc1RhZ05hbWUoaW5wdXRUYWcp
KSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnRJbXBsKiBpbnB1dCA9IHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnRJbXBsKj4oZWxlbWVudCgpKTsKKyAgICAgICAgRE9NU3RyaW5nIHZhbHVl
ID0gaW5wdXQtPnZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBpZiAoIW1fZGl2KSB7CisgICAg
ICAgICAgICAvLyBDcmVhdGUgdGhlIGRpdiBhbmQgZ2l2ZSBpdCBhIHBhcmVudCwgcmVuZGVyZXIs
IGFuZCBzdHlsZQorICAgICAgICAgICAgbV9kaXYgPSBuZXcgSFRNTERpdkVsZW1lbnRJbXBsKGRv
Y3VtZW50KCkpOworICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGRpdlJlbmRlcmVyID0gbmV3IChy
ZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhtX2Rpdi5nZXQoKSk7CisgICAgICAgICAgICBtX2Rp
di0+c2V0UmVuZGVyZXIoZGl2UmVuZGVyZXIpOworICAgICAgICAgICAgbV9kaXYtPnNldEF0dGFj
aGVkKCk7CisgICAgICAgICAgICBtX2Rpdi0+c2V0SW5Eb2N1bWVudCh0cnVlKTsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiAgQWRkcmVzcyBmb2N1cyBhbmQgZXZlbnQgcHJvYmxlbXMgd2l0aCB0aGlz
IHNoYWRvdyBET00uCisgICAgICAgICAgICAvLyBGb3IgZXhhbXBsZSwgZXZlbnRzIHNob3VsZCBh
cHBlYXIgdG8gb2NjdXIgb24gdGhlIGlucHV0IGVsZW1lbnQsIGJ1dCBtdXN0IHRha2UgYWZmZWN0
IG9uIHRoaXMgZGl2LgorICAgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXJTdHlsZSogZGl2
U3R5bGUgPSBjcmVhdGVEaXZTdHlsZShzdHlsZSgpKTsKKyAgICAgICAgICAgIGRpdlJlbmRlcmVy
LT5zZXRTdHlsZShkaXZTdHlsZSk7IAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBBZGQg
ZGl2IHRvIFJlbmRlciB0cmVlCisgICAgICAgICAgICBSZW5kZXJCbG9jazo6YWRkQ2hpbGQoZGl2
UmVuZGVyZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXh0SW1wbCogdGV4dCA9
IHN0YXRpY19jYXN0PFRleHRJbXBsKj4obV9kaXYtPmZpcnN0Q2hpbGQoKSk7CisgICAgICAgIGlm
ICghdGV4dCkgeworICAgICAgICAgICAgLy8gQWRkIHRleHQgbm9kZSB0byBET00gdHJlZQorICAg
ICAgICAgICAgdGV4dCA9IG5ldyBUZXh0SW1wbChkb2N1bWVudCgpLCB2YWx1ZS5pbXBsKCkpOwor
ICAgICAgICAgICAgaW50IGV4Y2VwdGlvbiA9IDA7CisgICAgICAgICAgICBtX2Rpdi0+YXBwZW5k
Q2hpbGQodGV4dCwgZXhjZXB0aW9uKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYg
KCFpbnB1dC0+dmFsdWVNYXRjaGVzUmVuZGVyZXIoKSkgeworICAgICAgICAgICAgRE9NU3RyaW5n
IG9sZFRleHQgPSB0ZXh0LT5kYXRhKCk7CisgICAgICAgICAgICB2YWx1ZS5yZXBsYWNlKFFDaGFy
KCdcXCcpLCBiYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKCkpOworICAgICAgICAgICAgaWYgKHZh
bHVlICE9IG9sZFRleHQpIHsKKyAgICAgICAgICAgICAgICBpbnQgZXhjZXB0aW9uID0gMDsKKyAg
ICAgICAgICAgICAgICB0ZXh0LT5zZXREYXRhKHZhbHVlLCBleGNlcHRpb24pOworICAgICAgICAg
ICAgICAgIC8vRklYTUU6IFVwZGF0ZSBjdXJzb3IgYXMgbmVjZXNzYXJ5CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBpbnB1dC0+c2V0VmFsdWVNYXRjaGVzUmVuZGVyZXIoKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworCitpbnQgUmVuZGVyVGV4dEZpZWxkOjpzZWxlY3Rpb25TdGFydCgpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJldHVybiAwOworfQorCitpbnQg
UmVuZGVyVGV4dEZpZWxkOjpzZWxlY3Rpb25FbmQoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhpcy4KKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW5kZXJUZXh0RmllbGQ6OnNldFNl
bGVjdGlvblN0YXJ0KGludCBzdGFydCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
Cit9CisgCit2b2lkIFJlbmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorICAgIAordm9pZCBSZW5kZXJUZXh0
RmllbGQ6OnNlbGVjdCgpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCit2
b2lkIFJlbmRlclRleHRGaWVsZDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5k
KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKworfQpJbmRleDogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIyMzApCisrKyBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMjgsNiArMTMyOCwxMCBAQAog
CQlBOEZFRkIwQjA5NzlGNDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIwOTA5NzlG
NDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAgKi87IH07CiAJCUE4RkVGQjMx
MDk3OUY0RjYwMDU4MzlGRCAvKiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThGRUZCMkYwOTc5RjRG
NjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgKi87IH07CiAJCUE4
RkVGQjMyMDk3OUY0RjYwMDU4MzlGRCAvKiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjMwMDk3
OUY0RjYwMDU4MzlGRCAvKiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuaCAqLzsgfTsKKwkJ
QUI2N0QxQTgwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0YzQUUzMDBG
OTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCAqLzsgfTsKKwkJQUI2N0QxQTkwOTdGM0FFMzAw
RjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRG
aWVsZC5oICovOyB9OworCQlBQjY3RDFBQTA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZp
ZWxkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFC
NjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuY3BwICovOyB9OworCQlB
QjY3RDFBQjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNzA5N0YzQUUzMDBGOTM5
MkUgLyogUmVuZGVyVGV4dEZpZWxkLmggKi87IH07CiAJCUFFRDk4MDBDMDk3NkIzOEUwMDA2MDlG
NiAvKiBTZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUVEOTgwMEEwOTc2QjM4RTAwMDYwOUY2IC8qIFNlbGVjdGlvbi5jcHAgKi87IH07
CiAJCUFFRDk4MDBEMDk3NkIzOEUwMDA2MDlGNiAvKiBTZWxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFFRDk4MDBCMDk3NkIzOEUwMDA2MDlG
NiAvKiBTZWxlY3Rpb24uaCAqLzsgfTsKIAkJQUVEOTgwMEUwOTc2QjM4RTAwMDYwOUY2IC8qIFNl
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRUQ5ODAwQTA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0aW9uLmNwcCAqLzsgfTsKQEAgLTI0
MTIsNiArMjQxNiw4IEBACiAJCUE4RkVGQjA5MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3Jl
aWduT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGb3JlaWduT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThGRUZC
MkYwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThGRUZCMzAwOTc5RjRG
NjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5k
ZXJUZXh0RmllbGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlclRleHRGaWVsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFCNjdEMUE3
MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRGaWVsZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBRUQ5ODAwQTA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTZWxlY3Rpb24uY3BwOyBwYXRoID0gZWRp
dGluZy9TZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRUQ5ODAw
QjA5NzZCMzhFMDAwNjA5RjYgLyogU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTZWxlY3Rpb24uaDsgcGF0aCA9IGVkaXRpbmcvU2VsZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDZGMjQ5MDZEMThBN0UwMDRBNkZBMyAvKiB4c2xf
c3R5bGVzaGVldGltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0geHNsX3N0eWxlc2hlZXRpbXBsLmNwcDsgcGF0aCA9IHhzbC94c2xf
c3R5bGVzaGVldGltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKQEAgLTQxMDIsNiArNDEwOCw4IEBACiAJCUY1MjNEMkYzMDJERTQ0
M0IwMTg2MzVDQSAvKiByZW5kZXJpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCUFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Rmll
bGQuY3BwICovLAorCQkJCUFCNjdEMUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Rmll
bGQuaCAqLywKIAkJCQlCQ0VBNDgxMzA5N0Q5MzAyMDA5NEM5RTQgLyogYmlkaS5jcHAgKi8sCiAJ
CQkJQkNFQTQ4MTQwOTdEOTMwMjAwOTRDOUU0IC8qIGJpZGkuaCAqLywKIAkJCQlCQ0VBNDgxNTA5
N0Q5MzAyMDA5NEM5RTQgLyogYnJlYWtfbGluZXMuY3BwICovLApAQCAtNDk3Myw2ICs0OTgxLDcg
QEAKIAkJCQlCQ0VBNDg5MDA5N0Q5MzAyMDA5NEM5RTQgLyogdGFibGVfbGF5b3V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0VBNDk0NDA5N0YwRjVDMDA5NEM5RTQgLyogQnJvd3NlckV4dGVuc2lv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ5NDcwOTdGMEY3NzAwOTRDOUU0IC8qIEJyb3dz
ZXJFeHRlbnNpb25NYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFCNjdEMUE5MDk3RjNBRTMwMEY5
MzkyRSAvKiBSZW5kZXJUZXh0RmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTMxOCw2ICs1MzI3
LDcgQEAKIAkJCQlCQ0VBNDhDQjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQTQ4Q0QwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRleHRGcmFn
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4Q0YwOTdEOTMwMjAwOTRDOUU0IC8qIHRh
YmxlX2xheW91dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUI2N0QxQUIwOTdGM0FFMzAwRjkzOTJF
IC8qIFJlbmRlclRleHRGaWVsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02ODgwLDYgKzY4OTAsNyBA
QAogCQkJCUJDRUE0ODhGMDk3RDkzMDIwMDk0QzlFNCAvKiB0YWJsZV9sYXlvdXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM3QTM2QTcwOTdFMkUzMjAwRTRFRTJGIC8qIFVzZXJBZ2VudFN0eWxl
U2hlZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0OTQ4MDk3RjBGNzcwMDk0QzlFNCAv
KiBCcm93c2VyRXh0ZW5zaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQUI2N0QxQTgwOTdG
M0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRGaWVsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTcx
NzgsNiArNzE4OSw3IEBACiAJCQkJQkNFQTQ4Q0MwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRl
eHRGcmFnbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDhDRTA5N0Q5MzAyMDA5NEM5
RTQgLyogdGFibGVfbGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzN0EzNkE4MDk3RTJF
MzIwMEU0RUUyRiAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBQjY3RDFBQTA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dEZpZWxkLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNp
b24gMTIyMzApCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAor
MjAwNi0wMS0xOCAgQWRlbGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRh
dGlvbiBvZiBuZXcgYW5kIGltcHJvdmVkIHRleHQgZmllbGRzLiAgCisgICAgICAgIFRoaXMgd2ls
bCBvbmx5IGJlIHR1cm5lZCBvbiBpZiBhbiBpbnB1dCBlbGVtZW50IGhhcyBraHRtbC1hcHBlYXJh
bmNlOiB0ZXh0ZmllbGQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IEFkZGVkIFJlbmRlclRleHRGaWVsZC5oIGFuZCBSZW5kZXJUZXh0RmllbGQuY3BwCisg
ICAgICAgICogY3NzL2Nzc3ZhbHVlcy5pbjogRml4ZWQgb21pdHRlZCBidXR0b24tYmV2ZWwgdmFs
dWUuICAKKyAgICAgICAgICBUaGlzIHdhcyBjYXVzaW5nIGFuIG9mZi1ieS1vbmUgZXJyb3Igd2hl
biBnZXR0aW5nIGtodG1sLWFwcGVhcmFuY2UgdmFsdWUuCisgICAgICAgICoga2h0bWwvaHRtbC9I
VE1MSW5wdXRFbGVtZW50SW1wbC5jcHA6IEFkZGVkIGNoZWNrcyBmb3Iga2h0bWwtYXBwZWFyYW5j
ZSB0byBkZWNpZGUgCisgICAgICAgICAgd2hlbiB0byB1c2UgUmVuZGVyVGV4dEZpZWxkIGluc3Rl
YWQgb2YgUmVuZGVyTGluZUVkaXQuCisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBs
OjpzZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpz
ZWxlY3Rpb25FbmQpOgorICAgICAgICAoRE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2V0U2Vs
ZWN0aW9uU3RhcnQpOgorICAgICAgICAoRE9NOjpIVE1MSW5wdXRFbGVtZW50SW1wbDo6c2V0U2Vs
ZWN0aW9uRW5kKToKKyAgICAgICAgKERPTTo6SFRNTElucHV0RWxlbWVudEltcGw6OnNlbGVjdCk6
CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpzZXRTZWxlY3Rpb25SYW5nZSk6
CisgICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpjcmVhdGVSZW5kZXJlcik6Cisg
ICAgICAgIChET006OkhUTUxJbnB1dEVsZW1lbnRJbXBsOjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBraHRtbC9odG1sL0hUTUxJbnB1dEVsZW1lbnRJbXBsLmg6CisgICAgICAgICog
a2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcDoKKyAgICAgICAgKEhUTUxFbGVtZW50SW1w
bDo6aXNGb2N1c2FibGUpOiBBbHNvIGFsbG93IGVkaXRhYmxlIGVsZW1lbnRzIHdpdGggbm8gcGFy
ZW50IHRvIGJlIGZvY3VzYWJsZS4KKyAgICAgICAgKiBraHRtbC94bWwvTm9kZUltcGwuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVJbXBsOjpzZXRBdHRhY2hlZCk6IEFkZGVkIHRvIHNldCBtX2F0
dGFjaGVkIHdpdGhvdXQgaGF2aW5nIHRvIGNhbGwgYXR0YWNoKCkuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRleHRGaWVsZC5jcHA6IEFkZGVkLgorICAgICAgICAoa2h0bWw6OjpSZW5kZXJC
bG9jayk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjp+UmVuZGVyVGV4dEZpZWxk
KToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OmFkZENoaWxkKToKKyAgICAgICAg
KGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKGtodG1sOjpS
ZW5kZXJUZXh0RmllbGQ6OnNldFN0eWxlKToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0Rmll
bGQ6OmdldERpdlN0eWxlKToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnNlbGVjdGlv
blN0YXJ0KToKKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RmllbGQ6OnNlbGVjdGlvbkVuZCk6
CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpzZXRTZWxlY3Rpb25TdGFydCk6Cisg
ICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZpZWxkOjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAg
ICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6c2VsZWN0KToKKyAgICAgICAgKGtodG1sOjpSZW5k
ZXJUZXh0RmllbGQ6OnNldFNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dEZpZWxkLmg6IEFkZGVkLgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHRGaWVsZDo6
cmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNCb3hlcyk6CisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4
dEZpZWxkOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKiByZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5l
ci5jcHA6CisgICAgICAgIChSZW5kZXJDb250YWluZXI6OmRlc3Ryb3kpOiB1c2UgcmVuYW1lZCBk
ZXN0cm95TGVmdG92ZXJDaGlsZHJlbi4KKyAgICAgICAgKFJlbmRlckNvbnRhaW5lcjo6ZGVzdHJv
eUxlZnRvdmVyQ2hpbGRyZW4pOiByZW5hbWVkIGZyb20gZGVzdHJveUxlZnRvdmVyQW5vbnltb3Vz
Q2hpbGRyZW4uCisgICAgICAgICogcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3BwOgorICAgICAgICAoUmVuZGVyRmxvdzo6ZGVz
dHJveSk6IHVzZSByZW5hbWVkIGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuLgorCiAyMDA2LTAxLTE4
ICBEYXZpZCBIeWF0dCA8aHlhdHRAYXBwbGUuY29tCiAKICAgICAgICAgRml4IGZvciBidWcgNjY1
NywgcmVtb3ZlIGFsbCB1c2VzIG9mIE1hY0ZyYW1lIGZyb20gY3Jvc3MtcGxhdGZvcm0KSW5kZXg6
IGNzcy9jc3N2YWx1ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL2Nzc3ZhbHVlcy5pbgkocmV2aXNp
b24gMTIyMzApCisrKyBjc3MvY3NzdmFsdWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00NDUsNiAr
NDQ1LDcgQEAKIHB1c2gtYnV0dG9uCiBzcXVhcmUtYnV0dG9uCiBidXR0b24KK2J1dHRvbi1iZXZl
bAogbGlzdGJveAogbGlzdGl0ZW0KIG1lbnVsaXN0Cg==
</data>
<flag name="review"
          id="1322"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>