<?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>104220</bug_id>
          
          <creation_ts>2012-12-05 22:34:36 -0800</creation_ts>
          <short_desc>[V8] Implement v8IntegerWithoutIsolate(int i)</short_desc>
          <delta_ts>2012-12-06 01:21:23 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784635</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-05 22:34:36 -0800</bug_when>
    <thetext>To make an Isolate mandatory in v8Integer(), we implement v8IntegerWithoutIsolate(int i) for call sites that don&apos;t have an Isolate. Eventually we want to kill v8IntegerWithoutIsolate(int i).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784642</commentid>
    <comment_count>1</comment_count>
      <attachid>177941</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-05 22:42:52 -0800</bug_when>
    <thetext>Created attachment 177941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784684</commentid>
    <comment_count>2</comment_count>
      <attachid>177956</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 00:05:18 -0800</bug_when>
    <thetext>Created attachment 177956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784698</commentid>
    <comment_count>3</comment_count>
      <attachid>177956</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-06 00:31:52 -0800</bug_when>
    <thetext>Comment on attachment 177956
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=177956&amp;action=review

You might also consider the name deprecatedV8Integer to inform people writing future patches that they shouldn&apos;t add more callers of this function.

&gt; Source/WebCore/bindings/v8/Dictionary.cpp:300
&gt; -        v8::Local&lt;v8::Value&gt; indexedValue = v8Array-&gt;Get(v8Integer(i));
&gt; +        v8::Local&lt;v8::Value&gt; indexedValue = v8Array-&gt;Get(v8IntegerWithoutIsolate(i));

We should be able to store the isolate in a member variable of Dictionary.  Code isn&apos;t allowed to hold on to Dictionaries past the call frame in which they receive them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784705</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 00:34:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 177956 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177956&amp;action=review
&gt; 
&gt; You might also consider the name deprecatedV8Integer to inform people writing future patches that they shouldn&apos;t add more callers of this function.

Good idea. Will fix before landing.

&gt; &gt; Source/WebCore/bindings/v8/Dictionary.cpp:300
&gt; &gt; -        v8::Local&lt;v8::Value&gt; indexedValue = v8Array-&gt;Get(v8Integer(i));
&gt; &gt; +        v8::Local&lt;v8::Value&gt; indexedValue = v8Array-&gt;Get(v8IntegerWithoutIsolate(i));
&gt; 
&gt; We should be able to store the isolate in a member variable of Dictionary.

Oops, Dictionary already holds m_isolate. I can use it here. Will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784725</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 00:58:42 -0800</bug_when>
    <thetext>Committed r136819: &lt;http://trac.webkit.org/changeset/136819&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177941</attachid>
            <date>2012-12-05 22:42:52 -0800</date>
            <delta_ts>2012-12-06 00:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104220-20121206154017.patch</filename>
            <type>text/plain</type>
            <size>16562</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjMjdhZTUxMmNlNDUx
YjdiZGMxMjBlMDVkYWMzNjI5Njg5MWFiMy4uMmViZWJkZTdjMDEzNWI4NDIxZTViZWI3NmExMjEx
OGEzMzEzODk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEyLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEltcGxlbWVu
dCB2OEludGVnZXJXaXRob3V0SXNvbGF0ZShpbnQgaSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDIyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIG1ha2UgYW4gSXNvbGF0ZSBtYW5kYXRvcnkgaW4g
djhJbnRlZ2VyKCksIHdlIGltcGxlbWVudAorICAgICAgICB2OEludGVnZXJXaXRob3V0SXNvbGF0
ZShpbnQgaSkgZm9yIGNhbGwgc2l0ZXMgdGhhdCBkb24ndCBoYXZlCisgICAgICAgIGFuIElzb2xh
dGUuIEV2ZW50dWFsbHkgd2Ugd2FudCB0byBraWxsIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGlu
dCBpKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAo
TmF0aXZlVG9KU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmdldCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvTlBWOE9iamVjdC5jcHA6CisgICAgICAgIChfTlBOX0VudW1lcmF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVn
U2VydmVyOjpzZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2Vy
dmVyOjpjb21waWxlU2NyaXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VD
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OmNvbXBpbGVTY3Jp
cHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjp2OEludGVnZXJXaXRob3V0SXNvbGF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHMpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4TlBVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0TlBW
YXJpYW50VG9WOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSGlkZGVuRGVwZW5kZW5jeSk6CisgICAgICAgIChX
ZWJDb3JlOjpyZW1vdmVIaWRkZW5EZXBlbmRlbmN5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OFdpbmRvd0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdpbmRvd0Vycm9y
SGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
V29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtl
ckNvbnRleHRFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudCk6CisKIDIwMTItMTItMDUgIERh
biBCZWFtICA8ZGJlYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEhUTUxGb3JtRWxlbWVudCNy
ZXF1ZXN0QXV0b2NvbXBsZXRlKCkgc2hvdWxkIHJlcXVpcmUgYSB1c2VyIGFjdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCBmM2JiNGI3OWVhZTBkMjA3NGQxNThlYjA1Nzk3MDMyNDQ4MzJiMzFjLi45NDQwZjEzNWY0ZGY4
MTVlMmMwYTAyOTJjYjM5MzYxYTUwYmU1YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtNDA2NCw3ICs0MDY0LDcgQEAg
c3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICMgRm9yIGFsbCB0aGUgdHlwZXMgd2hlcmUgd2UgdXNl
ICdpbnQnIGFzIHRoZSByZXByZXNlbnRhdGlvbiB0eXBlLAogICAgICMgd2UgdXNlIHY4SW50ZWdl
cigpIHdoaWNoIGhhcyBhIGZhc3Qgc21hbGwgaW50ZWdlciBjb252ZXJzaW9uIGNoZWNrLgogICAg
IG15ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZlVHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuICJ2OElu
dGVnZXIoJHZhbHVlJGdldElzb2xhdGVBcmcpIiBpZiAkbmF0aXZlVHlwZSBlcSAiaW50IjsKKyAg
ICByZXR1cm4gKCRnZXRJc29sYXRlID8gInY4SW50ZWdlcigkdmFsdWUsICRnZXRJc29sYXRlKSIg
OiAidjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoJHZhbHVlKSIpIGlmICRuYXRpdmVUeXBlIGVxICJp
bnQiOwogICAgIHJldHVybiAidjhVbnNpZ25lZEludGVnZXIoJHZhbHVlJGdldElzb2xhdGVBcmcp
IiBpZiAkbmF0aXZlVHlwZSBlcSAidW5zaWduZWQiOwogCiAgICAgcmV0dXJuICJ2OERhdGVPck51
bGwoJHZhbHVlJGdldElzb2xhdGVBcmcpIiBpZiAkdHlwZSBlcSAiRGF0ZSI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCmluZGV4IGU1Y2Q0ZDIxMTU1NzEwY2RhYjc0
MWFjYWU3ZTk1MTI3OTQ5NGJlN2MuLjQ5MTQ1YWY2MTFkOTMyZDlkNmY5N2YzM2I0ZWNmMjUzNzk3
NzZiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCkBAIC0y
OTcsNyArMjk3LDcgQEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIEhh
c2hTZXQ8QXRvbWljU3RyaW5nPiYgdmFsdWUpIGNvbnN0CiAKICAgICB2ODo6TG9jYWw8djg6OkFy
cmF5PiB2OEFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QodjhWYWx1ZSk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB2OEFycmF5LT5MZW5ndGgoKTsgKytpKSB7Ci0gICAgICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IGluZGV4ZWRWYWx1ZSA9IHY4QXJyYXktPkdldCh2OEludGVn
ZXIoaSkpOworICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBpbmRleGVkVmFsdWUgPSB2OEFy
cmF5LT5HZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoaSkpOwogICAgICAgICB2YWx1ZS5hZGQo
dG9XZWJDb3JlU3RyaW5nKGluZGV4ZWRWYWx1ZSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcAppbmRleCA3NTVkNjNhOWY1Yzg5ZDJhOWNlNWIxZGVl
MDNhMzkzY2UyMTc0NjRjLi5kZmNkODk1OTIwYWEyODlmZGI0Njg5NGZlZDIyOTQ3MmFiMzQ4NmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcApAQCAtNTM3LDcg
KzUzNyw3IEBAIGJvb2wgX05QTl9FbnVtZXJhdGUoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0
LCBOUElkZW50aWZpZXIqKiBpZGVudGlmaWVyLCB1aW50CiAgICAgICAgICpjb3VudCA9IHByb3Bz
LT5MZW5ndGgoKTsKICAgICAgICAgKmlkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxOUElkZW50aWZp
ZXIqPihtYWxsb2Moc2l6ZW9mKE5QSWRlbnRpZmllciopICogKmNvdW50KSk7CiAgICAgICAgIGZv
ciAodWludDMyX3QgaSA9IDA7IGkgPCAqY291bnQ7ICsraSkgewotICAgICAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gbmFtZSA9IHByb3BzLT5HZXQodjhJbnRlZ2VyKGkpKTsKKyAgICAgICAg
ICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG5hbWUgPSBwcm9wcy0+R2V0KHY4SW50ZWdlcldpdGhv
dXRJc29sYXRlKGkpKTsKICAgICAgICAgICAgICgqaWRlbnRpZmllcilbaV0gPSBnZXRTdHJpbmdJ
ZGVudGlmaWVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6Q2FzdChuYW1lKSk7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBmMzE1ZjA1NWM4MTM0M2IxMTRmOTdm
YzIxMjYyNDUzNzNiOGRiMzYyLi5kNjE3MDFmMjExZmNiNzFjZGMxMTZjNjRkZjI4YTdhZTg3YmVl
YTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1BhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlcjo6YWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBh
ZwogICAgIEFTU0VSVCghdmFsdWUtPklzVW5kZWZpbmVkKCkgJiYgdmFsdWUtPklzQXJyYXkoKSk7
CiAgICAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IHNjcmlwdHNBcnJheSA9IHY4OjpIYW5kbGU8djg6
OkFycmF5Pjo6Q2FzdCh2YWx1ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjcmlw
dHNBcnJheS0+TGVuZ3RoKCk7ICsraSkKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShs
aXN0ZW5lciwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChzY3JpcHRzQXJyYXktPkdldCh2
OEludGVnZXIoaSkpKSk7CisgICAgICAgIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UobGlzdGVuZXIs
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qoc2NyaXB0c0FycmF5LT5HZXQodjhJbnRlZ2Vy
V2l0aG91dElzb2xhdGUoaSkpKSk7CiB9CiAKIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpy
ZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApp
bmRleCBmNjA2MDk1NjE3MzY1MDVjMDlhMGNkNjA1ODhhNTczZTYwMmNhMzhkLi41M2RlMjNhMTk2
ZjUwZTVlM2IyNTc5NGQ3ZGQ4YWUyYWYxNWNhMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC03OSw4ICs3OSw4IEBAIFN0cmlu
ZyBTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0QnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHNvdXJjZUlE
LCBjb25zdCBTY3JpcHRCcmVhCiAKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gYXJncyA9IHY4
OjpPYmplY3Q6Ok5ldygpOwogICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInNv
dXJjZUlEIiksIHY4U3RyaW5nKHNvdXJjZUlEKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6
Ok5ld1N5bWJvbCgibGluZU51bWJlciIpLCB2OEludGVnZXIoc2NyaXB0QnJlYWtwb2ludC5saW5l
TnVtYmVyKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29sdW1uTnVt
YmVyIiksIHY4SW50ZWdlcihzY3JpcHRCcmVha3BvaW50LmNvbHVtbk51bWJlcikpOworICAgIGFy
Z3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImxpbmVOdW1iZXIiKSwgdjhJbnRlZ2VyV2l0
aG91dElzb2xhdGUoc2NyaXB0QnJlYWtwb2ludC5saW5lTnVtYmVyKSk7CisgICAgYXJncy0+U2V0
KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29sdW1uTnVtYmVyIiksIHY4SW50ZWdlcldpdGhvdXRJ
c29sYXRlKHNjcmlwdEJyZWFrcG9pbnQuY29sdW1uTnVtYmVyKSk7CiAgICAgYXJncy0+U2V0KHY4
OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29uZGl0aW9uIiksIHY4U3RyaW5nKHNjcmlwdEJyZWFrcG9p
bnQuY29uZGl0aW9uKSk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gc2V0QnJlYWtw
b2ludEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobV9kZWJ1Z2dlclNj
cmlwdC5nZXQoKS0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgic2V0QnJlYWtwb2ludCIpKSk7
CkBAIC00MzgsNyArNDM4LDcgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6Y29tcGlsZVNjcmlw
dChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2kKICAgICB2ODo6SGFu
ZGxlPHY4OjpTdHJpbmc+IGNvZGUgPSB2OFN0cmluZyhleHByZXNzaW9uKTsKICAgICB2ODo6VHJ5
Q2F0Y2ggdHJ5Q2F0Y2g7CiAKLSAgICB2ODo6U2NyaXB0T3JpZ2luIG9yaWdpbih2OFN0cmluZyhz
b3VyY2VVUkwpLCB2OEludGVnZXIoMCksIHY4SW50ZWdlcigwKSk7CisgICAgdjg6OlNjcmlwdE9y
aWdpbiBvcmlnaW4odjhTdHJpbmcoc291cmNlVVJMKSwgdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUo
MCksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKDApKTsKICAgICB2ODo6SGFuZGxlPHY4OjpTY3Jp
cHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6Ok5ldyhjb2RlLCAmb3JpZ2luKTsKIAogICAgIGlmICh0
cnlDYXRjaC5IYXNDYXVnaHQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0U291cmNlQ29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRTb3VyY2VDb2RlLmNwcAppbmRleCA4Yzc4YjY0YTJlMjExZjVlNDU5YjQ4MThiNGU5ODQ2
MzZlZmRjYmNhLi5jYTNmZDQ3M2IyZDc2ZGNkZDUzNTk3MDhiYjM0ZWFjNzc2Y2M1YWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmNwcApAQCAt
NjAsOCArNjAsOCBAQCBQYXNzT3duUHRyPHY4OjpTY3JpcHREYXRhPiBTY3JpcHRTb3VyY2VDb2Rl
OjpwcmVjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cgogdjg6OkhhbmRsZTx2ODo6U2Ny
aXB0PiBTY3JpcHRTb3VyY2VDb2RlOjpjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmlu
Zz4gY29kZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uLCB2ODo6U2NyaXB0RGF0YSogc2NyaXB0RGF0YSkKIHsKICAgICB2ODo6
SGFuZGxlPHY4OjpTdHJpbmc+IG5hbWUgPSB2OFN0cmluZyhmaWxlTmFtZSk7Ci0gICAgdjg6Okhh
bmRsZTx2ODo6SW50ZWdlcj4gbGluZSA9IHY4SW50ZWdlcihzY3JpcHRTdGFydFBvc2l0aW9uLm1f
bGluZS56ZXJvQmFzZWRJbnQoKSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6SW50ZWdlcj4gY29sdW1u
ID0gdjhJbnRlZ2VyKHNjcmlwdFN0YXJ0UG9zaXRpb24ubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkp
OworICAgIHY4OjpIYW5kbGU8djg6OkludGVnZXI+IGxpbmUgPSB2OEludGVnZXJXaXRob3V0SXNv
bGF0ZShzY3JpcHRTdGFydFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKSk7CisgICAgdjg6
OkhhbmRsZTx2ODo6SW50ZWdlcj4gY29sdW1uID0gdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoc2Ny
aXB0U3RhcnRQb3NpdGlvbi5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKSk7CiAgICAgdjg6OlNjcmlw
dE9yaWdpbiBvcmlnaW4obmFtZSwgbGluZSwgY29sdW1uKTsKICAgICB2ODo6SGFuZGxlPHY4OjpT
Y3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUoY29kZSwgJm9yaWdpbiwgc2NyaXB0
RGF0YSk7CiAgICAgcmV0dXJuIHNjcmlwdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmgKaW5kZXggNWRlNmVlY2E0OWM0OGMwODMzNjAyYTdkODUwOGJmNDA0ZWNiNmQyZS4uNDVk
ODUzZTU5MGQ1Y2MwYzc5ZDNmNjI5NmU0YmVhZWFhOWFkMTA2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTE3OSw2ICsxNzksMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICByZXR1cm4gVjhQZXJJc29sYXRlRGF0YTo6ZnJvbShpc29sYXRlKS0+aW50
ZWdlckNhY2hlKCktPnY4SW50ZWdlcih2YWx1ZSwgaXNvbGF0ZSk7CiAgICAgfQogCisgICAgLy8g
RklYTUU6IEFsbCBjYWxsIHNpdGVzIG9mIHRoaXMgbWV0aG9kIHNob3VsZCB1c2UgdjhJbnRlZ2Vy
KCkuCisgICAgaW5saW5lIHY4OjpIYW5kbGU8djg6OkludGVnZXI+IHY4SW50ZWdlcldpdGhvdXRJ
c29sYXRlKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpJc29sYXRlKiBpc29sYXRlID0g
djg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKTsKKyAgICAgICAgcmV0dXJuIFY4UGVySXNvbGF0ZURh
dGE6OmZyb20oaXNvbGF0ZSktPmludGVnZXJDYWNoZSgpLT52OEludGVnZXIodmFsdWUsIGlzb2xh
dGUpOworICAgIH0KKwogICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpJbnRlZ2VyPiB2OFVuc2ln
bmVkSW50ZWdlcih1bnNpZ25lZCB2YWx1ZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogICAg
IHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFpc29sYXRlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGQ2ZGEzMjk3YWZjNjVl
MGU2MDAwYTg4MmZmMDE0ZTQxZjM4MWZjODEuLjFjOWQyOGM0OGI0NTkzMjg2MzY0MzEzY2QwNWYz
MWMyYTkyMTQ0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
Q29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01D
b25maWd1cmF0aW9uLmNwcApAQCAtNDksOCArNDksOCBAQCB2b2lkIFY4RE9NQ29uZmlndXJhdGlv
bjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHModjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uc3RhbnRDb3VudDsgKytpKSB7CiAg
ICAgICAgIGNvbnN0IEJhdGNoZWRDb25zdGFudCogY29uc3RhbnQgPSAmY29uc3RhbnRzW2ldOwot
ICAgICAgICBmdW5jdGlvbkRlc2NyaXB0b3ItPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woY29u
c3RhbnQtPm5hbWUpLCB2OEludGVnZXIoY29uc3RhbnQtPnZhbHVlKSwgdjg6OlJlYWRPbmx5KTsK
LSAgICAgICAgcHJvdG90eXBlLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKGNvbnN0YW50LT5u
YW1lKSwgdjhJbnRlZ2VyKGNvbnN0YW50LT52YWx1ZSksIHY4OjpSZWFkT25seSk7CisgICAgICAg
IGZ1bmN0aW9uRGVzY3JpcHRvci0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChjb25zdGFudC0+
bmFtZSksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGNvbnN0YW50LT52YWx1ZSksIHY4OjpSZWFk
T25seSk7CisgICAgICAgIHByb3RvdHlwZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChjb25z
dGFudC0+bmFtZSksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGNvbnN0YW50LT52YWx1ZSksIHY4
OjpSZWFkT25seSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOE5QVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUFV0
aWxzLmNwcAppbmRleCAwN2Y0NGE3Mjk0NmY4OTJiYjU4YjFmMGI3YmVlMTc2ZmZlMWFhYWZjLi42
OTc0ZWJiZTVlODBjNTg3Mjg3OTU0MzExYzBjZDlmYjBiMzI2ZWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4TlBVdGlscy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnZlcnROUFZhcmlhbnRUb1Y4T2JqZWN0KGNvbnN0IE5QVmFyaWFudCogdmFy
aWFudCwgTlBPYmoKIAogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTlBWYXJpYW50VHlw
ZV9JbnQzMjoKLSAgICAgICAgcmV0dXJuIHY4SW50ZWdlcihOUFZBUklBTlRfVE9fSU5UMzIoKnZh
cmlhbnQpKTsKKyAgICAgICAgcmV0dXJuIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKE5QVkFSSUFO
VF9UT19JTlQzMigqdmFyaWFudCkpOwogICAgIGNhc2UgTlBWYXJpYW50VHlwZV9Eb3VibGU6CiAg
ICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoTlBWQVJJQU5UX1RPX0RPVUJMRSgqdmFyaWFu
dCkpOwogICAgIGNhc2UgTlBWYXJpYW50VHlwZV9Cb29sOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IDhjOTNlODM0MWI0Yjk0MDI2ODAwZWM2YmQyOTNl
M2U2YWQ3ZmI4ZGUuLjdlMGFiYzMwMmNjY2ZhZGY1NDkyZWRjNDUwMzFmNzNjMDZkNGFlOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgdm9pZCBjcmVhdGVIaWRkZW5EZXBlbmRlbmN5KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
b2JqZWN0LCB2ODo6TG9jYWw8djg6OlZhbHVlPgogICAgIH0KIAogICAgIHY4OjpMb2NhbDx2ODo6
QXJyYXk+IGNhY2hlQXJyYXkgPSB2ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2FzdChjYWNoZSk7Ci0g
ICAgY2FjaGVBcnJheS0+U2V0KHY4SW50ZWdlcihjYWNoZUFycmF5LT5MZW5ndGgoKSksIHZhbHVl
KTsKKyAgICBjYWNoZUFycmF5LT5TZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoY2FjaGVBcnJh
eS0+TGVuZ3RoKCkpLCB2YWx1ZSk7CiB9CiAKIGJvb2wgZXh0cmFjdFRyYW5zZmVyYWJsZXModjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkmIHBvcnRzLCBBcnJheUJ1
ZmZlckFycmF5JiBhcnJheUJ1ZmZlcnMsIHY4OjpJc29sYXRlKiBpc29sYXRlKQpAQCAtMTI4LDcg
KzEyOCw3IEBAIHZvaWQgcmVtb3ZlSGlkZGVuRGVwZW5kZW5jeSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IG9iamVjdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4KICAgICAgICAgcmV0dXJuOwogICAgIHY4
OjpMb2NhbDx2ODo6QXJyYXk+IGNhY2hlQXJyYXkgPSB2ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2Fz
dChjYWNoZSk7CiAgICAgZm9yIChpbnQgaSA9IGNhY2hlQXJyYXktPkxlbmd0aCgpIC0gMTsgaSA+
PSAwOyAtLWkpIHsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FjaGVkID0gY2FjaGVB
cnJheS0+R2V0KHY4SW50ZWdlcihpKSk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNh
Y2hlZCA9IGNhY2hlQXJyYXktPkdldCh2OEludGVnZXJXaXRob3V0SXNvbGF0ZShpKSk7CiAgICAg
ICAgIGlmIChjYWNoZWQtPlN0cmljdEVxdWFscyh2YWx1ZSkpIHsKICAgICAgICAgICAgIGNhY2hl
QXJyYXktPkRlbGV0ZShpKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcAppbmRleCBmMTE4YzM1
ZTRjNTZmYzMzNmIwZmNmYzA0NDkyMzE4YmEzOTM2ZDkyLi40OGRjNGM0NDkzMDg0MDQxZTM2MWNj
OTRkNGVlZDdhODliYTk5YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IFY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3Jp
cHRFeGVjdXRpb25DCiAgICAgaWYgKCFsaXN0ZW5lci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklz
RnVuY3Rpb24oKSkgewogICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rp
b24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CiAgICAgICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgp
LT5HbG9iYWwoKTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10g
PSB7IHY4U3RyaW5nKGVycm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQt
PmZpbGVuYW1lKCkpLCB2OEludGVnZXIoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CisgICAgICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2
ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgpKSwgdjhJbnRl
Z2VyV2l0aG91dElzb2xhdGUoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CiAgICAgICAgIHY4OjpU
cnlDYXRjaCB0cnlDYXRjaDsKICAgICAgICAgdHJ5Q2F0Y2guU2V0VmVyYm9zZSh0cnVlKTsKICAg
ICAgICAgcmV0dXJuVmFsdWUgPSBTY3JpcHRDb250cm9sbGVyOjpjYWxsRnVuY3Rpb25XaXRoSW5z
dHJ1bWVudGF0aW9uKDAsIGNhbGxGdW5jdGlvbiwgdGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVy
cm9ySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdvcmtlckNvbnRl
eHRFcnJvckhhbmRsZXIuY3BwCmluZGV4IGRkNDVhODRjMzAxNWQ4NDExMGE0NTkxOTM5ZDQ0MTMy
YjcyOWEyOTIuLjFiZjA0OWFiZDhhZDk1YWVmMmY4Yjg5NjQ0YWM3ZmUwNWY0NWM0OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9ySGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBW
OFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4
ZQogICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8RXJyb3JFdmVu
dCo+KGV2ZW50KTsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2FsbEZ1bmN0aW9u
ID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXIpOwogICAgICAgICB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKS0+
R2xvYmFsKCk7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0g
eyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5m
aWxlbmFtZSgpKSwgdjhJbnRlZ2VyKGVycm9yRXZlbnQtPmxpbmVubygpKSB9OworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGFyYW1ldGVyc1szXSA9IHsgdjhTdHJpbmcoZXJyb3JFdmVu
dC0+bWVzc2FnZSgpKSwgdjhTdHJpbmcoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSksIHY4SW50ZWdl
cldpdGhvdXRJc29sYXRlKGVycm9yRXZlbnQtPmxpbmVubygpKSB9OwogICAgICAgICBWOFJlY3Vy
c2lvblNjb3BlIHJlY3Vyc2lvblNjb3BlKGNvbnRleHQpOwogICAgICAgICByZXR1cm5WYWx1ZSA9
IGNhbGxGdW5jdGlvbi0+Q2FsbCh0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmNwcAppbmRleCA0NTU5YTlhZDkwOWExY2FiOTJmMGViNzU3ZjE2NzA0OThjMWY3NDI1Li5j
YTczOWM2NTM0MzY5NDYxNzI0OTAzMzdiYzE0NDZlZDBmMzllM2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBA
IC03Myw3ICs3Myw3IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVy
KFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQogICAgIEFTU0VSVCghdmFsdWUtPklzVW5k
ZWZpbmVkKCkgJiYgdmFsdWUtPklzQXJyYXkoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+
IHNjcmlwdHNBcnJheSA9IHY4OjpIYW5kbGU8djg6OkFycmF5Pjo6Q2FzdCh2YWx1ZSk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjcmlwdHNBcnJheS0+TGVuZ3RoKCk7ICsraSkKLSAg
ICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChzY3JpcHRzQXJyYXktPkdldCh2OEludGVnZXIoaSkpKSk7CisgICAgICAgIGRp
c3BhdGNoRGlkUGFyc2VTb3VyY2UobGlzdGVuZXIsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3Qoc2NyaXB0c0FycmF5LT5HZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoaSkpKSk7CiB9CiAK
IHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVn
TGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAppbmRleCBiOGU4
ZDA5YzQ4Y2FjNWY1ZmQ1OThjNGU5NzFmNTEwN2I2ZjEyMGYxLi43NWE0NWVmNWQzYzEyZDAzYjVi
Y2NhNjkyZTg5NzcyMmIxOWE1YTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApAQCAt
NjUsNyArNjUsNyBAQCBib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQoTXV0YXRp
b25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9icwogCiAgICAgdjg6OkxvY2FsPHY4
OjpBcnJheT4gbXV0YXRpb25zQXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhtdXRhdGlvbnMtPnNpemUo
KSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUoKTsgKytpKQot
ICAgICAgICBtdXRhdGlvbnNBcnJheS0+U2V0KHY4SW50ZWdlcihpKSwgdG9WOChtdXRhdGlvbnMt
PmF0KGkpLmdldCgpKSk7CisgICAgICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJbnRlZ2VyV2l0
aG91dElzb2xhdGUoaSksIHRvVjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOwogCiAgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7CiAgICAg
aWYgKG9ic2VydmVySGFuZGxlLklzRW1wdHkoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177956</attachid>
            <date>2012-12-06 00:05:18 -0800</date>
            <delta_ts>2012-12-06 01:21:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104220-20121206170242.patch</filename>
            <type>text/plain</type>
            <size>15488</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjMjdhZTUxMmNlNDUx
YjdiZGMxMjBlMDVkYWMzNjI5Njg5MWFiMy4uMjgzY2Q1ZWFlMWMyNDEwZGRjNjNkZDUzZGI2MzY5
MjdmOTkwZDRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTEyLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEltcGxlbWVu
dCB2OEludGVnZXJXaXRob3V0SXNvbGF0ZShpbnQgaSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDIyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIG1ha2UgYW4gSXNvbGF0ZSBtYW5kYXRvcnkgaW4g
djhJbnRlZ2VyKCksIHdlIGltcGxlbWVudAorICAgICAgICB2OEludGVnZXJXaXRob3V0SXNvbGF0
ZShpbnQgaSkgZm9yIGNhbGwgc2l0ZXMgdGhhdCBkb24ndCBoYXZlCisgICAgICAgIGFuIElzb2xh
dGUuIEV2ZW50dWFsbHkgd2Ugd2FudCB0byBraWxsIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGlu
dCBpKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGljdGlvbmFyeTo6Z2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcDoK
KyAgICAgICAgKF9OUE5fRW51bWVyYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OnNldEJyZWFrcG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNvbXBpbGVTY3JpcHQp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFNvdXJjZUNvZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6Y29tcGlsZVNjcmlwdCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OnY4SW50ZWdlcldpdGhvdXRJc29sYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERP
TUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Db25maWd1cmF0aW9u
OjpiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhOUFV0
aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnROUFZhcmlhbnRUb1Y4T2JqZWN0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIaWRkZW5EZXBlbmRlbmN5KToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZUhpZGRl
bkRlcGVuZGVuY3kpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVu
ZXJGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyQ29udGV4dEVycm9ySGFuZGxl
cjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVn
U2VydmVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE11dGF0aW9uQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKwogMjAxMi0xMi0wNSAgRGFuIEJlYW0gIDxkYmVhbUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSFRNTEZvcm1FbGVtZW50I3JlcXVlc3RBdXRvY29tcGxldGUo
KSBzaG91bGQgcmVxdWlyZSBhIHVzZXIgYWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RpY3Rpb25hcnkuY3BwCmluZGV4IGU1Y2Q0ZDIxMTU1NzEwY2RhYjc0MWFjYWU3ZTk1MTI3OTQ5
NGJlN2MuLjQ5MTQ1YWY2MTFkOTMyZDlkNmY5N2YzM2I0ZWNmMjUzNzk3NzZiOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAg
Ym9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIEhhc2hTZXQ8QXRvbWljU3Ry
aW5nPiYgdmFsdWUpIGNvbnN0CiAKICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiB2OEFycmF5ID0g
djg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QodjhWYWx1ZSk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB2OEFycmF5LT5MZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGluZGV4ZWRWYWx1ZSA9IHY4QXJyYXktPkdldCh2OEludGVnZXIoaSkpOworICAgICAg
ICB2ODo6TG9jYWw8djg6OlZhbHVlPiBpbmRleGVkVmFsdWUgPSB2OEFycmF5LT5HZXQodjhJbnRl
Z2VyV2l0aG91dElzb2xhdGUoaSkpOwogICAgICAgICB2YWx1ZS5hZGQodG9XZWJDb3JlU3RyaW5n
KGluZGV4ZWRWYWx1ZSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4
T2JqZWN0LmNwcAppbmRleCA3NTVkNjNhOWY1Yzg5ZDJhOWNlNWIxZGVlMDNhMzkzY2UyMTc0NjRj
Li5kZmNkODk1OTIwYWEyODlmZGI0Njg5NGZlZDIyOTQ3MmFiMzQ4NmMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcApAQCAtNTM3LDcgKzUzNyw3IEBAIGJvb2wg
X05QTl9FbnVtZXJhdGUoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIq
KiBpZGVudGlmaWVyLCB1aW50CiAgICAgICAgICpjb3VudCA9IHByb3BzLT5MZW5ndGgoKTsKICAg
ICAgICAgKmlkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxOUElkZW50aWZpZXIqPihtYWxsb2Moc2l6
ZW9mKE5QSWRlbnRpZmllciopICogKmNvdW50KSk7CiAgICAgICAgIGZvciAodWludDMyX3QgaSA9
IDA7IGkgPCAqY291bnQ7ICsraSkgewotICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
bmFtZSA9IHByb3BzLT5HZXQodjhJbnRlZ2VyKGkpKTsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IG5hbWUgPSBwcm9wcy0+R2V0KHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGkpKTsK
ICAgICAgICAgICAgICgqaWRlbnRpZmllcilbaV0gPSBnZXRTdHJpbmdJZGVudGlmaWVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPjo6Q2FzdChuYW1lKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9QYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvUGFnZVNjcmlwdERl
YnVnU2VydmVyLmNwcAppbmRleCBmMzE1ZjA1NWM4MTM0M2IxMTRmOTdmYzIxMjYyNDUzNzNiOGRi
MzYyLi5kNjE3MDFmMjExZmNiNzFjZGMxMTZjNjRkZjI4YTdhZTg3YmVlYTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAK
QEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6YWRkTGlzdGVu
ZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBhZ2UqIHBhZwogICAgIEFTU0VSVCgh
dmFsdWUtPklzVW5kZWZpbmVkKCkgJiYgdmFsdWUtPklzQXJyYXkoKSk7CiAgICAgdjg6OkhhbmRs
ZTx2ODo6QXJyYXk+IHNjcmlwdHNBcnJheSA9IHY4OjpIYW5kbGU8djg6OkFycmF5Pjo6Q2FzdCh2
YWx1ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjcmlwdHNBcnJheS0+TGVuZ3Ro
KCk7ICsraSkKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChzY3JpcHRzQXJyYXktPkdldCh2OEludGVnZXIoaSkpKSk7
CisgICAgICAgIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UobGlzdGVuZXIsIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3Qoc2NyaXB0c0FycmF5LT5HZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUo
aSkpKSk7CiB9CiAKIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihT
Y3JpcHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lciwgUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBmNjA2MDk1NjE3
MzY1MDVjMDlhMGNkNjA1ODhhNTczZTYwMmNhMzhkLi41M2RlMjNhMTk2ZjUwZTVlM2IyNTc5NGQ3
ZGQ4YWUyYWYxNWNhMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC03OSw4ICs3OSw4IEBAIFN0cmluZyBTY3JpcHREZWJ1Z1Nl
cnZlcjo6c2V0QnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTY3JpcHRC
cmVhCiAKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gYXJncyA9IHY4OjpPYmplY3Q6Ok5ldygp
OwogICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInNvdXJjZUlEIiksIHY4U3Ry
aW5nKHNvdXJjZUlEKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibGlu
ZU51bWJlciIpLCB2OEludGVnZXIoc2NyaXB0QnJlYWtwb2ludC5saW5lTnVtYmVyKSk7Ci0gICAg
YXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29sdW1uTnVtYmVyIiksIHY4SW50ZWdl
cihzY3JpcHRCcmVha3BvaW50LmNvbHVtbk51bWJlcikpOworICAgIGFyZ3MtPlNldCh2ODo6U3Ry
aW5nOjpOZXdTeW1ib2woImxpbmVOdW1iZXIiKSwgdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoc2Ny
aXB0QnJlYWtwb2ludC5saW5lTnVtYmVyKSk7CisgICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5l
d1N5bWJvbCgiY29sdW1uTnVtYmVyIiksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKHNjcmlwdEJy
ZWFrcG9pbnQuY29sdW1uTnVtYmVyKSk7CiAgICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbCgiY29uZGl0aW9uIiksIHY4U3RyaW5nKHNjcmlwdEJyZWFrcG9pbnQuY29uZGl0aW9uKSk7
CiAKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gc2V0QnJlYWtwb2ludEZ1bmN0aW9uID0g
djg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobV9kZWJ1Z2dlclNjcmlwdC5nZXQoKS0+R2V0
KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgic2V0QnJlYWtwb2ludCIpKSk7CkBAIC00MzgsNyArNDM4
LDcgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6Y29tcGlsZVNjcmlwdChTY3JpcHRTdGF0ZSog
c3RhdGUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2kKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+
IGNvZGUgPSB2OFN0cmluZyhleHByZXNzaW9uKTsKICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7
CiAKLSAgICB2ODo6U2NyaXB0T3JpZ2luIG9yaWdpbih2OFN0cmluZyhzb3VyY2VVUkwpLCB2OElu
dGVnZXIoMCksIHY4SW50ZWdlcigwKSk7CisgICAgdjg6OlNjcmlwdE9yaWdpbiBvcmlnaW4odjhT
dHJpbmcoc291cmNlVVJMKSwgdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoMCksIHY4SW50ZWdlcldp
dGhvdXRJc29sYXRlKDApKTsKICAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4
OjpTY3JpcHQ6Ok5ldyhjb2RlLCAmb3JpZ2luKTsKIAogICAgIGlmICh0cnlDYXRjaC5IYXNDYXVn
aHQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0U291
cmNlQ29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2Rl
LmNwcAppbmRleCA4Yzc4YjY0YTJlMjExZjVlNDU5YjQ4MThiNGU5ODQ2MzZlZmRjYmNhLi5jYTNm
ZDQ3M2IyZDc2ZGNkZDUzNTk3MDhiYjM0ZWFjNzc2Y2M1YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmNwcApAQCAtNjAsOCArNjAsOCBAQCBQ
YXNzT3duUHRyPHY4OjpTY3JpcHREYXRhPiBTY3JpcHRTb3VyY2VDb2RlOjpwcmVjb21waWxlU2Ny
aXB0KHY4OjpIYW5kbGU8djg6OlN0cgogdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBTY3JpcHRTb3Vy
Y2VDb2RlOjpjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmluZz4gY29kZSwgY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
LCB2ODo6U2NyaXB0RGF0YSogc2NyaXB0RGF0YSkKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJp
bmc+IG5hbWUgPSB2OFN0cmluZyhmaWxlTmFtZSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6SW50ZWdl
cj4gbGluZSA9IHY4SW50ZWdlcihzY3JpcHRTdGFydFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJ
bnQoKSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6SW50ZWdlcj4gY29sdW1uID0gdjhJbnRlZ2VyKHNj
cmlwdFN0YXJ0UG9zaXRpb24ubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkpOworICAgIHY4OjpIYW5k
bGU8djg6OkludGVnZXI+IGxpbmUgPSB2OEludGVnZXJXaXRob3V0SXNvbGF0ZShzY3JpcHRTdGFy
dFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKSk7CisgICAgdjg6OkhhbmRsZTx2ODo6SW50
ZWdlcj4gY29sdW1uID0gdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoc2NyaXB0U3RhcnRQb3NpdGlv
bi5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKSk7CiAgICAgdjg6OlNjcmlwdE9yaWdpbiBvcmlnaW4o
bmFtZSwgbGluZSwgY29sdW1uKTsKICAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9
IHY4OjpTY3JpcHQ6OkNvbXBpbGUoY29kZSwgJm9yaWdpbiwgc2NyaXB0RGF0YSk7CiAgICAgcmV0
dXJuIHNjcmlwdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggNWRl
NmVlY2E0OWM0OGMwODMzNjAyYTdkODUwOGJmNDA0ZWNiNmQyZS4uMGRlNzMwMzM3ZjU4NGVhMDIy
MzYxNjcxN2M1Y2I5NGJmNWQ4NTgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmgKQEAgLTE3OSw2ICsxNzksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBy
ZXR1cm4gVjhQZXJJc29sYXRlRGF0YTo6ZnJvbShpc29sYXRlKS0+aW50ZWdlckNhY2hlKCktPnY4
SW50ZWdlcih2YWx1ZSwgaXNvbGF0ZSk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IEFsbCBjYWxs
IHNpdGVzIG9mIHRoaXMgbWV0aG9kIHNob3VsZCB1c2UgdjhJbnRlZ2VyKCkuCisgICAgaW5saW5l
IHY4OjpIYW5kbGU8djg6OkludGVnZXI+IHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGludCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2OEludGVnZXIodmFsdWUsIHY4OjpJc29sYXRlOjpH
ZXRDdXJyZW50KCkpOworICAgIH0KKwogICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpJbnRlZ2Vy
PiB2OFVuc2lnbmVkSW50ZWdlcih1bnNpZ25lZCB2YWx1ZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUg
PSAwKQogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFpc29sYXRlKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGQ2ZGEz
Mjk3YWZjNjVlMGU2MDAwYTg4MmZmMDE0ZTQxZjM4MWZjODEuLjFjOWQyOGM0OGI0NTkzMjg2MzY0
MzEzY2QwNWYzMWMyYTkyMTQ0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01Db25maWd1cmF0aW9uLmNwcApAQCAtNDksOCArNDksOCBAQCB2b2lkIFY4RE9NQ29u
ZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHModjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b25UZW1wbGF0ZQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uc3RhbnRDb3VudDsg
KytpKSB7CiAgICAgICAgIGNvbnN0IEJhdGNoZWRDb25zdGFudCogY29uc3RhbnQgPSAmY29uc3Rh
bnRzW2ldOwotICAgICAgICBmdW5jdGlvbkRlc2NyaXB0b3ItPlNldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woY29uc3RhbnQtPm5hbWUpLCB2OEludGVnZXIoY29uc3RhbnQtPnZhbHVlKSwgdjg6OlJl
YWRPbmx5KTsKLSAgICAgICAgcHJvdG90eXBlLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKGNv
bnN0YW50LT5uYW1lKSwgdjhJbnRlZ2VyKGNvbnN0YW50LT52YWx1ZSksIHY4OjpSZWFkT25seSk7
CisgICAgICAgIGZ1bmN0aW9uRGVzY3JpcHRvci0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChj
b25zdGFudC0+bmFtZSksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGNvbnN0YW50LT52YWx1ZSks
IHY4OjpSZWFkT25seSk7CisgICAgICAgIHByb3RvdHlwZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbChjb25zdGFudC0+bmFtZSksIHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGNvbnN0YW50LT52
YWx1ZSksIHY4OjpSZWFkT25seSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOE5QVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhOUFV0aWxzLmNwcAppbmRleCAwN2Y0NGE3Mjk0NmY4OTJiYjU4YjFmMGI3YmVlMTc2ZmZl
MWFhYWZjLi42OTc0ZWJiZTVlODBjNTg3Mjg3OTU0MzExYzBjZDlmYjBiMzI2ZWQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QVXRpbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBVdGlscy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnROUFZhcmlhbnRUb1Y4T2JqZWN0KGNvbnN0IE5QVmFy
aWFudCogdmFyaWFudCwgTlBPYmoKIAogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgTlBW
YXJpYW50VHlwZV9JbnQzMjoKLSAgICAgICAgcmV0dXJuIHY4SW50ZWdlcihOUFZBUklBTlRfVE9f
SU5UMzIoKnZhcmlhbnQpKTsKKyAgICAgICAgcmV0dXJuIHY4SW50ZWdlcldpdGhvdXRJc29sYXRl
KE5QVkFSSUFOVF9UT19JTlQzMigqdmFyaWFudCkpOwogICAgIGNhc2UgTlBWYXJpYW50VHlwZV9E
b3VibGU6CiAgICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoTlBWQVJJQU5UX1RPX0RPVUJM
RSgqdmFyaWFudCkpOwogICAgIGNhc2UgTlBWYXJpYW50VHlwZV9Cb29sOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IDhjOTNlODM0MWI0Yjk0MDI2ODAw
ZWM2YmQyOTNlM2U2YWQ3ZmI4ZGUuLjdlMGFiYzMwMmNjY2ZhZGY1NDkyZWRjNDUwMzFmNzNjMDZk
NGFlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAg
LTU5LDcgKzU5LDcgQEAgdm9pZCBjcmVhdGVIaWRkZW5EZXBlbmRlbmN5KHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gb2JqZWN0LCB2ODo6TG9jYWw8djg6OlZhbHVlPgogICAgIH0KIAogICAgIHY4OjpM
b2NhbDx2ODo6QXJyYXk+IGNhY2hlQXJyYXkgPSB2ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2FzdChj
YWNoZSk7Ci0gICAgY2FjaGVBcnJheS0+U2V0KHY4SW50ZWdlcihjYWNoZUFycmF5LT5MZW5ndGgo
KSksIHZhbHVlKTsKKyAgICBjYWNoZUFycmF5LT5TZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUo
Y2FjaGVBcnJheS0+TGVuZ3RoKCkpLCB2YWx1ZSk7CiB9CiAKIGJvb2wgZXh0cmFjdFRyYW5zZmVy
YWJsZXModjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkmIHBvcnRz
LCBBcnJheUJ1ZmZlckFycmF5JiBhcnJheUJ1ZmZlcnMsIHY4OjpJc29sYXRlKiBpc29sYXRlKQpA
QCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgcmVtb3ZlSGlkZGVuRGVwZW5kZW5jeSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IG9iamVjdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4KICAgICAgICAgcmV0dXJu
OwogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGNhY2hlQXJyYXkgPSB2ODo6TG9jYWw8djg6OkFy
cmF5Pjo6Q2FzdChjYWNoZSk7CiAgICAgZm9yIChpbnQgaSA9IGNhY2hlQXJyYXktPkxlbmd0aCgp
IC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FjaGVk
ID0gY2FjaGVBcnJheS0+R2V0KHY4SW50ZWdlcihpKSk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGNhY2hlZCA9IGNhY2hlQXJyYXktPkdldCh2OEludGVnZXJXaXRob3V0SXNvbGF0ZShp
KSk7CiAgICAgICAgIGlmIChjYWNoZWQtPlN0cmljdEVxdWFscyh2YWx1ZSkpIHsKICAgICAgICAg
ICAgIGNhY2hlQXJyYXktPkRlbGV0ZShpKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcAppbmRl
eCBmMTE4YzM1ZTRjNTZmYzMzNmIwZmNmYzA0NDkyMzE4YmEzOTM2ZDkyLi40OGRjNGM0NDkzMDg0
MDQxZTM2MWNjOTRkNGVlZDdhODliYTk5YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRsZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25DCiAgICAgaWYgKCFsaXN0ZW5lci5Jc0VtcHR5KCkgJiYgbGlz
dGVuZXItPklzRnVuY3Rpb24oKSkgewogICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBj
YWxsRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CiAg
ICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0
Q3VycmVudCgpLT5HbG9iYWwoKTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFt
ZXRlcnNbM10gPSB7IHY4U3RyaW5nKGVycm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVy
cm9yRXZlbnQtPmZpbGVuYW1lKCkpLCB2OEludGVnZXIoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07
CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmlu
ZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJvckV2ZW50LT5maWxlbmFtZSgp
KSwgdjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CiAgICAg
ICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaDsKICAgICAgICAgdHJ5Q2F0Y2guU2V0VmVyYm9zZSh0
cnVlKTsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBTY3JpcHRDb250cm9sbGVyOjpjYWxsRnVuY3Rp
b25XaXRoSW5zdHJ1bWVudGF0aW9uKDAsIGNhbGxGdW5jdGlvbiwgdGhpc1ZhbHVlLCAzLCBwYXJh
bWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCmluZGV4IGRkNDVhODRjMzAxNWQ4NDExMGE0NTkx
OTM5ZDQ0MTMyYjcyOWEyOTIuLjFiZjA0OWFiZDhhZDk1YWVmMmY4Yjg5NjQ0YWM3ZmUwNWY0NWM0
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2ODo6TG9jYWw8djg6
OlZhbHVlPiBWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI6OmNhbGxMaXN0ZW5lckZ1bmN0aW9u
KFNjcmlwdEV4ZQogICAgICAgICBFcnJvckV2ZW50KiBlcnJvckV2ZW50ID0gc3RhdGljX2Nhc3Q8
RXJyb3JFdmVudCo+KGV2ZW50KTsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY2Fs
bEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXIpOwogICAg
ICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc1ZhbHVlID0gdjg6OkNvbnRleHQ6OkdldEN1
cnJlbnQoKS0+R2xvYmFsKCk7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0
ZXJzWzNdID0geyB2OFN0cmluZyhlcnJvckV2ZW50LT5tZXNzYWdlKCkpLCB2OFN0cmluZyhlcnJv
ckV2ZW50LT5maWxlbmFtZSgpKSwgdjhJbnRlZ2VyKGVycm9yRXZlbnQtPmxpbmVubygpKSB9Owor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGFyYW1ldGVyc1szXSA9IHsgdjhTdHJpbmco
ZXJyb3JFdmVudC0+bWVzc2FnZSgpKSwgdjhTdHJpbmcoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSks
IHY4SW50ZWdlcldpdGhvdXRJc29sYXRlKGVycm9yRXZlbnQtPmxpbmVubygpKSB9OwogICAgICAg
ICBWOFJlY3Vyc2lvblNjb3BlIHJlY3Vyc2lvblNjb3BlKGNvbnRleHQpOwogICAgICAgICByZXR1
cm5WYWx1ZSA9IGNhbGxGdW5jdGlvbi0+Q2FsbCh0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlw
dERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlw
dERlYnVnU2VydmVyLmNwcAppbmRleCA0NTU5YTlhZDkwOWExY2FiOTJmMGViNzU3ZjE2NzA0OThj
MWY3NDI1Li5jYTczOWM2NTM0MzY5NDYxNzI0OTAzMzdiYzE0NDZlZDBmMzllM2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFk
ZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQogICAgIEFTU0VSVCghdmFs
dWUtPklzVW5kZWZpbmVkKCkgJiYgdmFsdWUtPklzQXJyYXkoKSk7CiAgICAgdjg6OkhhbmRsZTx2
ODo6QXJyYXk+IHNjcmlwdHNBcnJheSA9IHY4OjpIYW5kbGU8djg6OkFycmF5Pjo6Q2FzdCh2YWx1
ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjcmlwdHNBcnJheS0+TGVuZ3RoKCk7
ICsraSkKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdChzY3JpcHRzQXJyYXktPkdldCh2OEludGVnZXIoaSkpKSk7Cisg
ICAgICAgIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UobGlzdGVuZXIsIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3Qoc2NyaXB0c0FycmF5LT5HZXQodjhJbnRlZ2VyV2l0aG91dElzb2xhdGUoaSkp
KSk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNj
cmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApp
bmRleCBiOGU4ZDA5YzQ4Y2FjNWY1ZmQ1OThjNGU5NzFmNTEwN2I2ZjEyMGYxLi43NWE0NWVmNWQz
YzEyZDAzYjViY2NhNjkyZTg5NzcyMmIxOWE1YTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9t
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFY4TXV0YXRpb25DYWxsYmFjazo6aGFuZGxlRXZl
bnQoTXV0YXRpb25SZWNvcmRBcnJheSogbXV0YXRpb25zLCBNdXRhdGlvbk9icwogCiAgICAgdjg6
OkxvY2FsPHY4OjpBcnJheT4gbXV0YXRpb25zQXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhtdXRhdGlv
bnMtPnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNpemUo
KTsgKytpKQotICAgICAgICBtdXRhdGlvbnNBcnJheS0+U2V0KHY4SW50ZWdlcihpKSwgdG9WOCht
dXRhdGlvbnMtPmF0KGkpLmdldCgpKSk7CisgICAgICAgIG11dGF0aW9uc0FycmF5LT5TZXQodjhJ
bnRlZ2VyV2l0aG91dElzb2xhdGUoaSksIHRvVjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOwog
CiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZl
cik7CiAgICAgaWYgKG9ic2VydmVySGFuZGxlLklzRW1wdHkoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>