<?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>126363</bug_id>
          
          <creation_ts>2014-01-01 13:25:50 -0800</creation_ts>
          <short_desc>Remove elementChildren/elementDescendants shorthands</short_desc>
          <delta_ts>2014-01-02 00:46:33 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963628</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-01 13:25:50 -0800</bug_when>
    <thetext>Just use childrenOfType&lt;Element&gt;/descendantsOfType&lt;Element&gt; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963629</commentid>
    <comment_count>1</comment_count>
      <attachid>220192</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-01 13:30:42 -0800</bug_when>
    <thetext>Created attachment 220192
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963631</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-01 13:45:02 -0800</bug_when>
    <thetext>https://trac.webkit.org/r161196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963676</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-01 21:34:24 -0800</bug_when>
    <thetext>Do childrenOfType and descendantsOfType really need “OfType” in their names?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963704</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-02 00:37:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Do childrenOfType and descendantsOfType really need “OfType” in their names?

Probably not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963705</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-02 00:46:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Do childrenOfType and descendantsOfType really need “OfType” in their names?
&gt; 
&gt; Probably not.

With such generic names collisions with local variables and class members might get annoying. But maybe it is not a real problem.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220192</attachid>
            <date>2014-01-01 13:30:42 -0800</date>
            <delta_ts>2014-01-01 13:40:51 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-elementchildren.patch</filename>
            <type>text/plain</type>
            <size>20439</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTE5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE0LTAxLTAxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZWxlbWVudENoaWxk
cmVuL2VsZW1lbnREZXNjZW5kYW50cyBzaG9ydGhhbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKdXN0IHVzZSBjaGlsZHJlbk9mVHlwZTxFbGVtZW50
Pi9kZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PiBpbnN0ZWFkLiBUaGV5IGFyZSBub3QgdGhhdCBt
dWNoIGxvbmdlcgorICAgICAgICBhbmQgY29uc2lzdGVuY3kgaXMgdmFsdWFibGUuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW52YXNIYXNGYWxsYmFja0NvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6c2libGluZ1dpdGhBcmlhUm9sZSk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVRhYmxlOjppc0RhdGFUYWJsZSk6CisgICAgICAgICogY3NzL1N0eWxlSW52
YWxpZGF0aW9uQW5hbHlzaXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVJbnZhbGlkYXRp
b25BbmFseXNpczo6aW52YWxpZGF0ZVN0eWxlKToKKyAgICAgICAgKiBkb20vQ2hpbGROb2RlTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZE5vZGVMaXN0OjpuYW1lZEl0ZW0pOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YnVp
bGRBY2Nlc3NLZXlNYXApOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6cmVzZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBkb20vRWxlbWVudENoaWxkSXRl
cmF0b3IuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oOgorICAg
ICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVsZW1lbnRz
Rm9yTG9jYWxOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmFueUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZVNpbmdsZVRhZ05hbWVTZWxlY3RvckRh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZVNpbmdsZUNs
YXNzTmFtZVNlbGVjdG9yRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0
OjpleGVjdXRlU2luZ2xlU2VsZWN0b3JEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
RGF0YUxpc3Q6OmV4ZWN1dGVTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSk6CisgICAgICAgICogZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxl
Q29tbWFuZDo6Y2xlYW51cFVuc3R5bGVkQXBwbGVTdHlsZVNwYW5zKToKKyAgICAgICAgKiBlZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92
ZUhlYWRDb250ZW50cyk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcGxldGVVUkxzKToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6cmVmcmVzaEVs
ZW1lbnRzSWZOZWVkZWQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmNvbnRhaW5zSmF2YUFwcGxldCk6
CisgICAgICAgICogbG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhY2Vob2xkZXJEb2N1bWVudDo6Y3JlYXRlUmVuZGVyVHJlZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckNoaWxkSXRlcmF0b3IuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpnZXRFbGVtZW50QnlJ
ZCk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c3VidHJlZUNvbnRhaW5zRGlzYWxsb3dlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVt
b3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUpOgorCiAyMDE0LTAxLTAxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBsZXNzIHN5bmNocm9ub3Vz
IHJlbmRlciB0cmVlIGNvbnN0cnVjdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9u
IDE2MTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzksNyArNDM5LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FudmFzSGFzRgogICAgIC8vIElmIGl0IGhhcyBhbnkgY2hp
bGRyZW4gdGhhdCBhcmUgZWxlbWVudHMsIHdlJ2xsIGFzc3VtZSBpdCBtaWdodCBiZSBmYWxsYmFj
awogICAgIC8vIGNvbnRlbnQuIElmIGl0IGhhcyBubyBjaGlsZHJlbiBvciBpdHMgb25seSBjaGls
ZHJlbiBhcmUgbm90IGVsZW1lbnRzCiAgICAgLy8gKGUuZy4ganVzdCB0ZXh0IG5vZGVzKSwgaXQg
ZG9lc24ndCBoYXZlIGZhbGxiYWNrIGNvbnRlbnQuCi0gICAgcmV0dXJuIGVsZW1lbnRDaGlsZHJl
bihjYW52YXNFbGVtZW50KS5maXJzdCgpOworICAgIHJldHVybiBjaGlsZHJlbk9mVHlwZTxFbGVt
ZW50PihjYW52YXNFbGVtZW50KS5maXJzdCgpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0ltYWdlQnV0dG9uKCkgY29uc3QKQEAgLTExODMsNyArMTE4Myw3IEBAIHN0YXRp
YyBFbGVtZW50KiBzaWJsaW5nV2l0aEFyaWFSb2xlKFN0cmkKICAgICBpZiAoIXBhcmVudCkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBmb3IgKGF1dG8mIHNpYmxpbmcgOiBlbGVtZW50
Q2hpbGRyZW4oKnBhcmVudCkpIHsKKyAgICBmb3IgKGF1dG8mIHNpYmxpbmcgOiBjaGlsZHJlbk9m
VHlwZTxFbGVtZW50PigqcGFyZW50KSkgewogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNp
YmxpbmdBcmlhUm9sZSA9IHNpYmxpbmcuZmFzdEdldEF0dHJpYnV0ZShyb2xlQXR0cik7CiAgICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShzaWJsaW5nQXJpYVJvbGUsIHJvbGUpKQogICAgICAg
ICAgICAgcmV0dXJuICZzaWJsaW5nOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAkocmV2aXNpb24gMTYxMTk0KQorKysg
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6Omlz
RGF0YVRhYmxlKCkgYwogICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCiAKICAgICAvLyBpZiB0aGVy
ZSdzIGEgY29sZ3JvdXAgb3IgY29sIGVsZW1lbnQsIGl0J3MgcHJvYmFibHkgYSBkYXRhIHRhYmxl
LgotICAgIGZvciAoYXV0byYgY2hpbGQgOiBlbGVtZW50Q2hpbGRyZW4oKnRhYmxlRWxlbWVudCkp
IHsKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oKnRhYmxl
RWxlbWVudCkpIHsKICAgICAgICAgaWYgKGNoaWxkLmhhc1RhZ05hbWUoY29sVGFnKSB8fCBjaGls
ZC5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVJbnZhbGlkYXRpb25BbmFs
eXNpcy5jcHAJKHJldmlzaW9uIDE2MTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUlu
dmFsaWRhdGlvbkFuYWx5c2lzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDggKzExOCw4IEBA
IHZvaWQgU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpczo6aW52YWxpZGEKICAgICBpZiAobV9pZFNj
b3Blcy5pc0VtcHR5KCkgJiYgbV9jbGFzc1Njb3Blcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gaXQgPSBlbGVtZW50RGVzY2VuZGFudHMoZG9jdW1lbnQpLmJlZ2luKCk7
Ci0gICAgYXV0byBlbmQgPSBlbGVtZW50RGVzY2VuZGFudHMoZG9jdW1lbnQpLmVuZCgpOworICAg
IGF1dG8gaXQgPSBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50Pihkb2N1bWVudCkuYmVnaW4oKTsK
KyAgICBhdXRvIGVuZCA9IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGRvY3VtZW50KS5lbmQo
KTsKICAgICB3aGlsZSAoaXQgIT0gZW5kKSB7CiAgICAgICAgIGlmIChlbGVtZW50TWF0Y2hlc1Nl
bGVjdG9yU2NvcGVzKCppdCwgbV9pZFNjb3BlcywgbV9jbGFzc1Njb3BlcykpIHsKICAgICAgICAg
ICAgIGl0LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Q2hpbGROb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxk
Tm9kZUxpc3QuY3BwCShyZXZpc2lvbiAxNjExOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2hp
bGROb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgTm9kZSogQ2hp
bGROb2RlTGlzdDo6bmFtZWRJdGVtKGNvbnN0IEF0bwogICAgICAgICBpZiAoIWVsZW1lbnQgfHwg
IW1fcGFyZW50LmdldCgpLnRyZWVTY29wZSgpLmNvbnRhaW5zTXVsdGlwbGVFbGVtZW50c1dpdGhJ
ZChuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBmb3IgKGF1
dG8mIGVsZW1lbnQgOiBlbGVtZW50Q2hpbGRyZW4obV9wYXJlbnQuZ2V0KCkpKSB7CisgICAgZm9y
IChhdXRvJiBlbGVtZW50IDogY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4obV9wYXJlbnQuZ2V0KCkp
KSB7CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc0lEKCkgJiYgZWxlbWVudC5pZEZvclN0eWxlUmVz
b2x1dGlvbigpID09IG5hbWUpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxFbGVtZW50
Kj4oJmVsZW1lbnQpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNp
b24gMTYxMTk0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjg2LDcgKzY4Niw3IEBAIHZvaWQgRG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFw
KFRyZWVTY28KIHsKICAgICBBU1NFUlQoc2NvcGUpOwogICAgIENvbnRhaW5lck5vZGUqIHJvb3RO
b2RlID0gc2NvcGUtPnJvb3ROb2RlKCk7Ci0gICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVu
dERlc2NlbmRhbnRzKCpyb290Tm9kZSkpIHsKKyAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxFbGVtZW50Pigqcm9vdE5vZGUpKSB7CiAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgYWNjZXNzS2V5ID0gZWxlbWVudC5mYXN0R2V0QXR0cmlidXRlKGFjY2Vzc2tleUF0
dHIpOwogICAgICAgICBpZiAoIWFjY2Vzc0tleS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX2Vs
ZW1lbnRzQnlBY2Nlc3NLZXkuc2V0KGFjY2Vzc0tleS5pbXBsKCksICZlbGVtZW50KTsKQEAgLTgw
Niw3ICs4MDYsNyBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpCiAg
ICAgfQogI2VuZGlmCiAKLSAgICBFbGVtZW50KiBuZXdEb2N1bWVudEVsZW1lbnQgPSBlbGVtZW50
Q2hpbGRyZW4oKnRoaXMpLmZpcnN0KCk7CisgICAgRWxlbWVudCogbmV3RG9jdW1lbnRFbGVtZW50
ID0gY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oKnRoaXMpLmZpcnN0KCk7CiAKICAgICBpZiAobmV3
RG9jdW1lbnRFbGVtZW50ID09IG1fZG9jdW1lbnRFbGVtZW50KQogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjExOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MzAsNyArMjkzMCw3IEBA
IHZvaWQgRWxlbWVudDo6cmVzZXRDb21wdXRlZFN0eWxlKCkKICAgICBpZiAoIWhhc1JhcmVEYXRh
KCkgfHwgIWVsZW1lbnRSYXJlRGF0YSgpLT5jb21wdXRlZFN0eWxlKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBlbGVtZW50UmFyZURhdGEoKS0+cmVzZXRDb21wdXRlZFN0eWxlKCk7Ci0gICAgZm9y
IChhdXRvJiBjaGlsZCA6IGVsZW1lbnREZXNjZW5kYW50cygqdGhpcykpIHsKKyAgICBmb3IgKGF1
dG8mIGNoaWxkIDogZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAg
IGlmIChjaGlsZC5oYXNSYXJlRGF0YSgpKQogICAgICAgICAgICAgY2hpbGQuZWxlbWVudFJhcmVE
YXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50Q2hpbGRJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50Q2hpbGRJdGVyYXRvci5oCShyZXZpc2lvbiAxNjExOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudENoaWxkSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OCArNzIsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IENvbnRhaW5lck5vZGUmIG1fcGFyZW50Owog
fTsKIAotRWxlbWVudENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJl
bihDb250YWluZXJOb2RlJik7Ci1FbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVt
ZW50PiBlbGVtZW50Q2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSYpOwogdGVtcGxhdGUgPHR5
cGVuYW1lIEVsZW1lbnRUeXBlPiBFbGVtZW50Q2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5
cGU+IGNoaWxkcmVuT2ZUeXBlKENvbnRhaW5lck5vZGUmKTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBF
bGVtZW50VHlwZT4gRWxlbWVudENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+
IGNoaWxkcmVuT2ZUeXBlKGNvbnN0IENvbnRhaW5lck5vZGUmKTsKIApAQCAtMTgzLDIyICsxODEs
MTIgQEAgaW5saW5lIGNvbnN0IEVsZW1lbnRUeXBlKiBFbGVtZW50Q2hpbGRDbwogCiAvLyBTdGFu
ZGFsb25lIGZ1bmN0aW9ucwogCi1pbmxpbmUgRWxlbWVudENoaWxkSXRlcmF0b3JBZGFwdGVyPEVs
ZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihDb250YWluZXJOb2RlJiBwYXJlbnQpCi17Ci0gICAgcmV0
dXJuIEVsZW1lbnRDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PihwYXJlbnQpOwotfQotCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+CiBpbmxpbmUgRWxlbWVudENoaWxkSXRlcmF0
b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShDb250YWluZXJOb2RlJiBwYXJl
bnQpCiB7CiAgICAgcmV0dXJuIEVsZW1lbnRDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlw
ZT4ocGFyZW50KTsKIH0KIAotaW5saW5lIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihjb25zdCBDb250YWluZXJOb2RlJiBwYXJlbnQpCi17
Ci0gICAgcmV0dXJuIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+KHBh
cmVudCk7Ci19Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KIGlubGluZSBFbGVt
ZW50Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gY2hpbGRyZW5PZlR5cGUo
Y29uc3QgQ29udGFpbmVyTm9kZSYgcGFyZW50KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oCShyZXZpc2lvbiAxNjExOTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03OCw4ICs3OCw2IEBAIHByaXZhdGU6CiAgICAgY29uc3QgQ29udGFpbmVyTm9kZSYg
bV9yb290OwogfTsKIAotRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4g
ZWxlbWVudERlc2NlbmRhbnRzKENvbnRhaW5lck5vZGUmKTsKLUVsZW1lbnREZXNjZW5kYW50Q29u
c3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0IENvbnRh
aW5lck5vZGUmKTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gRWxlbWVudERlc2Nl
bmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+IGRlc2NlbmRhbnRzT2ZUeXBlKENvbnRh
aW5lck5vZGUmKTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gRWxlbWVudERlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUo
Y29uc3QgQ29udGFpbmVyTm9kZSYpOwogCkBAIC0yMzAsMjIgKzIyOCwxMiBAQCBpbmxpbmUgY29u
c3QgRWxlbWVudFR5cGUqIEVsZW1lbnREZXNjZW5kCiAKIC8vIFN0YW5kYWxvbmUgZnVuY3Rpb25z
CiAKLWlubGluZSBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVt
ZW50RGVzY2VuZGFudHMoQ29udGFpbmVyTm9kZSYgcm9vdCkKLXsKLSAgICByZXR1cm4gRWxlbWVu
dERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4ocm9vdCk7Ci19Ci0KIHRlbXBsYXRl
IDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KIGlubGluZSBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
QWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUoQ29udGFpbmVyTm9kZSYgcm9v
dCkKIHsKICAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVu
dFR5cGU+KHJvb3QpOwogfQogCi1pbmxpbmUgRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9y
QWRhcHRlcjxFbGVtZW50PiBlbGVtZW50RGVzY2VuZGFudHMoY29uc3QgQ29udGFpbmVyTm9kZSYg
cm9vdCkKLXsKLSAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRl
cjxFbGVtZW50Pihyb290KTsKLX0KLQogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgog
aW5saW5lIEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+
IGRlc2NlbmRhbnRzT2ZUeXBlKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3QpCiB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCShyZXZpc2lvbiAxNjExOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3
ICsxNjUsNyBAQCBzdGF0aWMgYm9vbCBpc1NpbmdsZVRhZ05hbWVTZWxlY3Rvcihjb25zCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0Pgogc3RhdGljIGlubGluZSB2b2lkIGVs
ZW1lbnRzRm9yTG9jYWxOYW1lKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRw
dXRUeXBlJiBvdXRwdXQpCiB7Ci0gICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudERlc2Nl
bmRhbnRzKGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2RlKSkpIHsKKyAgICBmb3Ig
KGF1dG8mIGVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50Pihjb25zdF9jYXN0PENv
bnRhaW5lck5vZGUmPihyb290Tm9kZSkpKSB7CiAgICAgICAgIGlmIChlbGVtZW50LnRhZ1FOYW1l
KCkubG9jYWxOYW1lKCkgPT0gbG9jYWxOYW1lKSB7CiAgICAgICAgICAgICBTZWxlY3RvclF1ZXJ5
VHJhaXQ6OmFwcGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CiAgICAgICAg
ICAgICBpZiAoU2VsZWN0b3JRdWVyeVRyYWl0OjpzaG91bGRPbmx5TWF0Y2hGaXJzdEVsZW1lbnQp
CkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVsZW1lbnRzRm9yTG9jYWxO
YW1lKAogdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KIHN0YXRpYyBpbmxp
bmUgdm9pZCBhbnlFbGVtZW50KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCkKIHsKLSAgICBmb3IgKGF1
dG8mIGVsZW1lbnQgOiBlbGVtZW50RGVzY2VuZGFudHMoY29uc3RfY2FzdDxDb250YWluZXJOb2Rl
Jj4ocm9vdE5vZGUpKSkgeworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZU
eXBlPEVsZW1lbnQ+KGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2RlKSkpIHsKICAg
ICAgICAgU2VsZWN0b3JRdWVyeVRyYWl0OjphcHBlbmRPdXRwdXRGb3JFbGVtZW50KG91dHB1dCwg
JmVsZW1lbnQpOwogICAgICAgICBpZiAoU2VsZWN0b3JRdWVyeVRyYWl0OjpzaG91bGRPbmx5TWF0
Y2hGaXJzdEVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDUsNyArMjA1LDcgQEAg
QUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZQogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gRmFsbGJhY2s6IE5hbWVzcGFjZVVSSSBpcyBzZXQsIHNlbGVj
dG9yTG9jYWxOYW1lIG1heSBiZSBzdGFyQXRvbS4KLSAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2Rl
KSkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8RWxl
bWVudD4oY29uc3RfY2FzdDxDb250YWluZXJOb2RlJj4ocm9vdE5vZGUpKSkgewogICAgICAgICAg
ICAgaWYgKGVsZW1lbnQubmFtZXNwYWNlVVJJKCkgPT0gc2VsZWN0b3JOYW1lc3BhY2VVUkkgJiYg
KHNlbGVjdG9yTG9jYWxOYW1lID09IHN0YXJBdG9tIHx8IGVsZW1lbnQudGFnUU5hbWUoKS5sb2Nh
bE5hbWUoKSA9PSBzZWxlY3RvckxvY2FsTmFtZSkpIHsKICAgICAgICAgICAgICAgICBTZWxlY3Rv
clF1ZXJ5VHJhaXQ6OmFwcGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CiAg
ICAgICAgICAgICAgICAgaWYgKFNlbGVjdG9yUXVlcnlUcmFpdDo6c2hvdWxkT25seU1hdGNoRmly
c3RFbGVtZW50KQpAQCAtMjI3LDcgKzIyNyw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3Rv
ckRhdGFMaXN0OjpleGUKICAgICBBU1NFUlQoaXNTaW5nbGVDbGFzc05hbWVTZWxlY3Rvcigqc2Vs
ZWN0b3JEYXRhLnNlbGVjdG9yKSk7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNsYXNzTmFt
ZSA9IHNlbGVjdG9yRGF0YS5zZWxlY3Rvci0+dmFsdWUoKTsKLSAgICBmb3IgKGF1dG8mIGVsZW1l
bnQgOiBlbGVtZW50RGVzY2VuZGFudHMoY29uc3RfY2FzdDxDb250YWluZXJOb2RlJj4ocm9vdE5v
ZGUpKSkgeworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1l
bnQ+KGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2RlKSkpIHsKICAgICAgICAgaWYg
KGVsZW1lbnQuaGFzQ2xhc3MoKSAmJiBlbGVtZW50LmNsYXNzTmFtZXMoKS5jb250YWlucyhjbGFz
c05hbWUpKSB7CiAgICAgICAgICAgICBTZWxlY3RvclF1ZXJ5VHJhaXQ6OmFwcGVuZE91dHB1dEZv
ckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoU2VsZWN0b3JRdWVy
eVRyYWl0OjpzaG91bGRPbmx5TWF0Y2hGaXJzdEVsZW1lbnQpCkBAIC0yNDEsNyArMjQxLDcgQEAg
QUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZQogewogICAgIEFTU0VSVCht
X3NlbGVjdG9ycy5zaXplKCkgPT0gMSk7CiAKLSAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBlbGVt
ZW50RGVzY2VuZGFudHMoY29uc3RfY2FzdDxDb250YWluZXJOb2RlJj4ocm9vdE5vZGUpKSkgewor
ICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGNvbnN0
X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2RlKSkpIHsKICAgICAgICAgaWYgKHNlbGVjdG9y
TWF0Y2hlcyhzZWxlY3RvckRhdGEsIGVsZW1lbnQsIHJvb3ROb2RlKSkgewogICAgICAgICAgICAg
U2VsZWN0b3JRdWVyeVRyYWl0OjphcHBlbmRPdXRwdXRGb3JFbGVtZW50KG91dHB1dCwgJmVsZW1l
bnQpOwogICAgICAgICAgICAgaWYgKFNlbGVjdG9yUXVlcnlUcmFpdDo6c2hvdWxkT25seU1hdGNo
Rmlyc3RFbGVtZW50KQpAQCAtMjU0LDcgKzI1NCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxl
Y3RvclF1ZXJ5VHJhaXQ+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhl
Y3V0ZVNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2Rl
LCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCkgY29uc3QK
IHsKICAgICB1bnNpZ25lZCBzZWxlY3RvckNvdW50ID0gbV9zZWxlY3RvcnMuc2l6ZSgpOwotICAg
IGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdF9jYXN0PENvbnRh
aW5lck5vZGUmPihyb290Tm9kZSkpKSB7CisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2Vu
ZGFudHNPZlR5cGU8RWxlbWVudD4oY29uc3RfY2FzdDxDb250YWluZXJOb2RlJj4ocm9vdE5vZGUp
KSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0b3JDb3VudDsgKytp
KSB7CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCBlbGVt
ZW50LCByb290Tm9kZSkpIHsKICAgICAgICAgICAgICAgICBTZWxlY3RvclF1ZXJ5VHJhaXQ6OmFw
cGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gMTYxMTk0KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzOSw3ICs0MzksNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpjbGVhbnVw
VW5zdHlsZWRBCiAgICAgLy8gYWxsIHRoZSBjaGlsZHJlbiBvZiB0aGUgZHVtbXkncyBwYXJlbnQK
IAogICAgIFZlY3RvcjxFbGVtZW50Kj4gdG9SZW1vdmU7Ci0gICAgZm9yIChhdXRvJiBjaGlsZCA6
IGVsZW1lbnRDaGlsZHJlbigqZHVtbXlTcGFuQW5jZXN0b3IpKSB7CisgICAgZm9yIChhdXRvJiBj
aGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCpkdW1teVNwYW5BbmNlc3RvcikpIHsKICAg
ICAgICAgaWYgKGlzU3BhbldpdGhvdXRBdHRyaWJ1dGVzT3JVbnN0eWxlZFN0eWxlU3BhbigmY2hp
bGQpKQogICAgICAgICAgICAgdG9SZW1vdmUuYXBwZW5kKCZjaGlsZCk7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAJKHJldmlzaW9uIDE2MTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsOCArNzA2LDggQEAgc3Rh
dGljIHZvaWQgcmVtb3ZlSGVhZENvbnRlbnRzKFJlcGxhY2VtZQogCiAgICAgVmVjdG9yPEVsZW1l
bnQqPiB0b1JlbW92ZTsKIAotICAgIGF1dG8gaXQgPSBlbGVtZW50RGVzY2VuZGFudHMoKmZyYWdt
ZW50LmZyYWdtZW50KCkpLmJlZ2luKCk7Ci0gICAgYXV0byBlbmQgPSBlbGVtZW50RGVzY2VuZGFu
dHMoKmZyYWdtZW50LmZyYWdtZW50KCkpLmVuZCgpOworICAgIGF1dG8gaXQgPSBkZXNjZW5kYW50
c09mVHlwZTxFbGVtZW50PigqZnJhZ21lbnQuZnJhZ21lbnQoKSkuYmVnaW4oKTsKKyAgICBhdXRv
IGVuZCA9IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KCpmcmFnbWVudC5mcmFnbWVudCgpKS5l
bmQoKTsKICAgICB3aGlsZSAoaXQgIT0gZW5kKSB7CiAgICAgICAgIGlmIChpdC0+aGFzVGFnTmFt
ZShiYXNlVGFnKSB8fCBpdC0+aGFzVGFnTmFtZShsaW5rVGFnKSB8fCBpdC0+aGFzVGFnTmFtZSht
ZXRhVGFnKSB8fCBpdC0+aGFzVGFnTmFtZShzdHlsZVRhZykgfHwgaXNIVE1MVGl0bGVFbGVtZW50
KCppdCkpIHsKICAgICAgICAgICAgIHRvUmVtb3ZlLmFwcGVuZCgmKml0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDE2MTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBzdGF0
aWMgdm9pZCBjb21wbGV0ZVVSTHMoRG9jdW1lbnRGcmFnbWVuCiAKICAgICBVUkwgcGFyc2VkQmFz
ZVVSTChQYXJzZWRVUkxTdHJpbmcsIGJhc2VVUkwpOwogCi0gICAgZm9yIChhdXRvJiBlbGVtZW50
IDogZWxlbWVudERlc2NlbmRhbnRzKCpmcmFnbWVudCkpIHsKKyAgICBmb3IgKGF1dG8mIGVsZW1l
bnQgOiBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqZnJhZ21lbnQpKSB7CiAgICAgICAgIGlm
ICghZWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gZWxlbWVudC5hdHRyaWJ1dGVDb3VudCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjEx
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBIVE1MRmllbGRTZXRFbGVtZW50Ojpy
ZWZyZXNoRWxlbWVudAogCiAgICAgbV9hc3NvY2lhdGVkRWxlbWVudHMuY2xlYXIoKTsKIAotICAg
IGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdF9jYXN0PEhUTUxG
aWVsZFNldEVsZW1lbnQmPigqdGhpcykpKSB7CisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVz
Y2VuZGFudHNPZlR5cGU8RWxlbWVudD4oY29uc3RfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50Jj4o
KnRoaXMpKSkgewogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykpCiAg
ICAgICAgICAgICBtX2Fzc29jaWF0ZWRFbGVtZW50cy5hcHBlbmQoJnRvSFRNTE9iamVjdEVsZW1l
bnQoZWxlbWVudCkpOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50LmlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTYxMTk1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MSw3ICs0NjEsNyBAQCBib29sIEhUTUxPYmplY3RF
bGVtZW50Ojpjb250YWluc0phdmFBcHBsCiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzSmF2
YUFwcGxldE1JTUVUeXBlKGdldEF0dHJpYnV0ZSh0eXBlQXR0cikpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGZvciAoYXV0byYgY2hpbGQgOiBlbGVtZW50Q2hpbGRyZW4oKnRoaXMpKSB7
CisgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKSkg
ewogICAgICAgICBpZiAoY2hpbGQuaGFzVGFnTmFtZShwYXJhbVRhZykgJiYgZXF1YWxJZ25vcmlu
Z0Nhc2UoY2hpbGQuZ2V0TmFtZUF0dHJpYnV0ZSgpLCAidHlwZSIpCiAgICAgICAgICAgICAmJiBN
SU1FVHlwZVJlZ2lzdHJ5Ojppc0phdmFBcHBsZXRNSU1FVHlwZShjaGlsZC5nZXRBdHRyaWJ1dGUo
dmFsdWVBdHRyKS5zdHJpbmcoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5jcHAJKHJldmlzaW9u
IDE2MTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCB2b2lkIFBsYWNlaG9sZGVyRG9jdW1l
bnQ6OmNyZWF0ZVJlbmRlclRyCiB7CiAgICAgQVNTRVJUKCFyZW5kZXJWaWV3KCkpOwogCi0gICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGVsZW1lbnRDaGlsZHJlbigqdGhpcykpCisgICAgZm9yIChhdXRv
JiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKSkKICAgICAgICAgU3R5bGU6
OmF0dGFjaFJlbmRlclRyZWUoY2hpbGQpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ2hpbGRJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJDaGlsZEl0ZXJhdG9yLmgJKHJldmlzaW9uIDE2MTE5NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDaGlsZEl0ZXJhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBSZW5kZXJFbGVtZW50JiBt
X3BhcmVudDsKIH07CiAKLVJlbmRlckNoaWxkSXRlcmF0b3JBZGFwdGVyPFJlbmRlck9iamVjdD4g
ZWxlbWVudENoaWxkcmVuKFJlbmRlckVsZW1lbnQmKTsKLVJlbmRlckNoaWxkQ29uc3RJdGVyYXRv
ckFkYXB0ZXI8UmVuZGVyT2JqZWN0PiBlbGVtZW50Q2hpbGRyZW4oY29uc3QgUmVuZGVyRWxlbWVu
dCYpOwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFJlbmRlckNoaWxkSXRlcmF0b3JBZGFwdGVyPFQ+
IGNoaWxkcmVuT2ZUeXBlKFJlbmRlckVsZW1lbnQmKTsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBS
ZW5kZXJDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPFQ+IGNoaWxkcmVuT2ZUeXBlKGNvbnN0IFJl
bmRlckVsZW1lbnQmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gMTYxMTk0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NzUsNyArNzc1LDcgQEAgRWxlbWVudCogU1ZHU1ZHRWxlbWVu
dDo6Z2V0RWxlbWVudEJ5SWQoYwogCiAgICAgLy8gRmFsbCBiYWNrIHRvIHRyYXZlcnNpbmcgb3Vy
IHN1YnRyZWUuIER1cGxpY2F0ZSBpZHMgYXJlIGFsbG93ZWQsIHRoZSBmaXJzdCBmb3VuZCB3aWxs
CiAgICAgLy8gYmUgcmV0dXJuZWQuCi0gICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudERl
c2NlbmRhbnRzKCp0aGlzKSkgeworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRz
T2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKSkgewogICAgICAgICBpZiAoZWxlbWVudC5nZXRJZEF0dHJp
YnV0ZSgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuICZlbGVtZW50OwogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MTE5NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY1
LDcgKzM2NSw3IEBAIHN0YXRpYyBib29sIGlzRGlzYWxsb3dlZEVsZW1lbnQoY29uc3QgRWwKIAog
c3RhdGljIGJvb2wgc3VidHJlZUNvbnRhaW5zRGlzYWxsb3dlZEVsZW1lbnQoU1ZHRWxlbWVudCYg
c3RhcnQpCiB7Ci0gICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudERlc2NlbmRhbnRzKHN0
YXJ0KSkgeworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1l
bnQ+KHN0YXJ0KSkgewogICAgICAgICBpZiAoaXNEaXNhbGxvd2VkRWxlbWVudChlbGVtZW50KSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTY1OCw4ICs2NTgsOCBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lCiB7CiAgICAgQVNTRVJUKCFzdWJ0
cmVlLmluRG9jdW1lbnQoKSk7CiAgICAgVmVjdG9yPEVsZW1lbnQqPiB0b1JlbW92ZTsKLSAgICBh
dXRvIGl0ID0gZWxlbWVudERlc2NlbmRhbnRzKHN1YnRyZWUpLmJlZ2luKCk7Ci0gICAgYXV0byBl
bmQgPSBlbGVtZW50RGVzY2VuZGFudHMoc3VidHJlZSkuZW5kKCk7CisgICAgYXV0byBpdCA9IGRl
c2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KHN1YnRyZWUpLmJlZ2luKCk7CisgICAgYXV0byBlbmQg
PSBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PihzdWJ0cmVlKS5lbmQoKTsKICAgICB3aGlsZSAo
aXQgIT0gZW5kKSB7CiAgICAgICAgIGlmIChpc0Rpc2FsbG93ZWRFbGVtZW50KCppdCkpIHsKICAg
ICAgICAgICAgIHRvUmVtb3ZlLmFwcGVuZCgmKml0KTsK
</data>
<flag name="review"
          id="243875"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>