<?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>137270</bug_id>
          
          <creation_ts>2014-09-30 14:31:19 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for ContainerNode</short_desc>
          <delta_ts>2014-09-30 16:03:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          <dependson>137056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038348</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-30 14:31:19 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for ContainerNode instead of isContainerNode() / toContainerNode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038356</commentid>
    <comment_count>1</comment_count>
      <attachid>238964</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-30 14:38:50 -0700</bug_when>
    <thetext>Created attachment 238964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038374</commentid>
    <comment_count>2</comment_count>
      <attachid>238964</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-30 15:25:38 -0700</bug_when>
    <thetext>Comment on attachment 238964
Patch

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

r=me

&gt; Source/WebCore/dom/Node.h:-745
&gt; -// FIXME: This should be removed and all uses should be replaced with SPECIALIZE_TYPE_TRAITS_*().
&gt; -#define NODE_TYPE_CASTS(ToClassName) \
&gt; -    TYPE_CASTS_BASE(ToClassName, Node, node, WebCore::is##ToClassName(*node), WebCore::is##ToClassName(node))

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038388</commentid>
    <comment_count>3</comment_count>
      <attachid>238964</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 16:03:43 -0700</bug_when>
    <thetext>Comment on attachment 238964
Patch

Clearing flags on attachment: 238964

Committed r174132: &lt;http://trac.webkit.org/changeset/174132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038389</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 16:03:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238964</attachid>
            <date>2014-09-30 14:38:50 -0700</date>
            <delta_ts>2014-09-30 16:03:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137270-20140930143850.patch</filename>
            <type>text/plain</type>
            <size>23180</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E1MWZlNWJiMGM0ZmI5
NzY0ZTc0YjZmZDdlZWQ0MmQwOTdkYTUzYS4uNTc4MDU4MjE2MGI0MjkwMWEyYTk2MDMyZGQwN2Vl
ZTcwYmFhOGQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY3IEBACiAyMDE0LTA5LTMwICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDb250YWluZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBDb250
YWluZXJOb2RlIGluc3RlYWQgb2YgaXNDb250YWluZXJOb2RlKCkKKyAgICAgICAgLyB0b0NvbnRh
aW5lck5vZGUoKS4gQWxzbyBraWxsIHRoZSBOT0RFX1RZUEVfQ0FTVFMoKSBtYWNybyBhcyB0aGlz
IHdhcworICAgICAgICBpdHMgbGFzdCB1c2VyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8g
YmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjp3aWxsUmVtb3ZlQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y2xvbmVDaGlsZE5vZGVzQXZvaWRpbmdEZWxldGVCdXR0b24pOgorICAgICAg
ICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjb3VudENo
aWxkTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dHJhdmVyc2VUb0NoaWxkQXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpsYXN0Q2hpbGQpOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Omlz
Q29udGFpbmVyTm9kZSk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVy
Ojpub3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpD
aGlsZE5vZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbVRyZWUp
OgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeU5vZGVJbnNlcnRlZEludG9E
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6
bm90aWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90
aWZ5Tm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGROb2Rl
UmVtb3ZhbE5vdGlmaWVyOjpub3RpZnkpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmNoaWxkTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlcGxhY2VDaGlsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRUZXh0Q29udGVu
dCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vUmFuZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOgorICAgICAgICAqIGRvbS9U
ZXh0Tm9kZVRyYXZlcnNhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Tm9kZVRyYXZlcnNh
bDo6Y29udGVudHNBc1N0cmluZyk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0
eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvcnJlY3RTcGVsbGNo
ZWNraW5nUHJlc2VydmluZ1RleHRDaGVja2luZ1BhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9N
ZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2s6Om9sZFBh
cmVudCk6CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VlRUQ3VlOjpjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpxdWVyeVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpxdWVyeVNlbGVjdG9yQWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTm9kZUZp
bmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOb2RlRmluZGVyOjpzZWFyY2hV
c2luZ0NTU1NlbGVjdG9ycyk6CisKKzIwMTQtMDktMzAgIENocmlzdG9waGUgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCiAgICAgICAgIEdlbmVyYWxpemUgaXM8PigpIC8gZG93bmNhc3Q8Pigp
IHN1cHBvcnQgdG8gYWxsIHR5cGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzcyNDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGRjYjE5OTFiN2IxZDQ3ZGY3YTAzYTJhZmExOTc3ZTJmNDQxNjAwZmUuLjEwYTIzYTU4YzEy
OGEzMGM5ZTk1NmU3ZDFkY2NmYzk4ODE5ZmY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdW5zaWduZWQgTm9FdmVudERpc3BhdGNoQXNzZXJ0
aW9uOjpzX2NvdW50ID0gMDsKIAogc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3Zl
RnJvbU9sZFBhcmVudChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgaWYgKCFub2RlLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgaWYg
KCFpczxEb2N1bWVudEZyYWdtZW50Pihub2RlKSkgewogICAgICAgICBub2Rlcy5hcHBlbmQobm9k
ZSk7CiAgICAgICAgIGlmIChDb250YWluZXJOb2RlKiBvbGRQYXJlbnQgPSBub2RlLnBhcmVudE5v
ZGUoKSkKICAgICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoJm5vZGUsIGVjKTsKQEAg
LTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9s
ZFBhcmVudChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywKICAgICB9CiAKICAgICBnZXRD
aGlsZE5vZGVzKG5vZGUsIG5vZGVzKTsKLSAgICB0b0NvbnRhaW5lck5vZGUobm9kZSkucmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICBkb3duY2FzdDxEb2N1bWVudEZyYWdtZW50Pihub2RlKS5yZW1vdmVD
aGlsZHJlbigpOwogfQogCiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBtdXN0IGdldCBhIG5ldyBu
YW1lLgpAQCAtNDgzLDggKzQ4Myw4IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6d2lsbFJlbW92ZUNo
aWxkKE5vZGUmIGNoaWxkKQogICAgICAgICByZXR1cm47CiAKICAgICBjaGlsZC5kb2N1bWVudCgp
Lm5vZGVXaWxsQmVSZW1vdmVkKCZjaGlsZCk7IC8vIGUuZy4gbXV0YXRpb24gZXZlbnQgbGlzdGVu
ZXIgY2FuIGNyZWF0ZSBhIG5ldyByYW5nZS4KLSAgICBpZiAoY2hpbGQuaXNDb250YWluZXJOb2Rl
KCkpCi0gICAgICAgIGRpc2Nvbm5lY3RTdWJmcmFtZXNJZk5lZWRlZCh0b0NvbnRhaW5lck5vZGUo
Y2hpbGQpLCBSb290QW5kRGVzY2VuZGFudHMpOworICAgIGlmIChpczxDb250YWluZXJOb2RlPihj
aGlsZCkpCisgICAgICAgIGRpc2Nvbm5lY3RTdWJmcmFtZXNJZk5lZWRlZChkb3duY2FzdDxDb250
YWluZXJOb2RlPihjaGlsZCksIFJvb3RBbmREZXNjZW5kYW50cyk7CiB9CiAKIHN0YXRpYyB2b2lk
IHdpbGxSZW1vdmVDaGlsZHJlbihDb250YWluZXJOb2RlJiBjb250YWluZXIpCkBAIC03ODYsOCAr
Nzg2LDggQEAgaW5saW5lIHN0YXRpYyB2b2lkIGNsb25lQ2hpbGROb2Rlc0F2b2lkaW5nRGVsZXRl
QnV0dG9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgQ28KICAgICAgICAgUmVmUHRyPE5vZGU+IGNs
b25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9kZShmYWxzZSk7CiAgICAgICAgIGNsb25lZFBhcmVu
dC0+YXBwZW5kQ2hpbGQoY2xvbmVkQ2hpbGQsIGVjKTsKIAotICAgICAgICBpZiAoIWVjICYmIGNo
aWxkLT5pc0NvbnRhaW5lck5vZGUoKSkKLSAgICAgICAgICAgIGNsb25lQ2hpbGROb2Rlc0F2b2lk
aW5nRGVsZXRlQnV0dG9uKHRvQ29udGFpbmVyTm9kZShjaGlsZCksIHRvQ29udGFpbmVyTm9kZShj
bG9uZWRDaGlsZC5nZXQoKSksIGRlbGV0ZUJ1dHRvbkNvbnRhaW5lckVsZW1lbnQpOworICAgICAg
ICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5vZGU+KGNoaWxkKSkKKyAgICAgICAgICAgIGNsb25l
Q2hpbGROb2Rlc0F2b2lkaW5nRGVsZXRlQnV0dG9uKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNo
aWxkKSwgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpLCBkZWxldGVC
dXR0b25Db250YWluZXJFbGVtZW50KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5oCmluZGV4IDVmMDRjMzNkMmU5NzI1MTQ3MTZjNGZiMTc5Y2NiNmVjMGI4NDNlNjMuLjVl
MTgyZjdlNjAzM2NiODllYmU0OTU1ZTE3NTg1NDlmYjA1NzQ4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuaApAQCAtMTczLDExICsxNzMsNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIG1f
bGFzdENoaWxkOwogfTsKIAotaW5saW5lIGJvb2wgaXNDb250YWluZXJOb2RlKGNvbnN0IE5vZGUm
IG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNDb250YWluZXJOb2RlKCk7IH0KLXZvaWQgaXNDb250YWlu
ZXJOb2RlKGNvbnN0IENvbnRhaW5lck5vZGUmKTsgLy8gQ2F0Y2ggdW5uZWNlc3NhcnkgcnVudGlt
ZSBjaGVjayBvZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4KLQotTk9ERV9UWVBFX0NBU1RT
KENvbnRhaW5lck5vZGUpCi0KIGlubGluZSBDb250YWluZXJOb2RlOjpDb250YWluZXJOb2RlKERv
Y3VtZW50JiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgIDogTm9kZShkb2N1
bWVudCwgdHlwZSkKICAgICAsIG1fZmlyc3RDaGlsZCgwKQpAQCAtMTg3LDMwICsxODIsMzAgQEAg
aW5saW5lIENvbnRhaW5lck5vZGU6OkNvbnRhaW5lck5vZGUoRG9jdW1lbnQmIGRvY3VtZW50LCBD
b25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAKIGlubGluZSB1bnNpZ25lZCBOb2RlOjpjb3VudENoaWxk
Tm9kZXMoKSBjb25zdAogewotICAgIGlmICghaXNDb250YWluZXJOb2RlKCkpCisgICAgaWYgKCFp
czxDb250YWluZXJOb2RlPigqdGhpcykpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0
b0NvbnRhaW5lck5vZGUodGhpcyktPmNvdW50Q2hpbGROb2RlcygpOworICAgIHJldHVybiBkb3du
Y2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuY291bnRDaGlsZE5vZGVzKCk7CiB9CiAKIGlubGlu
ZSBOb2RlKiBOb2RlOjp0cmF2ZXJzZVRvQ2hpbGRBdCh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsK
LSAgICBpZiAoIWlzQ29udGFpbmVyTm9kZSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT50cmF2ZXJzZVRvQ2hpbGRBdChpbmRleCk7CisgICAg
aWYgKCFpczxDb250YWluZXJOb2RlPigqdGhpcykpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykudHJhdmVyc2VUb0NoaWxk
QXQoaW5kZXgpOwogfQogCiBpbmxpbmUgTm9kZSogTm9kZTo6Zmlyc3RDaGlsZCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFpc0NvbnRhaW5lck5vZGUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+Zmlyc3RDaGlsZCgpOworICAgIGlmICghaXM8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLmZpcnN0Q2hpbGQoKTsKIH0KIAogaW5saW5l
IE5vZGUqIE5vZGU6Omxhc3RDaGlsZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0NvbnRhaW5lck5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlz
KS0+bGFzdENoaWxkKCk7CisgICAgaWYgKCFpczxDb250YWluZXJOb2RlPigqdGhpcykpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigq
dGhpcykubGFzdENoaWxkKCk7CiB9CiAKIGlubGluZSBOb2RlKiBOb2RlOjpoaWdoZXN0QW5jZXN0
b3IoKSBjb25zdApAQCAtMzE2LDQgKzMxMSw4IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpDb250YWlu
ZXJOb2RlKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpOb2RlJiBub2Rl
KSB7IHJldHVybiBub2RlLmlzQ29udGFpbmVyTm9kZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0VORCgpCisKICNlbmRpZiAvLyBDb250YWluZXJOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCmluZGV4IGFmNWQ0MTA5NGZiNjFjZjU2
N2Q0YTk3NzI5MjJhY2IyZDQ2Mzc2NDYuLjAzMWQzY2QyMWI2M2VjODA4MDM2Njk4Nzg2MTIwZDI0
ZWZhMmU1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxn
b3JpdGhtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmNwcApAQCAtNTIsOCArNTIsOCBAQCB2b2lkIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVy
Ojpub3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvRG9jdW1lbnQoQ29udGFpbmVyTgogdm9pZCBD
aGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b1Ry
ZWUoQ29udGFpbmVyTm9kZSYgbm9kZSkKIHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgIGlmIChjaGlsZC0+aXNDb250YWluZXJOb2RlKCkpCi0gICAgICAgICAgICBub3RpZnlOb2Rl
SW5zZXJ0ZWRJbnRvVHJlZSgqdG9Db250YWluZXJOb2RlKGNoaWxkKSk7CisgICAgICAgIGlmIChp
czxDb250YWluZXJOb2RlPihjaGlsZCkpCisgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJ
bnRvVHJlZShkb3duY2FzdDxDb250YWluZXJOb2RlPigqY2hpbGQpKTsKICAgICB9CiAKICAgICBp
ZiAoU2hhZG93Um9vdCogcm9vdCA9IG5vZGUuc2hhZG93Um9vdCgpKQpAQCAtODYsOCArODYsOCBA
QCB2b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudFJlbW92ZWRG
cm9tRG9jdW1lbnQoQ29udGFpbmVyTm9kZQogdm9pZCBDaGlsZE5vZGVSZW1vdmFsTm90aWZpZXI6
Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbVRyZWUoQ29udGFpbmVyTm9kZSYgbm9kZSkKIHsK
ICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChjaGlsZC0+aXNDb250YWluZXJO
b2RlKCkpCi0gICAgICAgICAgICBub3RpZnlOb2RlUmVtb3ZlZEZyb21UcmVlKCp0b0NvbnRhaW5l
ck5vZGUoY2hpbGQpKTsKKyAgICAgICAgaWYgKGlzPENvbnRhaW5lck5vZGU+KGNoaWxkKSkKKyAg
ICAgICAgICAgIG5vdGlmeU5vZGVSZW1vdmVkRnJvbVRyZWUoZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oKmNoaWxkKSk7CiAgICAgfQogCiAgICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgKaW5kZXggYjQyOTliMDFh
OTFmZTEzZjA1M2NmZGY0YzhlZTA2OGVkYjQzODhkMy4uY2MwOTFiMDI1NDA0YzFkYjdlNTg0NGYy
NDMzM2EyOTBmODA5ZWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVB
bGdvcml0aG1zLmgKQEAgLTE5OSw4ICsxOTksOCBAQCBpbmxpbmUgdm9pZCBDaGlsZE5vZGVJbnNl
cnRpb25Ob3RpZmllcjo6bm90aWZ5Tm9kZUluc2VydGVkSW50b0RvY3VtZW50KE5vZGUmIG5vZAog
ICAgIEFTU0VSVChtX2luc2VydGlvblBvaW50LmluRG9jdW1lbnQoKSk7CiAgICAgaWYgKE5vZGU6
Okluc2VydGlvblNob3VsZENhbGxEaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucyA9PSBub2RlLmlu
c2VydGVkSW50byhtX2luc2VydGlvblBvaW50KSkKICAgICAgICAgbV9wb3N0SW5zZXJ0aW9uTm90
aWZpY2F0aW9uVGFyZ2V0cy5hcHBlbmQobm9kZSk7Ci0gICAgaWYgKG5vZGUuaXNDb250YWluZXJO
b2RlKCkpCi0gICAgICAgIG5vdGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1bWVudCh0b0Nv
bnRhaW5lck5vZGUobm9kZSkpOworICAgIGlmIChpczxDb250YWluZXJOb2RlPihub2RlKSkKKyAg
ICAgICAgbm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3VtZW50KGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KG5vZGUpKTsKIH0KIAogaW5saW5lIHZvaWQgQ2hpbGROb2RlSW5zZXJ0aW9uTm90
aWZpZXI6Om5vdGlmeU5vZGVJbnNlcnRlZEludG9UcmVlKENvbnRhaW5lck5vZGUmIG5vZGUpCkBA
IC0yMjYsOCArMjI2LDggQEAgaW5saW5lIHZvaWQgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6
Om5vdGlmeShOb2RlJiBub2RlKQogCiAgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnQuaW5Eb2N1bWVu
dCgpKQogICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQobm9kZSk7Ci0gICAg
ZWxzZSBpZiAobm9kZS5pc0NvbnRhaW5lck5vZGUoKSkKLSAgICAgICAgbm90aWZ5Tm9kZUluc2Vy
dGVkSW50b1RyZWUodG9Db250YWluZXJOb2RlKG5vZGUpKTsKKyAgICBlbHNlIGlmIChpczxDb250
YWluZXJOb2RlPihub2RlKSkKKyAgICAgICAgbm90aWZ5Tm9kZUluc2VydGVkSW50b1RyZWUoZG93
bmNhc3Q8Q29udGFpbmVyTm9kZT4obm9kZSkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3Bvc3RJbnNlcnRpb25Ob3RpZmljYXRpb25UYXJnZXRzLnNpemUoKTsgKytpKQogICAgICAg
ICBtX3Bvc3RJbnNlcnRpb25Ob3RpZmljYXRpb25UYXJnZXRzW2ldLT5kaWROb3RpZnlTdWJ0cmVl
SW5zZXJ0aW9ucygmbV9pbnNlcnRpb25Qb2ludCk7CkBAIC0yMzksOCArMjM5LDggQEAgaW5saW5l
IHZvaWQgQ2hpbGROb2RlUmVtb3ZhbE5vdGlmaWVyOjpub3RpZnlOb2RlUmVtb3ZlZEZyb21Eb2N1
bWVudChOb2RlJiBub2RlKQogICAgIEFTU0VSVChtX2luc2VydGlvblBvaW50LmluRG9jdW1lbnQo
KSk7CiAgICAgbm9kZS5yZW1vdmVkRnJvbShtX2luc2VydGlvblBvaW50KTsKIAotICAgIGlmIChu
b2RlLmlzQ29udGFpbmVyTm9kZSgpKQotICAgICAgICBub3RpZnlEZXNjZW5kYW50UmVtb3ZlZEZy
b21Eb2N1bWVudCh0b0NvbnRhaW5lck5vZGUobm9kZSkpOworICAgIGlmIChpczxDb250YWluZXJO
b2RlPihub2RlKSkKKyAgICAgICAgbm90aWZ5RGVzY2VuZGFudFJlbW92ZWRGcm9tRG9jdW1lbnQo
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obm9kZSkpOwogfQogCiBpbmxpbmUgdm9pZCBDaGlsZE5v
ZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeU5vZGVSZW1vdmVkRnJvbVRyZWUoQ29udGFpbmVyTm9k
ZSYgbm9kZSkKQEAgLTI1Nyw4ICsyNTcsOCBAQCBpbmxpbmUgdm9pZCBDaGlsZE5vZGVSZW1vdmFs
Tm90aWZpZXI6Om5vdGlmeShOb2RlJiBub2RlKQogICAgIGlmIChub2RlLmluRG9jdW1lbnQoKSkg
ewogICAgICAgICBub3RpZnlOb2RlUmVtb3ZlZEZyb21Eb2N1bWVudChub2RlKTsKICAgICAgICAg
bm9kZS5kb2N1bWVudCgpLm5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCk7Ci0gICAg
fSBlbHNlIGlmIChub2RlLmlzQ29udGFpbmVyTm9kZSgpKQotICAgICAgICBub3RpZnlOb2RlUmVt
b3ZlZEZyb21UcmVlKHRvQ29udGFpbmVyTm9kZShub2RlKSk7CisgICAgfSBlbHNlIGlmIChpczxD
b250YWluZXJOb2RlPihub2RlKSkKKyAgICAgICAgbm90aWZ5Tm9kZVJlbW92ZWRGcm9tVHJlZShk
b3duY2FzdDxDb250YWluZXJOb2RlPihub2RlKSk7CiB9CiAKIGVudW0gU3ViZnJhbWVEaXNjb25u
ZWN0UG9saWN5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAyMjg5MmJlNzg5OTc0ZDYyYzk3ODljMmFk
NzViZWU0OGRhYTNlNjAwLi5mOGMzM2Q2NzQ0MTRlNDQxZDc4NDljYzVmMjI2YjI1OWEzZGViMzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCkBAIC00MDUsOCArNDA1LDggQEAgdm9pZCBOb2RlOjpzZXROb2Rl
VmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJiBlYykKIAog
UGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Y2hpbGROb2RlcygpCiB7Ci0gICAgaWYgKGlzQ29u
dGFpbmVyTm9kZSgpKQotICAgICAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2Rl
TGlzdHMoKS5lbnN1cmVDaGlsZE5vZGVMaXN0KHRvQ29udGFpbmVyTm9kZSgqdGhpcykpOworICAg
IGlmIChpczxDb250YWluZXJOb2RlPigqdGhpcykpCisgICAgICAgIHJldHVybiBlbnN1cmVSYXJl
RGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmVuc3VyZUNoaWxkTm9kZUxpc3QoZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpKTsKICAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVO
b2RlTGlzdHMoKS5lbnN1cmVFbXB0eUNoaWxkTm9kZUxpc3QoKnRoaXMpOwogfQogCkBAIC00Mjgs
MzggKzQyOCwzOCBAQCBOb2RlKiBOb2RlOjpmaXJzdERlc2NlbmRhbnQoKSBjb25zdAogCiBib29s
IE5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFpc0NvbnRhaW5lck5vZGUoKSkg
eworICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElF
UkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJl
dHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hp
bGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLmluc2Vy
dEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNl
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGlmICghaXNDb250YWluZXJOb2RlKCkpIHsKKyAgICBpZiAoIWlz
PENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNU
X0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWlu
ZXJOb2RlKHRoaXMpLT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CisgICAg
cmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQobmV3Q2hp
bGQsIG9sZENoaWxkLCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghaXNDb250YWluZXJOb2RlKCkp
IHsKKyAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IE5P
VF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRv
Q29udGFpbmVyTm9kZSh0aGlzKS0+cmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1
cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKG9sZENoaWxkLCBl
Yyk7CiB9CiAKIGJvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFpc0NvbnRhaW5lck5vZGUoKSkgewor
ICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFS
Q0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVy
biB0b0NvbnRhaW5lck5vZGUodGhpcyktPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAg
cmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGls
ZCwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEz
NjMsNyArMTM2Myw3IEBAIHZvaWQgTm9kZTo6c2V0VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBFTlRJVFlfTk9ERToKICAgICAg
ICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgRE9DVU1FTlRfRlJB
R01FTlRfTk9ERTogewotICAgICAgICAgICAgUmVmPENvbnRhaW5lck5vZGU+IGNvbnRhaW5lcigq
dG9Db250YWluZXJOb2RlKHRoaXMpKTsKKyAgICAgICAgICAgIFJlZjxDb250YWluZXJOb2RlPiBj
b250YWluZXIoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpKTsKICAgICAgICAgICAgIENo
aWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVyLmdldCgpKTsKICAgICAgICAg
ICAgIGNvbnRhaW5lci0+cmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIGlmICghdGV4dC5p
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA0Y2QzMTU3MGJhNDExOTc2OTkxNTZhMTdhYTg4ODg2
N2I0ZDE3Yzc2Li44NjUwZGU4NjM3NGQ1YmE2MjY5MTcwN2ViM2FiOGY0NmExOTgzYWZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKQEAgLTc0MCwxMCArNzQwLDYgQEAgaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6
OnBhcmVudE5vZGVHdWFyYW50ZWVkSG9zdEZyZWUoKSBjb25zdAogICAgIHJldHVybiBwYXJlbnRO
b2RlKCk7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIGFuZCBhbGwgdXNl
cyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTXyooKS4KLSNk
ZWZpbmUgTk9ERV9UWVBFX0NBU1RTKFRvQ2xhc3NOYW1lKSBcCi0gICAgVFlQRV9DQVNUU19CQVNF
KFRvQ2xhc3NOYW1lLCBOb2RlLCBub2RlLCBXZWJDb3JlOjppcyMjVG9DbGFzc05hbWUoKm5vZGUp
LCBXZWJDb3JlOjppcyMjVG9DbGFzc05hbWUobm9kZSkpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDllYjBkYzA3ZDI0OTcx
MzYzMzk4MmE4MTQ0NjJiNWM0ODdmNGFkODkuLjI3ZGU3ZWZkZWNhYWE0OWRiMWE4MmRhZDQyNDYy
MjNhOTE3NTM4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTQ4MCw3ICsxNDgwLDcgQEAgdm9p
ZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogICAgIHdoaWxlIChOb2RlKiBuID0g
bmV3UGFyZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgdG9Db250YWluZXJOb2RlKG5ld1Bh
cmVudC5nZXQoKSktPnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8Q29udGFp
bmVyTm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQobiwgZWMpOwogICAgICAgICBpZiAoZWMp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Tm9kZVRy
YXZlcnNhbC5jcHAKaW5kZXggNjU4OTg4YTQ2ZjlmMmUxYmNjOTFiNGYwNTMyMTFmNDAxZWUzYzJk
Yi4uOWYwNzMxOWVmZWYzZWU0OGY0YzI2YzFiYmM3M2U2NTIxZjcwNzAzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RleHROb2RlVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCkBAIC00OSw4ICs0OSw4IEBAIFN0cmluZyBj
b250ZW50c0FzU3RyaW5nKGNvbnN0IE5vZGUqIHJvb3QpCiB7CiAgICAgaWYgKGlzPFRleHQ+KHJv
b3QpKQogICAgICAgICByZXR1cm4gZG93bmNhc3Q8VGV4dD4oKnJvb3QpLmRhdGEoKTsKLSAgICBp
ZiAocm9vdC0+aXNDb250YWluZXJOb2RlKCkpCi0gICAgICAgIHJldHVybiBjb250ZW50c0FzU3Ry
aW5nKHRvQ29udGFpbmVyTm9kZShyb290KSk7CisgICAgaWYgKGlzPENvbnRhaW5lck5vZGU+KHJv
b3QpKQorICAgICAgICByZXR1cm4gY29udGVudHNBc1N0cmluZyhkb3duY2FzdDxDb250YWluZXJO
b2RlPihyb290KSk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDg2ZDRhNTQ3ZmYyMDYwOWJkNjRm
MWRlM2Q5MWFkMDAwZDUxYzE5Y2QuLjk0Mjc1MTY3NThhYTgwN2ZjNTFhZmRjZTQ3NDI3NjBiNzll
MWFjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CkBAIC0yOTEsOCArMjkxLDggQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0
eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUpCiAgICAgICAgIG5leHRQYXJhZ3JhcGhTdGFydCA9IGVu
ZE9mUGFyYWdyYXBoKHBhcmFncmFwaFN0YXJ0KS5uZXh0KCk7CiAgICAgfQogICAgIAotICAgIHN0
YXJ0UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKHRvQ29u
dGFpbmVyTm9kZShzY29wZSksIHN0YXJ0SW5kZXgsIDAsIHRydWUpOwotICAgIGVuZFJhbmdlID0g
VGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aCh0b0NvbnRhaW5lck5vZGUo
c2NvcGUpLCBlbmRJbmRleCwgMCwgdHJ1ZSk7CisgICAgc3RhcnRSYW5nZSA9IFRleHRJdGVyYXRv
cjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oc2Nv
cGUpLCBzdGFydEluZGV4LCAwLCB0cnVlKTsKKyAgICBlbmRSYW5nZSA9IFRleHRJdGVyYXRvcjo6
cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oc2NvcGUp
LCBlbmRJbmRleCwgMCwgdHJ1ZSk7CiAgICAgaWYgKHN0YXJ0UmFuZ2UgJiYgZW5kUmFuZ2UpCiAg
ICAgICAgIHVwZGF0ZVN0YXJ0RW5kKHN0YXJ0UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgZW5kUmFu
Z2UtPnN0YXJ0UG9zaXRpb24oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IGE2ZTU1NDE2NjhjNDdlNTY4OGEzZWJiOTU2NjMy
YjU0ODA0N2VlYzUuLjIxNjczY2QwZjNmMzdkZmUzZTNhZDFhZWRhM2NkMTQ2MWQ0YmNhMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBA
IC0zNzUsNyArMzc1LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0IFBvc2kKICAgICAgICAgaWYgKGNo
aWxkKQogICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShpbnNlcnRDaGlsZCwgY2hpbGQpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmROb2RlKGluc2VydENoaWxkLCB0b0NvbnRh
aW5lck5vZGUocmVmQ2hpbGQpKTsKKyAgICAgICAgICAgIGFwcGVuZE5vZGUoaW5zZXJ0Q2hpbGQs
IGRvd25jYXN0PENvbnRhaW5lck5vZGU+KHJlZkNoaWxkKSk7CiAgICAgfSBlbHNlIGlmIChjYXJl
dE1pbk9mZnNldChyZWZDaGlsZCkgPj0gb2Zmc2V0KQogICAgICAgICBpbnNlcnROb2RlQmVmb3Jl
KGluc2VydENoaWxkLCByZWZDaGlsZCk7CiAgICAgZWxzZSBpZiAoaXM8VGV4dD4ocmVmQ2hpbGQp
ICYmIGNhcmV0TWF4T2Zmc2V0KHJlZkNoaWxkKSA+IG9mZnNldCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCmluZGV4IGFjNDU4YWMwMGFhNTk3N2M2M2E0Y2NhNTUwYzVkNjY3NzEzZGIxOTgu
LmU5Y2Q2Yjg5YTlkZWY3NTQyYjZlZTc5ZTkwMzg5YzliNzIxMzAzMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTI0NjgsNyArMjQ2OCw3IEBAIHN0YXRpYyBib29sIGlzQXV0b21h
dGljVGV4dFJlcGxhY2VtZW50VHlwZShUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpCiAKIHN0YXRpYyB2
b2lkIGNvcnJlY3RTcGVsbGNoZWNraW5nUHJlc2VydmluZ1RleHRDaGVja2luZ1BhcmFncmFwaChU
ZXh0Q2hlY2tpbmdQYXJhZ3JhcGgmIHBhcmFncmFwaCwgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VU
b1JlcGxhY2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIGludCByZXN1bHRMb2NhdGlvbiwg
aW50IHJlc3VsdExlbmd0aCkKIHsKLSAgICBDb250YWluZXJOb2RlKiBzY29wZSA9IHRvQ29udGFp
bmVyTm9kZShoaWdoZXN0QW5jZXN0b3IocGFyYWdyYXBoLnBhcmFncmFwaFJhbmdlKCktPnN0YXJ0
Q29udGFpbmVyKCkpKTsKKyAgICBDb250YWluZXJOb2RlKiBzY29wZSA9IGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KGhpZ2hlc3RBbmNlc3RvcihwYXJhZ3JhcGgucGFyYWdyYXBoUmFuZ2UoKS0+c3Rh
cnRDb250YWluZXIoKSkpOwogCiAgICAgc2l6ZV90IHBhcmFncmFwaExvY2F0aW9uOwogICAgIHNp
emVfdCBwYXJhZ3JhcGhMZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApp
bmRleCA5NWFmZDkyNGNjYmMxMmI4ZTQ3ZDZhYTZhNzBlM2JiYmQ3ZTQ3ZDdmLi45ZjA3ZmEzZGRl
YjllMDlkNDFkN2MyZTYzZjMzMTI3ZTgxMmZmNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKQEAgLTIwMSw5ICsyMDEsOSBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KCF0YXJnZXROb2RlLT5pc0NvbnRhaW5lck5vZGUoKSkKKyAgICBpZiAoIWlzPENvbnRhaW5lck5v
ZGU+KHRhcmdldE5vZGUpKQogICAgICAgICByZXR1cm47Ci0gICAgQ29udGFpbmVyTm9kZSYgdGFy
Z2V0Q29udGFpbmVyID0gdG9Db250YWluZXJOb2RlKCp0YXJnZXROb2RlKTsKKyAgICBDb250YWlu
ZXJOb2RlJiB0YXJnZXRDb250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGFyZ2V0
Tm9kZSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVu
dCAmJiBldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpIHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVu
dCogdmlkZW8gPSBkZXNjZW5kZW50VmlkZW9FbGVtZW50KHRhcmdldENvbnRhaW5lcik7CiAgICAg
ICAgIGlmICghdmlkZW8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaAppbmRleCAxYmNmZjhkNGYyZjkyZTY3YzhhYjY0NTZmODVlZGEzODE0
YjU5OGY3Li5lYmM2NzNlYjYyNTk1Y2M3MzE0NjgyMGI5MTFiYmRlNGY0MGYzZmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKQEAg
LTU2LDcgKzU2LDcgQEAgc3RydWN0IEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayB7CiAgICAgICAg
IC8vIEl0J3Mgc29ydCBvZiB1Z2x5LCBidXQgd2Ugc3RvcmUgdGhlIHxvbGRQYXJlbnR8IGluIHRo
ZSB8Y2hpbGR8IGZpZWxkCiAgICAgICAgIC8vIG9mIHRoZSB0YXNrIHNvIHRoYXQgd2UgZG9uJ3Qg
YmxvYXQgdGhlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzawogICAgICAgICAvLyBvYmplY3QgaW4g
dGhlIGNvbW1vbiBjYXNlIG9mIHRoZSBJbnNlcnQgb3BlcmF0aW9uLgotICAgICAgICByZXR1cm4g
dG9Db250YWluZXJOb2RlKGNoaWxkLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KGNoaWxkLmdldCgpKTsKICAgICB9CiAKICAgICBPcGVyYXRpb24gb3BlcmF0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDNkYjBiZmM4Yzc3ZTZi
ZTczZmU3NTQwZDAzYmQ1YWJmOGE2YzdmYjEuLmI3YWY5ODE3ZGZjZWYzZTU3ZDYzMmUyMDJkNzI1
Yzg2MDZlZmZjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTUwMiw4
ICs1MDIsOCBAQCB2b2lkIFZUVEN1ZTo6Y29weVdlYlZUVE5vZGVUb0RPTVRyZWUoQ29udGFpbmVy
Tm9kZSogd2ViVlRUTm9kZSwgQ29udGFpbmVyTm9kZSogcAogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjbG9uZWROb2RlID0gbm9kZS0+Y2xvbmVOb2RlKGZhbHNlKTsKICAgICAgICAgcGFyZW50
LT5hcHBlbmRDaGlsZChjbG9uZWROb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAg
aWYgKG5vZGUtPmlzQ29udGFpbmVyTm9kZSgpKQotICAgICAgICAgICAgY29weVdlYlZUVE5vZGVU
b0RPTVRyZWUodG9Db250YWluZXJOb2RlKG5vZGUpLCB0b0NvbnRhaW5lck5vZGUoY2xvbmVkTm9k
ZS5nZXQoKSkpOworICAgICAgICBpZiAoaXM8Q29udGFpbmVyTm9kZT4obm9kZSkpCisgICAgICAg
ICAgICBjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShkb3duY2FzdDxDb250YWluZXJOb2RlPihub2Rl
KSwgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkTm9kZS5nZXQoKSkpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5k
ZXggMWMyZmI2MDY3NmQ0ZTg3ZjlmZWU1MDM2NmM3NTE1NWY0ZjM1NTI2YS4uYzNiYmRkMDFiM2Fl
OWZkMThkM2E1NDgyYjAwNWZmMGFiZjAzNzk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01MjAsMTMgKzUyMCwxMyBAQCB2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
aW50IG5vZGVJZCwgY29ucwogICAgIE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5n
LCBub2RlSWQpOwogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghbm9k
ZS0+aXNDb250YWluZXJOb2RlKCkpIHsKKyAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KG5vZGUp
KSB7CiAgICAgICAgIGFzc2VydEVsZW1lbnQoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCA9IHRvQ29udGFpbmVyTm9kZShub2RlKS0+cXVlcnlTZWxlY3Rvcihz
ZWxlY3RvcnMsIGVjKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KCpub2RlKS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9ycywgZWMpOwogICAgIGlm
IChlYykgewogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRE9NIEVycm9yIHdoaWxlIHF1ZXJ5aW5n
IjsKICAgICAgICAgcmV0dXJuOwpAQCAtNTQxLDEzICs1NDEsMTMgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBu
b2RlSWQsIGMKICAgICBOb2RlKiBub2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlk
KTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIW5vZGUtPmlzQ29u
dGFpbmVyTm9kZSgpKSB7CisgICAgaWYgKCFpczxDb250YWluZXJOb2RlPihub2RlKSkgewogICAg
ICAgICBhc3NlcnRFbGVtZW50KGVycm9yU3RyaW5nLCBub2RlSWQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPE5vZGVMaXN0
PiBub2RlcyA9IHRvQ29udGFpbmVyTm9kZShub2RlKS0+cXVlcnlTZWxlY3RvckFsbChzZWxlY3Rv
cnMsIGVjKTsKKyAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzID0gZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKm5vZGUpLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JzLCBlYyk7CiAgICAgaWYgKGVj
KSB7CiAgICAgICAgICplcnJvclN0cmluZyA9ICJET00gRXJyb3Igd2hpbGUgcXVlcnlpbmciOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTm9kZUZpbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Tm9kZUZpbmRlci5jcHAKaW5kZXggZGQxNWE4ZDk0ODdlYjA2MGIyMWQ1ZWNhZDA5MjUyZDk5NDA0
MzA3NC4uZTRjMGYxZTFhNzBhYjIzNDNjZTM0ZGJjNjhiZDAyM2I0MTliODQ4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5vZGVGaW5kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOb2RlRmluZGVyLmNwcApAQCAtMTU3
LDExICsxNTcsMTEgQEAgdm9pZCBJbnNwZWN0b3JOb2RlRmluZGVyOjpzZWFyY2hVc2luZ1hQYXRo
KE5vZGUqIHBhcmVudE5vZGUpCiAKIHZvaWQgSW5zcGVjdG9yTm9kZUZpbmRlcjo6c2VhcmNoVXNp
bmdDU1NTZWxlY3RvcnMoTm9kZSogcGFyZW50Tm9kZSkKIHsKLSAgICBpZiAoIXBhcmVudE5vZGUt
PmlzQ29udGFpbmVyTm9kZSgpKQorICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4ocGFyZW50Tm9k
ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJl
ZlB0cjxOb2RlTGlzdD4gbm9kZUxpc3QgPSB0b0NvbnRhaW5lck5vZGUocGFyZW50Tm9kZSktPnF1
ZXJ5U2VsZWN0b3JBbGwobV93aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBlYyk7CisgICAgUmVmUHRy
PE5vZGVMaXN0PiBub2RlTGlzdCA9IGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpwYXJlbnROb2Rl
KS5xdWVyeVNlbGVjdG9yQWxsKG1fd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgZWMpOwogICAgIGlm
IChlYyB8fCAhbm9kZUxpc3QpCiAgICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>