<?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>126091</bug_id>
          
          <creation_ts>2013-12-20 16:02:54 -0800</creation_ts>
          <short_desc>Web Inspector: Remove the references to Node in InjectedScript</short_desc>
          <delta_ts>2013-12-27 09:04:51 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>roger_fong</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962094</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-20 16:02:54 -0800</bug_when>
    <thetext>If InjectedScript is to be moved down to JavaScriptCore it must be scrubbed of DOM references. The last references that exist are &quot;Node&quot; related. They are all just wrappers around existing functions. Eliminate the wrappers, and where possible move Node &lt;-&gt; JSNode conversions to InspectorDOMAgent static interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962096</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-12-20 16:03:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/15712401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962098</commentid>
    <comment_count>2</comment_count>
      <attachid>219807</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-20 16:06:58 -0800</bug_when>
    <thetext>Created attachment 219807
[PATCH] Proposed Fix

Yay! This is the last of a set of &quot;in WebCore&quot; cleanup patches. The next patch will be moving a BUNCH of files into JavaScriptCore to get RuntimeAgent working there. These recent patches will make it so when the files move there are as few as possible diffs between then files, making reviewing easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962108</commentid>
    <comment_count>3</comment_count>
      <attachid>219810</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-20 16:43:02 -0800</bug_when>
    <thetext>Created attachment 219810
[PATCH] Proposed Fix

Rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962164</commentid>
    <comment_count>4</comment_count>
      <attachid>219810</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-20 18:43:49 -0800</bug_when>
    <thetext>Comment on attachment 219810
[PATCH] Proposed Fix

Clearing flags on attachment: 219810

Committed r160955: &lt;http://trac.webkit.org/changeset/160955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962165</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-20 18:43:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962958</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-25 21:20:34 -0800</bug_when>
    <thetext>This change breaks the Windows Release build, because the compiler can&apos;t decide if the  PropertyDescriptor referenced in the code refers to JSC::PropertyDescriptor, or  Inspector::TypeBuilder::Runtime::PropertyDescriptor, likewise with CallFrame.

You and I can figure it out (as can the Debug build), but the Release build is missing something (despite the &apos;using&apos; declaration.)

My laptop decided to stop booting yesterday, so I can&apos;t fix it remotely. could you please check in a fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963125</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-27 09:04:51 -0800</bug_when>
    <thetext>I think I got a fix in with:
&lt;http://trac.webkit.org/changeset/161091&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219807</attachid>
            <date>2013-12-20 16:06:58 -0800</date>
            <delta_ts>2013-12-20 16:43:02 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>injected.patch</filename>
            <type>text/plain</type>
            <size>15238</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZjhmNzllLi41ZjQyOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTMtMTItMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdGhlIHJlZmVyZW5jZXMgdG8gTm9kZSBpbiBJ
