<?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>116417</bug_id>
          
          <creation_ts>2013-05-19 15:18:47 -0700</creation_ts>
          <short_desc>Change the terminology used by rendering code when painting a given node and its children from &quot;paintingRoot&quot; to &quot;subtreePaintRoot&quot;</short_desc>
          <delta_ts>2013-05-19 15:52:31 -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>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>891069</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-19 15:18:47 -0700</bug_when>
    <thetext>Change the terminology used by rendering code when painting a given node and its children from &quot;paintingRoot&quot; to &quot;subtreePaintRoot&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891070</commentid>
    <comment_count>1</comment_count>
      <attachid>202244</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-19 15:26:33 -0700</bug_when>
    <thetext>Created attachment 202244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891072</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-19 15:52:31 -0700</bug_when>
    <thetext>https://trac.webkit.org/r150355</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202244</attachid>
            <date>2013-05-19 15:26:33 -0700</date>
            <delta_ts>2013-05-19 15:27:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116417-20130519152523.patch</filename>
            <type>text/plain</type>
            <size>29244</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA2NTBiYTRiNjI0NGZl
MjJjMTc1ZTk3M2E1NzViMWJhMWViYzkyOC4uNWY0YTM1NmY3YTQ4ZTJmOTliMDVhZWRmYWM2NDcw
ZTJkNTY3ZDZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTA1LTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSB0aGUg
dGVybWlub2xvZ3kgdXNlZCBieSByZW5kZXJpbmcgY29kZSB3aGVuIHBhaW50aW5nIGEgZ2l2ZW4g
bm9kZSBhbmQgaXRzIGNoaWxkcmVuIGZyb20gInBhaW50aW5nUm9vdCIgdG8gInN1YnRyZWVQYWlu
dFJvb3QiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY0MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFBhaW50SW5mbyBhbmQgUmVuZGVyTGF5ZXIgY29kZSByZWZlcnJlZCB0byBhICJwYWlu
dGluZ1Jvb3QiLiBUaGlzIGlzIG9ubHkgc2V0IHdoZW4KKyAgICAgICAgRnJhbWVWaWV3OjpzZXRO
b2RlVG9EcmF3KCkgaGFzIGJlZW4gY2FsbGVkIGFuZCBpcyB1c2VkIHRvIHJlc3RyaWN0IHBhaW50
aW5nIHRvCisgICAgICAgIHNvbWUgcGFydCBvZiB0aGUgc3VidHJlZSwgYnV0IGl0IGNvdWxkIGVh
c2lseSBiZSBtaXNpbnRlcnByZXRlZCwgYW5kIGNvbmZ1c2VkIHdpdGgKKyAgICAgICAgdGhlICJy
b290TGF5ZXIiIHVzZWQgYnkgUmVuZGVyTGF5ZXIgKHdoaWNoIGlzIHVzdWFsbHkgbm90IHRoZSBs
YXllciBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgdGhlIHBhaW50aW5nUm9vdCkuCisgICAgICAg
IAorICAgICAgICBDaGFuZ2UgdGhlIHRlcm1pbm9sb2d5IGZyb20gInBhaW50aW5nUm9vdCIgdG8g
InN1YnRyZWVQYWludFJvb3QiIHJvb3QgdG8gbWFrZSB0aGUKKyAgICAgICAgcHVycG9zZSBvZiB0
aGlzIHZhcmlhYmxlIG1vcmUgb2J2aW91cy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2Uu
CisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6IEFkZCBhIGNvbW1lbnQgZm9yIHNldE5v
ZGVUb0RyYXcoKTsgaW4gZnV0dXJlIHRoaXMgc2hvdWxkCisgICAgICAgIGJlIGNhbGxlZCBzZXRT
dWJ0cmVlUGFpbnRSb290KCkgb3Igc29tZXRoaW5nLiBOb3QgZG9uZSBpbiB0aGlzIHBhdGNoIHRv
IGF2b2lkCisgICAgICAgIHJpc2s7IHRoaXMgZnVuY3Rpb24gaXMgZXhwb3J0ZWQgZnJvbSBXZWJD
b3JlLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUZsb3dCb3g6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUGFpbnRJ
bmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWludEluZm86OlBhaW50SW5mbyk6CisgICAgICAg
IChXZWJDb3JlOjpQYWludEluZm86OnVwZGF0ZVN1YnRyZWVQYWludFJvb3RGb3JDaGlsZHJlbik6
CisgICAgICAgIChXZWJDb3JlOjpQYWludEluZm86OnNob3VsZFBhaW50V2l0aGluUm9vdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFpbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmxheVNjcm9s
bGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllckJ5QXBwbHlpbmdU
cmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50QmFja2dyb3Vu
ZEZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRGb3Jl
Z3JvdW5kRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWlu
dEZvcmVncm91bmRGb3JGcmFnbWVudHNXaXRoUGhhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnBhaW50T3V0bGluZUZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6cGFpbnRNYXNrRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpMYXllclBhaW50
aW5nSW5mbzo6TGF5ZXJQYWludGluZ0luZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOiBBZGQgYSBjb21tZW50IHRvIHJlY29tbWVuZCBjaGFuZ2luZyB0aGUgbmFtZSBv
ZgorICAgICAgICBwYWludGluZ1Jvb3RSZWN0KCkgdG8gcmVmZXIgdG8gYSBzdWJ0cmVlIHBhaW50
LiBOb3QgZG9uZSBpbiB0aGlzIHBhdGNoIHRvIGF2b2lkCisgICAgICAgIHJpc2s7IHRoaXMgZnVu
Y3Rpb24gaXMgZXhwb3J0ZWQgZnJvbSBXZWJDb3JlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6cGFpbnRPYmplY3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQpOgorCiAyMDEzLTA1LTE4ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhvaXN0IHNldmVyYWwgY2h1bmtz
IG9mIGNvZGUgYXQgdGhlIHRvcCBvZiBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKCkg
b250byBuZXcgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOGJmNmZh
NDc3MTczYzU3NTFjYTIwNTI4NDk3YzgyY2YyODk1ZWNkZS4uMTBlYjVkN2JjM2NiNjNmMGYzZTQ4
NmFjOWM2MjlkMTI1OTk3ZDZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzU4
MSw2ICszNTgxLDcgQEAgYm9vbCBGcmFtZVZpZXc6OmlzUGFpbnRpbmcoKSBjb25zdAogICAgIHJl
dHVybiBtX2lzUGFpbnRpbmc7CiB9CiAKKy8vIEZJWE1FOiBjaGFuZ2UgdGhpcyB0byB1c2UgdGhl
IHN1YnRyZWVQYWludCB0ZXJtaW5vbG9neS4KIHZvaWQgRnJhbWVWaWV3OjpzZXROb2RlVG9EcmF3
KE5vZGUqIG5vZGUpCiB7CiAgICAgbV9ub2RlVG9EcmF3ID0gbm9kZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCBkNjc4YjliOGNmNTMzN2I4MDY5MDA1
YjdiZjBmMTQ4NjNiMTI4Njk5Li5hZmM3MzQyNDcxZmVkNTNmMGMxM2YyNTY2MmRlZjkwNGU4NDQy
MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC0x
MTQxLDcgKzExNDEsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgUGFpbnRQaGFzZSBw
YWludFBoYXNlID0gcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzID8g
UGFpbnRQaGFzZU91dGxpbmUgOiBwYWludEluZm8ucGhhc2U7CiAgICAgUGFpbnRJbmZvIGNoaWxk
SW5mbyhwYWludEluZm8pOwogICAgIGNoaWxkSW5mby5waGFzZSA9IHBhaW50UGhhc2U7Ci0gICAg
Y2hpbGRJbmZvLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVuKHJlbmRlcmVyKCkpOworICAg
IGNoaWxkSW5mby51cGRhdGVTdWJ0cmVlUGFpbnRSb290Rm9yQ2hpbGRyZW4ocmVuZGVyZXIoKSk7
CiAgICAgCiAgICAgLy8gUGFpbnQgb3VyIGNoaWxkcmVuLgogICAgIGlmIChwYWludFBoYXNlICE9
IFBhaW50UGhhc2VTZWxmT3V0bGluZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1BhaW50SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5o
CmluZGV4IDgyMDllYWE1YjUwNzQ5NDM3YWRiODA4OTA5NDY3ZjlhNWZjYTZlZmYuLjQxNzg1OWRk
NTFjNzgyODVjOGEyZDZiZWZmZWNkNWE0MmI4MWY5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9QYWludEluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UGFpbnRJbmZvLmgKQEAgLTU0LDEzICs1NCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8T3ZlcmxhcFRl
c3RSZXF1ZXN0Q2xpZW50KiwgSW50UmVjdD4gT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwOwogICovCiBz
dHJ1Y3QgUGFpbnRJbmZvIHsKICAgICBQYWludEluZm8oR3JhcGhpY3NDb250ZXh0KiBuZXdDb250
ZXh0LCBjb25zdCBJbnRSZWN0JiBuZXdSZWN0LCBQYWludFBoYXNlIG5ld1BoYXNlLCBQYWludEJl
aGF2aW9yIG5ld1BhaW50QmVoYXZpb3IsCi0gICAgICAgIFJlbmRlck9iamVjdCogbmV3UGFpbnRp
bmdSb290ID0gMCwgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAwLCBMaXN0SGFzaFNldDxSZW5kZXJJ
bmxpbmUqPiogbmV3T3V0bGluZU9iamVjdHMgPSAwLAorICAgICAgICBSZW5kZXJPYmplY3QqIG5l
d1N1YnRyZWVQYWludFJvb3QgPSAwLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IDAsIExpc3RIYXNo
U2V0PFJlbmRlcklubGluZSo+KiBuZXdPdXRsaW5lT2JqZWN0cyA9IDAsCiAgICAgICAgIE92ZXJs
YXBUZXN0UmVxdWVzdE1hcCogb3ZlcmxhcFRlc3RSZXF1ZXN0cyA9IDAsIGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIG5ld1BhaW50Q29udGFpbmVyID0gMCkKICAgICAgICAgOiBjb250ZXh0
KG5ld0NvbnRleHQpCiAgICAgICAgICwgcmVjdChuZXdSZWN0KQogICAgICAgICAsIHBoYXNlKG5l
d1BoYXNlKQogICAgICAgICAsIHBhaW50QmVoYXZpb3IobmV3UGFpbnRCZWhhdmlvcikKLSAgICAg
ICAgLCBwYWludGluZ1Jvb3QobmV3UGFpbnRpbmdSb290KQorICAgICAgICAsIHN1YnRyZWVQYWlu
dFJvb3QobmV3U3VidHJlZVBhaW50Um9vdCkKICAgICAgICAgLCByZW5kZXJSZWdpb24ocmVnaW9u
KQogICAgICAgICAsIG91dGxpbmVPYmplY3RzKG5ld091dGxpbmVPYmplY3RzKQogICAgICAgICAs
IG92ZXJsYXBUZXN0UmVxdWVzdHMob3ZlcmxhcFRlc3RSZXF1ZXN0cykKQEAgLTY4LDIxICs2OCwy
MSBAQCBzdHJ1Y3QgUGFpbnRJbmZvIHsKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVQ
YWludGluZ1Jvb3RGb3JDaGlsZHJlbihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorICAg
IHZvaWQgdXBkYXRlU3VidHJlZVBhaW50Um9vdEZvckNoaWxkcmVuKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCiAgICAgewotICAgICAgICBpZiAoIXBhaW50aW5nUm9vdCkKKyAgICAgICAg
aWYgKCFzdWJ0cmVlUGFpbnRSb290KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8v
IElmIHdlJ3JlIHRoZSBwYWludGluZyByb290LCBraWRzIGRyYXcgbm9ybWFsbHksIGFuZCBzZWUg
cm9vdCBvZiAwLgotICAgICAgICBpZiAocGFpbnRpbmdSb290ID09IHJlbmRlcmVyKSB7Ci0gICAg
ICAgICAgICBwYWludGluZ1Jvb3QgPSAwOyAKKyAgICAgICAgaWYgKHN1YnRyZWVQYWludFJvb3Qg
PT0gcmVuZGVyZXIpIHsKKyAgICAgICAgICAgIHN1YnRyZWVQYWludFJvb3QgPSAwOyAKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogICAgIGJvb2wgc2hvdWxkUGFpbnRX
aXRoaW5Sb290KGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gIXBhaW50aW5nUm9vdCB8fCBwYWludGluZ1Jvb3QgPT0gcmVuZGVyZXI7Cisg
ICAgICAgIHJldHVybiAhc3VidHJlZVBhaW50Um9vdCB8fCBzdWJ0cmVlUGFpbnRSb290ID09IHJl
bmRlcmVyOwogICAgIH0KIAogICAgIGJvb2wgZm9yY2VCbGFja1RleHQoKSBjb25zdCB7IHJldHVy
biBwYWludEJlaGF2aW9yICYgUGFpbnRCZWhhdmlvckZvcmNlQmxhY2tUZXh0OyB9CkBAIC0xMTIs
NyArMTEyLDcgQEAgc3RydWN0IFBhaW50SW5mbyB7CiAgICAgSW50UmVjdCByZWN0OwogICAgIFBh
aW50UGhhc2UgcGhhc2U7CiAgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yOwotICAgIFJl
bmRlck9iamVjdCogcGFpbnRpbmdSb290OyAvLyB1c2VkIHRvIGRyYXcganVzdCBvbmUgZWxlbWVu
dCBhbmQgaXRzIHZpc3VhbCBraWRzCisgICAgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290
OyAvLyB1c2VkIHRvIGRyYXcganVzdCBvbmUgZWxlbWVudCBhbmQgaXRzIHZpc3VhbCBjaGlsZHJl
bgogICAgIFJlbmRlclJlZ2lvbiogcmVuZGVyUmVnaW9uOwogICAgIExpc3RIYXNoU2V0PFJlbmRl
cklubGluZSo+KiBvdXRsaW5lT2JqZWN0czsgLy8gdXNlZCB0byBsaXN0IG91dGxpbmVzIHRoYXQg
c2hvdWxkIGJlIHBhaW50ZWQgYnkgYSBibG9jayB3aXRoIGlubGluZSBjaGlsZHJlbgogICAgIE92
ZXJsYXBUZXN0UmVxdWVzdE1hcCogb3ZlcmxhcFRlc3RSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDAzNTQyZmNkYWQ2MzJiYWM0NzNiNWI1YTAx
YjZkMGY2OTk0MjM2N2IuLjM2OWYyOTM0NjU3MjA4YjYwYjJiYjg1ZTJhMzE5N2U0MWNjNmUzNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzExNiw3ICsz
MTE2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgLy8gV2UgZG9uJ3QgcGFp
bnQgb3VyIG93biBiYWNrZ3JvdW5kLCBidXQgd2UgZG8gbGV0IHRoZSBraWRzIHBhaW50IHRoZWly
IGJhY2tncm91bmRzLgogICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvRm9yQ2hpbGQocGFpbnRJ
bmZvKTsKICAgICAgICAgcGFpbnRJbmZvRm9yQ2hpbGQucGhhc2UgPSBuZXdQaGFzZTsKLSAgICAg
ICAgcGFpbnRJbmZvRm9yQ2hpbGQudXBkYXRlUGFpbnRpbmdSb290Rm9yQ2hpbGRyZW4odGhpcyk7
CisgICAgICAgIHBhaW50SW5mb0ZvckNoaWxkLnVwZGF0ZVN1YnRyZWVQYWludFJvb3RGb3JDaGls
ZHJlbih0aGlzKTsKIAogICAgICAgICAvLyBGSVhNRTogUGFpbnQtdGltZSBwYWdpbmF0aW9uIGlz
IG9ic29sZXRlIGFuZCBpcyBub3cgb25seSB1c2VkIGJ5IGVtYmVkZGVkIFdlYlZpZXdzIGluc2lk
ZSBBcHBLaXQKICAgICAgICAgLy8gTlNWaWV3cy4gRG8gbm90IGFkZCBhbnkgbW9yZSBjb2RlIGZv
ciB0aGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA0MDIwMjc4
ODU3OGRhNmI5NjA1MzNlNTQ5YmZmMDI4MGZkZWU1YWZkLi40NDY5MmRlYTgzOWE3ODJiZmI0NWI3
NDE5YTc5ZGM3MDNjMTliM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtMTAzMCw3ICsxMDMwLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgTGF5b3V0UG9p
bnQgYWRqdXN0ZWRQYWludE9mZnNldCA9IHBhaW50T2Zmc2V0ICsgbG9jYXRpb24oKTsKICAgICAv
LyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBKdXN0IHBhc3MgcGFpbnQgdGhyb3VnaCB0byB0aGUg
Y2hpbGRyZW4KICAgICBQYWludEluZm8gY2hpbGRJbmZvKHBhaW50SW5mbyk7Ci0gICAgY2hpbGRJ
bmZvLnVwZGF0ZVBhaW50aW5nUm9vdEZvckNoaWxkcmVuKHRoaXMpOworICAgIGNoaWxkSW5mby51
cGRhdGVTdWJ0cmVlUGFpbnRSb290Rm9yQ2hpbGRyZW4odGhpcyk7CiAgICAgZm9yIChSZW5kZXJP
YmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgY2hpbGQtPnBhaW50KGNoaWxkSW5mbywgYWRqdXN0ZWRQYWludE9m
ZnNldCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1
ZGI3NGFjMWZiZTgxNjA0MGFhMGEzMTdhMzMxOTJkOTdiMDEwZTQwLi4wZjBjODdjYTAwYWVhYWE1
OWIwOWE0ZWIzYTVkMzYzYWE1ZDQyYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKQEAgLTM0NzEsMTEgKzM0NzEsMTEgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2Ny
b2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFy
aXQKICAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFy
aXR5LCBtdWx0aXBsaWVyKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0LCBQYWludEJlaGF2
aW9yIHBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBSZW5kZXJSZWdp
b24qIHJlZ2lvbiwgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MpCit2b2lkIFJlbmRlckxheWVy
OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFn
ZVJlY3QsIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVl
UGFpbnRSb290LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgUGFpbnRMYXllckZsYWdzIHBhaW50Rmxh
Z3MpCiB7CiAgICAgT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwIG92ZXJsYXBUZXN0UmVxdWVzdHM7CiAK
LSAgICBMYXllclBhaW50aW5nSW5mbyBwYWludGluZ0luZm8odGhpcywgZW5jbG9zaW5nSW50UmVj
dChkYW1hZ2VSZWN0KSwgcGFpbnRCZWhhdmlvciwgTGF5b3V0U2l6ZSgpLCBwYWludGluZ1Jvb3Qs
IHJlZ2lvbiwgJm92ZXJsYXBUZXN0UmVxdWVzdHMpOworICAgIExheWVyUGFpbnRpbmdJbmZvIHBh
aW50aW5nSW5mbyh0aGlzLCBlbmNsb3NpbmdJbnRSZWN0KGRhbWFnZVJlY3QpLCBwYWludEJlaGF2
aW9yLCBMYXlvdXRTaXplKCksIHN1YnRyZWVQYWludFJvb3QsIHJlZ2lvbiwgJm92ZXJsYXBUZXN0
UmVxdWVzdHMpOwogICAgIHBhaW50TGF5ZXIoY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZs
YWdzKTsKIAogICAgIE92ZXJsYXBUZXN0UmVxdWVzdE1hcDo6aXRlcmF0b3IgZW5kID0gb3Zlcmxh
cFRlc3RSZXF1ZXN0cy5lbmQoKTsKQEAgLTM0ODMsMTIgKzM0ODMsMTIgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBk
YW1hZ2VSZWN0LAogICAgICAgICBpdC0+a2V5LT5zZXRPdmVybGFwVGVzdFJlc3VsdChmYWxzZSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmxheVNjcm9sbGJhcnMoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0LCBQYWludEJlaGF2
aW9yIHBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290KQordm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRPdmVybGF5U2Nyb2xsYmFycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlv
ciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290KQogewogICAgIGlmICghbV9jb250YWlu
c0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheWVyUGFp
bnRpbmdJbmZvIHBhaW50aW5nSW5mbyh0aGlzLCBlbmNsb3NpbmdJbnRSZWN0KGRhbWFnZVJlY3Qp
LCBwYWludEJlaGF2aW9yLCBMYXlvdXRTaXplKCksIHBhaW50aW5nUm9vdCk7CisgICAgTGF5ZXJQ
YWludGluZ0luZm8gcGFpbnRpbmdJbmZvKHRoaXMsIGVuY2xvc2luZ0ludFJlY3QoZGFtYWdlUmVj
dCksIHBhaW50QmVoYXZpb3IsIExheW91dFNpemUoKSwgc3VidHJlZVBhaW50Um9vdCk7CiAgICAg
cGFpbnRMYXllcihjb250ZXh0LCBwYWludGluZ0luZm8sIFBhaW50TGF5ZXJQYWludGluZ092ZXJs
YXlTY3JvbGxiYXJzKTsKIAogICAgIG1fY29udGFpbnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzID0g
ZmFsc2U7CkBAIC0zODcxLDEzICszODcxLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAg
ICAgfQogI2VuZGlmCiAKLSAgICAvLyBJZiB0aGlzIGxheWVyJ3MgcmVuZGVyZXIgaXMgYSBjaGls
ZCBvZiB0aGUgcGFpbnRpbmdSb290LCB3ZSByZW5kZXIgdW5jb25kaXRpb25hbGx5LCB3aGljaAot
ICAgIC8vIGlzIGRvbmUgYnkgcGFzc2luZyBhIG5pbCBwYWludGluZ1Jvb3QgZG93biB0byBvdXIg
cmVuZGVyZXIgKGFzIGlmIG5vIHBhaW50aW5nUm9vdCB3YXMgZXZlciBzZXQpLgotICAgIC8vIEVs
c2UsIG91ciByZW5kZXJlciB0cmVlIG1heSBvciBtYXkgbm90IGNvbnRhaW4gdGhlIHBhaW50aW5n
IHJvb3QsIHNvIHdlIHBhc3MgdGhhdCByb290IGFsb25nCisgICAgLy8gSWYgdGhpcyBsYXllcidz
IHJlbmRlcmVyIGlzIGEgY2hpbGQgb2YgdGhlIHN1YnRyZWVQYWludFJvb3QsIHdlIHJlbmRlciB1
bmNvbmRpdGlvbmFsbHksIHdoaWNoCisgICAgLy8gaXMgZG9uZSBieSBwYXNzaW5nIGEgbmlsIHN1
YnRyZWVQYWludFJvb3QgZG93biB0byBvdXIgcmVuZGVyZXIgKGFzIGlmIG5vIHN1YnRyZWVQYWlu
dFJvb3Qgd2FzIGV2ZXIgc2V0KS4KKyAgICAvLyBPdGhlcndpc2UsIG91ciByZW5kZXJlciB0cmVl
IG1heSBvciBtYXkgbm90IGNvbnRhaW4gdGhlIHN1YnRyZWVQYWludFJvb3Qgcm9vdCwgc28gd2Ug
cGFzcyB0aGF0IHJvb3QgYWxvbmcKICAgICAvLyBzbyBpdCB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0
IGFzIHdlIGRlc2NlbmQgdGhyb3VnaCB0aGUgcmVuZGVyZXJzLgotICAgIFJlbmRlck9iamVjdCog
cGFpbnRpbmdSb290Rm9yUmVuZGVyZXIgPSAwOwotICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5w
YWludGluZ1Jvb3QgJiYgIXJlbmRlcmVyKCktPmlzRGVzY2VuZGFudE9mKGxvY2FsUGFpbnRpbmdJ
bmZvLnBhaW50aW5nUm9vdCkpCi0gICAgICAgIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyID0gbG9j
YWxQYWludGluZ0luZm8ucGFpbnRpbmdSb290OworICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBh
aW50Um9vdEZvclJlbmRlcmVyID0gMDsKKyAgICBpZiAobG9jYWxQYWludGluZ0luZm8uc3VidHJl
ZVBhaW50Um9vdCAmJiAhcmVuZGVyZXIoKS0+aXNEZXNjZW5kYW50T2YobG9jYWxQYWludGluZ0lu
Zm8uc3VidHJlZVBhaW50Um9vdCkpCisgICAgICAgIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJl
ciA9IGxvY2FsUGFpbnRpbmdJbmZvLnN1YnRyZWVQYWludFJvb3Q7CiAKICAgICBpZiAobG9jYWxQ
YWludGluZ0luZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cyAmJiBpc1NlbGZQYWludGluZ0xheWVyKQog
ICAgICAgICBwZXJmb3JtT3ZlcmxhcFRlc3RzKCpsb2NhbFBhaW50aW5nSW5mby5vdmVybGFwVGVz
dFJlcXVlc3RzLCBsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXIsIHRoaXMpOwpAQCAtMzkwNSw3
ICszOTA1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgLy8gUGFpbnQgb25s
eSB0aGUgYmFja2dyb3VuZHMgZm9yIGFsbCBvZiB0aGUgZnJhZ21lbnRzIG9mIHRoZSBsYXllci4K
ICAgICAgICAgaWYgKHNob3VsZFBhaW50Q29udGVudCAmJiAhc2VsZWN0aW9uT25seSkKICAgICAg
ICAgICAgIHBhaW50QmFja2dyb3VuZEZvckZyYWdtZW50cyhsYXllckZyYWdtZW50cywgY29udGV4
dCwgdHJhbnNwYXJlbmN5TGF5ZXJDb250ZXh0LCBwYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3Qs
IGhhdmVUcmFuc3BhcmVuY3ksCi0gICAgICAgICAgICAgICAgbG9jYWxQYWludGluZ0luZm8sIHBh
aW50QmVoYXZpb3IsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKKyAgICAgICAgICAgICAgICBs
b2NhbFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRl
cmVyKTsKICAgICB9CiAKICAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVkIGxpc3Qgb2YgY2hpbGRy
ZW4gd2l0aCBuZWdhdGl2ZSB6LWluZGljZXMuCkBAIC0zOTE1LDExICszOTE1LDExIEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheWVyUGFpbnRpCiAgICAgaWYgKGlzUGFpbnRpbmdDb21wb3NpdGVkRm9yZWdyb3Vu
ZCkgewogICAgICAgICBpZiAoc2hvdWxkUGFpbnRDb250ZW50KQogICAgICAgICAgICAgcGFpbnRG
b3JlZ3JvdW5kRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCB0cmFuc3BhcmVu
Y3lMYXllckNvbnRleHQsIHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgaGF2ZVRyYW5zcGFy
ZW5jeSwKLSAgICAgICAgICAgICAgICBsb2NhbFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwg
cGFpbnRpbmdSb290Rm9yUmVuZGVyZXIsIHNlbGVjdGlvbk9ubHksIGZvcmNlQmxhY2tUZXh0KTsK
KyAgICAgICAgICAgICAgICBsb2NhbFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgc3VidHJl
ZVBhaW50Um9vdEZvclJlbmRlcmVyLCBzZWxlY3Rpb25Pbmx5LCBmb3JjZUJsYWNrVGV4dCk7CiAg
ICAgfQogCiAgICAgaWYgKHNob3VsZFBhaW50T3V0bGluZSkKLSAgICAgICAgcGFpbnRPdXRsaW5l
Rm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywg
cGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgICAgICBwYWludE91
dGxpbmVGb3JGcmFnbWVudHMobGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJ
bmZvLCBwYWludEJlaGF2aW9yLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpOwogCiAgICAg
aWYgKGlzUGFpbnRpbmdDb21wb3NpdGVkRm9yZWdyb3VuZCkgewogICAgICAgICAvLyBQYWludCBh
bnkgY2hpbGQgbGF5ZXJzIHRoYXQgaGF2ZSBvdmVyZmxvdy4KQEAgLTM5NDQsNyArMzk0NCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAKICAgICBpZiAoKGxvY2FsUGFpbnRGbGFncyAmIFBh
aW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlKSAmJiBzaG91bGRQYWludENvbnRl
bnQgJiYgcmVuZGVyZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rpb25Pbmx5KSB7CiAgICAgICAg
IC8vIFBhaW50IHRoZSBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgotICAgICAgICBwYWludE1hc2tG
b3JGcmFnbWVudHMobGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBw
YWludGluZ1Jvb3RGb3JSZW5kZXJlcik7CisgICAgICAgIHBhaW50TWFza0ZvckZyYWdtZW50cyhs
YXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHN1YnRyZWVQYWludFJv
b3RGb3JSZW5kZXJlcik7CiAgICAgfQogCiAgICAgLy8gRW5kIG91ciB0cmFuc3BhcmVuY3kgbGF5
ZXIKQEAgLTM5ODAsNyArMzk4MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJCeUFw
cGx5aW5nVHJhbnNmb3JtKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QKIAogICAgIC8v
IE5vdyBkbyBhIHBhaW50IHdpdGggdGhlIHJvb3QgbGF5ZXIgc2hpZnRlZCB0byBiZSB1cy4KICAg
ICBMYXllclBhaW50aW5nSW5mbyB0cmFuc2Zvcm1lZFBhaW50aW5nSW5mbyh0aGlzLCBlbmNsb3Np
bmdJbnRSZWN0KHRyYW5zZm9ybS5pbnZlcnNlKCkubWFwUmVjdChwYWludGluZ0luZm8ucGFpbnRE
aXJ0eVJlY3QpKSwgcGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IsCi0gICAgICAgIGFkanVzdGVk
U3ViUGl4ZWxBY2N1bXVsYXRpb24sIHBhaW50aW5nSW5mby5wYWludGluZ1Jvb3QsIHBhaW50aW5n
SW5mby5yZWdpb24sIHBhaW50aW5nSW5mby5vdmVybGFwVGVzdFJlcXVlc3RzKTsKKyAgICAgICAg
YWRqdXN0ZWRTdWJQaXhlbEFjY3VtdWxhdGlvbiwgcGFpbnRpbmdJbmZvLnN1YnRyZWVQYWludFJv
b3QsIHBhaW50aW5nSW5mby5yZWdpb24sIHBhaW50aW5nSW5mby5vdmVybGFwVGVzdFJlcXVlc3Rz
KTsKICAgICBwYWludExheWVyQ29udGVudHNBbmRSZWZsZWN0aW9uKGNvbnRleHQsIHRyYW5zZm9y
bWVkUGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKIH0KIApAQCAtNDEyNiw3ICs0MTI2LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRUcmFuc2Zvcm1lZExheWVySW50b0ZyYWdtZW50cyhHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGMKIAogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRCYWNrZ3Jv
dW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIHRyYW5zcGFyZW5jeUxheWVy
Q29udGV4dCwKICAgICBjb25zdCBMYXlvdXRSZWN0JiB0cmFuc3BhcmVuY3lQYWludERpcnR5UmVj
dCwgYm9vbCBoYXZlVHJhbnNwYXJlbmN5LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgbG9jYWxQ
YWludGluZ0luZm8sIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwKLSAgICBSZW5kZXJPYmpl
Y3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKQorICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBh
aW50Um9vdEZvclJlbmRlcmVyKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJG
cmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJh
Z21lbnQgPSBsYXllckZyYWdtZW50cy5hdChpKTsKQEAgLTQxNDUsNyArNDE0NSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnBhaW50QmFja2dyb3VuZEZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdt
ZW50cyYgbGF5ZXJGcmFnbWVuCiAgICAgICAgIAogICAgICAgICAvLyBQYWludCB0aGUgYmFja2dy
b3VuZC4KICAgICAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugd2lsbCBjb2xsZWN0IHRoZSBy
ZWdpb24gZnJvbSB0aGUgZnJhZ21lbnQgaXRzZWxmIGluc3RlYWQgb2YganVzdCBmcm9tIHRoZSBw
YWludCBpbmZvLgotICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIHBpeGVsU25h
cHBlZEludFJlY3QoZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpKSwgUGFpbnRQaGFzZUJs
b2NrQmFja2dyb3VuZCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIsIGxv
Y2FsUGFpbnRpbmdJbmZvLnJlZ2lvbiwgMCwgMCwgbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVy
LT5yZW5kZXJlcigpKTsKKyAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBwaXhl
bFNuYXBwZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tncm91bmRSZWN0LnJlY3QoKSksIFBhaW50UGhh
c2VCbG9ja0JhY2tncm91bmQsIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5k
ZXJlciwgbG9jYWxQYWludGluZ0luZm8ucmVnaW9uLCAwLCAwLCBsb2NhbFBhaW50aW5nSW5mby5y
b290TGF5ZXItPnJlbmRlcmVyKCkpOwogICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludElu
Zm8sIHRvUG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExv
Y2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5zdWJQaXhlbEFjY3VtdWxhdGlvbikpOwogCiAg
ICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5jbGlwVG9EaXJ0eVJlY3QpCkBAIC00MTU1LDcg
KzQxNTUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludEJhY2tncm91bmRGb3JGcmFnbWVudHMo
Y29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbgogCiB2b2lkIFJlbmRlckxheWVyOjpw
YWludEZvcmVncm91bmRGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJh
Z21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dCogdHJhbnNw
YXJlbmN5TGF5ZXJDb250ZXh0LAogICAgIGNvbnN0IExheW91dFJlY3QmIHRyYW5zcGFyZW5jeVBh
aW50RGlydHlSZWN0LCBib29sIGhhdmVUcmFuc3BhcmVuY3ksIGNvbnN0IExheWVyUGFpbnRpbmdJ
bmZvJiBsb2NhbFBhaW50aW5nSW5mbywgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLAotICAg
IFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIsIGJvb2wgc2VsZWN0aW9uT25s
eSwgYm9vbCBmb3JjZUJsYWNrVGV4dCkKKyAgICBSZW5kZXJPYmplY3QqIHN1YnRyZWVQYWludFJv
b3RGb3JSZW5kZXJlciwgYm9vbCBzZWxlY3Rpb25Pbmx5LCBib29sIGZvcmNlQmxhY2tUZXh0KQog
ewogICAgIC8vIEJlZ2luIHRyYW5zcGFyZW5jeSBpZiB3ZSBoYXZlIHNvbWV0aGluZyB0byBwYWlu
dC4KICAgICBpZiAoaGF2ZVRyYW5zcGFyZW5jeSkgewpAQCAtNDE3OCwxMiArNDE3OCwxMiBAQCB2
b2lkIFJlbmRlckxheWVyOjpwYWludEZvcmVncm91bmRGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJG
cmFnbWVudHMmIGxheWVyRnJhZ21lbgogICAgIC8vIFdlIGhhdmUgdG8gbG9vcCB0aHJvdWdoIGV2
ZXJ5IGZyYWdtZW50IG11bHRpcGxlIHRpbWVzLCBzaW5jZSB3ZSBoYXZlIHRvIHJlcGFpbnQgaW4g
ZWFjaCBzcGVjaWZpYyBwaGFzZSBpbiBvcmRlciBmb3IKICAgICAvLyBpbnRlcmxlYXZpbmcgb2Yg
dGhlIGZyYWdtZW50cyB0byB3b3JrIHByb3Blcmx5LgogICAgIHBhaW50Rm9yZWdyb3VuZEZvckZy
YWdtZW50c1dpdGhQaGFzZShzZWxlY3Rpb25Pbmx5ID8gUGFpbnRQaGFzZVNlbGVjdGlvbiA6IFBh
aW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMsIGxheWVyRnJhZ21lbnRzLAotICAgICAgICBj
b250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBwYWludGluZ1Jv
b3RGb3JSZW5kZXJlcik7CisgICAgICAgIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2Nh
bFBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgCiAgICAg
aWYgKCFzZWxlY3Rpb25Pbmx5KSB7Ci0gICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50
c1dpdGhQaGFzZShQYWludFBoYXNlRmxvYXQsIGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2Nh
bFBhaW50aW5nSW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3RGb3JSZW5kZXJl
cik7Ci0gICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWludFBo
YXNlRm9yZWdyb3VuZCwgbGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZv
LCBsb2NhbFBhaW50QmVoYXZpb3IsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKLSAgICAgICAg
cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBoYXNlKFBhaW50UGhhc2VDaGlsZE91dGxp
bmVzLCBsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIGxvY2FsUGFp
bnRCZWhhdmlvciwgcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgICAgICBwYWludEZvcmVn
cm91bmRGb3JGcmFnbWVudHNXaXRoUGhhc2UoUGFpbnRQaGFzZUZsb2F0LCBsYXllckZyYWdtZW50
cywgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIGxvY2FsUGFpbnRCZWhhdmlvciwgc3VidHJl
ZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICAgICAgcGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21l
bnRzV2l0aFBoYXNlKFBhaW50UGhhc2VGb3JlZ3JvdW5kLCBsYXllckZyYWdtZW50cywgY29udGV4
dCwgbG9jYWxQYWludGluZ0luZm8sIGxvY2FsUGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9v
dEZvclJlbmRlcmVyKTsKKyAgICAgICAgcGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBo
YXNlKFBhaW50UGhhc2VDaGlsZE91dGxpbmVzLCBsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9j
YWxQYWludGluZ0luZm8sIGxvY2FsUGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJl
bmRlcmVyKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHNob3VsZENsaXApCkBAIC00MTkxLDcgKzQx
OTEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludEZvcmVncm91bmRGb3JGcmFnbWVudHMoY29u
c3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbgogfQogCiB2b2lkIFJlbmRlckxheWVyOjpw
YWludEZvcmVncm91bmRGb3JGcmFnbWVudHNXaXRoUGhhc2UoUGFpbnRQaGFzZSBwaGFzZSwgY29u
c3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsCi0gICAgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIGxvY2FsUGFpbnRpbmdJbmZvLCBQYWlu
dEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVu
ZGVyZXIpCisgICAgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIGxvY2FsUGFpbnRpbmdJbmZvLCBQ
YWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50Um9v
dEZvclJlbmRlcmVyKQogewogICAgIGJvb2wgc2hvdWxkQ2xpcCA9IGxvY2FsUGFpbnRpbmdJbmZv
LmNsaXBUb0RpcnR5UmVjdCAmJiBsYXllckZyYWdtZW50cy5zaXplKCkgPiAxOwogCkBAIC00MjAz
LDcgKzQyMDMsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludEZvcmVncm91bmRGb3JGcmFnbWVu
dHNXaXRoUGhhc2UoUGFpbnRQaGFzZSBwaGFzZSwgY29uc3QgTAogICAgICAgICBpZiAoc2hvdWxk
Q2xpcCkKICAgICAgICAgICAgIGNsaXBUb1JlY3QobG9jYWxQYWludGluZ0luZm8ucm9vdExheWVy
LCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgZnJhZ21lbnQuZm9y
ZWdyb3VuZFJlY3QpOwogICAgIAotICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQs
IHBpeGVsU25hcHBlZEludFJlY3QoZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QucmVjdCgpKSwgcGhh
c2UsIHBhaW50QmVoYXZpb3IsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCBsb2NhbFBhaW50aW5n
SW5mby5yZWdpb24sIDAsIDAsIGxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIo
KSk7CisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgcGl4ZWxTbmFwcGVkSW50
UmVjdChmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdC5yZWN0KCkpLCBwaGFzZSwgcGFpbnRCZWhhdmlv
ciwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBsb2NhbFBhaW50aW5nSW5mby5yZWdpb24s
IDAsIDAsIGxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIoKSk7CiAgICAgICAg
IGlmIChwaGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKICAgICAgICAgICAgIHBhaW50SW5m
by5vdmVybGFwVGVzdFJlcXVlc3RzID0gbG9jYWxQYWludGluZ0luZm8ub3ZlcmxhcFRlc3RSZXF1
ZXN0czsKICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZvLCB0b1BvaW50KGZyYWdt
ZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQ
YWludGluZ0luZm8uc3ViUGl4ZWxBY2N1bXVsYXRpb24pKTsKQEAgLTQyMTQsNyArNDIxNCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQ
YWludFBoYXNlIHBoYXNlLCBjb25zdCBMCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3V0
bGluZUZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIGxvY2FsUGFp
bnRpbmdJbmZvLAotICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0
KiBwYWludGluZ1Jvb3RGb3JSZW5kZXJlcikKKyAgICBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZp
b3IsIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKQogewogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJGcmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJhZ21lbnQgPSBsYXllckZyYWdtZW50cy5hdChpKTsK
QEAgLTQyMjIsNyArNDIyMiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3V0bGluZUZvckZy
YWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAKICAgICAgICAgLy8gUGFpbnQgb3VyIG93biBvdXRsaW5lCi0gICAg
ICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgcGl4ZWxTbmFwcGVkSW50UmVjdChmcmFn
bWVudC5vdXRsaW5lUmVjdC5yZWN0KCkpLCBQYWludFBoYXNlU2VsZk91dGxpbmUsIHBhaW50QmVo
YXZpb3IsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCBsb2NhbFBhaW50aW5nSW5mby5yZWdpb24s
IDAsIDAsIGxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIoKSk7CisgICAgICAg
IFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgcGl4ZWxTbmFwcGVkSW50UmVjdChmcmFnbWVu
dC5vdXRsaW5lUmVjdC5yZWN0KCkpLCBQYWludFBoYXNlU2VsZk91dGxpbmUsIHBhaW50QmVoYXZp
b3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlciwgbG9jYWxQYWludGluZ0luZm8ucmVnaW9u
LCAwLCAwLCBsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCkpOwogICAgICAg
ICBjbGlwVG9SZWN0KGxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllciwgY29udGV4dCwgbG9jYWxQ
YWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIGZyYWdtZW50Lm91dGxpbmVSZWN0LCBEb05vdElu
Y2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFp
bnRJbmZvLCB0b1BvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJC
b3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3ViUGl4ZWxBY2N1bXVsYXRpb24pKTsK
ICAgICAgICAgcmVzdG9yZUNsaXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8ucGFpbnREaXJ0
eVJlY3QsIGZyYWdtZW50Lm91dGxpbmVSZWN0KTsKQEAgLTQyMzAsNyArNDIzMCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnBhaW50T3V0bGluZUZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50
cyYgbGF5ZXJGcmFnbWVudHMsCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TWFza0ZvckZy
YWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIGxvY2FsUGFpbnRpbmdJbmZv
LAotICAgIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpCisgICAgUmVuZGVy
T2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpCiB7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsYXllckZyYWdtZW50cy5zaXplKCk7ICsraSkgewogICAgICAgICBjb25zdCBM
YXllckZyYWdtZW50JiBmcmFnbWVudCA9IGxheWVyRnJhZ21lbnRzLmF0KGkpOwpAQCAtNDI0Miw3
ICs0MjQyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0
IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3IKICAgICAgICAgCiAgICAgICAgIC8v
IFBhaW50IHRoZSBtYXNrLgogICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSB3aWxsIGNv
bGxlY3QgdGhlIHJlZ2lvbiBmcm9tIHRoZSBmcmFnbWVudCBpdHNlbGYgaW5zdGVhZCBvZiBqdXN0
IGZyb20gdGhlIHBhaW50IGluZm8uCi0gICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4
dCwgcGl4ZWxTbmFwcGVkSW50UmVjdChmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCkpLCBQ
YWludFBoYXNlTWFzaywgUGFpbnRCZWhhdmlvck5vcm1hbCwgcGFpbnRpbmdSb290Rm9yUmVuZGVy
ZXIsIGxvY2FsUGFpbnRpbmdJbmZvLnJlZ2lvbiwgMCwgMCwgbG9jYWxQYWludGluZ0luZm8ucm9v
dExheWVyLT5yZW5kZXJlcigpKTsKKyAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0
LCBwaXhlbFNuYXBwZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tncm91bmRSZWN0LnJlY3QoKSksIFBh
aW50UGhhc2VNYXNrLCBQYWludEJlaGF2aW9yTm9ybWFsLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVu
ZGVyZXIsIGxvY2FsUGFpbnRpbmdJbmZvLnJlZ2lvbiwgMCwgMCwgbG9jYWxQYWludGluZ0luZm8u
cm9vdExheWVyLT5yZW5kZXJlcigpKTsKICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJ
bmZvLCB0b1BvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hM
b2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3ViUGl4ZWxBY2N1bXVsYXRpb24pKTsKICAg
ICAgICAgCiAgICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5jbGlwVG9EaXJ0eVJlY3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDZkMTVlMmUxM2UxNTU4MmUz
OWUxNDc3MjhmZGFkYzRiMTgyZTllNDAuLjc0NDk5OTUxZTkyZTBkMzYyODBjZTNlMjE0NDllOWIx
YzEwZTY3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02MjQs
MTEgKzYyNCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gcGFpbnRzIHRoZSBsYXllcnMgdGhhdCBpbnRl
cnNlY3QgdGhlIGRhbWFnZSByZWN0IGZyb20gYmFjayB0bwogICAgIC8vIGZyb250LiAgVGhlIGhp
dFRlc3QgbWV0aG9kIGxvb2tzIGZvciBtb3VzZSBldmVudHMgYnkgd2Fsa2luZwogICAgIC8vIGxh
eWVycyB0aGF0IGludGVyc2VjdCB0aGUgcG9pbnQgZnJvbSBmcm9udCB0byBiYWNrLgotICAgIHZv
aWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCwg
UGFpbnRCZWhhdmlvciA9IFBhaW50QmVoYXZpb3JOb3JtYWwsIFJlbmRlck9iamVjdCogcGFpbnRp
bmdSb290ID0gMCwKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91
dFJlY3QmIGRhbWFnZVJlY3QsIFBhaW50QmVoYXZpb3IgPSBQYWludEJlaGF2aW9yTm9ybWFsLCBS
ZW5kZXJPYmplY3QqIHN1YnRyZWVQYWludFJvb3QgPSAwLAogICAgICAgICBSZW5kZXJSZWdpb24q
ID0gMCwgUGFpbnRMYXllckZsYWdzID0gMCk7CiAgICAgYm9vbCBoaXRUZXN0KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYpOwogICAgIGJvb2wgaGl0VGVzdChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIEhpdFRlc3RSZXN1bHQmKTsKLSAg
ICB2b2lkIHBhaW50T3ZlcmxheVNjcm9sbGJhcnMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5
b3V0UmVjdCYgZGFtYWdlUmVjdCwgUGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0KiBwYWludGlu
Z1Jvb3QgPSAwKTsKKyAgICB2b2lkIHBhaW50T3ZlcmxheVNjcm9sbGJhcnMoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCwgUGFpbnRCZWhhdmlvciwgUmVuZGVy
T2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290ID0gMCk7CiAKICAgICBzdHJ1Y3QgQ2xpcFJlY3RzQ29u
dGV4dCB7CiAgICAgICAgIENsaXBSZWN0c0NvbnRleHQoY29uc3QgUmVuZGVyTGF5ZXIqIGluUm9v
dExheWVyLCBSZW5kZXJSZWdpb24qIGluUmVnaW9uLCBDbGlwUmVjdHNUeXBlIGluQ2xpcFJlY3Rz
VHlwZSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgaW5PdmVybGF5U2Nyb2xsYmFyU2l6
ZVJlbGV2YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLCBTaG91bGRSZXNwZWN0T3Zl
cmZsb3dDbGlwIGluUmVzcGVjdE92ZXJmbG93Q2xpcCA9IFJlc3BlY3RPdmVyZmxvd0NsaXApCkBA
IC05MTYsOSArOTE2LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nQW5k
TGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKICAgICBzdHJ1Y3QgTGF5ZXJQYWludGluZ0luZm8gewot
ICAgICAgICBMYXllclBhaW50aW5nSW5mbyhSZW5kZXJMYXllciogaW5Sb290TGF5ZXIsIGNvbnN0
IExheW91dFJlY3QmIGluRGlydHlSZWN0LCBQYWludEJlaGF2aW9yIGluUGFpbnRCZWhhdmlvciwg
Y29uc3QgTGF5b3V0U2l6ZSYgaW5TdWJQaXhlbEFjY3VtdWxhdGlvbiwgUmVuZGVyT2JqZWN0KiBp
blBhaW50aW5nUm9vdCA9IDAsIFJlbmRlclJlZ2lvbippblJlZ2lvbiA9IDAsIE92ZXJsYXBUZXN0
UmVxdWVzdE1hcCogaW5PdmVybGFwVGVzdFJlcXVlc3RzID0gMCkKKyAgICAgICAgTGF5ZXJQYWlu
dGluZ0luZm8oUmVuZGVyTGF5ZXIqIGluUm9vdExheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBpbkRp
cnR5UmVjdCwgUGFpbnRCZWhhdmlvciBpblBhaW50QmVoYXZpb3IsIGNvbnN0IExheW91dFNpemUm
IGluU3ViUGl4ZWxBY2N1bXVsYXRpb24sIFJlbmRlck9iamVjdCogaW5TdWJ0cmVlUGFpbnRSb290
ID0gMCwgUmVuZGVyUmVnaW9uKmluUmVnaW9uID0gMCwgT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwKiBp
bk92ZXJsYXBUZXN0UmVxdWVzdHMgPSAwKQogICAgICAgICAgICAgOiByb290TGF5ZXIoaW5Sb290
TGF5ZXIpCi0gICAgICAgICAgICAsIHBhaW50aW5nUm9vdChpblBhaW50aW5nUm9vdCkKKyAgICAg
ICAgICAgICwgc3VidHJlZVBhaW50Um9vdChpblN1YnRyZWVQYWludFJvb3QpCiAgICAgICAgICAg
ICAsIHBhaW50RGlydHlSZWN0KGluRGlydHlSZWN0KQogICAgICAgICAgICAgLCBzdWJQaXhlbEFj
Y3VtdWxhdGlvbihpblN1YlBpeGVsQWNjdW11bGF0aW9uKQogICAgICAgICAgICAgLCByZWdpb24o
aW5SZWdpb24pCkBAIC05MjcsNyArOTI3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgY2xp
cFRvRGlydHlSZWN0KHRydWUpCiAgICAgICAgIHsgfQogICAgICAgICBSZW5kZXJMYXllciogcm9v
dExheWVyOwotICAgICAgICBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdDsgLy8gb25seSBwYWlu
dCBkZXNjZW5kYW50cyBvZiB0aGlzIG9iamVjdAorICAgICAgICBSZW5kZXJPYmplY3QqIHN1YnRy
ZWVQYWludFJvb3Q7IC8vIG9ubHkgcGFpbnQgZGVzY2VuZGFudHMgb2YgdGhpcyBvYmplY3QKICAg
ICAgICAgTGF5b3V0UmVjdCBwYWludERpcnR5UmVjdDsgLy8gcmVsYXRpdmUgdG8gcm9vdExheWVy
OwogICAgICAgICBMYXlvdXRTaXplIHN1YlBpeGVsQWNjdW11bGF0aW9uOwogICAgICAgICBSZW5k
ZXJSZWdpb24qIHJlZ2lvbjsgLy8gTWF5IGJlIG51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGRjM2Y2ZThlOTVlMTMwZDYyOWZkM2YyZTAxNmI5OWM1
ZWRkYTFjYzguLjViNWRlYTRmNTQ4N2VkNzlmYTEyMjZlMDlhNGIyZDljY2UwMTUzZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xMjM2LDYgKzEyMzYs
NyBAQCB2b2lkIFJlbmRlck9iamVjdDo6YWRkQWJzb2x1dGVSZWN0Rm9yTGF5ZXIoTGF5b3V0UmVj
dCYgcmVzdWx0KQogICAgICAgICBjdXJyZW50LT5hZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihyZXN1
bHQpOwogfQogCisvLyBGSVhNRTogY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBzdWJ0cmVlUGFpbnQg
dGVybWlub2xvZ3kKIExheW91dFJlY3QgUmVuZGVyT2JqZWN0OjpwYWludGluZ1Jvb3RSZWN0KExh
eW91dFJlY3QmIHRvcExldmVsUmVjdCkKIHsKICAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IGFic29s
dXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCAzYWJi
NGU5ZTc1Mjg5MGY1ZWVmMDQxMjM1MWM5ZDUzOGMwZjEyYmQxLi4xYTA2OGMxMzYzMjMxYjJhNGYx
OWE5ZjJmMjMxYmUwNWE2M2Y2N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lk
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaQogCiAgICAgUGFpbnRJbmZvIHBhaW50SW5mb0ZvckNoaWxkKHBh
aW50SW5mbyk7CiAgICAgcGFpbnRJbmZvRm9yQ2hpbGQucGhhc2UgPSBuZXdQaGFzZTsKLSAgICBw
YWludEluZm9Gb3JDaGlsZC51cGRhdGVQYWludGluZ1Jvb3RGb3JDaGlsZHJlbih0aGlzKTsKKyAg
ICBwYWludEluZm9Gb3JDaGlsZC51cGRhdGVTdWJ0cmVlUGFpbnRSb290Rm9yQ2hpbGRyZW4odGhp
cyk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAgICAgIExheW91dFBvaW50
IGNoaWxkUG9pbnQgPSBmbGlwRm9yV3JpdGluZ01vZGVGb3JDaGlsZChjaGlsZCwgcGFpbnRPZmZz
ZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggMjBjN2Rj
NzI5YTAwNzU4MzQ1ZTQ4NmE4OGEzMzcyODJlMzRlNjhlZS4uYmYwNjg1MjBiOTQ2ZTA4ODIwNDRk
ZGFhY2Y1YjcyZDQ3Y2IyZThiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuY3BwCkBAIC02NTMsNyArNjUzLDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnRPYmplY3Qo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKIAogICAg
IFBhaW50SW5mbyBpbmZvKHBhaW50SW5mbyk7CiAgICAgaW5mby5waGFzZSA9IHBhaW50UGhhc2U7
Ci0gICAgaW5mby51cGRhdGVQYWludGluZ1Jvb3RGb3JDaGlsZHJlbih0aGlzKTsKKyAgICBpbmZv
LnVwZGF0ZVN1YnRyZWVQYWludFJvb3RGb3JDaGlsZHJlbih0aGlzKTsKIAogICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5pc0JveCgpICYmICF0b1JlbmRlckJv
eChjaGlsZCktPmhhc1NlbGZQYWludGluZ0xheWVyKCkgJiYgKGNoaWxkLT5pc1RhYmxlU2VjdGlv
bigpIHx8IGNoaWxkLT5pc1RhYmxlQ2FwdGlvbigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCmluZGV4IDdhYjljMTQwZWFi
NTBjZmI5N2UxNmQ4N2IwOGNlMjA2N2U2YzhhZDQuLjkzMDVkYzZiM2ZhYmNmMWM1YWM0YzVlNDI3
OTE2Mjk2YTkwYjcyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFJlbmRlclNW
R0NvbnRhaW5lcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JikKICAgICAgICAgfQogCiAgICAgICAgIGlmIChjb250aW51ZVJlbmRlcmluZykgewotICAgICAg
ICAgICAgY2hpbGRQYWludEluZm8udXBkYXRlUGFpbnRpbmdSb290Rm9yQ2hpbGRyZW4odGhpcyk7
CisgICAgICAgICAgICBjaGlsZFBhaW50SW5mby51cGRhdGVTdWJ0cmVlUGFpbnRSb290Rm9yQ2hp
bGRyZW4odGhpcyk7CiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICAg
ICAgICAgIGNoaWxkLT5wYWludChjaGlsZFBhaW50SW5mbywgSW50UG9pbnQoKSk7CiAgICAgICAg
IH0K
</data>
<flag name="review"
          id="223662"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>