<?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>66169</bug_id>
          
          <creation_ts>2011-08-12 14:37:41 -0700</creation_ts>
          <short_desc>Switch remaining SVG Rendering methods to LayoutUnits</short_desc>
          <delta_ts>2011-08-15 12:08:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>450678</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-08-12 14:37:41 -0700</bug_when>
    <thetext>More mechanical replacement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450770</commentid>
    <comment_count>1</comment_count>
      <attachid>103847</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-08-12 17:36:10 -0700</bug_when>
    <thetext>Created attachment 103847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451108</commentid>
    <comment_count>2</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-08-15 10:20:36 -0700</bug_when>
    <thetext>Thanks Eric</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451196</commentid>
    <comment_count>3</comment_count>
      <attachid>103847</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 12:08:15 -0700</bug_when>
    <thetext>Comment on attachment 103847
Patch

Clearing flags on attachment: 103847

Committed r93050: &lt;http://trac.webkit.org/changeset/93050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451197</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 12:08:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103847</attachid>
            <date>2011-08-12 17:36:10 -0700</date>
            <delta_ts>2011-08-15 12:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66169-20110812173609.patch</filename>
            <type>text/plain</type>
            <size>24440</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMDgtMTIgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCByZW1haW5pbmcg
U1ZHIFJlbmRlcmluZyBtZXRob2RzIHRvIExheW91dFVuaXRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjE2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5naW5nIHJlbWFpbmluZyBpbnRlZ2VyIFNW
RyBtZXRob2RzIHRvIHVzZSB0aGUgTGF5b3V0VW5pdHMgYWJzdHJhY3Rpb24uCisKKyAgICAgICAg
Tm8gdGVzdHMgYXMgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R0Jsb2NrOjp2aXN1YWxPdmVyZmxvd1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNv
bnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6
OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ltYWdlOjpwYWludCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0lubGluZVRleHQ6OmxpbmVzQm91bmRpbmdCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmpl
Y3Q6Om91dGxpbmVCb3VuZHNGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUGF0aDo6cGFpbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OnBhcmVudE9yaWdpblRvQm9yZGVyQm94KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmJvcmRlck9yaWdpblRvQ29udGVudEJveCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpsb2NhbFRvUmVwYWludENvbnRhaW5l
clRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpsb2NhbFRvUGFy
ZW50VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5l
Rmxvd0JveDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Jvb3RJbmxpbmVCb3g6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVC
b3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSb290SW5saW5lQm94OjpsYXlvdXRDaGlsZEJveGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Jvb3RJbmxpbmVCb3g6OmxheW91dFJvb3RCb3gpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUm9vdElubGluZUJveDo6Y2xvc2VzdExlYWZDaGlsZEZvclBvc2l0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaDoKKwogMjAxMS0wOC0xMiAgRmFkeSBT
YW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWZhY3RvcmluZyBvZiBQ
b3B1cE1lbnVDaHJvbWl1bSBGb3IgUmVhZGFiaWxpdHkgYW5kIE1haW50YWluYWJpbGl0eQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAJ
KHJldmlzaW9uIDkyOTg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgUmVuZGVyU1ZHQmxv
Y2s6OlJlbmRlclNWR0Jsb2NrKFNWR0VsZW1lbgogewogfQogCi1JbnRSZWN0IFJlbmRlclNWR0Js
b2NrOjp2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdCbG9j
azo6dmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3QKIHsKICAgICBMYXlvdXRSZWN0IGJvcmRlclJl
Y3QgPSBib3JkZXJCb3hSZWN0KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgJKHJldmlzaW9uIDkyOTg5KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIFJlbmRlclNWR0Jsb2NrIDogcHVibGljIFJlbmRlckJsb2MKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBSZW5kZXJTVkdCbG9jayhTVkdFbGVtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEludFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlv
dXRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCShy
ZXZpc2lvbiA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Q29udGFpbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBib29sIFJlbmRl
clNWR0NvbnRhaW5lcjo6c2VsZldpbGxQYWludCgpCiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJT
VkdDb250YWluZXI6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYp
Cit2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JikKIHsKICAgICBpZiAocGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCShyZXZpc2lv
biA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdDo6flJlbmRlclNWR0ZvcmVpZwogewogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVp
Z25PYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYpCit2
b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYpCiB7CiAgICAgaWYgKHBhaW50SW5mby5jb250ZXh0LT5wYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY2LDEyICs2NiwxMiBAQCB2b2lkIFJl
bmRlclNWR0ZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50CiAgICAgICAgIGNoaWxkUGFpbnRJbmZv
LmNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiB9CiAKLUludFJlY3QgUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR0Zv
cmVpZ25PYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAogewogICAgIHJldHVybiBTVkdSZW5kZXJT
dXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFp
bmVyKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmIHJl
cGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0
Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdAogewogICAg
IFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcAko
cmV2aXNpb24gOTI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0hpZGRlbkNvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9p
ZCBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQo
ZmFsc2UpOyAgICAKIH0KIAotdm9pZCBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OnBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IEludFBvaW50JikKK3ZvaWQgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
OjpwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpCiB7CiAgICAgLy8gVGhpcyBz
dWJ0cmVlIGRvZXMgbm90IHBhaW50LgogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAJKHJldmlzaW9uIDkyOTg5KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjp1cGRhdGVGcm9tRWxlbWVu
dCgpCiAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAK
LXZvaWQgUmVuZGVyU1ZHSW1hZ2U6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRQb2ludCYpCit2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmKQogewogICAgIGlmIChwYWludEluZm8uY29udGV4dC0+cGFp
bnRpbmdEaXNhYmxlZCgpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBISURERU4gfHwgIW1f
aW1hZ2VSZXNvdXJjZS0+aGFzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3Bw
CShyZXZpc2lvbiA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw5ICsxMjcsOSBAQCBJbnRS
ZWN0IFJlbmRlclNWR0lubGluZVRleHQ6OmxvY2FsQ2FyZXRSCiAgICAgcmV0dXJuIEludFJlY3Qo
eCwgcmVjdC55KCksIGNhcmV0V2lkdGgsIHJlY3QuaGVpZ2h0KCkpOwogfQogCi1JbnRSZWN0IFJl
bmRlclNWR0lubGluZVRleHQ6OmxpbmVzQm91bmRpbmdCb3goKSBjb25zdAorTGF5b3V0UmVjdCBS
ZW5kZXJTVkdJbmxpbmVUZXh0OjpsaW5lc0JvdW5kaW5nQm94KCkgY29uc3QKIHsKLSAgICBJbnRS
ZWN0IGJvdW5kaW5nQm94OworICAgIExheW91dFJlY3QgYm91bmRpbmdCb3g7CiAgICAgZm9yIChJ
bmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRU
ZXh0Qm94KCkpCiAgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJveC0+Y2FsY3VsYXRlQm91bmRh
cmllcygpKTsKICAgICByZXR1cm4gYm91bmRpbmdCb3g7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAkocmV2aXNpb24gOTI5
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwog
ICAgIHZpcnR1YWwgSW50UmVjdCBsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gqLCBpbnQgY2FyZXRP
ZmZzZXQsIGludCogZXh0cmFXaWR0aFRvRW5kT2ZMaW5lID0gMCk7Ci0gICAgdmlydHVhbCBJbnRS
ZWN0IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgbGlu
ZXNCb3VuZGluZ0JveCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSW5saW5lVGV4dEJveCogY3JlYXRl
VGV4dEJveCgpOwogCiAgICAgZmxvYXQgbV9zY2FsaW5nRmFjdG9yOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJ
KHJldmlzaW9uIDkyOTg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDkgKzYxLDkgQEAgdm9pZCBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbgogLy8gQ29waWVkIGZyb20gUmVuZGVy
Qm94LCB0aGlzIG1ldGhvZCBsaWtlbHkgcmVxdWlyZXMgZnVydGhlciByZWZhY3RvcmluZyB0byB3
b3JrIGVhc2lseSBmb3IgYm90aCBTVkcgYW5kIENTUyBCb3ggTW9kZWwgY29udGVudC4KIC8vIEZJ
WE1FOiBUaGlzIG1heSBhbHNvIG5lZWQgdG8gbW92ZSBpbnRvIFNWR1JlbmRlclN1cHBvcnQgYXMg
dGhlIFJlbmRlckJveCB2ZXJzaW9uIGRlcGVuZHMKIC8vIG9uIGJvcmRlckJvdW5kaW5nQm94KCkg
d2hpY2ggU1ZHIFJlbmRlckJveCBzdWJjbGFzZXMgKGxpa2UgU1ZHUmVuZGVyQmxvY2spIGRvIG5v
dCBpbXBsZW1lbnQuCi1JbnRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0OjpvdXRsaW5lQm91bmRz
Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UG9p
bnQqKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6b3V0bGluZUJvdW5k
c0ZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFBvaW50KikgY29uc3QKIHsKLSAgICBJbnRSZWN0IGJveCA9IGVuY2xvc2luZ0ludFJlY3QocmVw
YWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSk7CisgICAgTGF5b3V0UmVjdCBib3ggPSBlbmNs
b3NpbmdMYXlvdXRSZWN0KHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpOwogICAgIGFk
anVzdFJlY3RGb3JPdXRsaW5lQW5kU2hhZG93KGJveCk7CiAKICAgICBGbG9hdFF1YWQgY29udGFp
bmVyUmVsYXRpdmVRdWFkID0gbG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KGJveCksIHJl
cGFpbnRDb250YWluZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1BhdGguY3BwCShyZXZpc2lvbiA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Niw3ICsy
NDYsNyBAQCB2b2lkIFJlbmRlclNWR1BhdGg6OmZpbGxBbmRTdHJva2VQYXRoKEdyCiAgICAgfQog
fQogCi12b2lkIFJlbmRlclNWR1BhdGg6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBJbnRQb2ludCYpCit2b2lkIFJlbmRlclNWR1BhdGg6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiB7CiAgICAgaWYgKHBhaW50SW5mby5jb250ZXh0LT5w
YWludGluZ0Rpc2FibGVkKCkgfHwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IEhJRERFTiB8fCBt
X3BhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDkyOTg5KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6Y2FsY1ZpZXdwb3J0
KCkKIC8vIHJlbGF0aXZlIHRvIG91ciBib3JkZXJCb3ggb3JpZ2luLiAgVGhpcyBtZXRob2QgZ2l2
ZXMgdXMgZXhhY3RseSB0aGF0LgogQWZmaW5lVHJhbnNmb3JtIFJlbmRlclNWR1Jvb3Q6OmxvY2Fs
VG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKSBjb25zdAogewotICAgIEludFNpemUgYm9yZGVyQW5kUGFk
ZGluZyA9IGJvcmRlck9yaWdpblRvQ29udGVudEJveCgpOworICAgIExheW91dFNpemUgYm9yZGVy
QW5kUGFkZGluZyA9IGJvcmRlck9yaWdpblRvQ29udGVudEJveCgpOwogICAgIFNWR1NWR0VsZW1l
bnQqIHN2ZyA9IHN0YXRpY19jYXN0PFNWR1NWR0VsZW1lbnQqPihub2RlKCkpOwogICAgIGZsb2F0
IHNjYWxlID0gc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIEZsb2F0UG9pbnQgdHJhbnNs
YXRlID0gc3ZnLT5jdXJyZW50VHJhbnNsYXRlKCk7CkBAIC0zNTQsNDMgKzM1NCw0MyBAQCBBZmZp
bmVUcmFuc2Zvcm0gUmVuZGVyU1ZHUm9vdDo6bG9jYWxUb0JvCiAgICAgcmV0dXJuIGN0bSAqIHN2
Zy0+dmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpIC8gc2NhbGUsIGhlaWdodCgpIC8gc2Nh
bGUpOwogfQogCi1JbnRTaXplIFJlbmRlclNWR1Jvb3Q6OnBhcmVudE9yaWdpblRvQm9yZGVyQm94
KCkgY29uc3QKK0xheW91dFNpemUgUmVuZGVyU1ZHUm9vdDo6cGFyZW50T3JpZ2luVG9Cb3JkZXJC
b3goKSBjb25zdAogewotICAgIHJldHVybiBJbnRTaXplKHgoKSwgeSgpKTsKKyAgICByZXR1cm4g
bG9jYXRpb25PZmZzZXQoKTsKIH0KIAotSW50U2l6ZSBSZW5kZXJTVkdSb290Ojpib3JkZXJPcmln
aW5Ub0NvbnRlbnRCb3goKSBjb25zdAorTGF5b3V0U2l6ZSBSZW5kZXJTVkdSb290Ojpib3JkZXJP
cmlnaW5Ub0NvbnRlbnRCb3goKSBjb25zdAogewotICAgIHJldHVybiBJbnRTaXplKGJvcmRlckxl
ZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpKTsKKyAgICBy
ZXR1cm4gTGF5b3V0U2l6ZShib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBib3JkZXJUb3Ao
KSArIHBhZGRpbmdUb3AoKSk7CiB9CiAKLUFmZmluZVRyYW5zZm9ybSBSZW5kZXJTVkdSb290Ojps
b2NhbFRvUmVwYWludENvbnRhaW5lclRyYW5zZm9ybShjb25zdCBJbnRQb2ludCYgcGFyZW50T3Jp
Z2luSW5Db250YWluZXIpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHUm9vdDo6bG9j
YWxUb1JlcGFpbnRDb250YWluZXJUcmFuc2Zvcm0oY29uc3QgTGF5b3V0UG9pbnQmIHBhcmVudE9y
aWdpbkluQ29udGFpbmVyKSBjb25zdAogewogICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm06OnRy
YW5zbGF0aW9uKHBhcmVudE9yaWdpbkluQ29udGFpbmVyLngoKSwgcGFyZW50T3JpZ2luSW5Db250
YWluZXIueSgpKSAqIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKTsKIH0KIAogY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBSZW5kZXJTVkdSb290Ojpsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QK
IHsKLSAgICBJbnRTaXplIHBhcmVudFRvQm9yZGVyQm94T2Zmc2V0ID0gcGFyZW50T3JpZ2luVG9C
b3JkZXJCb3goKTsKKyAgICBMYXlvdXRTaXplIHBhcmVudFRvQm9yZGVyQm94T2Zmc2V0ID0gcGFy
ZW50T3JpZ2luVG9Cb3JkZXJCb3goKTsKIAogICAgIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybSA9
IEFmZmluZVRyYW5zZm9ybTo6dHJhbnNsYXRpb24ocGFyZW50VG9Cb3JkZXJCb3hPZmZzZXQud2lk
dGgoKSwgcGFyZW50VG9Cb3JkZXJCb3hPZmZzZXQuaGVpZ2h0KCkpICogbG9jYWxUb0JvcmRlckJv
eFRyYW5zZm9ybSgpOwogCiAgICAgcmV0dXJuIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsKIH0K
IAotSW50UmVjdCBSZW5kZXJTVkdSb290OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKK0xheW91dFJlY3Qg
UmVuZGVyU1ZHUm9vdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRl
clN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250
YWluZXIpOwogfQogCi12b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJl
Y3QsIGJvb2wgZml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9y
UmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVj
dCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gQXBwbHkgb3VyIGxv
Y2FsIHRyYW5zZm9ybXMgKGV4Y2VwdCBmb3IgeC95IHRyYW5zbGF0aW9uKSwgdGhlbiBvdXIgc2hh
ZG93LCAKICAgICAvLyBhbmQgdGhlbiBjYWxsIFJlbmRlckJveCdzIG1ldGhvZCB0byBoYW5kbGUg
YWxsIHRoZSBub3JtYWwgQ1NTIEJveCBtb2RlbCBiaXRzCiAgICAgcmVwYWludFJlY3QgPSBsb2Nh
bFRvQm9yZGVyQm94VHJhbnNmb3JtKCkubWFwUmVjdChyZXBhaW50UmVjdCk7CiAKICAgICAvLyBB
cHBseSBpbml0aWFsIHZpZXdwb3J0IGNsaXAgLSBub3QgYWZmZWN0ZWQgYnkgb3ZlcmZsb3cgc2V0
dGluZ3MgICAgCi0gICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KGVuY2xvc2luZ0ludFJlY3QoRmxv
YXRSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3cG9ydFNpemUpKSk7CisgICAgcmVwYWludFJlY3Qu
aW50ZXJzZWN0KGVuY2xvc2luZ0xheW91dFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV92
aWV3cG9ydFNpemUpKSk7CiAKICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBz
dHlsZSgpLT5zdmdTdHlsZSgpOwogICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBz
dmdTdHlsZS0+c2hhZG93KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaAkocmV2aXNpb24gOTI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtODcsOCArODcsOCBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24p
OwogCi0gICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBJbnRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3Q7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3Q7CiAKICAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1T
dGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAKQEAgLTk3LDkgKzk3LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIHNlbGZXaWxsUGFpbnQoKTsKICAgICB2b2lkIHVwZGF0ZUNhY2hlZEJv
dW5kYXJpZXMoKTsKIAotICAgIEludFNpemUgcGFyZW50T3JpZ2luVG9Cb3JkZXJCb3goKSBjb25z
dDsKLSAgICBJbnRTaXplIGJvcmRlck9yaWdpblRvQ29udGVudEJveCgpIGNvbnN0OwotICAgIEFm
ZmluZVRyYW5zZm9ybSBsb2NhbFRvUmVwYWludENvbnRhaW5lclRyYW5zZm9ybShjb25zdCBJbnRQ
b2ludCYgcGFyZW50T3JpZ2luSW5Db250YWluZXIpIGNvbnN0OworICAgIExheW91dFNpemUgcGFy
ZW50T3JpZ2luVG9Cb3JkZXJCb3goKSBjb25zdDsKKyAgICBMYXlvdXRTaXplIGJvcmRlck9yaWdp
blRvQ29udGVudEJveCgpIGNvbnN0OworICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRvUmVwYWlu
dENvbnRhaW5lclRyYW5zZm9ybShjb25zdCBMYXlvdXRQb2ludCYgcGFyZW50T3JpZ2luSW5Db250
YWluZXIpIGNvbnN0OwogICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRvQm9yZGVyQm94VHJhbnNm
b3JtKCkgY29uc3Q7CiAKICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QgbV9jaGlsZHJlbjsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAko
cmV2aXNpb24gOTI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBSZW5kZXJT
VkdUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcgogICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJz
b2x1dGVRdWFkKHN0cm9rZUJvdW5kaW5nQm94KCksIGZhbHNlLCB3YXNGaXhlZCkpOwogfQogCi12
b2lkIFJlbmRlclNWR1RleHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQ
b2ludCYpCit2b2lkIFJlbmRlclNWR1RleHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYpCiB7CiAgICAgaWYgKHBhaW50SW5mby5jb250ZXh0LT5wYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gOTI5ODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnRT
ZWxlY3Rpb25CYWMKICAgICB9CiB9CiAKLXZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JiwgaW50LCBpbnQpCit2b2lkIFNWR0lu
bGluZUZsb3dCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYsIExheW91dFVuaXQsIExheW91dFVuaXQpCiB7CiAgICAgQVNTRVJUKHBhaW50SW5mby5waGFz
ZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFz
ZVNlbGVjdGlvbik7CiAgICAgQVNTRVJUKCFwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNh
YmxlZCgpKTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTVkdJbmxpbmVGbG93Qm94OjpwYWludChQ
YWludEluZm8mIAogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHRCb3goKSkK
ICAgICAgICAgICAgICAgICBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZvclJlbmRlcmVyKHRv
UmVuZGVyU1ZHSW5saW5lVGV4dChzdGF0aWNfY2FzdDxTVkdJbmxpbmVUZXh0Qm94Kj4oY2hpbGQp
LT50ZXh0UmVuZGVyZXIoKSkpOwogCi0gICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQYWlu
dEluZm8sIEludFBvaW50KCksIDAsIDApOworICAgICAgICAgICAgY2hpbGQtPnBhaW50KGNoaWxk
UGFpbnRJbmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKICAgICAgICAgfQogICAgIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
Y3BwCShyZXZpc2lvbiA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lk
IFNWR0lubGluZVRleHRCb3g6OnBhaW50U2VsZWN0aW9uQmFjCiAgICAgQVNTRVJUKCFtX3BhaW50
aW5nUmVzb3VyY2UpOwogfQogCi12b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYsIGludCwgaW50KQordm9pZCBTVkdJbmxpbmVU
ZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmLCBM
YXlvdXRVbml0LCBMYXlvdXRVbml0KQogewogICAgIEFTU0VSVChwYWludEluZm8uc2hvdWxkUGFp
bnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKTsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2Vs
ZWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gOTI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwyMCAr
NDUsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnRSZWN0IFNWR1JlbmRlclN1cHBv
cnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKK0xheW91dFJlY3Qg
U1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KQogewogICAgIC8vIFJldHVybiBlYXJseSBmb3IgYW55IGNhc2VzIHdoZXJlIHdlIGRvbid0IGFj
dHVhbGx5IHBhaW50CiAgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJ
U0lCTEUgJiYgIW9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQoKSkK
LSAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsK
IAogICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBhaW50IHJlY3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBh
aW50KCkgd2hpY2ggd2lsbAogICAgIC8vIG1hcCB0byBwYXJlbnQgY29vcmRzIGFuZCByZWN1cnNl
IHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAgSW50UmVjdCByZXBhaW50UmVjdCA9IGVuY2xvc2lu
Z0ludFJlY3Qob2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKTsKKyAgICBM
YXlvdXRSZWN0IHJlcGFpbnRSZWN0ID0gZW5jbG9zaW5nTGF5b3V0UmVjdChvYmplY3QtPnJlcGFp
bnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpOwogICAgIG9iamVjdC0+Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKICAgICByZXR1cm4gcmVwYWlu
dFJlY3Q7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpCit2b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qm
IHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKQogewogICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBz
dmdTdHlsZSA9IG9iamVjdC0+c3R5bGUoKS0+c3ZnU3R5bGUoKTsKICAgICBpZiAoY29uc3QgU2hh
ZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHJldmlzaW9uIDkyOTg5
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHBh
aW50SW5mb0ludGVyc2VjdHNSZXBhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIGxvY2FsUmVwYWlu
dFJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9jYWxUcmFuc2Zvcm0sIGNvbnN0IFBhaW50
SW5mbyYpOwogCiAgICAgLy8gSW1wb3J0YW50IGZ1bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwg
U1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29vcmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyBy
ZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCi0gICAgc3RhdGljIEludFJlY3QgY2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpOwotICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQpOworICAgIHN0YXRpYyBMYXlvdXRSZWN0IGNs
aXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKKyAgICBzdGF0aWMgdm9pZCBjb21wdXRl
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKTsKICAgICBzdGF0aWMg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4
ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQgPSAwKTsKIAogICAgIC8vIFNoYXJl
ZCBiZXR3ZWVuIFNWRyByZW5kZXJlcnMgYW5kIHJlc291cmNlcy4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcAkocmV2aXNpb24g
OTI5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBTVkdSb290SW5saW5lQm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UG9pbnQmLCBpbnQsIGludCkKK3ZvaWQgU1ZHUm9vdElubGluZUJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0VW5pdCwgTGF5
b3V0VW5pdCkKIHsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3Jl
Z3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKTsKICAgICBB
U1NFUlQoIXBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpOwpAQCAtNjQsNyAr
NjQsNyBAQCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OnBhaW50KFBhaW50SW5mbyYgCiAgICAgICAg
ICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dEJveCgpKQogICAgICAgICAgICAgICAgIFNW
R0lubGluZUZsb3dCb3g6OmNvbXB1dGVUZXh0TWF0Y2hNYXJrZXJSZWN0Rm9yUmVuZGVyZXIodG9S
ZW5kZXJTVkdJbmxpbmVUZXh0KHN0YXRpY19jYXN0PFNWR0lubGluZVRleHRCb3gqPihjaGlsZCkt
PnRleHRSZW5kZXJlcigpKSk7CiAKLSAgICAgICAgICAgIGNoaWxkLT5wYWludChjaGlsZFBhaW50
SW5mbywgSW50UG9pbnQoKSwgMCwgMCk7CisgICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQ
YWludEluZm8sIExheW91dFBvaW50KCksIDAsIDApOwogICAgICAgICB9CiAgICAgfQogCkBAIC05
Miw3ICs5Miw3IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3QKIAog
ICAgIC8vIFBlcmZvcm0gU1ZHIHRleHQgbGF5b3V0IHBoYXNlIGZvdXIKICAgICAvLyBQb3NpdGlv
biAmIHJlc2l6ZSBhbGwgU1ZHSW5saW5lVGV4dC9GbG93Qm94ZXMgaW4gdGhlIGlubGluZSBib3gg
dHJlZSwgcmVzaXplIHRoZSByb290IGJveCBhcyB3ZWxsIGFzIHRoZSBSZW5kZXJTVkdUZXh0IHBh
cmVudCBibG9jay4KLSAgICBJbnRSZWN0IGNoaWxkUmVjdDsKKyAgICBMYXlvdXRSZWN0IGNoaWxk
UmVjdDsKICAgICBsYXlvdXRDaGlsZEJveGVzKHRoaXMsICZjaGlsZFJlY3QpOwogICAgIGxheW91
dFJvb3RCb3goY2hpbGRSZWN0KTsKIH0KQEAgLTEzNiwxMCArMTM2LDEwIEBAIHZvaWQgU1ZHUm9v
dElubGluZUJveDo6bGF5b3V0Q2hhcmFjdGVyc0kKICAgICB9CiB9CiAKLXZvaWQgU1ZHUm9vdElu
bGluZUJveDo6bGF5b3V0Q2hpbGRCb3hlcyhJbmxpbmVGbG93Qm94KiBzdGFydCwgSW50UmVjdCog
Y2hpbGRSZWN0KQordm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRDaGlsZEJveGVzKElubGlu
ZUZsb3dCb3gqIHN0YXJ0LCBMYXlvdXRSZWN0KiBjaGlsZFJlY3QpCiB7CiAgICAgZm9yIChJbmxp
bmVCb3gqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRPbkxpbmUoKSkgewotICAgICAgICBJbnRSZWN0IGJveFJlY3Q7CisgICAgICAgIExheW91
dFJlY3QgYm94UmVjdDsKICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHRCb3goKSkg
ewogICAgICAgICAgICAgQVNTRVJUKGNoaWxkLT5yZW5kZXJlcigpKTsKICAgICAgICAgICAgIEFT
U0VSVChjaGlsZC0+cmVuZGVyZXIoKS0+aXNTVkdJbmxpbmVUZXh0KCkpOwpAQCAtMTcxLDEzICsx
NzEsMTMgQEAgdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRDaGlsZEJveGVzKAogICAgIH0K
IH0KIAotdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRSb290Qm94KGNvbnN0IEludFJlY3Qm
IGNoaWxkUmVjdCkKK3ZvaWQgU1ZHUm9vdElubGluZUJveDo6bGF5b3V0Um9vdEJveChjb25zdCBM
YXlvdXRSZWN0JiBjaGlsZFJlY3QpCiB7CiAgICAgUmVuZGVyQmxvY2sqIHBhcmVudEJsb2NrID0g
YmxvY2soKTsKICAgICBBU1NFUlQocGFyZW50QmxvY2spOwogCi0gICAgaW50IHdpZHRoQmxvY2sg
PSBjaGlsZFJlY3Qud2lkdGgoKTsKLSAgICBpbnQgaGVpZ2h0QmxvY2sgPSBjaGlsZFJlY3QuaGVp
Z2h0KCk7CisgICAgTGF5b3V0VW5pdCB3aWR0aEJsb2NrID0gY2hpbGRSZWN0LndpZHRoKCk7Cisg
ICAgTGF5b3V0VW5pdCBoZWlnaHRCbG9jayA9IGNoaWxkUmVjdC5oZWlnaHQoKTsKIAogICAgIC8v
IEZpbmFsbHksIGFzc2lnbiB0aGUgcm9vdCBibG9jayBwb3NpdGlvbiwgbm93IHRoYXQgYWxsIGNv
bnRlbnQgaXMgbGFpZCBvdXQuCiAgICAgcGFyZW50QmxvY2stPnNldExvY2F0aW9uKGNoaWxkUmVj
dC5sb2NhdGlvbigpKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6
OmxheW91dFJvb3RCb3goY29uCiAgICAgc2V0TGluZVRvcEJvdHRvbVBvc2l0aW9ucygwLCBoZWln
aHRCbG9jayk7CiB9CiAKLUlubGluZUJveCogU1ZHUm9vdElubGluZUJveDo6Y2xvc2VzdExlYWZD
aGlsZEZvclBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb2ludCkKK0lubGluZUJveCogU1ZHUm9v
dElubGluZUJveDo6Y2xvc2VzdExlYWZDaGlsZEZvclBvc2l0aW9uKGNvbnN0IExheW91dFBvaW50
JiBwb2ludCkKIHsKICAgICBJbmxpbmVCb3gqIGZpcnN0TGVhZiA9IGZpcnN0TGVhZkNoaWxkKCk7
CiAgICAgSW5saW5lQm94KiBsYXN0TGVhZiA9IGxhc3RMZWFmQ2hpbGQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5oCShyZXZpc2lv
biA5Mjk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMyArNTIsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
cygpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKLSAgICBJbmxpbmVCb3gqIGNsb3Nl
c3RMZWFmQ2hpbGRGb3JQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOworICAgIElubGluZUJveCog
Y2xvc2VzdExlYWZDaGlsZEZvclBvc2l0aW9uKGNvbnN0IExheW91dFBvaW50Jik7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCByZW9yZGVyVmFsdWVMaXN0cyhWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJp
YnV0ZXM+Jik7CiAgICAgdm9pZCBsYXlvdXRDaGFyYWN0ZXJzSW5UZXh0Qm94ZXMoSW5saW5lRmxv
d0JveCosIFNWR1RleHRMYXlvdXRFbmdpbmUmKTsKLSAgICB2b2lkIGxheW91dENoaWxkQm94ZXMo
SW5saW5lRmxvd0JveCosIEludFJlY3QqID0gMCk7Ci0gICAgdm9pZCBsYXlvdXRSb290Qm94KGNv
bnN0IEludFJlY3QmKTsKKyAgICB2b2lkIGxheW91dENoaWxkQm94ZXMoSW5saW5lRmxvd0JveCos
IExheW91dFJlY3QqID0gMCk7CisgICAgdm9pZCBsYXlvdXRSb290Qm94KGNvbnN0IExheW91dFJl
Y3QmKTsKIAogcHJpdmF0ZToKICAgICBpbnQgbV9sb2dpY2FsSGVpZ2h0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>