bmplY3RlZFNjcmlwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBsYXN0IERPTSByZWZlcmVuY2VzIGZyb20gSW5qZWN0ZWRTY3JpcHQg
c28gdGhhdAorICAgICAgICBJbmplY3RlZFNjcmlwdCBjYW4gbW92ZSBkb3duIGludG8gSmF2YVNj
cmlwdENvcmUuIFRoZSBvbmx5CisgICAgICAgIHJlbWFpbmluZyByZWZlcmVuY2VzIHdlcmUgdG8g
Tm9kZXMsIHdoaWNoIGFyZSBhbGwganVzdCB0aGluCisgICAgICAgIHdyYXBwZXJzIGFyb3VuZCBl
eGlzdGluZyBmdW5jdGlvbnMuIE1vdmUgTm9kZSAvIEpTTm9kZSAoSlNWYWx1ZSkKKyAgICAgICAg
Y29udmVyc2lvbiBpbnRvIEluc3BlY3RvckRPTUFnZW50LCB3aGVyZSBpdCB3YXMgdXNlZC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG9ic2VydmFibGUgY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkluamVjdGVkU2NyaXB0OjppbnNwZWN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkluamVjdGVkU2NyaXB0OjpyZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6Zm9jdXNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpoaWdobGlnaHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
bm9kZUZvck9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpy
ZXNvbHZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVB
c1NjcmlwdFZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHA6CisKKzIwMTMtMTItMjAg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBHaXZlIHRoZSBDb21tYW5kTGluZUFQSU1vZHVsZSBpdHMgb3duIEhvc3Qgb2JqZWN0
LCBtYWtpbmcgSW5qZWN0ZWRTY3JpcHRIb3N0IHZpYWJsZSBmb3IgYSBKUyBDb250ZXh0CiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYwODIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhv
c3RDdXN0b20uY3BwCmluZGV4IDdmZjVkNWYuLjk5NjA4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAK
QEAgLTU5LDIyICs1OSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotTm9kZSogSW5qZWN0ZWRTY3JpcHRIb3N0OjpzY3JpcHRWYWx1ZUFzTm9kZShEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkg
fHwgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b05vZGUo
dmFsdWUuanNWYWx1ZSgpKTsKLX0KLQotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgSW5qZWN0ZWRT
Y3JpcHRIb3N0Ojpub2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUq
IG5vZGUpCi17Ci0gICAgaWYgKCFzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShzdGF0ZSwgbm9kZSkp
Ci0gICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwganNO
dWxsKCkpOwotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2soc3RhdGUpOwotICAgIHJldHVybiBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgdG9KUyhzdGF0ZSwgZGVwcmVjYXRlZEds
b2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSksIG5vZGUpKTsKLX0KLQogSlNWYWx1ZSBKU0lu
amVjdGVkU2NyaXB0SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggOTliYTlkZi4uZDEzNGEzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC0xNDQsMjkg
KzE0NCw2IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmdldEludGVybmFsUHJvcGVydGllcyhFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluCiAgICAgICAgICpwcm9wZXJ0aWVzID0g
YXJyYXk7CiB9CiAKLU5vZGUqIEluamVjdGVkU2NyaXB0Ojpub2RlRm9yT2JqZWN0SWQoY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCkKLXsKLSAgICBpZiAoaGFzTm9WYWx1ZSgpIHx8ICFjYW5BY2Nlc3NJ
bnNwZWN0ZWRXaW5kb3coKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBEZXByZWNhdGVkOjpT
Y3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgIm5vZGVG
b3JPYmplY3RJZCIsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFkKTsK
LSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJZCk7Ci0KLSAgICBib29sIGhhZEV4
Y2VwdGlvbiA9IGZhbHNlOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHJlc3VsdFZhbHVl
ID0gY2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24pOwot
ICAgIEFTU0VSVCghaGFkRXhjZXB0aW9uKTsKLQotICAgIHJldHVybiBJbmplY3RlZFNjcmlwdEhv
c3Q6OnNjcmlwdFZhbHVlQXNOb2RlKHJlc3VsdFZhbHVlKTsKLX0KLQotdm9pZCBJbmplY3RlZFNj
cmlwdDo6cmVsZWFzZU9iamVjdChjb25zdCBTdHJpbmcmIG9iamVjdElkKQotewotICAgIERlcHJl
Y2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgp
LCAicmVsZWFzZU9iamVjdCIsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhy
ZWFkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJZCk7Ci0gICAgUmVmUHRy
PEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Ci0gICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHQp
OwotfQotCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiBQYXNzUmVmUHRyPEFycmF5
PENhbGxGcmFtZT4+IEluamVjdGVkU2NyaXB0Ojp3cmFwQ2FsbEZyYW1lcyhjb25zdCBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcykKIHsKQEAgLTIxNywxMSArMTk0LDYgQEAgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IElu
amVjdGVkU2NyaXB0Ojp3cmFwVGEKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
UnVudGltZTo6UmVtb3RlT2JqZWN0OjpydW50aW1lQ2FzdChyYXdSZXN1bHQpOwogfQogCi1QYXNz
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5q
ZWN0ZWRTY3JpcHQ6OndyYXBOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1l
KQotewotICAgIHJldHVybiB3cmFwT2JqZWN0KG5vZGVBc1NjcmlwdFZhbHVlKG5vZGUpLCBncm91
cE5hbWUpOwotfQotCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbmplY3RlZFNjcmlwdDo6Zmlu
ZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkgY29uc3QKIHsKICAgICBBU1NFUlQo
IWhhc05vVmFsdWUoKSk7CkBAIC0yMzQsMTEgKzIwNiwxOSBAQCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBJbmplY3RlZFNjcmlwdDo6ZmluZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCkgYwogICAgIHJldHVybiByZXN1bHRWYWx1ZTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6
aW5zcGVjdE5vZGUoTm9kZSogbm9kZSkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6Omluc3BlY3RPYmpl
Y3QoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdmFsdWUpCiB7CiAgICAgQVNTRVJUKCFoYXNOb1Zh
bHVlKCkpOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmpl
Y3RlZFNjcmlwdE9iamVjdCgpLCAiaW5zcGVjdE5vZGUiLCBXZWJDb3JlOjpmdW5jdGlvbkNhbGxI
YW5kbGVyRnJvbUFueVRocmVhZCk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQobm9kZUFz
U2NyaXB0VmFsdWUobm9kZSkpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBm
dW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAiaW5zcGVjdE9iamVjdCIsIFdlYkNvcmU6
OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudCh2YWx1ZSk7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7CisgICAg
bWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHQpOworfQorCit2b2lkIEluamVjdGVkU2NyaXB0Ojpy
ZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCit7CisgICAgRGVwcmVjYXRlZDo6
U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0KCksICJyZWxl
YXNlT2JqZWN0IiwgV2ViQ29yZTo6ZnVuY3Rpb25DYWxsSGFuZGxlckZyb21BbnlUaHJlYWQpOwor
ICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdElkKTsKICAgICBSZWZQdHI8SW5zcGVj
dG9yVmFsdWU+IHJlc3VsdDsKICAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdCk7CiB9CkBA
IC0yNTMsMTEgKzIzMyw2IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnJlbGVhc2VPYmplY3RHcm91
cChjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogICAgIEFTU0VSVCghaGFkRXhjZXB0aW9uKTsK
IH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgSW5qZWN0ZWRTY3JpcHQ6Om5vZGVBc1Njcmlw
dFZhbHVlKE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdDo6bm9k
ZUFzU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUoKSwgbm9kZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCmluZGV4IGZkOWI5ZTUuLmFkZmU0ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC04NSwyNyArODUsMjMgQEAg
cHVibGljOgogICAgIHZvaWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBmdW5jdGlvbklkLCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6RGVidWdn
ZXI6OkZ1bmN0aW9uRGV0YWlscz4qIHJlc3VsdCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBvd25Qcm9wZXJ0aWVzLCBS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPj4qIHJlc3VsdCk7CiAgICAgdm9pZCBnZXRJ
bnRlcm5hbFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PiogcmVzdWx0KTsKLSAgICBO
b2RlKiBub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7Ci0gICAgdm9pZCBy
ZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogCiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpB
cnJheTxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPj4gd3JhcENh
bGxGcmFtZXMoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmKTsKICNlbmRpZgotCiAgICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+
IHdyYXBPYmplY3QoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBTdHJpbmcm
IGdyb3VwTmFtZSwgYm9vbCBnZW5lcmF0ZVByZXZpZXcgPSBmYWxzZSkgY29uc3Q7CiAgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHdy
YXBUYWJsZShjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdGFibGUsIGNvbnN0IERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlJiBjb2x1bW5zKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE5vZGUoTm9kZSos
IGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKKwogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
IGZpbmRPYmplY3RCeUlkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpIGNvbnN0OworICAgIHZvaWQg
aW5zcGVjdE9iamVjdChEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSk7CiAKLSAgICB2b2lkIGluc3Bl
Y3ROb2RlKE5vZGUqKTsKLSAgICB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChjb25zdCBTdHJpbmcm
KTsKKyAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CisgICAg
dm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCk7CiAKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogICAgIGZyaWVu
ZCBJbmplY3RlZFNjcmlwdCBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0Rm9y
KEpTQzo6RXhlY1N0YXRlKik7CiAgICAgSW5qZWN0ZWRTY3JpcHQoRGVwcmVjYXRlZDo6U2NyaXB0
T2JqZWN0LCBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKTsKLQotICAgIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlIG5vZGVBc1NjcmlwdFZhbHVlKE5vZGUqKTsKIH07CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IGE1MDk3YzYu
LjNiYjZjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRI
b3N0LmgKQEAgLTQ3LDkgKzQ3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElu
amVjdGVkU2NyaXB0SG9zdD4gY3JlYXRlKCk7CiAgICAgfkluamVjdGVkU2NyaXB0SG9zdCgpIHsg
fQogCi0gICAgc3RhdGljIE5vZGUqIHNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKTsKLSAgICBzdGF0aWMgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgbm9kZUFzU2NyaXB0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKik7Ci0KIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRT
Y3JpcHRIb3N0KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDljODhjNzMuLjdiZmY3ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEyNSw3ICsx
MjUsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBh
cmFtIHsqfSBvYmplY3QKICAgICAgKi8KLSAgICBpbnNwZWN0Tm9kZTogZnVuY3Rpb24ob2JqZWN0
KQorICAgIGluc3BlY3RPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCkKICAgICB7CiAgICAgICAgIGlm
ICh0aGlzLl9jb21tYW5kTGluZUFQSUltcGwpCiAgICAgICAgICAgICB0aGlzLl9jb21tYW5kTGlu
ZUFQSUltcGwuaW5zcGVjdChvYmplY3QpOwpAQCAtNjQyLDE4ICs2NDIsNiBAQCBJbmplY3RlZFNj
cmlwdC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBvYmplY3RJZAotICAgICAqIEByZXR1cm4ge05vZGV9Ci0gICAgICovCi0gICAgbm9kZUZv
ck9iamVjdElkOiBmdW5jdGlvbihvYmplY3RJZCkKLSAgICB7Ci0gICAgICAgIHZhciBvYmplY3Qg
PSB0aGlzLmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKLSAgICAgICAgaWYgKCFvYmplY3QgfHwg
dGhpcy5fc3VidHlwZShvYmplY3QpICE9PSAibm9kZSIpCi0gICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgcmV0dXJuIC8qKiBAdHlwZSB7Tm9kZX0gKi8gKG9iamVjdCk7Ci0gICAgfSwK
LQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHJldHVybiB7
T2JqZWN0fQogICAgICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKaW5kZXggNjIwNzFkMi4uN2VlMDUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03NywxMSArNzcsMTMgQEAKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUg
Ik1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOb2Rl
LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
UGFnZUluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgi
CkBAIC05OTgsMTEgKzEwMDAsMTIgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Zm9jdXNOb2Rl
KCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEZvcihtYWluV29ybGRFeGVjU3RhdGUoZnJhbWUpKTsKKyAgICBKU0M6OkV4ZWNTdGF0ZSogc2Ny
aXB0U3RhdGUgPSBtYWluV29ybGRFeGVjU3RhdGUoZnJhbWUpOworICAgIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
Rm9yKHNjcmlwdFN0YXRlKTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpbmplY3RlZFNjcmlwdC5pbnNwZWN0Tm9kZShub2RlLmdl
dCgpKTsKKyAgICBpbmplY3RlZFNjcmlwdC5pbnNwZWN0T2JqZWN0KEluc3BlY3RvckRPTUFnZW50
Ojpub2RlQXNTY3JpcHRWYWx1ZShzY3JpcHRTdGF0ZSwgbm9kZS5nZXQoKSkpOwogfQogCiB2b2lk
IEluc3BlY3RvckRPTUFnZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkKQpAQCAtMTA5MCw4ICsxMDkzLDcgQEAgdm9pZCBJbnNw
ZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IFJlZlB0cjxJbnMKICAgICBpZiAobm9kZUlkKSB7CiAgICAgICAgIG5vZGUgPSBhc3NlcnRO
b2RlKGVycm9yU3RyaW5nLCAqbm9kZUlkKTsKICAgICB9IGVsc2UgaWYgKG9iamVjdElkKSB7Ci0g
ICAgICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQoKm9iamVjdElkKTsKLSAgICAgICAgbm9k
ZSA9IGluamVjdGVkU2NyaXB0Lm5vZGVGb3JPYmplY3RJZCgqb2JqZWN0SWQpOworICAgICAgICBu
b2RlID0gbm9kZUZvck9iamVjdElkKCpvYmplY3RJZCk7CiAgICAgICAgIGlmICghbm9kZSkKICAg
ICAgICAgICAgICplcnJvclN0cmluZyA9ICJOb2RlIGZvciBnaXZlbiBvYmplY3RJZCBub3QgZm91
bmQiOwogICAgIH0gZWxzZQpAQCAtMTI0MSw4ICsxMjQzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6Z2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQs
IFJlZlAKIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKIHsKLSAgICBJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNj
cmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKLSAgICBOb2RlKiBub2RlID0gaW5qZWN0ZWRTY3Jp
cHQubm9kZUZvck9iamVjdElkKG9iamVjdElkKTsKKyAgICBOb2RlKiBub2RlID0gbm9kZUZvck9i
amVjdElkKG9iamVjdElkKTsKICAgICBpZiAobm9kZSkKICAgICAgICAgKm5vZGVJZCA9IHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CiAgICAgZWxzZQpAQCAtMTcwNiw2ICsxNzA3LDEzIEBA
IE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgp
CiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKK05vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9y
T2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKK3sKKyAgICBJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZv
ck9iamVjdElkKG9iamVjdElkKTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSA9
IGluamVjdGVkU2NyaXB0LmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKKyAgICByZXR1cm4gSW5z
cGVjdG9yRE9NQWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKHZhbHVlKTsKK30KKwogdm9pZCBJbnNw
ZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCkKIHsKICAgICBpZiAoTm9k
ZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgpKQpAQCAtMTczNywxMSArMTc0NSwyOSBAQCBQYXNz
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5z
cGVjdG9yRE9NQWdlbnQ6OnJlcwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci0+aW5qZWN0ZWRTY3JpcHRGb3IobWFpbldvcmxkRXhlY1N0YXRlKGZyYW1lKSk7CisgICAg
SlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0gbWFpbldvcmxkRXhlY1N0YXRlKGZyYW1lKTsK
KyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5pbmplY3RlZFNjcmlwdEZvcihzY3JpcHRTdGF0ZSk7CiAgICAgaWYgKGluamVjdGVkU2Ny
aXB0Lmhhc05vVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gaW5qZWN0
ZWRTY3JpcHQud3JhcE5vZGUobm9kZSwgb2JqZWN0R3JvdXApOworICAgIHJldHVybiBpbmplY3Rl
ZFNjcmlwdC53cmFwT2JqZWN0KEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNTY3JpcHRWYWx1ZShz
Y3JpcHRTdGF0ZSwgbm9kZSksIG9iamVjdEdyb3VwKTsKK30KKworTm9kZSogSW5zcGVjdG9yRE9N
QWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlKQor
eworICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gdG9Ob2RlKHZhbHVlLmpzVmFsdWUoKSk7Cit9
CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNTY3Jp
cHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFz
aG91bGRBbGxvd0FjY2Vzc1RvTm9kZShzdGF0ZSwgbm9kZSkpCisgICAgICAgIHJldHVybiBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgSlNDOjpqc051bGwoKSk7CisKKyAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKHN0YXRlKTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUoc3RhdGUtPnZtKCksIHRvSlMoc3RhdGUsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RG
b3JQcm90b3R5cGUoc3RhdGUpLCBub2RlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggM2M0
Y2EzYy4uOTlkZDBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmgKQEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogYXNzZXJ0
RWxlbWVudChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogICAgIERvY3VtZW50KiBhc3NlcnRE
b2N1bWVudChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogCisgICAgc3RhdGljIE5vZGUqIHNj
cmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKTsKKyAgICBzdGF0aWMgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgbm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBO
b2RlKik7CisKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIG90aGVyIGFnZW50cy4KICAgICBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CiAK
QEAgLTIzOCw2ICsyNDEsNyBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpU
eXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVu
ZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSosIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXBJZCk7CiAKICAgICBOb2Rl
KiBub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIE5vZGUqIG5vZGVGb3JPYmpl
Y3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKIAogICAgIHZvaWQgZGlzY2FyZEJpbmRpbmdz
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcApp
bmRleCA5N2Q2OGQzLi5mMzczM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VDb25zb2xlQWdlbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBJbnNwZWN0YWJsZU5vZGUoTm9kZSogbm9kZSkgOiBtX25vZGUobm9kZSkgeyB9CiAgICAgdmly
dHVhbCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBnZXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKSBP
VkVSUklERQogICAgIHsKLSAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdDo6bm9kZUFz
U2NyaXB0VmFsdWUoc3RhdGUsIG1fbm9kZSk7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JET01B
Z2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoc3RhdGUsIG1fbm9kZSk7CiAgICAgfQogcHJpdmF0ZToK
ICAgICBOb2RlKiBtX25vZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219810</attachid>
            <date>2013-12-20 16:43:02 -0800</date>
            <delta_ts>2013-12-20 18:43:49 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>updated.patch</filename>
            <type>text/plain</type>
            <size>16666</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDg3MWRkYTU3OTRkZjJlOGViN2Y4MjMzOWQ2MDQ5YWZkOTYxOTRhYTcKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPHBlY29yYXJvQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgRGVjIDIwIDE2
OjM3OjU4IDIwMTMgLTA4MDAKCiAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdGhlIHJlZmVyZW5j
ZXMgdG8gTm9kZSBpbiBJbmplY3RlZFNjcmlwdAogICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNjA5MQogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KICAgIAogICAgUmVtb3ZlIHRoZSBsYXN0IERPTSByZWZlcmVuY2VzIGZyb20gSW5qZWN0ZWRT
Y3JpcHQgc28gdGhhdAogICAgSW5qZWN0ZWRTY3JpcHQgY2FuIG1vdmUgZG93biBpbnRvIEphdmFT
Y3JpcHRDb3JlLiBUaGUgb25seQogICAgcmVtYWluaW5nIHJlZmVyZW5jZXMgd2VyZSB0byBOb2Rl
cywgd2hpY2ggYXJlIGFsbCBqdXN0IHRoaW4KICAgIHdyYXBwZXJzIGFyb3VuZCBleGlzdGluZyBm
dW5jdGlvbnMuIE1vdmUgTm9kZSAvIEpTTm9kZSAoSlNWYWx1ZSkKICAgIGNvbnZlcnNpb24gaW50
byBJbnNwZWN0b3JET01BZ2VudCwgd2hlcmUgaXQgd2FzIHVzZWQuCiAgICAKICAgIE5vIG5ldyB0
ZXN0cywgbm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KICAgIAogICAgKiBi
aW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CiAgICAqIGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5jcHA6CiAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6Omluc3Bl
Y3RPYmplY3QpOgogICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpyZWxlYXNlT2JqZWN0KToK
ICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CiAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuaDoKICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgog
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgogICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50Ojpmb2N1c05vZGUpOgogICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpoaWdobGlnaHROb2RlKToKICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVz
dE5vZGUpOgogICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yT2JqZWN0SWQp
OgogICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpyZXNvbHZlTm9kZSk6CiAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKToKICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2NyaXB0VmFsdWUpOgogICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaDoKICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3Bw
OgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBjNjcwMmQ3Li5jNDQ2ZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MzggQEAKIDIwMTMtMTItMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdGhlIHJlZmVyZW5jZXMgdG8gTm9kZSBp
biBJbmplY3RlZFNjcmlwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIHRoZSBsYXN0IERPTSByZWZlcmVuY2VzIGZyb20gSW5qZWN0ZWRTY3Jp
cHQgc28gdGhhdAorICAgICAgICBJbmplY3RlZFNjcmlwdCBjYW4gbW92ZSBkb3duIGludG8gSmF2
YVNjcmlwdENvcmUuIFRoZSBvbmx5CisgICAgICAgIHJlbWFpbmluZyByZWZlcmVuY2VzIHdlcmUg
dG8gTm9kZXMsIHdoaWNoIGFyZSBhbGwganVzdCB0aGluCisgICAgICAgIHdyYXBwZXJzIGFyb3Vu
ZCBleGlzdGluZyBmdW5jdGlvbnMuIE1vdmUgTm9kZSAvIEpTTm9kZSAoSlNWYWx1ZSkKKyAgICAg
ICAgY29udmVyc2lvbiBpbnRvIEluc3BlY3RvckRPTUFnZW50LCB3aGVyZSBpdCB3YXMgdXNlZC4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG9ic2VydmFibGUgY2hhbmdlIGluIGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjppbnNwZWN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkluamVjdGVkU2NyaXB0OjpyZWxlYXNlT2JqZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6Zm9jdXNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpoaWdobGlnaHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6bm9kZUZvck9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpyZXNvbHZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2Ny
aXB0VmFsdWVBc05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om5v
ZGVBc1NjcmlwdFZhbHVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHA6CisKKzIwMTMtMTIt
MjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBHaXZlIHRoZSBDb21tYW5kTGluZUFQSU1vZHVsZSBpdHMgb3duIEhvc3Qgb2Jq
ZWN0LCBtYWtpbmcgSW5qZWN0ZWRTY3JpcHRIb3N0IHZpYWJsZSBmb3IgYSBKUyBDb250ZXh0CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYwODIKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhv
c3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlw
dEhvc3RDdXN0b20uY3BwCmluZGV4IDdmZjVkNWYuLjk5NjA4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5j
cHAKQEAgLTU5LDIyICs1OSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotTm9kZSogSW5qZWN0ZWRTY3JpcHRIb3N0OjpzY3JpcHRWYWx1ZUFzTm9kZShE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0
KCkgfHwgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b05v
ZGUodmFsdWUuanNWYWx1ZSgpKTsKLX0KLQotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgSW5qZWN0
ZWRTY3JpcHRIb3N0Ojpub2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5v
ZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShzdGF0ZSwgbm9k
ZSkpCi0gICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwg
anNOdWxsKCkpOwotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2soc3RhdGUpOwotICAgIHJldHVybiBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgdG9KUyhzdGF0ZSwgZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSksIG5vZGUpKTsKLX0KLQogSlNWYWx1ZSBK
U0luamVjdGVkU2NyaXB0SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggOTliYTlkZi4uZDEzNGEzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC0xNDQs
MjkgKzE0NCw2IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmdldEludGVybmFsUHJvcGVydGllcyhF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluCiAgICAgICAgICpwcm9wZXJ0aWVz
ID0gYXJyYXk7CiB9CiAKLU5vZGUqIEluamVjdGVkU2NyaXB0Ojpub2RlRm9yT2JqZWN0SWQoY29u
c3QgU3RyaW5nJiBvYmplY3RJZCkKLXsKLSAgICBpZiAoaGFzTm9WYWx1ZSgpIHx8ICFjYW5BY2Nl
c3NJbnNwZWN0ZWRXaW5kb3coKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBEZXByZWNhdGVk
OjpTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgIm5v
ZGVGb3JPYmplY3RJZCIsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFk
KTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJZCk7Ci0KLSAgICBib29sIGhh
ZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHJlc3VsdFZh
bHVlID0gY2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24p
OwotICAgIEFTU0VSVCghaGFkRXhjZXB0aW9uKTsKLQotICAgIHJldHVybiBJbmplY3RlZFNjcmlw
dEhvc3Q6OnNjcmlwdFZhbHVlQXNOb2RlKHJlc3VsdFZhbHVlKTsKLX0KLQotdm9pZCBJbmplY3Rl
ZFNjcmlwdDo6cmVsZWFzZU9iamVjdChjb25zdCBTdHJpbmcmIG9iamVjdElkKQotewotICAgIERl
cHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVj
dCgpLCAicmVsZWFzZU9iamVjdCIsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55
VGhyZWFkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJZCk7Ci0gICAgUmVm
UHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Ci0gICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1
bHQpOwotfQotCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiBQYXNzUmVmUHRyPEFy
cmF5PENhbGxGcmFtZT4+IEluamVjdGVkU2NyaXB0Ojp3cmFwQ2FsbEZyYW1lcyhjb25zdCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcykKIHsKQEAgLTIxNywxMSArMTk0LDYgQEAg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+
IEluamVjdGVkU2NyaXB0Ojp3cmFwVGEKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6UnVudGltZTo6UmVtb3RlT2JqZWN0OjpydW50aW1lQ2FzdChyYXdSZXN1bHQpOwogfQogCi1Q
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4g
SW5qZWN0ZWRTY3JpcHQ6OndyYXBOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgZ3JvdXBO
YW1lKQotewotICAgIHJldHVybiB3cmFwT2JqZWN0KG5vZGVBc1NjcmlwdFZhbHVlKG5vZGUpLCBn
cm91cE5hbWUpOwotfQotCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbmplY3RlZFNjcmlwdDo6
ZmluZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkgY29uc3QKIHsKICAgICBBU1NF
UlQoIWhhc05vVmFsdWUoKSk7CkBAIC0yMzQsMTEgKzIwNiwxOSBAQCBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBJbmplY3RlZFNjcmlwdDo6ZmluZE9iamVjdEJ5SWQoY29uc3QgU3RyaW5nJiBvYmpl
Y3RJZCkgYwogICAgIHJldHVybiByZXN1bHRWYWx1ZTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlw
dDo6aW5zcGVjdE5vZGUoTm9kZSogbm9kZSkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6Omluc3BlY3RP
YmplY3QoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdmFsdWUpCiB7CiAgICAgQVNTRVJUKCFoYXNO
b1ZhbHVlKCkpOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihp
bmplY3RlZFNjcmlwdE9iamVjdCgpLCAiaW5zcGVjdE5vZGUiLCBXZWJDb3JlOjpmdW5jdGlvbkNh
bGxIYW5kbGVyRnJvbUFueVRocmVhZCk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQobm9k
ZUFzU2NyaXB0VmFsdWUobm9kZSkpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2Fs
bCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAiaW5zcGVjdE9iamVjdCIsIFdlYkNv
cmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFkKTsKKyAgICBmdW5jdGlvbi5hcHBl
bmRBcmd1bWVudCh2YWx1ZSk7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Cisg
ICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHQpOworfQorCit2b2lkIEluamVjdGVkU2NyaXB0
OjpyZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCit7CisgICAgRGVwcmVjYXRl
ZDo6U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0KCksICJy
ZWxlYXNlT2JqZWN0IiwgV2ViQ29yZTo6ZnVuY3Rpb25DYWxsSGFuZGxlckZyb21BbnlUaHJlYWQp
OworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdElkKTsKICAgICBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+IHJlc3VsdDsKICAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdCk7CiB9
CkBAIC0yNTMsMTEgKzIzMyw2IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnJlbGVhc2VPYmplY3RH
cm91cChjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogICAgIEFTU0VSVCghaGFkRXhjZXB0aW9u
KTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgSW5qZWN0ZWRTY3JpcHQ6Om5vZGVBc1Nj
cmlwdFZhbHVlKE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdDo6
bm9kZUFzU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUoKSwgbm9kZSk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCmluZGV4IGZkOWI5ZTUuLmFkZmU0ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC04NSwyNyArODUsMjMg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBmdW5jdGlvbklkLCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6RGVi
dWdnZXI6OkZ1bmN0aW9uRGV0YWlscz4qIHJlc3VsdCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVz
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBvd25Qcm9wZXJ0aWVz
LCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPj4qIHJlc3VsdCk7CiAgICAgdm9pZCBn
ZXRJbnRlcm5hbFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElk
LCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PiogcmVzdWx0KTsKLSAg
ICBOb2RlKiBub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7Ci0gICAgdm9p
ZCByZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVy
OjpBcnJheTxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPj4gd3Jh
cENhbGxGcmFtZXMoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmKTsKICNlbmRpZgotCiAg
ICAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+IHdyYXBPYmplY3QoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBTdHJp
bmcmIGdyb3VwTmFtZSwgYm9vbCBnZW5lcmF0ZVByZXZpZXcgPSBmYWxzZSkgY29uc3Q7CiAgICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+
IHdyYXBUYWJsZShjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdGFibGUsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBjb2x1bW5zKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE5vZGUoTm9k
ZSosIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKKwogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIGZpbmRPYmplY3RCeUlkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpIGNvbnN0OworICAgIHZv
aWQgaW5zcGVjdE9iamVjdChEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSk7CiAKLSAgICB2b2lkIGlu
c3BlY3ROb2RlKE5vZGUqKTsKLSAgICB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7Cisg
ICAgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCk7CiAK
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogICAgIGZy
aWVuZCBJbmplY3RlZFNjcmlwdCBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0
Rm9yKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgSW5qZWN0ZWRTY3JpcHQoRGVwcmVjYXRlZDo6U2Ny
aXB0T2JqZWN0LCBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKTsKLQotICAgIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlIG5vZGVBc1NjcmlwdFZhbHVlKE5vZGUqKTsKIH07CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IGE1MDk3
YzYuLjNiYjZjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmgKQEAgLTQ3LDkgKzQ3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluamVjdGVkU2NyaXB0SG9zdD4gY3JlYXRlKCk7CiAgICAgfkluamVjdGVkU2NyaXB0SG9zdCgp
IHsgfQogCi0gICAgc3RhdGljIE5vZGUqIHNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlKTsKLSAgICBzdGF0aWMgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgbm9kZUFzU2Ny
aXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKik7Ci0KIHByaXZhdGU6CiAgICAgSW5qZWN0
ZWRTY3JpcHRIb3N0KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDljODhjNzMuLjdiZmY3ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEyNSw3
ICsxMjUsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHsqfSBvYmplY3QKICAgICAgKi8KLSAgICBpbnNwZWN0Tm9kZTogZnVuY3Rpb24ob2Jq
ZWN0KQorICAgIGluc3BlY3RPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCkKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9jb21tYW5kTGluZUFQSUltcGwpCiAgICAgICAgICAgICB0aGlzLl9jb21tYW5k
TGluZUFQSUltcGwuaW5zcGVjdChvYmplY3QpOwpAQCAtNjQyLDE4ICs2NDIsNiBAQCBJbmplY3Rl
ZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBvYmplY3RJZAotICAgICAqIEByZXR1cm4ge05vZGV9Ci0gICAgICovCi0gICAgbm9k
ZUZvck9iamVjdElkOiBmdW5jdGlvbihvYmplY3RJZCkKLSAgICB7Ci0gICAgICAgIHZhciBvYmpl
Y3QgPSB0aGlzLmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKLSAgICAgICAgaWYgKCFvYmplY3Qg
fHwgdGhpcy5fc3VidHlwZShvYmplY3QpICE9PSAibm9kZSIpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICAgICAgcmV0dXJuIC8qKiBAdHlwZSB7Tm9kZX0gKi8gKG9iamVjdCk7Ci0gICAg
fSwKLQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHJldHVy
biB7T2JqZWN0fQogICAgICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKaW5kZXggNjIwNzFkMi4uN2VlMDUwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03NywxMSArNzcsMTMgQEAK
ICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1
ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCkBAIC05OTgsMTEgKzEwMDAsMTIgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Zm9jdXNO
b2RlKCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNj
cmlwdEZvcihtYWluV29ybGRFeGVjU3RhdGUoZnJhbWUpKTsKKyAgICBKU0M6OkV4ZWNTdGF0ZSog
c2NyaXB0U3RhdGUgPSBtYWluV29ybGRFeGVjU3RhdGUoZnJhbWUpOworICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2Ny
aXB0Rm9yKHNjcmlwdFN0YXRlKTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbmplY3RlZFNjcmlwdC5pbnNwZWN0Tm9kZShub2Rl
LmdldCgpKTsKKyAgICBpbmplY3RlZFNjcmlwdC5pbnNwZWN0T2JqZWN0KEluc3BlY3RvckRPTUFn
ZW50Ojpub2RlQXNTY3JpcHRWYWx1ZShzY3JpcHRTdGF0ZSwgbm9kZS5nZXQoKSkpOwogfQogCiB2
b2lkIEluc3BlY3RvckRPTUFnZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRU
ZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkKQpAQCAtMTA5MCw4ICsxMDkzLDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFJlZlB0cjxJbnMKICAgICBpZiAobm9kZUlkKSB7CiAgICAgICAgIG5vZGUgPSBhc3Nl
cnROb2RlKGVycm9yU3RyaW5nLCAqbm9kZUlkKTsKICAgICB9IGVsc2UgaWYgKG9iamVjdElkKSB7
Ci0gICAgICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQoKm9iamVjdElkKTsKLSAgICAgICAg
bm9kZSA9IGluamVjdGVkU2NyaXB0Lm5vZGVGb3JPYmplY3RJZCgqb2JqZWN0SWQpOworICAgICAg
ICBub2RlID0gbm9kZUZvck9iamVjdElkKCpvYmplY3RJZCk7CiAgICAgICAgIGlmICghbm9kZSkK
ICAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJOb2RlIGZvciBnaXZlbiBvYmplY3RJZCBub3Qg
Zm91bmQiOwogICAgIH0gZWxzZQpAQCAtMTI0MSw4ICsxMjQzLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6Z2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2Rl
SWQsIFJlZlAKIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKIHsKLSAgICBJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3Rl
ZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKLSAgICBOb2RlKiBub2RlID0gaW5qZWN0ZWRT
Y3JpcHQubm9kZUZvck9iamVjdElkKG9iamVjdElkKTsKKyAgICBOb2RlKiBub2RlID0gbm9kZUZv
ck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAobm9kZSkKICAgICAgICAgKm5vZGVJZCA9IHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CiAgICAgZWxzZQpAQCAtMTcwNiw2ICsxNzA3LDEz
IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBh
dGgpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKK05vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2Rl
Rm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKK3sKKyAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEZvck9iamVjdElkKG9iamVjdElkKTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1
ZSA9IGluamVjdGVkU2NyaXB0LmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKKyAgICByZXR1cm4g
SW5zcGVjdG9yRE9NQWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKHZhbHVlKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCkKIHsKICAgICBpZiAo
Tm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgpKQpAQCAtMTczNywxMSArMTc0NSwyOSBAQCBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4g
SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3IobWFpbldvcmxkRXhlY1N0YXRlKGZyYW1lKSk7Cisg
ICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0gbWFpbldvcmxkRXhlY1N0YXRlKGZyYW1l
KTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvcihzY3JpcHRTdGF0ZSk7CiAgICAgaWYgKGluamVjdGVk
U2NyaXB0Lmhhc05vVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gaW5q
ZWN0ZWRTY3JpcHQud3JhcE5vZGUobm9kZSwgb2JqZWN0R3JvdXApOworICAgIHJldHVybiBpbmpl
Y3RlZFNjcmlwdC53cmFwT2JqZWN0KEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNTY3JpcHRWYWx1
ZShzY3JpcHRTdGF0ZSwgbm9kZSksIG9iamVjdEdyb3VwKTsKK30KKworTm9kZSogSW5zcGVjdG9y
RE9NQWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVl
KQoreworICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gdG9Ob2RlKHZhbHVlLmpzVmFsdWUoKSk7
Cit9CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNT
Y3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpCit7CisgICAgaWYg
KCFzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShzdGF0ZSwgbm9kZSkpCisgICAgICAgIHJldHVybiBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShzdGF0ZS0+dm0oKSwgSlNDOjpqc051bGwoKSk7CisKKyAg
ICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHN0YXRlKTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUoc3RhdGUtPnZtKCksIHRvSlMoc3RhdGUsIGRlcHJlY2F0ZWRHbG9iYWxPYmpl
Y3RGb3JQcm90b3R5cGUoc3RhdGUpLCBub2RlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXgg
M2M0Y2EzYy4uOTlkZDBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmgKQEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogYXNz
ZXJ0RWxlbWVudChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogICAgIERvY3VtZW50KiBhc3Nl
cnREb2N1bWVudChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogCisgICAgc3RhdGljIE5vZGUq
IHNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKTsKKyAgICBzdGF0aWMg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgbm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
LCBOb2RlKik7CisKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIG90aGVyIGFnZW50cy4KICAg
ICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9
CiAKQEAgLTIzOCw2ICsyNDEsNyBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBidWlsZE9iamVjdEZvckV2ZW50TGlz
dGVuZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgTm9kZSosIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXBJZCk7CiAKICAgICBO
b2RlKiBub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIE5vZGUqIG5vZGVGb3JP
YmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKIAogICAgIHZvaWQgZGlzY2FyZEJpbmRp
bmdzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29s
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNw
cAppbmRleCA5N2Q2OGQzLi5mMzczM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBJbnNwZWN0YWJsZU5vZGUoTm9kZSogbm9kZSkgOiBtX25vZGUobm9kZSkgeyB9CiAgICAg
dmlydHVhbCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBnZXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
KSBPVkVSUklERQogICAgIHsKLSAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdDo6bm9k
ZUFzU2NyaXB0VmFsdWUoc3RhdGUsIG1fbm9kZSk7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JE
T01BZ2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoc3RhdGUsIG1fbm9kZSk7CiAgICAgfQogcHJpdmF0
ZToKICAgICBOb2RlKiBtX25vZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>