<?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>129226</bug_id>
          
          <creation_ts>2014-02-22 20:53:05 -0800</creation_ts>
          <short_desc>Subpixel rendering: Add subpixel support to border type of double, groove, ridge, inset and outset.</short_desc>
          <delta_ts>2015-11-12 13:08:39 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bhell</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983665</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-22 20:53:05 -0800</bug_when>
    <thetext>Dotted and dashed need GraphicsContext::drawLine() cleanup. There&apos;s some odd legacy code there with full of (false) assumptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984502</commentid>
    <comment_count>1</comment_count>
      <attachid>225186</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-25 14:57:30 -0800</bug_when>
    <thetext>Created attachment 225186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984741</commentid>
    <comment_count>2</comment_count>
      <attachid>225256</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-26 08:19:39 -0800</bug_when>
    <thetext>Created attachment 225256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984742</commentid>
    <comment_count>3</comment_count>
      <attachid>225256</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-26 08:20:02 -0800</bug_when>
    <thetext>Comment on attachment 225256
Patch

EWSing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984922</commentid>
    <comment_count>4</comment_count>
      <attachid>225256</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-26 14:52:31 -0800</bug_when>
    <thetext>Comment on attachment 225256
Patch

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

&gt; Source/WebCore/rendering/RenderObject.cpp:738
&gt; +    // FIXME: flooring is a temporary solution until the device pixel snapping is added here for all border types (including recursiveness).

&quot;including recursiveness&quot; is weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985692</commentid>
    <comment_count>5</comment_count>
      <attachid>225485</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-28 13:26:46 -0800</bug_when>
    <thetext>Created attachment 225485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985729</commentid>
    <comment_count>6</comment_count>
      <attachid>225485</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 15:00:28 -0800</bug_when>
    <thetext>Comment on attachment 225485
Patch

Clearing flags on attachment: 225485

Committed r164888: &lt;http://trac.webkit.org/changeset/164888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985730</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 15:00:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987285</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-05 09:38:22 -0800</bug_when>
    <thetext>*** Bug 129329 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141604</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-12 13:08:39 -0800</bug_when>
    <thetext>*** Bug 113642 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225186</attachid>
            <date>2014-02-25 14:57:30 -0800</date>
            <delta_ts>2014-02-26 08:19:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129226-20140225145735.patch</filename>
            <type>text/plain</type>
            <size>25163</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3YTA3YWZlYTQ1YjI5
NGIzZGE5NGUwZWI0ZWQ5NjFjYzBiNWExNC4uZGUzZDkyYTQ0N2EzMjE0OTFlY2MxOThmNTMxOTdl
YzliZDFkOTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBBZGQgc3VicGl4ZWwgc3VwcG9ydCB0byBib3JkZXIgdHlwZSBvZiBkb3VibGUsIGdyb292ZSwg
cmlkZ2UsIGluc2V0IGFuZCBvdXRzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIHRoZSBjb252ZXJzaW9uIG9mIGRvdWJsZSwgaW5zZXQs
IG91dHNldCwgZ3Jvb3ZlIGFuZCByaWRnZSBib3JkZXIgdHlwZQorICAgICAgICBwYWludGluZyB0
byBzdXBwb3J0IGRldmljZSBwaXhlbCBwcmVjaXNpb24gd2lkdGgvaGVpZ2h0LgorCisgICAgICAg
IFJlZ3Jlc3Npb24gaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gU3VicGl4ZWwgZnVuY3Rp
b25hbGl0eSBpcyBjdXJyZW50bHkgbm90IHRlc3RhYmxlLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRyYXdM
aW5lRm9yQm94U2lkZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorCiAy
MDE0LTAyLTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3Vi
cGl4ZWwgcmVuZGVyaW5nOiBGaXggYmxlZWQgYXZvaWRhbmNlIHN1YnBpeGVsIGNhbGN1bGF0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA1OTUwZjYx
MGI3ZDJkZDA2YTZmZTI0NTkwNDIzZTIzYWYxZjE5ZTkyLi5hYmUxNDE3ZGU1ZGJiMzA0ZGIyNzVl
OGM0ZTJiM2NjMGFiMjUyMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcApAQCAtNzIyLDkgKzcyMiwxMCBAQCBSZW5kZXJCbG9jayogUmVuZGVyT2JqZWN0Ojpj
b250YWluaW5nQmxvY2soKSBjb25zdAogICAgIHJldHVybiB0b1JlbmRlckJsb2NrKG8pOwogfQog
Ci12b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCog
Z3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbml0IHgxLCBMYXlvdXRVbml0IHkxLCBMYXlvdXRVbml0
IHgyLCBMYXlvdXRVbml0IHkyLAotICAgIEJveFNpZGUgc2lkZSwgQ29sb3IgY29sb3IsIEVCb3Jk
ZXJTdHlsZSBib3JkZXJTdHlsZSwgaW50IGFkamFjZW50V2lkdGgxLCBpbnQgYWRqYWNlbnRXaWR0
aDIsIGJvb2wgYW50aWFsaWFzKQordm9pZCBSZW5kZXJPYmplY3Q6OmRyYXdMaW5lRm9yQm94U2lk
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBm
bG9hdCB4MiwgZmxvYXQgeTIsCisgICAgQm94U2lkZSBzaWRlLCBDb2xvciBjb2xvciwgRUJvcmRl
clN0eWxlIGJvcmRlclN0eWxlLCBmbG9hdCBhZGphY2VudFdpZHRoMSwgZmxvYXQgYWRqYWNlbnRX
aWR0aDIsIGJvb2wgYW50aWFsaWFzKQogeworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0g
ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAgIGZsb2F0IHRoaWNrbmVzczsKICAg
ICBmbG9hdCBsZW5ndGg7CiAgICAgaWYgKHNpZGUgPT0gQlNUb3AgfHwgc2lkZSA9PSBCU0JvdHRv
bSkgewpAQCAtNzM0LDIxICs3MzUsMTUgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRyYXdMaW5lRm9y
Qm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgTGF5b3V0VW4KICAgICAg
ICAgdGhpY2tuZXNzID0geDIgLSB4MTsKICAgICAgICAgbGVuZ3RoID0geTIgLSB5MTsKICAgICB9
CisgICAgLy8gRklYTUU6IGZsb29yaW5nIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIHVudGlsIHRo
ZSBkZXZpY2UgcGl4ZWwgc25hcHBpbmcgaXMgYWRkZWQgaGVyZSBmb3IgYWxsIGJvcmRlciB0eXBl
cyAoaW5jbHVkaW5nIHJlY3Vyc2l2ZW5lc3MpLgorICAgIHRoaWNrbmVzcyA9IGZsb29yVG9EZXZp
Y2VQaXhlbCh0aGlja25lc3MsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBsZW5ndGggPSBmbG9v
clRvRGV2aWNlUGl4ZWwobGVuZ3RoLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKLSAgICBpZiAoYm9y
ZGVyU3R5bGUgPT0gRE9VQkxFICYmIHRoaWNrbmVzcyA8IDMpCisgICAgaWYgKGJvcmRlclN0eWxl
ID09IERPVUJMRSAmJiAodGhpY2tuZXNzICogZGV2aWNlU2NhbGVGYWN0b3IpIDwgMykKICAgICAg
ICAgYm9yZGVyU3R5bGUgPSBTT0xJRDsKIAotICAgIGZsb2F0IHBpeGVsU25hcHBpbmdGYWN0b3Ig
PSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgLy8gRklYTUU6IFdlIHJlYWxs
eSB3b3VsZCBsaWtlIHRoaXMgY2hlY2sgdG8gYmUgYW4gQVNTRVJUIGFzIHdlIGRvbid0IHdhbnQg
dG8gZHJhdyBlbXB0eSBib3JkZXJzLiBIb3dldmVyCiAgICAgLy8gbm90aGluZyBndWFyYW50ZWVz
IHRoYXQgdGhlIGZvbGxvd2luZyByZWN1cnNpdmUgY2FsbHMgdG8gZHJhd0xpbmVGb3JCb3hTaWRl
IHdpbGwgaGF2ZSBub24tbnVsbCBkaW1lbnNpb25zLgotICAgIC8vIEZJWE1FOiBmbG9vcmluZyBp
cyBhIHRlbXBvcmFyeSBzb2x1dGlvbiB1bnRpbCB0aGUgZGV2aWNlIHBpeGVsIHNuYXBwaW5nIGlz
IGFkZGVkIGhlcmUgZm9yIGFsbCBib3JkZXIgdHlwZXMuCi0gICAgaWYgKGJvcmRlclN0eWxlID09
IFNPTElEKSB7Ci0gICAgICAgIHRoaWNrbmVzcyA9IHJvdW5kVG9EZXZpY2VQaXhlbCh0aGlja25l
c3MsIHBpeGVsU25hcHBpbmdGYWN0b3IpOwotICAgICAgICBsZW5ndGggPSByb3VuZFRvRGV2aWNl
UGl4ZWwobGVuZ3RoLCBwaXhlbFNuYXBwaW5nRmFjdG9yKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICB0aGlja25lc3MgPSBmbG9vcmYodGhpY2tuZXNzKTsKLSAgICAgICAgbGVuZ3RoID0gZmxvb3Jm
KGxlbmd0aCk7Ci0gICAgfQogICAgIGlmICghdGhpY2tuZXNzIHx8ICFsZW5ndGgpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNzY3LDE0ICs3NjIsMTggQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRyYXdM
aW5lRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgTGF5b3V0VW4K
ICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyh0aGlj
a25lc3MpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlU3R5bGUo
Ym9yZGVyU3R5bGUgPT0gREFTSEVEID8gRGFzaGVkU3Ryb2tlIDogRG90dGVkU3Ryb2tlKTsKIAor
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSdzIHNvbWUgb2RkIGFkanVzdG1lbnQgaW4g
R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSgpIHRoYXQgZGlzYWJsZXMgZGV2aWNlIHBpeGVsIHBy
ZWNpc2lvbiBsaW5lIGRyYXdpbmcuCisgICAgICAgICAgICAgICAgaW50IGFkanVzdGVkWCA9IGZs
b29yVG9JbnQoKHgxICsgeDIpIC8gMik7CisgICAgICAgICAgICAgICAgaW50IGFkanVzdGVkWSA9
IGZsb29yVG9JbnQoKHkxICsgeTIpIC8gMik7CisKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNp
ZGUpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU0JvdHRvbToKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBCU1RvcDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4
dC0+ZHJhd0xpbmUoSW50UG9pbnQoeDEsICh5MSArIHkyKSAvIDIpLCBJbnRQb2ludCh4MiwgKHkx
ICsgeTIpIC8gMikpOworICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3TGluZShGbG9hdFBvaW50KHgxLCBhZGp1c3RlZFkpLCBGbG9hdFBvaW50KHgyLCBhZGp1c3Rl
ZFkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAg
ICBjYXNlIEJTUmlnaHQ6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQlNMZWZ0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3TGluZShJbnRQb2ludCgoeDEg
KyB4MikgLyAyLCB5MSksIEludFBvaW50KCh4MSArIHgyKSAvIDIsIHkyKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdMaW5lKEZsb2F0UG9pbnQoYWRqdXN0
ZWRYLCB5MSksIEZsb2F0UG9pbnQoYWRqdXN0ZWRYLCB5MikpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGdyYXBoaWNz
Q29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlhc2VkKTsKQEAgLTc4Myw3ICs3
ODIsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29u
dGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBET1VCTEU6IHsKLSAgICAgICAgICAgIGludCB0aGlyZE9mVGhp
Y2tuZXNzID0gKHRoaWNrbmVzcyArIDEpIC8gMzsKKyAgICAgICAgICAgIGZsb2F0IHRoaXJkT2ZU
aGlja25lc3MgPSByb3VuZFRvRGV2aWNlUGl4ZWwodGhpY2tuZXNzIC8gMywgZGV2aWNlU2NhbGVG
YWN0b3IpOwogICAgICAgICAgICAgQVNTRVJUKHRoaXJkT2ZUaGlja25lc3MpOwogCiAgICAgICAg
ICAgICBpZiAoYWRqYWNlbnRXaWR0aDEgPT0gMCAmJiBhZGphY2VudFdpZHRoMiA9PSAwKSB7CkBA
IC03OTcsNTcgKzc5Niw2NyBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRl
KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbgogICAgICAgICAgICAg
ICAgIHN3aXRjaCAoc2lkZSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTVG9wOgogICAg
ICAgICAgICAgICAgICAgICBjYXNlIEJTQm90dG9tOgotICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChJbnRSZWN0KHgxLCB5MSwgbGVuZ3RoLCB0aGlyZE9m
VGhpY2tuZXNzKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdSZWN0KEludFJlY3QoeDEsIHkyIC0gdGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoLCB0aGlyZE9m
VGhpY2tuZXNzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHgxLCB5MSwgbGVuZ3RoLCB0aGlyZE9mVGhp
Y2tuZXNzLCBkZXZpY2VTY2FsZUZhY3RvcikpOworICAgICAgICAgICAgICAgICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5kcmF3UmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4MSwgeTIgLSB0
aGlyZE9mVGhpY2tuZXNzLCBsZW5ndGgsIHRoaXJkT2ZUaGlja25lc3MsIGRldmljZVNjYWxlRmFj
dG9yKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAg
ICAgY2FzZSBCU0xlZnQ6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQlNSaWdodDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaHkgZG8gd2Ugb2Zmc2V0IHRoZSBib3JkZXIg
YnkgMSBpbiB0aGlzIGNhc2UgYnV0IG5vdCB0aGUgb3RoZXIgb25lPwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA+IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQtPmRyYXdSZWN0KEludFJlY3QoeDEsIHkxICsgMSwgdGhpcmRPZlRoaWNr
bmVzcywgbGVuZ3RoIC0gMSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNz
Q29udGV4dC0+ZHJhd1JlY3QoSW50UmVjdCh4MiAtIHRoaXJkT2ZUaGlja25lc3MsIHkxICsgMSwg
dGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoIC0gMSkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChwaXhl
bFNuYXBwZWRGb3JQYWludGluZyh4MSwgeTEsIHRoaXJkT2ZUaGlja25lc3MsIGxlbmd0aCwgZGV2
aWNlU2NhbGVGYWN0b3IpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4
dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeDIgLSB0aGlyZE9mVGhpY2tuZXNz
LCB5MSwgdGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoLCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFz
ZWQpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlU3R5bGUob2xk
U3Ryb2tlU3R5bGUpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpbnQg
YWRqYWNlbnQxQmlnVGhpcmQgPSAoKGFkamFjZW50V2lkdGgxID4gMCkgPyBhZGphY2VudFdpZHRo
MSArIDEgOiBhZGphY2VudFdpZHRoMSAtIDEpIC8gMzsKLSAgICAgICAgICAgICAgICBpbnQgYWRq
YWNlbnQyQmlnVGhpcmQgPSAoKGFkamFjZW50V2lkdGgyID4gMCkgPyBhZGphY2VudFdpZHRoMiAr
IDEgOiBhZGphY2VudFdpZHRoMiAtIDEpIC8gMzsKKyAgICAgICAgICAgICAgICBmbG9hdCBhZGph
Y2VudDFCaWdUaGlyZCA9IHJvdW5kVG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMSAvIDMsIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBhZGphY2VudDJCaWdUaGly
ZCA9IHJvdW5kVG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMiAvIDMsIGRldmljZVNjYWxlRmFj
dG9yKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IG9mZnNldDEgPSBjZWlsVG9EZXZpY2VQaXhl
bChmYWJzKGFkamFjZW50V2lkdGgxKSAqIDIgLyAzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAg
ICAgICAgICAgICAgZmxvYXQgb2Zmc2V0MiA9IGNlaWxUb0RldmljZVBpeGVsKGZhYnMoYWRqYWNl
bnRXaWR0aDIpICogMiAvIDMsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgICAg
IGZsb2F0IG1pdHJlT2Zmc2V0MSA9IGFkamFjZW50V2lkdGgxIDwgMCA/IG9mZnNldDEgOiAwOwor
ICAgICAgICAgICAgICAgIGZsb2F0IG1pdHJlT2Zmc2V0MiA9IGFkamFjZW50V2lkdGgxID4gMCA/
IG9mZnNldDEgOiAwOworICAgICAgICAgICAgICAgIGZsb2F0IG1pdHJlT2Zmc2V0MyA9IGFkamFj
ZW50V2lkdGgyIDwgMCA/IG9mZnNldDIgOiAwOworICAgICAgICAgICAgICAgIGZsb2F0IG1pdHJl
T2Zmc2V0NCA9IGFkamFjZW50V2lkdGgyID4gMCA/IG9mZnNldDIgOiAwOwogCisgICAgICAgICAg
ICAgICAgRmxvYXRSZWN0IHBhaW50Qm9yZGVyUmVjdDsKICAgICAgICAgICAgICAgICBzd2l0Y2gg
KHNpZGUpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU1RvcDoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjpt
YXgoKC1hZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB5MSwgeDIgLSBzdGQ6Om1heCgoLWFkamFjZW50V2lkdGgyICogMiAr
IDEpIC8gMywgMCksIHkxICsgdGhpcmRPZlRoaWNrbmVzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIFNPTElELCBhZGphY2VudDFCaWdUaGlyZCwgYWRq
YWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkcmF3
TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6bWF4KChhZGphY2VudFdp
ZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB5MiAtIHRoaXJkT2ZUaGlja25lc3MsIHgyIC0gc3RkOjptYXgoKGFkamFjZW50V2lkdGgyICog
MiArIDEpIC8gMywgMCksIHkyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwg
YW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBp
eGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEgKyBtaXRyZU9mZnNldDEsIHkxLCAo
eDIgLSBtaXRyZU9mZnNldDMpIC0gKHgxICsgbWl0cmVPZmZzZXQxKSwgdGhpcmRPZlRoaWNrbmVz
cyksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5l
Rm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9y
ZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZ
KCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGph
Y2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5n
KExheW91dFJlY3QoeDEgKyBtaXRyZU9mZnNldDIsIHkyIC0gdGhpcmRPZlRoaWNrbmVzcywgKHgy
IC0gbWl0cmVPZmZzZXQ0KSAtICh4MSArIG1pdHJlT2Zmc2V0MiksIHRoaXJkT2ZUaGlja25lc3Mp
LCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZv
ckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJvcmRl
clJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4WSgp
LCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqYWNl
bnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQlNMZWZ0OgotICAg
ICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwg
eDEsIHkxICsgc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MSArIHRoaXJkT2ZUaGlja25lc3MsIHky
IC0gc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJp
Z1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgyIC0gdGhpcmRPZlRo
aWNrbmVzcywgeTEgKyBzdGQ6Om1heCgoYWRqYWNlbnRXaWR0aDEgKiAyICsgMSkgLyAzLCAwKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIsIHkyIC0gc3RkOjptYXgoKGFk
amFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50
MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRCb3Jk
ZXJSZWN0ID0gcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoTGF5b3V0UmVjdCh4MSwgeTEgKyBtaXRy
ZU9mZnNldDEsIHRoaXJkT2ZUaGlja25lc3MsICh5MiAtIG1pdHJlT2Zmc2V0MykgLSAoeTEgKyBt
aXRyZU9mZnNldDEpKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgcGFpbnRCb3JkZXJSZWN0Lngo
KSwgcGFpbnRCb3JkZXJSZWN0LnkoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFgoKSwgcGFpbnRCb3Jk
ZXJSZWN0Lm1heFkoKSwgc2lkZSwgY29sb3IsIFNPTElELAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsK
KworICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRCb3JkZXJSZWN0ID0gcGl4ZWxTbmFwcGVk
Rm9yUGFpbnRpbmcoTGF5b3V0UmVjdCh4MiAtIHRoaXJkT2ZUaGlja25lc3MsIHkxICsgbWl0cmVP
ZmZzZXQyLCB0aGlyZE9mVGhpY2tuZXNzLCAoeTIgLSBtaXRyZU9mZnNldDQpIC0gKHkxICsgbWl0
cmVPZmZzZXQyKSksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50Qm9yZGVyUmVjdC54KCks
IHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9yZGVy
UmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBC
U0JvdHRvbToKLSAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFw
aGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoKGFkamFjZW50V2lkdGgxICogMiArIDEpIC8gMywg
MCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkxLCB4MiAtIHN0ZDo6bWF4
KChhZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDApLCB5MSArIHRoaXJkT2ZUaGlja25lc3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwg
YWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDEg
KyBzdGQ6Om1heCgoLWFkamFjZW50V2lkdGgxICogMiArIDEpIC8gMywgMCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHkyIC0gdGhpcmRPZlRoaWNrbmVzcywgeDIgLSBzdGQ6
Om1heCgoLWFkamFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksIHkyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1Ro
aXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3Qo
eDEgKyBtaXRyZU9mZnNldDIsIHkxLCAoeDIgLSBtaXRyZU9mZnNldDQpIC0gKHgxICsgbWl0cmVP
ZmZzZXQyKSwgdGhpcmRPZlRoaWNrbmVzcyksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50
Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhY
KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQs
IGFudGlhbGlhcyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9
IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEgKyBtaXRyZU9mZnNldDEsIHky
IC0gdGhpcmRPZlRoaWNrbmVzcywgKHgyIC0gbWl0cmVPZmZzZXQzKSAtICh4MSArIG1pdHJlT2Zm
c2V0MSksIHRoaXJkT2ZUaGlja25lc3MpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJv
cmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgp
LCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBh
bnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQlNSaWdodDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9y
Qm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxLCB5MSArIHN0ZDo6bWF4KChhZGphY2VudFdpZHRo
MSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MSArIHRoaXJkT2ZUaGlja25lc3MsIHkyIC0gc3RkOjptYXgoKGFkamFjZW50V2lkdGgyICogMiAr
IDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUsIGNv
bG9yLCBTT0xJRCwgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxp
YXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNz
Q29udGV4dCwgeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5MSArIHN0ZDo6bWF4KCgtYWRqYWNlbnRX
aWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeDIsIHkyIC0gc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDApLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQsIGFk
amFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5n
KExheW91dFJlY3QoeDEsIHkxICsgbWl0cmVPZmZzZXQyLCB0aGlyZE9mVGhpY2tuZXNzLCAoeTIg
LSBtaXRyZU9mZnNldDQpIC0gKHkxICsgbWl0cmVPZmZzZXQyKSksIGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIHBhaW50Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9y
ZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJ
RCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNl
bnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50
Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDIgLSB0aGly
ZE9mVGhpY2tuZXNzLCB5MSArIG1pdHJlT2Zmc2V0MSwgdGhpcmRPZlRoaWNrbmVzcywgKHkyIC0g
bWl0cmVPZmZzZXQzKSAtICh5MSArIG1pdHJlT2Zmc2V0MSkpLCBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250
ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJvcmRl
clJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09MSUQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50
MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTg2NywzMyArODc2LDUzIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkcmF3TGluZUZvckJv
eFNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIExheW91dFVuCiAgICAgICAg
ICAgICAgICAgczIgPSBJTlNFVDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaW50IGFk
amFjZW50MUJpZ0hhbGYgPSAoKGFkamFjZW50V2lkdGgxID4gMCkgPyBhZGphY2VudFdpZHRoMSAr
IDEgOiBhZGphY2VudFdpZHRoMSAtIDEpIC8gMjsKLSAgICAgICAgICAgIGludCBhZGphY2VudDJC
aWdIYWxmID0gKChhZGphY2VudFdpZHRoMiA+IDApID8gYWRqYWNlbnRXaWR0aDIgKyAxIDogYWRq
YWNlbnRXaWR0aDIgLSAxKSAvIDI7CisgICAgICAgICAgICBmbG9hdCBhZGphY2VudDFCaWdIYWxm
ID0gY2VpbFRvRGV2aWNlUGl4ZWwoYWRqYWNlbnRXaWR0aDEgLyAyLCBkZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgICAgICAgICBmbG9hdCBhZGphY2VudDJCaWdIYWxmID0gY2VpbFRvRGV2aWNlUGl4
ZWwoYWRqYWNlbnRXaWR0aDIgLyAyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICAgICAgICAg
IGZsb2F0IGFkamFjZW50MVNtYWxsSGFsZiA9IGZsb29yVG9EZXZpY2VQaXhlbChhZGphY2VudFdp
ZHRoMSAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIGZsb2F0IGFkamFjZW50
MlNtYWxsSGFsZiA9IGZsb29yVG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMiAvIDIsIGRldmlj
ZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgZmxvYXQgb2Zmc2V0MSA9IDA7CisgICAgICAg
ICAgICBmbG9hdCBvZmZzZXQyID0gMDsKKyAgICAgICAgICAgIGZsb2F0IG9mZnNldDMgPSAwOwor
ICAgICAgICAgICAgZmxvYXQgb2Zmc2V0NCA9IDA7CisKKyAgICAgICAgICAgIGlmICgoKHNpZGUg
PT0gQlNUb3AgfHwgc2lkZSA9PSBCU0xlZnQpICYmIGFkamFjZW50V2lkdGgxIDwgMCkgfHwgKChz
aWRlID09IEJTQm90dG9tIHx8IHNpZGUgPT0gQlNSaWdodCkgJiYgYWRqYWNlbnRXaWR0aDEgPiAw
KSkKKyAgICAgICAgICAgICAgICBvZmZzZXQxID0gZmxvb3JUb0RldmljZVBpeGVsKGFkamFjZW50
V2lkdGgxIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgICAgICAgICBpZiAoKChzaWRl
ID09IEJTVG9wIHx8IHNpZGUgPT0gQlNMZWZ0KSAmJiBhZGphY2VudFdpZHRoMiA8IDApIHx8ICgo
c2lkZSA9PSBCU0JvdHRvbSB8fCBzaWRlID09IEJTUmlnaHQpICYmIGFkamFjZW50V2lkdGgyID4g
MCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0MiA9IGNlaWxUb0RldmljZVBpeGVsKGFkamFjZW50
V2lkdGgyIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgICAgICAgICBpZiAoKChzaWRl
ID09IEJTVG9wIHx8IHNpZGUgPT0gQlNMZWZ0KSAmJiBhZGphY2VudFdpZHRoMSA+IDApIHx8ICgo
c2lkZSA9PSBCU0JvdHRvbSB8fCBzaWRlID09IEJTUmlnaHQpICYmIGFkamFjZW50V2lkdGgxIDwg
MCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0MyA9IGZsb29yVG9EZXZpY2VQaXhlbChmYWJzKGFk
amFjZW50V2lkdGgxKSAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgaWYg
KCgoc2lkZSA9PSBCU1RvcCB8fCBzaWRlID09IEJTTGVmdCkgJiYgYWRqYWNlbnRXaWR0aDIgPiAw
KSB8fCAoKHNpZGUgPT0gQlNCb3R0b20gfHwgc2lkZSA9PSBCU1JpZ2h0KSAmJiBhZGphY2VudFdp
ZHRoMiA8IDApKQorICAgICAgICAgICAgICAgIG9mZnNldDQgPSBjZWlsVG9EZXZpY2VQaXhlbChh
ZGphY2VudFdpZHRoMiAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgZmxv
YXQgYWRqdXN0ZWRYID0gY2VpbFRvRGV2aWNlUGl4ZWwoKHgxICsgeDIpIC8gMiwgZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgICAgICAgICAgZmxvYXQgYWRqdXN0ZWRZID0gY2VpbFRvRGV2aWNlUGl4
ZWwoKHkxICsgeTIpIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgLy8vIFF1
YWRzIGNhbid0IHVzZSB0aGUgZGVmYXVsdCBzbmFwcGluZyByZWN0IGZ1bmN0aW9ucy4KKyAgICAg
ICAgICAgIHgxID0gcm91bmRUb0RldmljZVBpeGVsKHgxLCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgICAgICAgICB4MiA9IHJvdW5kVG9EZXZpY2VQaXhlbCh4MiwgZGV2aWNlU2NhbGVGYWN0b3Ip
OworICAgICAgICAgICAgeTEgPSByb3VuZFRvRGV2aWNlUGl4ZWwoeTEsIGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICAgICAgICAgIHkyID0gcm91bmRUb0RldmljZVBpeGVsKHkyLCBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CiAKICAgICAgICAgICAgIHN3aXRjaCAoc2lkZSkgewogICAgICAgICAgICAgICAg
IGNhc2UgQlNUb3A6Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFw
aGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoLWFkamFjZW50V2lkdGgxLCAwKSAvIDIsIHkxLCB4
MiAtIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiwgMCkgLyAyLCAoeTEgKyB5MiArIDEpIC8gMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50
MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlhbGlhcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoYWRq
YWNlbnRXaWR0aDEgKyAxLCAwKSAvIDIsICh5MSArIHkyICsgMSkgLyAyLCB4MiAtIHN0ZDo6bWF4
KGFkamFjZW50V2lkdGgyICsgMSwgMCkgLyAyLCB5MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50V2lkdGgxIC8gMiwgYWRqYWNlbnRXaWR0
aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNp
ZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDEsIHkxLCB4MiAtIG9mZnNldDIsIGFkanVz
dGVkWSwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxm
LCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDMsIGFkanVzdGVkWSwgeDIgLSBvZmZzZXQ0LCB5Miwg
c2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFTbWFsbEhhbGYsIGFkamFjZW50MlNtYWxsSGFsZiwg
YW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBCU0xlZnQ6Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFw
aGljc0NvbnRleHQsIHgxLCB5MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMCkgLyAyLCAo
eDEgKyB4MiArIDEpIC8gMiwgeTIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApIC8gMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50
MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlhbGlhcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsICh4MSArIHgyICsgMSkgLyAy
LCB5MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxICsgMSwgMCkgLyAyLCB4MiwgeTIgLSBzdGQ6
Om1heChhZGphY2VudFdpZHRoMiArIDEsIDApIC8gMiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50V2lkdGgxIC8gMiwgYWRqYWNlbnRXaWR0
aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNp
ZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBvZmZzZXQxLCBhZGp1c3RlZFgsIHkyIC0gb2Zm
c2V0Miwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxm
LCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCBhZGp1c3RlZFgsIHkxICsgb2Zmc2V0MywgeDIsIHkyIC0gb2Zmc2V0NCwg
c2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFTbWFsbEhhbGYsIGFkamFjZW50MlNtYWxsSGFsZiwg
YW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBCU0JvdHRvbToKLSAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgeDEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRoMSwgMCkgLyAyLCB5MSwg
eDIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCkgLyAyLCAoeTEgKyB5MiArIDEpIC8gMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50
MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlhbGlhcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoLWFk
amFjZW50V2lkdGgxICsgMSwgMCkgLyAyLCAoeTEgKyB5MiArIDEpIC8gMiwgeDIgLSBzdGQ6Om1h
eCgtYWRqYWNlbnRXaWR0aDIgKyAxLCAwKSAvIDIsIHkyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpZGUsIGNvbG9yLCBzMSwgYWRqYWNlbnRXaWR0aDEgLyAyLCBhZGphY2VudFdp
ZHRoMiAvIDIsIGFudGlhbGlhcyk7CisgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94
U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgb2Zmc2V0MSwgeTEsIHgyIC0gb2Zmc2V0MiwgYWRq
dXN0ZWRZLCBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hh
bGYsIGFudGlhbGlhcyk7CisgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShn
cmFwaGljc0NvbnRleHQsIHgxICsgb2Zmc2V0MywgYWRqdXN0ZWRZLCB4MiAtIG9mZnNldDQsIHky
LCBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50MVNtYWxsSGFsZiwgYWRqYWNlbnQyU21hbGxIYWxm
LCBhbnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIEJTUmlnaHQ6Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShn
cmFwaGljc0NvbnRleHQsIHgxLCB5MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAwKSAvIDIs
ICh4MSArIHgyICsgMSkgLyAyLCB5MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyLCAwKSAvIDIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIHMyLCBhZGphY2Vu
dDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAg
ICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCAoeDEgKyB4MiArIDEpIC8g
MiwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEgKyAxLCAwKSAvIDIsIHgyLCB5MiAtIHN0
ZDo6bWF4KC1hZGphY2VudFdpZHRoMiArIDEsIDApIC8gMiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50V2lkdGgxIC8gMiwgYWRqYWNlbnRX
aWR0aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJv
eFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBvZmZzZXQxLCBhZGp1c3RlZFgsIHkyIC0g
b2Zmc2V0Miwgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFCaWdIYWxmLCBhZGphY2VudDJCaWdI
YWxmLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCBhZGp1c3RlZFgsIHkxICsgb2Zmc2V0MywgeDIsIHkyIC0gb2Zmc2V0
NCwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFTbWFsbEhhbGYsIGFkamFjZW50MlNtYWxsSGFs
ZiwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKQEAgLTkxOSwzNiArOTQ4LDQyIEBAIHZvaWQgUmVuZGVyT2Jq
ZWN0OjpkcmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQs
IExheW91dFVuCiAgICAgICAgICAgICAgICAgLy8gdGhpcyBtYXR0ZXJzIGZvciByZWN0cyBpbiB0
cmFuc2Zvcm1lZCBjb250ZXh0cy4KICAgICAgICAgICAgICAgICBib29sIHdhc0FudGlhbGlhc2Vk
ID0gZ3JhcGhpY3NDb250ZXh0LT5zaG91bGRBbnRpYWxpYXMoKTsKICAgICAgICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyhhbnRpYWxpYXMpOwotICAgICAgICAg
ICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmco
eDEsIHkxLCB4MiAtIHgxLCB5MiAtIHkxLCBwaXhlbFNuYXBwaW5nRmFjdG9yKSk7CisgICAgICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGlu
Zyh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFz
ZWQpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlU3R5bGUob2xk
U3Ryb2tlU3R5bGUpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHJvdW5kaW5ncyBzaG91bGQgYmUgcmVwbGFjZWQg
YnkgQVNTRVJUKGRldmljZSBwaXhlbCBwb3NpdGlvbmVkKSB3aGVuIGFsbCB0aGUgY2FsbGVycyB0
cmFuc2l0aW9uZWQgdG8gZGV2aWNlIHBpeGVscy4KKyAgICAgICAgICAgIHgxID0gcm91bmRUb0Rl
dmljZVBpeGVsKHgxLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICB5MSA9IHJvdW5k
VG9EZXZpY2VQaXhlbCh5MSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgeDIgPSBy
b3VuZFRvRGV2aWNlUGl4ZWwoeDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHky
ID0gcm91bmRUb0RldmljZVBpeGVsKHkyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAg
ICBGbG9hdFBvaW50IHF1YWRbNF07CiAgICAgICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICAg
ICAgICAgICAgICBjYXNlIEJTVG9wOgotICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0gRmxv
YXRQb2ludCh4MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMCksIHkxKTsKLSAgICAgICAg
ICAgICAgICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEgKyBzdGQ6Om1heChhZGphY2VudFdp
ZHRoMSwgMCksIHkyKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsyXSA9IEZsb2F0UG9pbnQo
eDIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCksIHkyKTsKLSAgICAgICAgICAgICAgICAg
ICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDAp
LCB5MSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxICsgc3Rk
OjptYXgoLWFkamFjZW50V2lkdGgxLCAwLjBmKSwgeTEpOworICAgICAgICAgICAgICAgICAgICBx
dWFkWzFdID0gRmxvYXRQb2ludCh4MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAwLjBmKSwg
eTIpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzJdID0gRmxvYXRQb2ludCh4MiAtIHN0ZDo6
bWF4KGFkamFjZW50V2lkdGgyLCAwLjBmKSwgeTIpOworICAgICAgICAgICAgICAgICAgICBxdWFk
WzNdID0gRmxvYXRQb2ludCh4MiAtIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiwgMC4wZiksIHkx
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCU0Jv
dHRvbToKLSAgICAgICAgICAgICAgICAgICAgcXVhZFswXSA9IEZsb2F0UG9pbnQoeDEgKyBzdGQ6
Om1heChhZGphY2VudFdpZHRoMSwgMCksIHkxKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsx
XSA9IEZsb2F0UG9pbnQoeDEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEsIDApLCB5Mik7Ci0g
ICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50KHgyIC0gc3RkOjptYXgoLWFk
amFjZW50V2lkdGgyLCAwKSwgeTIpOwotICAgICAgICAgICAgICAgICAgICBxdWFkWzNdID0gRmxv
YXRQb2ludCh4MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyLCAwKSwgeTEpOworICAgICAgICAg
ICAgICAgICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSArIHN0ZDo6bWF4KGFkamFjZW50V2lk
dGgxLCAwLjBmKSwgeTEpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2lu
dCh4MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMC4wZiksIHkyKTsKKyAgICAgICAgICAg
ICAgICAgICAgcXVhZFsyXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0
aDIsIDAuMGYpLCB5Mik7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbM10gPSBGbG9hdFBvaW50
KHgyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDAuMGYpLCB5MSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQlNMZWZ0OgotICAgICAgICAgICAg
ICAgICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRX
aWR0aDEsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEs
IHkyIC0gc3RkOjptYXgoLWFkamFjZW50V2lkdGgyLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAg
IHF1YWRbMl0gPSBGbG9hdFBvaW50KHgyLCB5MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyLCAw
KSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1YWRbM10gPSBGbG9hdFBvaW50KHgyLCB5MSArIHN0
ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0g
PSBGbG9hdFBvaW50KHgxLCB5MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMC4wZikpOwor
ICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwgeTIgLSBzdGQ6Om1h
eCgtYWRqYWNlbnRXaWR0aDIsIDAuMGYpKTsKKyAgICAgICAgICAgICAgICAgICAgcXVhZFsyXSA9
IEZsb2F0UG9pbnQoeDIsIHkyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDAuMGYpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3RkOjptYXgo
YWRqYWNlbnRXaWR0aDEsIDAuMGYpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgY2FzZSBCU1JpZ2h0OgotICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0g
RmxvYXRQb2ludCh4MSwgeTEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRoMSwgMCkpOwotICAgICAg
ICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwgeTIgLSBzdGQ6Om1heChhZGph
Y2VudFdpZHRoMiwgMCkpOwotICAgICAgICAgICAgICAgICAgICBxdWFkWzJdID0gRmxvYXRQb2lu
dCh4MiwgeTIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApKTsKLSAgICAgICAgICAgICAg
ICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3RkOjptYXgoLWFkamFjZW50V2lk
dGgxLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxLCB5
MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAwLjBmKSk7CisgICAgICAgICAgICAgICAgICAg
IHF1YWRbMV0gPSBGbG9hdFBvaW50KHgxLCB5MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyLCAw
LjBmKSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50KHgyLCB5MiAt
IHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiwgMC4wZikpOworICAgICAgICAgICAgICAgICAgICBx
dWFkWzNdID0gRmxvYXRQb2ludCh4MiwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEsIDAu
MGYpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA3NzA4YTRjOTY3NmNmZjFlODhl
NzQ0YmI3ZjU3N2NhMjQ3ZGRjYTg1Li44NjJmNTNjZWI1Mzk0Njk0N2NhYTE3Nzc0YmYxY2FmZjEz
NmMwN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC04NzYs
OCArODc2LDcgQEAgcHVibGljOgogCiAgICAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRyYXdMaW5l
Rm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqLCBMYXlvdXRVbml0IHgxLCBMYXlvdXRVbml0IHkx
LCBMYXlvdXRVbml0IHgyLCBMYXlvdXRVbml0IHkyLCBCb3hTaWRlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5bGUsIGludCBhZGpidzEsIGludCBhZGpidzIs
IGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOworICAgIHZvaWQgZHJhd0xpbmVGb3JCb3hTaWRlKEdy
YXBoaWNzQ29udGV4dCosIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBC
b3hTaWRlLCBDb2xvciwgRUJvcmRlclN0eWxlLCBmbG9hdCBhZGpidzEsIGZsb2F0IGFkamJ3Miwg
Ym9vbCBhbnRpYWxpYXMgPSBmYWxzZSk7CiBwcm90ZWN0ZWQ6CiAgICAgaW50IGNvbHVtbk51bWJl
ckZvck9mZnNldChpbnQgb2Zmc2V0KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225256</attachid>
            <date>2014-02-26 08:19:39 -0800</date>
            <delta_ts>2014-02-28 13:26:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129226-20140226081939.patch</filename>
            <type>text/plain</type>
            <size>25251</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1MWE1YmJmYWFhY2Jj
YWYxMzcwMWUwYjFmYzA1MmM1OGE5NDViNy4uMjlkYmM4MWUxZTdiM2Q5MWI5NzU0M2M5YmExN2Ji
MjBjMjkwMzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBBZGQgc3VicGl4ZWwgc3VwcG9ydCB0byBib3JkZXIgdHlwZSBvZiBkb3VibGUsIGdyb292ZSwg
cmlkZ2UsIGluc2V0IGFuZCBvdXRzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIHRoZSBjb252ZXJzaW9uIG9mIGRvdWJsZSwgaW5zZXQs
IG91dHNldCwgZ3Jvb3ZlIGFuZCByaWRnZSBib3JkZXIgdHlwZQorICAgICAgICBwYWludGluZyB0
byBzdXBwb3J0IGRldmljZSBwaXhlbCBwcmVjaXNpb24gd2lkdGgvaGVpZ2h0LgorCisgICAgICAg
IFJlZ3Jlc3Npb24gaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gU3VicGl4ZWwgZnVuY3Rp
b25hbGl0eSBpcyBjdXJyZW50bHkgbm90IHRlc3RhYmxlLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRyYXdM
aW5lRm9yQm94U2lkZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorCiAy
MDE0LTAyLTI2ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAgICAg
IFtDU1NSZWdpb25zXSBSZW1vdmUgdW51c2VkIG1ldGhvZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRh
dGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAppbmRleCAyYmFlZjMzOTY0ZmYxOWQ5ZDQxNzhhNzM0NzBiZjM4MDdjMGQwZTIx
Li4xNGJiNDc1Y2FlNGZkYzZkM2Q4ZDllZTliOTlmZDhiZDM3NTU5ZjNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNzIyLDkgKzcyMiwxMCBAQCBSZW5k
ZXJCbG9jayogUmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogICAgIHJldHVy
biB0b1JlbmRlckJsb2NrKG8pOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JC
b3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbml0IHgxLCBM
YXlvdXRVbml0IHkxLCBMYXlvdXRVbml0IHgyLCBMYXlvdXRVbml0IHkyLAotICAgIEJveFNpZGUg
c2lkZSwgQ29sb3IgY29sb3IsIEVCb3JkZXJTdHlsZSBib3JkZXJTdHlsZSwgaW50IGFkamFjZW50
V2lkdGgxLCBpbnQgYWRqYWNlbnRXaWR0aDIsIGJvb2wgYW50aWFsaWFzKQordm9pZCBSZW5kZXJP
YmplY3Q6OmRyYXdMaW5lRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4
dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsCisgICAgQm94U2lkZSBz
aWRlLCBDb2xvciBjb2xvciwgRUJvcmRlclN0eWxlIGJvcmRlclN0eWxlLCBmbG9hdCBhZGphY2Vu
dFdpZHRoMSwgZmxvYXQgYWRqYWNlbnRXaWR0aDIsIGJvb2wgYW50aWFsaWFzKQogeworICAgIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yID0gZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwog
ICAgIGZsb2F0IHRoaWNrbmVzczsKICAgICBmbG9hdCBsZW5ndGg7CiAgICAgaWYgKHNpZGUgPT0g
QlNUb3AgfHwgc2lkZSA9PSBCU0JvdHRvbSkgewpAQCAtNzM0LDIxICs3MzUsMTUgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6OmRyYXdMaW5lRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwgTGF5b3V0VW4KICAgICAgICAgdGhpY2tuZXNzID0geDIgLSB4MTsKICAgICAgICAg
bGVuZ3RoID0geTIgLSB5MTsKICAgICB9CisgICAgLy8gRklYTUU6IGZsb29yaW5nIGlzIGEgdGVt
cG9yYXJ5IHNvbHV0aW9uIHVudGlsIHRoZSBkZXZpY2UgcGl4ZWwgc25hcHBpbmcgaXMgYWRkZWQg
aGVyZSBmb3IgYWxsIGJvcmRlciB0eXBlcyAoaW5jbHVkaW5nIHJlY3Vyc2l2ZW5lc3MpLgorICAg
IHRoaWNrbmVzcyA9IGZsb29yVG9EZXZpY2VQaXhlbCh0aGlja25lc3MsIGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICBsZW5ndGggPSBmbG9vclRvRGV2aWNlUGl4ZWwobGVuZ3RoLCBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CiAKLSAgICBpZiAoYm9yZGVyU3R5bGUgPT0gRE9VQkxFICYmIHRoaWNrbmVzcyA8
IDMpCisgICAgaWYgKGJvcmRlclN0eWxlID09IERPVUJMRSAmJiAodGhpY2tuZXNzICogZGV2aWNl
U2NhbGVGYWN0b3IpIDwgMykKICAgICAgICAgYm9yZGVyU3R5bGUgPSBTT0xJRDsKIAotICAgIGZs
b2F0IHBpeGVsU25hcHBpbmdGYWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7
CiAgICAgLy8gRklYTUU6IFdlIHJlYWxseSB3b3VsZCBsaWtlIHRoaXMgY2hlY2sgdG8gYmUgYW4g
QVNTRVJUIGFzIHdlIGRvbid0IHdhbnQgdG8gZHJhdyBlbXB0eSBib3JkZXJzLiBIb3dldmVyCiAg
ICAgLy8gbm90aGluZyBndWFyYW50ZWVzIHRoYXQgdGhlIGZvbGxvd2luZyByZWN1cnNpdmUgY2Fs
bHMgdG8gZHJhd0xpbmVGb3JCb3hTaWRlIHdpbGwgaGF2ZSBub24tbnVsbCBkaW1lbnNpb25zLgot
ICAgIC8vIEZJWE1FOiBmbG9vcmluZyBpcyBhIHRlbXBvcmFyeSBzb2x1dGlvbiB1bnRpbCB0aGUg
ZGV2aWNlIHBpeGVsIHNuYXBwaW5nIGlzIGFkZGVkIGhlcmUgZm9yIGFsbCBib3JkZXIgdHlwZXMu
Ci0gICAgaWYgKGJvcmRlclN0eWxlID09IFNPTElEKSB7Ci0gICAgICAgIHRoaWNrbmVzcyA9IHJv
dW5kVG9EZXZpY2VQaXhlbCh0aGlja25lc3MsIHBpeGVsU25hcHBpbmdGYWN0b3IpOwotICAgICAg
ICBsZW5ndGggPSByb3VuZFRvRGV2aWNlUGl4ZWwobGVuZ3RoLCBwaXhlbFNuYXBwaW5nRmFjdG9y
KTsKLSAgICB9IGVsc2UgewotICAgICAgICB0aGlja25lc3MgPSBmbG9vcmYodGhpY2tuZXNzKTsK
LSAgICAgICAgbGVuZ3RoID0gZmxvb3JmKGxlbmd0aCk7Ci0gICAgfQogICAgIGlmICghdGhpY2tu
ZXNzIHx8ICFsZW5ndGgpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzY3LDE0ICs3NjIsMTggQEAg
dm9pZCBSZW5kZXJPYmplY3Q6OmRyYXdMaW5lRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdy
YXBoaWNzQ29udGV4dCwgTGF5b3V0VW4KICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQt
PnNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNz
Q29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoYm9yZGVyU3R5bGUgPT0gREFTSEVEID8gRGFzaGVkU3Ry
b2tlIDogRG90dGVkU3Ryb2tlKTsKIAorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSdz
IHNvbWUgb2RkIGFkanVzdG1lbnQgaW4gR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSgpIHRoYXQg
ZGlzYWJsZXMgZGV2aWNlIHBpeGVsIHByZWNpc2lvbiBsaW5lIGRyYXdpbmcuCisgICAgICAgICAg
ICAgICAgaW50IGFkanVzdGVkWCA9IGZsb29yVG9JbnQoKHgxICsgeDIpIC8gMik7CisgICAgICAg
ICAgICAgICAgaW50IGFkanVzdGVkWSA9IGZsb29yVG9JbnQoKHkxICsgeTIpIC8gMik7CisKICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBC
U0JvdHRvbToKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU1RvcDoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0xpbmUoSW50UG9pbnQoeDEsICh5MSArIHky
KSAvIDIpLCBJbnRQb2ludCh4MiwgKHkxICsgeTIpIC8gMikpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3TGluZShGbG9hdFBvaW50KHgxLCBhZGp1c3RlZFkp
LCBGbG9hdFBvaW50KHgyLCBhZGp1c3RlZFkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTUmlnaHQ6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQlNMZWZ0OgotICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5kcmF3TGluZShJbnRQb2ludCgoeDEgKyB4MikgLyAyLCB5MSksIEludFBvaW50KCh4MSArIHgy
KSAvIDIsIHkyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdMaW5lKEZsb2F0UG9pbnQoYWRqdXN0ZWRYLCB5MSksIEZsb2F0UG9pbnQoYWRqdXN0ZWRYLCB5
MikpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0Fu
dGlhbGlhc2VkKTsKQEAgLTc4Myw3ICs3ODIsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xp
bmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBET1VCTEU6IHsKLSAg
ICAgICAgICAgIGludCB0aGlyZE9mVGhpY2tuZXNzID0gKHRoaWNrbmVzcyArIDEpIC8gMzsKKyAg
ICAgICAgICAgIGZsb2F0IHRoaXJkT2ZUaGlja25lc3MgPSByb3VuZFRvRGV2aWNlUGl4ZWwodGhp
Y2tuZXNzIC8gMywgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgQVNTRVJUKHRoaXJk
T2ZUaGlja25lc3MpOwogCiAgICAgICAgICAgICBpZiAoYWRqYWNlbnRXaWR0aDEgPT0gMCAmJiBh
ZGphY2VudFdpZHRoMiA9PSAwKSB7CkBAIC03OTcsNTcgKzc5Niw2NyBAQCB2b2lkIFJlbmRlck9i
amVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0
LCBMYXlvdXRVbgogICAgICAgICAgICAgICAgIHN3aXRjaCAoc2lkZSkgewogICAgICAgICAgICAg
ICAgICAgICBjYXNlIEJTVG9wOgogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTQm90dG9tOgot
ICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChJbnRSZWN0
KHgxLCB5MSwgbGVuZ3RoLCB0aGlyZE9mVGhpY2tuZXNzKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdSZWN0KEludFJlY3QoeDEsIHkyIC0gdGhpcmRPZlRo
aWNrbmVzcywgbGVuZ3RoLCB0aGlyZE9mVGhpY2tuZXNzKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHgx
LCB5MSwgbGVuZ3RoLCB0aGlyZE9mVGhpY2tuZXNzLCBkZXZpY2VTY2FsZUZhY3RvcikpOworICAg
ICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChwaXhlbFNuYXBw
ZWRGb3JQYWludGluZyh4MSwgeTIgLSB0aGlyZE9mVGhpY2tuZXNzLCBsZW5ndGgsIHRoaXJkT2ZU
aGlja25lc3MsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU0xlZnQ6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQlNSaWdodDoKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaHkg
ZG8gd2Ugb2Zmc2V0IHRoZSBib3JkZXIgYnkgMSBpbiB0aGlzIGNhc2UgYnV0IG5vdCB0aGUgb3Ro
ZXIgb25lPwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA+IDEpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdSZWN0KEludFJlY3Qo
eDEsIHkxICsgMSwgdGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoIC0gMSkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QoSW50UmVjdCh4MiAtIHRo
aXJkT2ZUaGlja25lc3MsIHkxICsgMSwgdGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoIC0gMSkpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5kcmF3UmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4MSwgeTEsIHRoaXJk
T2ZUaGlja25lc3MsIGxlbmd0aCwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkRm9yUGFpbnRp
bmcoeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5MSwgdGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoLCBk
ZXZpY2VTY2FsZUZhY3RvcikpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTaG91
bGRBbnRpYWxpYXMod2FzQW50aWFsaWFzZWQpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+c2V0U3Ryb2tlU3R5bGUob2xkU3Ryb2tlU3R5bGUpOwogICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpbnQgYWRqYWNlbnQxQmlnVGhpcmQgPSAoKGFkamFjZW50V2lk
dGgxID4gMCkgPyBhZGphY2VudFdpZHRoMSArIDEgOiBhZGphY2VudFdpZHRoMSAtIDEpIC8gMzsK
LSAgICAgICAgICAgICAgICBpbnQgYWRqYWNlbnQyQmlnVGhpcmQgPSAoKGFkamFjZW50V2lkdGgy
ID4gMCkgPyBhZGphY2VudFdpZHRoMiArIDEgOiBhZGphY2VudFdpZHRoMiAtIDEpIC8gMzsKKyAg
ICAgICAgICAgICAgICBmbG9hdCBhZGphY2VudDFCaWdUaGlyZCA9IHJvdW5kVG9EZXZpY2VQaXhl
bChhZGphY2VudFdpZHRoMSAvIDMsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBhZGphY2VudDJCaWdUaGlyZCA9IHJvdW5kVG9EZXZpY2VQaXhlbChhZGphY2VudFdp
ZHRoMiAvIDMsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IG9m
ZnNldDEgPSBjZWlsVG9EZXZpY2VQaXhlbChmYWJzKGFkamFjZW50V2lkdGgxKSAqIDIgLyAzLCBk
ZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgZmxvYXQgb2Zmc2V0MiA9IGNlaWxU
b0RldmljZVBpeGVsKGZhYnMoYWRqYWNlbnRXaWR0aDIpICogMiAvIDMsIGRldmljZVNjYWxlRmFj
dG9yKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IG1pdHJlT2Zmc2V0MSA9IGFkamFjZW50V2lk
dGgxIDwgMCA/IG9mZnNldDEgOiAwOworICAgICAgICAgICAgICAgIGZsb2F0IG1pdHJlT2Zmc2V0
MiA9IGFkamFjZW50V2lkdGgxID4gMCA/IG9mZnNldDEgOiAwOworICAgICAgICAgICAgICAgIGZs
b2F0IG1pdHJlT2Zmc2V0MyA9IGFkamFjZW50V2lkdGgyIDwgMCA/IG9mZnNldDIgOiAwOworICAg
ICAgICAgICAgICAgIGZsb2F0IG1pdHJlT2Zmc2V0NCA9IGFkamFjZW50V2lkdGgyID4gMCA/IG9m
ZnNldDIgOiAwOwogCisgICAgICAgICAgICAgICAgRmxvYXRSZWN0IHBhaW50Qm9yZGVyUmVjdDsK
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBCU1RvcDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFw
aGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMs
IDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MSwgeDIgLSBzdGQ6Om1h
eCgoLWFkamFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksIHkxICsgdGhpcmRPZlRoaWNrbmVz
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIFNPTElE
LCBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4
MSArIHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB5MiAtIHRoaXJkT2ZUaGlja25lc3MsIHgyIC0gc3Rk
OjptYXgoKGFkamFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksIHkyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1Ro
aXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3Qo
eDEgKyBtaXRyZU9mZnNldDEsIHkxLCAoeDIgLSBtaXRyZU9mZnNldDMpIC0gKHgxICsgbWl0cmVP
ZmZzZXQxKSwgdGhpcmRPZlRoaWNrbmVzcyksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50
Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhY
KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQs
IGFudGlhbGlhcyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9
IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEgKyBtaXRyZU9mZnNldDIsIHky
IC0gdGhpcmRPZlRoaWNrbmVzcywgKHgyIC0gbWl0cmVPZmZzZXQ0KSAtICh4MSArIG1pdHJlT2Zm
c2V0MiksIHRoaXJkT2ZUaGlja25lc3MpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJv
cmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgp
LCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBh
bnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQlNMZWZ0OgotICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JC
b3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDEsIHkxICsgc3RkOjptYXgoKC1hZGphY2VudFdpZHRo
MSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MSArIHRoaXJkT2ZUaGlja25lc3MsIHkyIC0gc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMiAqIDIg
KyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBj
b2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFs
aWFzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGlj
c0NvbnRleHQsIHgyIC0gdGhpcmRPZlRoaWNrbmVzcywgeTEgKyBzdGQ6Om1heCgoYWRqYWNlbnRX
aWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeDIsIHkyIC0gc3RkOjptYXgoKGFkamFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwgYWRq
YWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcGFpbnRCb3JkZXJSZWN0ID0gcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmco
TGF5b3V0UmVjdCh4MSwgeTEgKyBtaXRyZU9mZnNldDEsIHRoaXJkT2ZUaGlja25lc3MsICh5MiAt
IG1pdHJlT2Zmc2V0MykgLSAoeTEgKyBtaXRyZU9mZnNldDEpKSwgZGV2aWNlU2NhbGVGYWN0b3Ip
OworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29u
dGV4dCwgcGFpbnRCb3JkZXJSZWN0LngoKSwgcGFpbnRCb3JkZXJSZWN0LnkoKSwgcGFpbnRCb3Jk
ZXJSZWN0Lm1heFgoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFkoKSwgc2lkZSwgY29sb3IsIFNPTElE
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2Vu
dDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRC
b3JkZXJSZWN0ID0gcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoTGF5b3V0UmVjdCh4MiAtIHRoaXJk
T2ZUaGlja25lc3MsIHkxICsgbWl0cmVPZmZzZXQyLCB0aGlyZE9mVGhpY2tuZXNzLCAoeTIgLSBt
aXRyZU9mZnNldDQpIC0gKHkxICsgbWl0cmVPZmZzZXQyKSksIGRldmljZVNjYWxlRmFjdG9yKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRl
eHQsIHBhaW50Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVy
UmVjdC5tYXhYKCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQy
QmlnVGhpcmQsIGFudGlhbGlhcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBCU0JvdHRvbToKLSAgICAgICAgICAgICAgICAgICAgICAg
IGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoKGFkamFj
ZW50V2lkdGgxICogMiArIDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHkxLCB4MiAtIHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDAp
LCB5MSArIHRoaXJkT2ZUaGlja25lc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1Ro
aXJkLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hT
aWRlKGdyYXBoaWNzQ29udGV4dCwgeDEgKyBzdGQ6Om1heCgoLWFkamFjZW50V2lkdGgxICogMiAr
IDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyIC0gdGhp
cmRPZlRoaWNrbmVzcywgeDIgLSBzdGQ6Om1heCgoLWFkamFjZW50V2lkdGgyICogMiArIDEpIC8g
MywgMCksIHkyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xv
ciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBl
ZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEgKyBtaXRyZU9mZnNldDIsIHkxLCAoeDIgLSBtaXRy
ZU9mZnNldDQpIC0gKHgxICsgbWl0cmVPZmZzZXQyKSwgdGhpcmRPZlRoaWNrbmVzcyksIGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lk
ZShncmFwaGljc0NvbnRleHQsIHBhaW50Qm9yZGVyUmVjdC54KCksIHBhaW50Qm9yZGVyUmVjdC55
KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9yZGVyUmVjdC5tYXhZKCksIHNpZGUs
IGNvbG9yLCBTT0xJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGphY2VudDFCaWdU
aGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJl
Y3QoeDEgKyBtaXRyZU9mZnNldDEsIHkyIC0gdGhpcmRPZlRoaWNrbmVzcywgKHgyIC0gbWl0cmVP
ZmZzZXQzKSAtICh4MSArIG1pdHJlT2Zmc2V0MSksIHRoaXJkT2ZUaGlja25lc3MpLCBkZXZpY2VT
Y2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgp
LCBwYWludEJvcmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBj
b2xvciwgU09MSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhp
cmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQlNSaWdodDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxLCB5MSAr
IHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4MSArIHRoaXJkT2ZUaGlja25lc3MsIHkyIC0gc3RkOjpt
YXgoKGFkamFjZW50V2lkdGgyICogMiArIDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwgYWRqYWNlbnQxQmlnVGhpcmQsIGFk
amFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZHJh
d0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5
MSArIHN0ZDo6bWF4KCgtYWRqYWNlbnRXaWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIsIHkyIC0gc3RkOjptYXgoKC1hZGphY2VudFdp
ZHRoMiAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGly
ZCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9
IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEsIHkxICsgbWl0cmVPZmZzZXQy
LCB0aGlyZE9mVGhpY2tuZXNzLCAoeTIgLSBtaXRyZU9mZnNldDQpIC0gKHkxICsgbWl0cmVPZmZz
ZXQyKSksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdM
aW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50Qm9yZGVyUmVjdC54KCksIHBhaW50
Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9yZGVyUmVjdC5t
YXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
ZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50
aW5nKExheW91dFJlY3QoeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5MSArIG1pdHJlT2Zmc2V0MSwg
dGhpcmRPZlRoaWNrbmVzcywgKHkyIC0gbWl0cmVPZmZzZXQzKSAtICh5MSArIG1pdHJlT2Zmc2V0
MSkpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGlu
ZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJv
cmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4
WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRq
YWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg2NywzMyArODc2LDUzIEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjpkcmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0Nv
bnRleHQsIExheW91dFVuCiAgICAgICAgICAgICAgICAgczIgPSBJTlNFVDsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgaW50IGFkamFjZW50MUJpZ0hhbGYgPSAoKGFkamFjZW50V2lkdGgx
ID4gMCkgPyBhZGphY2VudFdpZHRoMSArIDEgOiBhZGphY2VudFdpZHRoMSAtIDEpIC8gMjsKLSAg
ICAgICAgICAgIGludCBhZGphY2VudDJCaWdIYWxmID0gKChhZGphY2VudFdpZHRoMiA+IDApID8g
YWRqYWNlbnRXaWR0aDIgKyAxIDogYWRqYWNlbnRXaWR0aDIgLSAxKSAvIDI7CisgICAgICAgICAg
ICBmbG9hdCBhZGphY2VudDFCaWdIYWxmID0gY2VpbFRvRGV2aWNlUGl4ZWwoYWRqYWNlbnRXaWR0
aDEgLyAyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBmbG9hdCBhZGphY2VudDJC
aWdIYWxmID0gY2VpbFRvRGV2aWNlUGl4ZWwoYWRqYWNlbnRXaWR0aDIgLyAyLCBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisKKyAgICAgICAgICAgIGZsb2F0IGFkamFjZW50MVNtYWxsSGFsZiA9IGZsb29y
VG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMSAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAg
ICAgICAgICAgIGZsb2F0IGFkamFjZW50MlNtYWxsSGFsZiA9IGZsb29yVG9EZXZpY2VQaXhlbChh
ZGphY2VudFdpZHRoMiAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgZmxv
YXQgb2Zmc2V0MSA9IDA7CisgICAgICAgICAgICBmbG9hdCBvZmZzZXQyID0gMDsKKyAgICAgICAg
ICAgIGZsb2F0IG9mZnNldDMgPSAwOworICAgICAgICAgICAgZmxvYXQgb2Zmc2V0NCA9IDA7CisK
KyAgICAgICAgICAgIGlmICgoKHNpZGUgPT0gQlNUb3AgfHwgc2lkZSA9PSBCU0xlZnQpICYmIGFk
amFjZW50V2lkdGgxIDwgMCkgfHwgKChzaWRlID09IEJTQm90dG9tIHx8IHNpZGUgPT0gQlNSaWdo
dCkgJiYgYWRqYWNlbnRXaWR0aDEgPiAwKSkKKyAgICAgICAgICAgICAgICBvZmZzZXQxID0gZmxv
b3JUb0RldmljZVBpeGVsKGFkamFjZW50V2lkdGgxIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOwor
CisgICAgICAgICAgICBpZiAoKChzaWRlID09IEJTVG9wIHx8IHNpZGUgPT0gQlNMZWZ0KSAmJiBh
ZGphY2VudFdpZHRoMiA8IDApIHx8ICgoc2lkZSA9PSBCU0JvdHRvbSB8fCBzaWRlID09IEJTUmln
aHQpICYmIGFkamFjZW50V2lkdGgyID4gMCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0MiA9IGNl
aWxUb0RldmljZVBpeGVsKGFkamFjZW50V2lkdGgyIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOwor
CisgICAgICAgICAgICBpZiAoKChzaWRlID09IEJTVG9wIHx8IHNpZGUgPT0gQlNMZWZ0KSAmJiBh
ZGphY2VudFdpZHRoMSA+IDApIHx8ICgoc2lkZSA9PSBCU0JvdHRvbSB8fCBzaWRlID09IEJTUmln
aHQpICYmIGFkamFjZW50V2lkdGgxIDwgMCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0MyA9IGZs
b29yVG9EZXZpY2VQaXhlbChmYWJzKGFkamFjZW50V2lkdGgxKSAvIDIsIGRldmljZVNjYWxlRmFj
dG9yKTsKKworICAgICAgICAgICAgaWYgKCgoc2lkZSA9PSBCU1RvcCB8fCBzaWRlID09IEJTTGVm
dCkgJiYgYWRqYWNlbnRXaWR0aDIgPiAwKSB8fCAoKHNpZGUgPT0gQlNCb3R0b20gfHwgc2lkZSA9
PSBCU1JpZ2h0KSAmJiBhZGphY2VudFdpZHRoMiA8IDApKQorICAgICAgICAgICAgICAgIG9mZnNl
dDQgPSBjZWlsVG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMiAvIDIsIGRldmljZVNjYWxlRmFj
dG9yKTsKKworICAgICAgICAgICAgZmxvYXQgYWRqdXN0ZWRYID0gY2VpbFRvRGV2aWNlUGl4ZWwo
KHgxICsgeDIpIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgZmxvYXQgYWRq
dXN0ZWRZID0gY2VpbFRvRGV2aWNlUGl4ZWwoKHkxICsgeTIpIC8gMiwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgICAgICAgICAgLy8vIFF1YWRzIGNhbid0IHVzZSB0aGUgZGVmYXVsdCBzbmFwcGlu
ZyByZWN0IGZ1bmN0aW9ucy4KKyAgICAgICAgICAgIHgxID0gcm91bmRUb0RldmljZVBpeGVsKHgx
LCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICB4MiA9IHJvdW5kVG9EZXZpY2VQaXhl
bCh4MiwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgeTEgPSByb3VuZFRvRGV2aWNl
UGl4ZWwoeTEsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHkyID0gcm91bmRUb0Rl
dmljZVBpeGVsKHkyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKICAgICAgICAgICAgIHN3aXRjaCAo
c2lkZSkgewogICAgICAgICAgICAgICAgIGNhc2UgQlNUb3A6Ci0gICAgICAgICAgICAgICAgICAg
IGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoLWFkamFj
ZW50V2lkdGgxLCAwKSAvIDIsIHkxLCB4MiAtIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiwgMCkg
LyAyLCAoeTEgKyB5MiArIDEpIC8gMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aWRlLCBjb2xvciwgczEsIGFkamFjZW50MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlh
bGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIHgxICsgc3RkOjptYXgoYWRqYWNlbnRXaWR0aDEgKyAxLCAwKSAvIDIsICh5MSArIHky
ICsgMSkgLyAyLCB4MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyICsgMSwgMCkgLyAyLCB5MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50
V2lkdGgxIC8gMiwgYWRqYWNlbnRXaWR0aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAg
ICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDEs
IHkxLCB4MiAtIG9mZnNldDIsIGFkanVzdGVkWSwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFC
aWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAg
ICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDMsIGFkanVz
dGVkWSwgeDIgLSBvZmZzZXQ0LCB5Miwgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFTbWFsbEhh
bGYsIGFkamFjZW50MlNtYWxsSGFsZiwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCU0xlZnQ6Ci0gICAgICAgICAgICAgICAgICAg
IGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxLCB5MSArIHN0ZDo6bWF4KC1h
ZGphY2VudFdpZHRoMSwgMCkgLyAyLCAoeDEgKyB4MiArIDEpIC8gMiwgeTIgLSBzdGQ6Om1heCgt
YWRqYWNlbnRXaWR0aDIsIDApIC8gMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aWRlLCBjb2xvciwgczEsIGFkamFjZW50MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlh
bGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsICh4MSArIHgyICsgMSkgLyAyLCB5MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxICsg
MSwgMCkgLyAyLCB4MiwgeTIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiArIDEsIDApIC8gMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50
V2lkdGgxIC8gMiwgYWRqYWNlbnRXaWR0aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAg
ICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBvZmZz
ZXQxLCBhZGp1c3RlZFgsIHkyIC0gb2Zmc2V0Miwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFC
aWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAg
ICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBhZGp1c3RlZFgsIHkxICsgb2Zm
c2V0MywgeDIsIHkyIC0gb2Zmc2V0NCwgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFTbWFsbEhh
bGYsIGFkamFjZW50MlNtYWxsSGFsZiwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCU0JvdHRvbToKLSAgICAgICAgICAgICAgICAg
ICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDEgKyBzdGQ6Om1heChhZGph
Y2VudFdpZHRoMSwgMCkgLyAyLCB5MSwgeDIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCkg
LyAyLCAoeTEgKyB5MiArIDEpIC8gMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aWRlLCBjb2xvciwgczIsIGFkamFjZW50MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlh
bGlhcyk7Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIHgxICsgc3RkOjptYXgoLWFkamFjZW50V2lkdGgxICsgMSwgMCkgLyAyLCAoeTEgKyB5
MiArIDEpIC8gMiwgeDIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIgKyAxLCAwKSAvIDIsIHky
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBzMSwgYWRqYWNl
bnRXaWR0aDEgLyAyLCBhZGphY2VudFdpZHRoMiAvIDIsIGFudGlhbGlhcyk7CisgICAgICAgICAg
ICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgb2Zmc2V0
MSwgeTEsIHgyIC0gb2Zmc2V0MiwgYWRqdXN0ZWRZLCBzaWRlLCBjb2xvciwgczIsIGFkamFjZW50
MUJpZ0hhbGYsIGFkamFjZW50MkJpZ0hhbGYsIGFudGlhbGlhcyk7CisgICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxICsgb2Zmc2V0MywgYWRq
dXN0ZWRZLCB4MiAtIG9mZnNldDQsIHkyLCBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50MVNtYWxs
SGFsZiwgYWRqYWNlbnQyU21hbGxIYWxmLCBhbnRpYWxpYXMpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEJTUmlnaHQ6Ci0gICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgxLCB5MSArIHN0ZDo6bWF4
KGFkamFjZW50V2lkdGgxLCAwKSAvIDIsICh4MSArIHgyICsgMSkgLyAyLCB5MiAtIHN0ZDo6bWF4
KGFkamFjZW50V2lkdGgyLCAwKSAvIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRp
YWxpYXMpOwotICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCAoeDEgKyB4MiArIDEpIC8gMiwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEg
KyAxLCAwKSAvIDIsIHgyLCB5MiAtIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiArIDEsIDApIC8g
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgczEsIGFkamFj
ZW50V2lkdGgxIC8gMiwgYWRqYWNlbnRXaWR0aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAg
ICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBv
ZmZzZXQxLCBhZGp1c3RlZFgsIHkyIC0gb2Zmc2V0Miwgc2lkZSwgY29sb3IsIHMyLCBhZGphY2Vu
dDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAg
ICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBhZGp1c3RlZFgsIHkxICsg
b2Zmc2V0MywgeDIsIHkyIC0gb2Zmc2V0NCwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFTbWFs
bEhhbGYsIGFkamFjZW50MlNtYWxsSGFsZiwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTkxOSwzNiAr
OTQ4LDQyIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkcmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3ND
b250ZXh0KiBncmFwaGljc0NvbnRleHQsIExheW91dFVuCiAgICAgICAgICAgICAgICAgLy8gdGhp
cyBtYXR0ZXJzIGZvciByZWN0cyBpbiB0cmFuc2Zvcm1lZCBjb250ZXh0cy4KICAgICAgICAgICAg
ICAgICBib29sIHdhc0FudGlhbGlhc2VkID0gZ3JhcGhpY3NDb250ZXh0LT5zaG91bGRBbnRpYWxp
YXMoKTsKICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFNob3VsZEFudGlhbGlh
cyhhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3Qo
cGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeDEsIHkxLCB4MiAtIHgxLCB5MiAtIHkxLCBwaXhlbFNu
YXBwaW5nRmFjdG9yKSk7CisgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3UmVj
dChwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEsIGRldmlj
ZVNjYWxlRmFjdG9yKSk7CiAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTaG91
bGRBbnRpYWxpYXMod2FzQW50aWFsaWFzZWQpOwogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+c2V0U3Ryb2tlU3R5bGUob2xkU3Ryb2tlU3R5bGUpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHJvdW5k
aW5ncyBzaG91bGQgYmUgcmVwbGFjZWQgYnkgQVNTRVJUKGRldmljZSBwaXhlbCBwb3NpdGlvbmVk
KSB3aGVuIGFsbCB0aGUgY2FsbGVycyB0cmFuc2l0aW9uZWQgdG8gZGV2aWNlIHBpeGVscy4KKyAg
ICAgICAgICAgIHgxID0gcm91bmRUb0RldmljZVBpeGVsKHgxLCBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgICAgICAgICB5MSA9IHJvdW5kVG9EZXZpY2VQaXhlbCh5MSwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgICAgICAgICAgeDIgPSByb3VuZFRvRGV2aWNlUGl4ZWwoeDIsIGRldmljZVNjYWxl
RmFjdG9yKTsKKyAgICAgICAgICAgIHkyID0gcm91bmRUb0RldmljZVBpeGVsKHkyLCBkZXZpY2VT
Y2FsZUZhY3Rvcik7CiAgICAgICAgICAgICBGbG9hdFBvaW50IHF1YWRbNF07CiAgICAgICAgICAg
ICBzd2l0Y2ggKHNpZGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIEJTVG9wOgotICAgICAgICAg
ICAgICAgICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSArIHN0ZDo6bWF4KC1hZGphY2VudFdp
ZHRoMSwgMCksIHkxKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQo
eDEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRoMSwgMCksIHkyKTsKLSAgICAgICAgICAgICAgICAg
ICAgcXVhZFsyXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCks
IHkyKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6
Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApLCB5MSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRb
MF0gPSBGbG9hdFBvaW50KHgxICsgc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2VudFdpZHRoMSwgMCks
IHkxKTsKKyAgICAgICAgICAgICAgICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEgKyBzdGQ6
Om1heDxmbG9hdD4oYWRqYWNlbnRXaWR0aDEsIDApLCB5Mik7CisgICAgICAgICAgICAgICAgICAg
IHF1YWRbMl0gPSBGbG9hdFBvaW50KHgyIC0gc3RkOjptYXg8ZmxvYXQ+KGFkamFjZW50V2lkdGgy
LCAwKSwgeTIpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzNdID0gRmxvYXRQb2ludCh4MiAt
IHN0ZDo6bWF4PGZsb2F0PigtYWRqYWNlbnRXaWR0aDIsIDApLCB5MSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQlNCb3R0b206Ci0gICAgICAgICAg
ICAgICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxICsgc3RkOjptYXgoYWRqYWNlbnRXaWR0
aDEsIDApLCB5MSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1YWRbMV0gPSBGbG9hdFBvaW50KHgx
ICsgc3RkOjptYXgoLWFkamFjZW50V2lkdGgxLCAwKSwgeTIpOwotICAgICAgICAgICAgICAgICAg
ICBxdWFkWzJdID0gRmxvYXRQb2ludCh4MiAtIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMiwgMCks
IHkyKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6
Om1heChhZGphY2VudFdpZHRoMiwgMCksIHkxKTsKKyAgICAgICAgICAgICAgICAgICAgcXVhZFsw
XSA9IEZsb2F0UG9pbnQoeDEgKyBzdGQ6Om1heDxmbG9hdD4oYWRqYWNlbnRXaWR0aDEsIDApLCB5
MSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMV0gPSBGbG9hdFBvaW50KHgxICsgc3RkOjpt
YXg8ZmxvYXQ+KC1hZGphY2VudFdpZHRoMSwgMCksIHkyKTsKKyAgICAgICAgICAgICAgICAgICAg
cXVhZFsyXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heDxmbG9hdD4oLWFkamFjZW50V2lkdGgy
LCAwKSwgeTIpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzNdID0gRmxvYXRQb2ludCh4MiAt
IHN0ZDo6bWF4PGZsb2F0PihhZGphY2VudFdpZHRoMiwgMCksIHkxKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCU0xlZnQ6Ci0gICAgICAgICAgICAg
ICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSArIHN0ZDo6bWF4KC1hZGphY2VudFdp
ZHRoMSwgMCkpOwotICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwg
eTIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApKTsKLSAgICAgICAgICAgICAgICAgICAg
cXVhZFsyXSA9IEZsb2F0UG9pbnQoeDIsIHkyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDAp
KTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3Rk
OjptYXgoYWRqYWNlbnRXaWR0aDEsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgcXVhZFswXSA9
IEZsb2F0UG9pbnQoeDEsIHkxICsgc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2VudFdpZHRoMSwgMCkp
OworICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwgeTIgLSBzdGQ6
Om1heDxmbG9hdD4oLWFkamFjZW50V2lkdGgyLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIHF1
YWRbMl0gPSBGbG9hdFBvaW50KHgyLCB5MiAtIHN0ZDo6bWF4PGZsb2F0PihhZGphY2VudFdpZHRo
MiwgMCkpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzNdID0gRmxvYXRQb2ludCh4MiwgeTEg
KyBzdGQ6Om1heDxmbG9hdD4oYWRqYWNlbnRXaWR0aDEsIDApKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBCU1JpZ2h0OgotICAgICAgICAgICAgICAg
ICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSwgeTEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRo
MSwgMCkpOwotICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwgeTIg
LSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCkpOwotICAgICAgICAgICAgICAgICAgICBxdWFk
WzJdID0gRmxvYXRQb2ludCh4MiwgeTIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApKTsK
LSAgICAgICAgICAgICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3RkOjpt
YXgoLWFkamFjZW50V2lkdGgxLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0gPSBG
bG9hdFBvaW50KHgxLCB5MSArIHN0ZDo6bWF4PGZsb2F0PihhZGphY2VudFdpZHRoMSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSwgeTIgLSBzdGQ6Om1h
eDxmbG9hdD4oYWRqYWNlbnRXaWR0aDIsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgcXVhZFsy
XSA9IEZsb2F0UG9pbnQoeDIsIHkyIC0gc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2VudFdpZHRoMiwg
MCkpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzNdID0gRmxvYXRQb2ludCh4MiwgeTEgKyBz
dGQ6Om1heDxmbG9hdD4oLWFkamFjZW50V2lkdGgxLCAwKSk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKaW5kZXggMTA1ZGNhMDRjM2E3Zjk2NTBhOTY5YzA3ODhlMzc3OWY0YTc3M2YzYi4uYzgw
YzVlZmZmMDE1MDFmOTk2NmI4MzliNTE4YWYyZjkwMmUwMTk5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtODc2LDggKzg3Niw3IEBAIHB1YmxpYzoKIAogICAg
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bigpIGNvbnN0OwogCi0gICAgdm9pZCBkcmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3NDb250ZXh0
KiwgTGF5b3V0VW5pdCB4MSwgTGF5b3V0VW5pdCB5MSwgTGF5b3V0VW5pdCB4MiwgTGF5b3V0VW5p
dCB5MiwgQm94U2lkZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciwgRUJvcmRl
clN0eWxlLCBpbnQgYWRqYncxLCBpbnQgYWRqYncyLCBib29sIGFudGlhbGlhcyA9IGZhbHNlKTsK
KyAgICB2b2lkIGRyYXdMaW5lRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqLCBmbG9hdCB4MSwg
ZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgQm94U2lkZSwgQ29sb3IsIEVCb3JkZXJTdHls
ZSwgZmxvYXQgYWRqYncxLCBmbG9hdCBhZGpidzIsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwog
cHJvdGVjdGVkOgogICAgIGludCBjb2x1bW5OdW1iZXJGb3JPZmZzZXQoaW50IG9mZnNldCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225485</attachid>
            <date>2014-02-28 13:26:46 -0800</date>
            <delta_ts>2014-02-28 15:00:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129226-20140228132650.patch</filename>
            <type>text/plain</type>
            <size>25285</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE4ZDc1OWFlYjIzMDgw
NmVlMTNkNjZhZDg0NDZiNTgwNGMyMDQwMC4uZGVmMjI0MjBiZGFkNjQ1MzM0NDczZjE2ODY4NmYy
YzhkN2Y2ZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBBZGQgc3VicGl4ZWwgc3VwcG9ydCB0byBib3JkZXIgdHlwZSBvZiBkb3VibGUsIGdyb292ZSwg
cmlkZ2UsIGluc2V0IGFuZCBvdXRzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjkyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgY29udmVyc2lvbiBvZiBkb3VibGUsIGluc2V0LCBv
dXRzZXQsIGdyb292ZSBhbmQgcmlkZ2UgYm9yZGVyIHR5cGUKKyAgICAgICAgcGFpbnRpbmcgdG8g
c3VwcG9ydCBkZXZpY2UgcGl4ZWwgcHJlY2lzaW9uIHdpZHRoL2hlaWdodC4KKworICAgICAgICBS
ZWdyZXNzaW9uIGlzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
ZHJhd0xpbmVGb3JCb3hTaWRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisKIDIwMTQtMDItMjggIE1hcnRpbiBIb2RvdmFuICA8bWhvZG92YW5AaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlck1h
cHBlZFJlc3VsdCkgPT0gcm91bmRlZEludFBvaW50KHJlc3VsdCkgaW4gV2ViQ29yZTo6UmVuZGVy
R2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDJiYWVmMzM5NjRmZjE5ZDlkNDE3OGE3MzQ3MGJmMzgwN2MwZDBl
MjEuLjIzNDg3NzY1MWMzNWU1ZTAyYzliYWQ1YjVhMmJiODY4MDI2YjQ4YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC03MjIsOSArNzIyLDEwIEBAIFJl
bmRlckJsb2NrKiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiAgICAgcmV0
dXJuIHRvUmVuZGVyQmxvY2sobyk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjpkcmF3TGluZUZv
ckJveFNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIExheW91dFVuaXQgeDEs
IExheW91dFVuaXQgeTEsIExheW91dFVuaXQgeDIsIExheW91dFVuaXQgeTIsCi0gICAgQm94U2lk
ZSBzaWRlLCBDb2xvciBjb2xvciwgRUJvcmRlclN0eWxlIGJvcmRlclN0eWxlLCBpbnQgYWRqYWNl
bnRXaWR0aDEsIGludCBhZGphY2VudFdpZHRoMiwgYm9vbCBhbnRpYWxpYXMpCit2b2lkIFJlbmRl
ck9iamVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250
ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwKKyAgICBCb3hTaWRl
IHNpZGUsIENvbG9yIGNvbG9yLCBFQm9yZGVyU3R5bGUgYm9yZGVyU3R5bGUsIGZsb2F0IGFkamFj
ZW50V2lkdGgxLCBmbG9hdCBhZGphY2VudFdpZHRoMiwgYm9vbCBhbnRpYWxpYXMpCiB7CisgICAg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7
CiAgICAgZmxvYXQgdGhpY2tuZXNzOwogICAgIGZsb2F0IGxlbmd0aDsKICAgICBpZiAoc2lkZSA9
PSBCU1RvcCB8fCBzaWRlID09IEJTQm90dG9tKSB7CkBAIC03MzQsMjEgKzczNSwxNSBAQCB2b2lk
IFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhp
Y3NDb250ZXh0LCBMYXlvdXRVbgogICAgICAgICB0aGlja25lc3MgPSB4MiAtIHgxOwogICAgICAg
ICBsZW5ndGggPSB5MiAtIHkxOwogICAgIH0KKyAgICAvLyBGSVhNRTogZmxvb3JpbmcgaXMgYSB0
ZW1wb3Jhcnkgc29sdXRpb24gdW50aWwgdGhlIGRldmljZSBwaXhlbCBzbmFwcGluZyBpcyBhZGRl
ZCBoZXJlIGZvciBhbGwgYm9yZGVyIHR5cGVzIChpbmNsdWRpbmcgcmVjdXJzaXZlIGNhbGxzIHN1
Y2ggYXMgZ3Jvb3ZlLT4oaW5zZXQvb3V0c2V0KSkuCisgICAgdGhpY2tuZXNzID0gZmxvb3JUb0Rl
dmljZVBpeGVsKHRoaWNrbmVzcywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGxlbmd0aCA9IGZs
b29yVG9EZXZpY2VQaXhlbChsZW5ndGgsIGRldmljZVNjYWxlRmFjdG9yKTsKIAotICAgIGlmIChi
b3JkZXJTdHlsZSA9PSBET1VCTEUgJiYgdGhpY2tuZXNzIDwgMykKKyAgICBpZiAoYm9yZGVyU3R5
bGUgPT0gRE9VQkxFICYmICh0aGlja25lc3MgKiBkZXZpY2VTY2FsZUZhY3RvcikgPCAzKQogICAg
ICAgICBib3JkZXJTdHlsZSA9IFNPTElEOwogCi0gICAgZmxvYXQgcGl4ZWxTbmFwcGluZ0ZhY3Rv
ciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICAvLyBGSVhNRTogV2UgcmVh
bGx5IHdvdWxkIGxpa2UgdGhpcyBjaGVjayB0byBiZSBhbiBBU1NFUlQgYXMgd2UgZG9uJ3Qgd2Fu
dCB0byBkcmF3IGVtcHR5IGJvcmRlcnMuIEhvd2V2ZXIKICAgICAvLyBub3RoaW5nIGd1YXJhbnRl
ZXMgdGhhdCB0aGUgZm9sbG93aW5nIHJlY3Vyc2l2ZSBjYWxscyB0byBkcmF3TGluZUZvckJveFNp
ZGUgd2lsbCBoYXZlIG5vbi1udWxsIGRpbWVuc2lvbnMuCi0gICAgLy8gRklYTUU6IGZsb29yaW5n
IGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIHVudGlsIHRoZSBkZXZpY2UgcGl4ZWwgc25hcHBpbmcg
aXMgYWRkZWQgaGVyZSBmb3IgYWxsIGJvcmRlciB0eXBlcy4KLSAgICBpZiAoYm9yZGVyU3R5bGUg
PT0gU09MSUQpIHsKLSAgICAgICAgdGhpY2tuZXNzID0gcm91bmRUb0RldmljZVBpeGVsKHRoaWNr
bmVzcywgcGl4ZWxTbmFwcGluZ0ZhY3Rvcik7Ci0gICAgICAgIGxlbmd0aCA9IHJvdW5kVG9EZXZp
Y2VQaXhlbChsZW5ndGgsIHBpeGVsU25hcHBpbmdGYWN0b3IpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHRoaWNrbmVzcyA9IGZsb29yZih0aGlja25lc3MpOwotICAgICAgICBsZW5ndGggPSBmbG9v
cmYobGVuZ3RoKTsKLSAgICB9CiAgICAgaWYgKCF0aGlja25lc3MgfHwgIWxlbmd0aCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC03NjcsMTQgKzc2MiwxOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZHJh
d0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRV
bgogICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHRo
aWNrbmVzcyk7CiAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTdHJva2VTdHls
ZShib3JkZXJTdHlsZSA9PSBEQVNIRUQgPyBEYXNoZWRTdHJva2UgOiBEb3R0ZWRTdHJva2UpOwog
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZXJlJ3Mgc29tZSBvZGQgYWRqdXN0bWVudCBp
biBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKCkgdGhhdCBkaXNhYmxlcyBkZXZpY2UgcGl4ZWwg
cHJlY2lzaW9uIGxpbmUgZHJhd2luZy4KKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0ZWRYID0g
Zmxvb3JUb0ludCgoeDEgKyB4MikgLyAyKTsKKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0ZWRZ
ID0gZmxvb3JUb0ludCgoeTEgKyB5MikgLyAyKTsKKwogICAgICAgICAgICAgICAgIHN3aXRjaCAo
c2lkZSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTQm90dG9tOgogICAgICAgICAgICAg
ICAgICAgICBjYXNlIEJTVG9wOgotICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250
ZXh0LT5kcmF3TGluZShJbnRQb2ludCh4MSwgKHkxICsgeTIpIC8gMiksIEludFBvaW50KHgyLCAo
eTEgKyB5MikgLyAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQt
PmRyYXdMaW5lKEZsb2F0UG9pbnQoeDEsIGFkanVzdGVkWSksIEZsb2F0UG9pbnQoeDIsIGFkanVz
dGVkWSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQlNSaWdodDoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU0xlZnQ6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KCh4
MSArIHgyKSAvIDIsIHkxKSwgSW50UG9pbnQoKHgxICsgeDIpIC8gMiwgeTIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0xpbmUoRmxvYXRQb2ludChhZGp1
c3RlZFgsIHkxKSwgRmxvYXRQb2ludChhZGp1c3RlZFgsIHkyKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFzZWQpOwpAQCAtNzgzLDcg
Kzc4Miw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkcmF3TGluZUZvckJveFNpZGUoR3JhcGhpY3ND
b250ZXh0KiBncmFwaGljc0NvbnRleHQsIExheW91dFVuCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIERPVUJMRTogewotICAgICAgICAgICAgaW50IHRoaXJkT2ZU
aGlja25lc3MgPSAodGhpY2tuZXNzICsgMSkgLyAzOworICAgICAgICAgICAgZmxvYXQgdGhpcmRP
ZlRoaWNrbmVzcyA9IGNlaWxUb0RldmljZVBpeGVsKHRoaWNrbmVzcyAvIDMsIGRldmljZVNjYWxl
RmFjdG9yKTsKICAgICAgICAgICAgIEFTU0VSVCh0aGlyZE9mVGhpY2tuZXNzKTsKIAogICAgICAg
ICAgICAgaWYgKGFkamFjZW50V2lkdGgxID09IDAgJiYgYWRqYWNlbnRXaWR0aDIgPT0gMCkgewpA
QCAtNzk3LDU3ICs3OTYsNjcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRyYXdMaW5lRm9yQm94U2lk
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgTGF5b3V0VW4KICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBCU1RvcDoKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBCU0JvdHRvbToKLSAgICAgICAgICAgICAgICAgICAgICAg
IGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QoSW50UmVjdCh4MSwgeTEsIGxlbmd0aCwgdGhpcmRP
ZlRoaWNrbmVzcykpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3UmVjdChJbnRSZWN0KHgxLCB5MiAtIHRoaXJkT2ZUaGlja25lc3MsIGxlbmd0aCwgdGhpcmRP
ZlRoaWNrbmVzcykpOworICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3UmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4MSwgeTEsIGxlbmd0aCwgdGhpcmRPZlRo
aWNrbmVzcywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeDEsIHkyIC0g
dGhpcmRPZlRoaWNrbmVzcywgbGVuZ3RoLCB0aGlyZE9mVGhpY2tuZXNzLCBkZXZpY2VTY2FsZUZh
Y3RvcikpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQlNMZWZ0OgogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTUmlnaHQ6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2h5IGRvIHdlIG9mZnNldCB0aGUgYm9yZGVy
IGJ5IDEgaW4gdGhpcyBjYXNlIGJ1dCBub3QgdGhlIG90aGVyIG9uZT8KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5kcmF3UmVjdChJbnRSZWN0KHgxLCB5MSArIDEsIHRoaXJkT2ZUaGlj
a25lc3MsIGxlbmd0aCAtIDEpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGlj
c0NvbnRleHQtPmRyYXdSZWN0KEludFJlY3QoeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5MSArIDEs
IHRoaXJkT2ZUaGlja25lc3MsIGxlbmd0aCAtIDEpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4
ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeDEsIHkxLCB0aGlyZE9mVGhpY2tuZXNzLCBsZW5ndGgsIGRl
dmljZVNjYWxlRmFjdG9yKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRl
eHQtPmRyYXdSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHgyIC0gdGhpcmRPZlRoaWNrbmVz
cywgeTEsIHRoaXJkT2ZUaGlja25lc3MsIGxlbmd0aCwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlh
c2VkKTsKICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZVN0eWxlKG9s
ZFN0cm9rZVN0eWxlKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaW50
IGFkamFjZW50MUJpZ1RoaXJkID0gKChhZGphY2VudFdpZHRoMSA+IDApID8gYWRqYWNlbnRXaWR0
aDEgKyAxIDogYWRqYWNlbnRXaWR0aDEgLSAxKSAvIDM7Ci0gICAgICAgICAgICAgICAgaW50IGFk
amFjZW50MkJpZ1RoaXJkID0gKChhZGphY2VudFdpZHRoMiA+IDApID8gYWRqYWNlbnRXaWR0aDIg
KyAxIDogYWRqYWNlbnRXaWR0aDIgLSAxKSAvIDM7CisgICAgICAgICAgICAgICAgZmxvYXQgYWRq
YWNlbnQxQmlnVGhpcmQgPSBjZWlsVG9EZXZpY2VQaXhlbChhZGphY2VudFdpZHRoMSAvIDMsIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBhZGphY2VudDJCaWdUaGly
ZCA9IGNlaWxUb0RldmljZVBpeGVsKGFkamFjZW50V2lkdGgyIC8gMywgZGV2aWNlU2NhbGVGYWN0
b3IpOworCisgICAgICAgICAgICAgICAgZmxvYXQgb2Zmc2V0MSA9IGZsb29yVG9EZXZpY2VQaXhl
bChmYWJzKGFkamFjZW50V2lkdGgxKSAqIDIgLyAzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAg
ICAgICAgICAgICAgZmxvYXQgb2Zmc2V0MiA9IGZsb29yVG9EZXZpY2VQaXhlbChmYWJzKGFkamFj
ZW50V2lkdGgyKSAqIDIgLyAzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICAgICAgICAgICAg
ICBmbG9hdCBtaXRyZU9mZnNldDEgPSBhZGphY2VudFdpZHRoMSA8IDAgPyBvZmZzZXQxIDogMDsK
KyAgICAgICAgICAgICAgICBmbG9hdCBtaXRyZU9mZnNldDIgPSBhZGphY2VudFdpZHRoMSA+IDAg
PyBvZmZzZXQxIDogMDsKKyAgICAgICAgICAgICAgICBmbG9hdCBtaXRyZU9mZnNldDMgPSBhZGph
Y2VudFdpZHRoMiA8IDAgPyBvZmZzZXQyIDogMDsKKyAgICAgICAgICAgICAgICBmbG9hdCBtaXRy
ZU9mZnNldDQgPSBhZGphY2VudFdpZHRoMiA+IDAgPyBvZmZzZXQyIDogMDsKIAorICAgICAgICAg
ICAgICAgIEZsb2F0UmVjdCBwYWludEJvcmRlclJlY3Q7CiAgICAgICAgICAgICAgICAgc3dpdGNo
IChzaWRlKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQlNUb3A6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6
bWF4KCgtYWRqYWNlbnRXaWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeTEsIHgyIC0gc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMiAqIDIg
KyAxKSAvIDMsIDApLCB5MSArIHRoaXJkT2ZUaGlja25lc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBTT0xJRCwgYWRqYWNlbnQxQmlnVGhpcmQsIGFk
amFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZHJh
d0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDEgKyBzdGQ6Om1heCgoYWRqYWNlbnRX
aWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeTIgLSB0aGlyZE9mVGhpY2tuZXNzLCB4MiAtIHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMiAq
IDIgKyAxKSAvIDMsIDApLCB5MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2lkZSwgY29sb3IsIFNPTElELCBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQs
IGFudGlhbGlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYWludEJvcmRlclJlY3QgPSBw
aXhlbFNuYXBwZWRGb3JQYWludGluZyhMYXlvdXRSZWN0KHgxICsgbWl0cmVPZmZzZXQxLCB5MSwg
KHgyIC0gbWl0cmVPZmZzZXQzKSAtICh4MSArIG1pdHJlT2Zmc2V0MSksIHRoaXJkT2ZUaGlja25l
c3MpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGlu
ZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJv
cmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4
WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRq
YWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOworCisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWludEJvcmRlclJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGlu
ZyhMYXlvdXRSZWN0KHgxICsgbWl0cmVPZmZzZXQyLCB5MiAtIHRoaXJkT2ZUaGlja25lc3MsICh4
MiAtIG1pdHJlT2Zmc2V0NCkgLSAoeDEgKyBtaXRyZU9mZnNldDIpLCB0aGlyZE9mVGhpY2tuZXNz
KSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVG
b3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgcGFpbnRCb3JkZXJSZWN0LngoKSwgcGFpbnRCb3Jk
ZXJSZWN0LnkoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFgoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFko
KSwgc2lkZSwgY29sb3IsIFNPTElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkamFj
ZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIEJTTGVmdDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQs
IHgxLCB5MSArIHN0ZDo6bWF4KCgtYWRqYWNlbnRXaWR0aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDEgKyB0aGlyZE9mVGhpY2tuZXNzLCB5
MiAtIHN0ZDo6bWF4KCgtYWRqYWNlbnRXaWR0aDIgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIFNPTElELCBhZGphY2VudDFC
aWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MiAtIHRoaXJkT2ZU
aGlja25lc3MsIHkxICsgc3RkOjptYXgoKGFkamFjZW50V2lkdGgxICogMiArIDEpIC8gMywgMCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyLCB5MiAtIHN0ZDo6bWF4KChh
ZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2Vu
dDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9y
ZGVyUmVjdCA9IHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QoeDEsIHkxICsgbWl0
cmVPZmZzZXQxLCB0aGlyZE9mVGhpY2tuZXNzLCAoeTIgLSBtaXRyZU9mZnNldDMpIC0gKHkxICsg
bWl0cmVPZmZzZXQxKSksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHBhaW50Qm9yZGVyUmVjdC54
KCksIHBhaW50Qm9yZGVyUmVjdC55KCksIHBhaW50Qm9yZGVyUmVjdC5tYXhYKCksIHBhaW50Qm9y
ZGVyUmVjdC5tYXhZKCksIHNpZGUsIGNvbG9yLCBTT0xJRCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Qm9yZGVyUmVjdCA9IHBpeGVsU25hcHBl
ZEZvclBhaW50aW5nKExheW91dFJlY3QoeDIgLSB0aGlyZE9mVGhpY2tuZXNzLCB5MSArIG1pdHJl
T2Zmc2V0MiwgdGhpcmRPZlRoaWNrbmVzcywgKHkyIC0gbWl0cmVPZmZzZXQ0KSAtICh5MSArIG1p
dHJlT2Zmc2V0MikpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWludEJvcmRlclJlY3QueCgp
LCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRl
clJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QlNCb3R0b206Ci0gICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMs
IDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MSwgeDIgLSBzdGQ6Om1h
eCgoYWRqYWNlbnRXaWR0aDIgKiAyICsgMSkgLyAzLCAwKSwgeTEgKyB0aGlyZE9mVGhpY2tuZXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBjb2xvciwgU09MSUQs
IGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgx
ICsgc3RkOjptYXgoKC1hZGphY2VudFdpZHRoMSAqIDIgKyAxKSAvIDMsIDApLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB5MiAtIHRoaXJkT2ZUaGlja25lc3MsIHgyIC0gc3Rk
OjptYXgoKC1hZGphY2VudFdpZHRoMiAqIDIgKyAxKSAvIDMsIDApLCB5MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIFNPTElELCBhZGphY2VudDFCaWdU
aGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwYWludEJvcmRlclJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhMYXlvdXRSZWN0
KHgxICsgbWl0cmVPZmZzZXQyLCB5MSwgKHgyIC0gbWl0cmVPZmZzZXQ0KSAtICh4MSArIG1pdHJl
T2Zmc2V0MiksIHRoaXJkT2ZUaGlja25lc3MpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBwYWlu
dEJvcmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJvcmRlclJlY3QubWF4
WCgpLCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09MSUQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFjZW50MkJpZ1RoaXJk
LCBhbnRpYWxpYXMpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwYWludEJvcmRlclJlY3Qg
PSBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhMYXlvdXRSZWN0KHgxICsgbWl0cmVPZmZzZXQxLCB5
MiAtIHRoaXJkT2ZUaGlja25lc3MsICh4MiAtIG1pdHJlT2Zmc2V0MykgLSAoeDEgKyBtaXRyZU9m
ZnNldDEpLCB0aGlyZE9mVGhpY2tuZXNzKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgcGFpbnRC
b3JkZXJSZWN0LngoKSwgcGFpbnRCb3JkZXJSZWN0LnkoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFgo
KSwgcGFpbnRCb3JkZXJSZWN0Lm1heFkoKSwgc2lkZSwgY29sb3IsIFNPTElELAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwg
YW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgICAgICBjYXNlIEJTUmlnaHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZv
ckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBzdGQ6Om1heCgoYWRqYWNlbnRXaWR0
aDEgKiAyICsgMSkgLyAzLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDEgKyB0aGlyZE9mVGhpY2tuZXNzLCB5MiAtIHN0ZDo6bWF4KChhZGphY2VudFdpZHRoMiAqIDIg
KyAxKSAvIDMsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlLCBj
b2xvciwgU09MSUQsIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2VudDJCaWdUaGlyZCwgYW50aWFs
aWFzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGlj
c0NvbnRleHQsIHgyIC0gdGhpcmRPZlRoaWNrbmVzcywgeTEgKyBzdGQ6Om1heCgoLWFkamFjZW50
V2lkdGgxICogMiArIDEpIC8gMywgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyLCB5MiAtIHN0ZDo6bWF4KCgtYWRqYWNlbnRXaWR0aDIgKiAyICsgMSkgLyAzLCAwKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIFNPTElELCBh
ZGphY2VudDFCaWdUaGlyZCwgYWRqYWNlbnQyQmlnVGhpcmQsIGFudGlhbGlhcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWludEJvcmRlclJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGlu
ZyhMYXlvdXRSZWN0KHgxLCB5MSArIG1pdHJlT2Zmc2V0MiwgdGhpcmRPZlRoaWNrbmVzcywgKHky
IC0gbWl0cmVPZmZzZXQ0KSAtICh5MSArIG1pdHJlT2Zmc2V0MikpLCBkZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBwYWludEJvcmRlclJlY3QueCgpLCBwYWludEJvcmRlclJlY3QueSgpLCBwYWludEJv
cmRlclJlY3QubWF4WCgpLCBwYWludEJvcmRlclJlY3QubWF4WSgpLCBzaWRlLCBjb2xvciwgU09M
SUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqYWNlbnQxQmlnVGhpcmQsIGFkamFj
ZW50MkJpZ1RoaXJkLCBhbnRpYWxpYXMpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwYWlu
dEJvcmRlclJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhMYXlvdXRSZWN0KHgyIC0gdGhp
cmRPZlRoaWNrbmVzcywgeTEgKyBtaXRyZU9mZnNldDEsIHRoaXJkT2ZUaGlja25lc3MsICh5MiAt
IG1pdHJlT2Zmc2V0MykgLSAoeTEgKyBtaXRyZU9mZnNldDEpKSwgZGV2aWNlU2NhbGVGYWN0b3Ip
OworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29u
dGV4dCwgcGFpbnRCb3JkZXJSZWN0LngoKSwgcGFpbnRCb3JkZXJSZWN0LnkoKSwgcGFpbnRCb3Jk
ZXJSZWN0Lm1heFgoKSwgcGFpbnRCb3JkZXJSZWN0Lm1heFkoKSwgc2lkZSwgY29sb3IsIFNPTElE
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkamFjZW50MUJpZ1RoaXJkLCBhZGphY2Vu
dDJCaWdUaGlyZCwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC04NjcsMzMgKzg3Niw1MyBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZHJhd0xpbmVGb3JC
b3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBMYXlvdXRVbgogICAgICAg
ICAgICAgICAgIHMyID0gSU5TRVQ7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGludCBh
ZGphY2VudDFCaWdIYWxmID0gKChhZGphY2VudFdpZHRoMSA+IDApID8gYWRqYWNlbnRXaWR0aDEg
KyAxIDogYWRqYWNlbnRXaWR0aDEgLSAxKSAvIDI7Ci0gICAgICAgICAgICBpbnQgYWRqYWNlbnQy
QmlnSGFsZiA9ICgoYWRqYWNlbnRXaWR0aDIgPiAwKSA/IGFkamFjZW50V2lkdGgyICsgMSA6IGFk
amFjZW50V2lkdGgyIC0gMSkgLyAyOworICAgICAgICAgICAgZmxvYXQgYWRqYWNlbnQxQmlnSGFs
ZiA9IGNlaWxUb0RldmljZVBpeGVsKGFkamFjZW50V2lkdGgxIC8gMiwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgICAgICAgICAgZmxvYXQgYWRqYWNlbnQyQmlnSGFsZiA9IGNlaWxUb0RldmljZVBp
eGVsKGFkamFjZW50V2lkdGgyIC8gMiwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgICAgICAg
ICBmbG9hdCBhZGphY2VudDFTbWFsbEhhbGYgPSBmbG9vclRvRGV2aWNlUGl4ZWwoYWRqYWNlbnRX
aWR0aDEgLyAyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBmbG9hdCBhZGphY2Vu
dDJTbWFsbEhhbGYgPSBmbG9vclRvRGV2aWNlUGl4ZWwoYWRqYWNlbnRXaWR0aDIgLyAyLCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisKKyAgICAgICAgICAgIGZsb2F0IG9mZnNldDEgPSAwOworICAgICAg
ICAgICAgZmxvYXQgb2Zmc2V0MiA9IDA7CisgICAgICAgICAgICBmbG9hdCBvZmZzZXQzID0gMDsK
KyAgICAgICAgICAgIGZsb2F0IG9mZnNldDQgPSAwOworCisgICAgICAgICAgICBpZiAoKChzaWRl
ID09IEJTVG9wIHx8IHNpZGUgPT0gQlNMZWZ0KSAmJiBhZGphY2VudFdpZHRoMSA8IDApIHx8ICgo
c2lkZSA9PSBCU0JvdHRvbSB8fCBzaWRlID09IEJTUmlnaHQpICYmIGFkamFjZW50V2lkdGgxID4g
MCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0MSA9IGZsb29yVG9EZXZpY2VQaXhlbChhZGphY2Vu
dFdpZHRoMSAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgaWYgKCgoc2lk
ZSA9PSBCU1RvcCB8fCBzaWRlID09IEJTTGVmdCkgJiYgYWRqYWNlbnRXaWR0aDIgPCAwKSB8fCAo
KHNpZGUgPT0gQlNCb3R0b20gfHwgc2lkZSA9PSBCU1JpZ2h0KSAmJiBhZGphY2VudFdpZHRoMiA+
IDApKQorICAgICAgICAgICAgICAgIG9mZnNldDIgPSBjZWlsVG9EZXZpY2VQaXhlbChhZGphY2Vu
dFdpZHRoMiAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgICAgICAgICAgaWYgKCgoc2lk
ZSA9PSBCU1RvcCB8fCBzaWRlID09IEJTTGVmdCkgJiYgYWRqYWNlbnRXaWR0aDEgPiAwKSB8fCAo
KHNpZGUgPT0gQlNCb3R0b20gfHwgc2lkZSA9PSBCU1JpZ2h0KSAmJiBhZGphY2VudFdpZHRoMSA8
IDApKQorICAgICAgICAgICAgICAgIG9mZnNldDMgPSBmbG9vclRvRGV2aWNlUGl4ZWwoZmFicyhh
ZGphY2VudFdpZHRoMSkgLyAyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICAgICAgICAgIGlm
ICgoKHNpZGUgPT0gQlNUb3AgfHwgc2lkZSA9PSBCU0xlZnQpICYmIGFkamFjZW50V2lkdGgyID4g
MCkgfHwgKChzaWRlID09IEJTQm90dG9tIHx8IHNpZGUgPT0gQlNSaWdodCkgJiYgYWRqYWNlbnRX
aWR0aDIgPCAwKSkKKyAgICAgICAgICAgICAgICBvZmZzZXQ0ID0gY2VpbFRvRGV2aWNlUGl4ZWwo
YWRqYWNlbnRXaWR0aDIgLyAyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICAgICAgICAgIGZs
b2F0IGFkanVzdGVkWCA9IGNlaWxUb0RldmljZVBpeGVsKCh4MSArIHgyKSAvIDIsIGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICAgICAgICAgIGZsb2F0IGFkanVzdGVkWSA9IGNlaWxUb0RldmljZVBp
eGVsKCh5MSArIHkyKSAvIDIsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIC8vLyBR
dWFkcyBjYW4ndCB1c2UgdGhlIGRlZmF1bHQgc25hcHBpbmcgcmVjdCBmdW5jdGlvbnMuCisgICAg
ICAgICAgICB4MSA9IHJvdW5kVG9EZXZpY2VQaXhlbCh4MSwgZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgICAgICAgICAgeDIgPSByb3VuZFRvRGV2aWNlUGl4ZWwoeDIsIGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICAgICAgICAgIHkxID0gcm91bmRUb0RldmljZVBpeGVsKHkxLCBkZXZpY2VTY2FsZUZh
Y3Rvcik7CisgICAgICAgICAgICB5MiA9IHJvdW5kVG9EZXZpY2VQaXhlbCh5MiwgZGV2aWNlU2Nh
bGVGYWN0b3IpOwogCiAgICAgICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIEJTVG9wOgotICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMCkgLyAyLCB5MSwg
eDIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApIC8gMiwgKHkxICsgeTIgKyAxKSAvIDIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIHMxLCBhZGphY2Vu
dDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAg
ICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6bWF4KGFk
amFjZW50V2lkdGgxICsgMSwgMCkgLyAyLCAoeTEgKyB5MiArIDEpIC8gMiwgeDIgLSBzdGQ6Om1h
eChhZGphY2VudFdpZHRoMiArIDEsIDApIC8gMiwgeTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudFdpZHRoMSAvIDIsIGFkamFjZW50V2lk
dGgyIC8gMiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hT
aWRlKGdyYXBoaWNzQ29udGV4dCwgeDEgKyBvZmZzZXQxLCB5MSwgeDIgLSBvZmZzZXQyLCBhZGp1
c3RlZFksIHNpZGUsIGNvbG9yLCBzMSwgYWRqYWNlbnQxQmlnSGFsZiwgYWRqYWNlbnQyQmlnSGFs
ZiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgeDEgKyBvZmZzZXQzLCBhZGp1c3RlZFksIHgyIC0gb2Zmc2V0NCwgeTIs
IHNpZGUsIGNvbG9yLCBzMiwgYWRqYWNlbnQxU21hbGxIYWxmLCBhZGphY2VudDJTbWFsbEhhbGYs
IGFudGlhbGlhcyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IGNhc2UgQlNMZWZ0OgotICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCB4MSwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEsIDApIC8gMiwg
KHgxICsgeDIgKyAxKSAvIDIsIHkyIC0gc3RkOjptYXgoLWFkamFjZW50V2lkdGgyLCAwKSAvIDIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIHMxLCBhZGphY2Vu
dDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAg
ICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCAoeDEgKyB4MiArIDEpIC8g
MiwgeTEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRoMSArIDEsIDApIC8gMiwgeDIsIHkyIC0gc3Rk
OjptYXgoYWRqYWNlbnRXaWR0aDIgKyAxLCAwKSAvIDIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudFdpZHRoMSAvIDIsIGFkamFjZW50V2lk
dGgyIC8gMiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hT
aWRlKGdyYXBoaWNzQ29udGV4dCwgeDEsIHkxICsgb2Zmc2V0MSwgYWRqdXN0ZWRYLCB5MiAtIG9m
ZnNldDIsIHNpZGUsIGNvbG9yLCBzMSwgYWRqYWNlbnQxQmlnSGFsZiwgYWRqYWNlbnQyQmlnSGFs
ZiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgYWRqdXN0ZWRYLCB5MSArIG9mZnNldDMsIHgyLCB5MiAtIG9mZnNldDQs
IHNpZGUsIGNvbG9yLCBzMiwgYWRqYWNlbnQxU21hbGxIYWxmLCBhZGphY2VudDJTbWFsbEhhbGYs
IGFudGlhbGlhcyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IGNhc2UgQlNCb3R0b206Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShn
cmFwaGljc0NvbnRleHQsIHgxICsgc3RkOjptYXgoYWRqYWNlbnRXaWR0aDEsIDApIC8gMiwgeTEs
IHgyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDApIC8gMiwgKHkxICsgeTIgKyAxKSAvIDIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSwgY29sb3IsIHMyLCBhZGphY2Vu
dDFCaWdIYWxmLCBhZGphY2VudDJCaWdIYWxmLCBhbnRpYWxpYXMpOwotICAgICAgICAgICAgICAg
ICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIHN0ZDo6bWF4KC1h
ZGphY2VudFdpZHRoMSArIDEsIDApIC8gMiwgKHkxICsgeTIgKyAxKSAvIDIsIHgyIC0gc3RkOjpt
YXgoLWFkamFjZW50V2lkdGgyICsgMSwgMCkgLyAyLCB5MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaWRlLCBjb2xvciwgczEsIGFkamFjZW50V2lkdGgxIC8gMiwgYWRqYWNlbnRX
aWR0aDIgLyAyLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJv
eFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDEsIHkxLCB4MiAtIG9mZnNldDIsIGFk
anVzdGVkWSwgc2lkZSwgY29sb3IsIHMyLCBhZGphY2VudDFCaWdIYWxmLCBhZGphY2VudDJCaWdI
YWxmLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCB4MSArIG9mZnNldDMsIGFkanVzdGVkWSwgeDIgLSBvZmZzZXQ0LCB5
Miwgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudDFTbWFsbEhhbGYsIGFkamFjZW50MlNtYWxsSGFs
ZiwgYW50aWFsaWFzKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgY2FzZSBCU1JpZ2h0OgotICAgICAgICAgICAgICAgICAgICBkcmF3TGluZUZvckJveFNpZGUo
Z3JhcGhpY3NDb250ZXh0LCB4MSwgeTEgKyBzdGQ6Om1heChhZGphY2VudFdpZHRoMSwgMCkgLyAy
LCAoeDEgKyB4MiArIDEpIC8gMiwgeTIgLSBzdGQ6Om1heChhZGphY2VudFdpZHRoMiwgMCkgLyAy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUsIGNvbG9yLCBzMiwgYWRqYWNl
bnQxQmlnSGFsZiwgYWRqYWNlbnQyQmlnSGFsZiwgYW50aWFsaWFzKTsKLSAgICAgICAgICAgICAg
ICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgKHgxICsgeDIgKyAxKSAv
IDIsIHkxICsgc3RkOjptYXgoLWFkamFjZW50V2lkdGgxICsgMSwgMCkgLyAyLCB4MiwgeTIgLSBz
dGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIgKyAxLCAwKSAvIDIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2lkZSwgY29sb3IsIHMxLCBhZGphY2VudFdpZHRoMSAvIDIsIGFkamFjZW50
V2lkdGgyIC8gMiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JC
b3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgeDEsIHkxICsgb2Zmc2V0MSwgYWRqdXN0ZWRYLCB5MiAt
IG9mZnNldDIsIHNpZGUsIGNvbG9yLCBzMiwgYWRqYWNlbnQxQmlnSGFsZiwgYWRqYWNlbnQyQmln
SGFsZiwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRl
KGdyYXBoaWNzQ29udGV4dCwgYWRqdXN0ZWRYLCB5MSArIG9mZnNldDMsIHgyLCB5MiAtIG9mZnNl
dDQsIHNpZGUsIGNvbG9yLCBzMSwgYWRqYWNlbnQxU21hbGxIYWxmLCBhZGphY2VudDJTbWFsbEhh
bGYsIGFudGlhbGlhcyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CkBAIC05MTksMzYgKzk0OCw0MiBAQCB2b2lkIFJlbmRlck9i
amVjdDo6ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0
LCBMYXlvdXRVbgogICAgICAgICAgICAgICAgIC8vIHRoaXMgbWF0dGVycyBmb3IgcmVjdHMgaW4g
dHJhbnNmb3JtZWQgY29udGV4dHMuCiAgICAgICAgICAgICAgICAgYm9vbCB3YXNBbnRpYWxpYXNl
ZCA9IGdyYXBoaWNzQ29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CiAgICAgICAgICAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoYW50aWFsaWFzKTsKLSAgICAgICAg
ICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5n
KHgxLCB5MSwgeDIgLSB4MSwgeTIgLSB5MSwgcGl4ZWxTbmFwcGluZ0ZhY3RvcikpOworICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkRm9yUGFpbnRp
bmcoeDEsIHkxLCB4MiAtIHgxLCB5MiAtIHkxLCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAgICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlh
c2VkKTsKICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZVN0eWxlKG9s
ZFN0cm9rZVN0eWxlKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSByb3VuZGluZ3Mgc2hvdWxkIGJlIHJlcGxhY2Vk
IGJ5IEFTU0VSVChkZXZpY2UgcGl4ZWwgcG9zaXRpb25lZCkgd2hlbiBhbGwgdGhlIGNhbGxlcnMg
dHJhbnNpdGlvbmVkIHRvIGRldmljZSBwaXhlbHMuCisgICAgICAgICAgICB4MSA9IHJvdW5kVG9E
ZXZpY2VQaXhlbCh4MSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgeTEgPSByb3Vu
ZFRvRGV2aWNlUGl4ZWwoeTEsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHgyID0g
cm91bmRUb0RldmljZVBpeGVsKHgyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICB5
MiA9IHJvdW5kVG9EZXZpY2VQaXhlbCh5MiwgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgICAgICAg
ICAgRmxvYXRQb2ludCBxdWFkWzRdOwogICAgICAgICAgICAgc3dpdGNoIChzaWRlKSB7CiAgICAg
ICAgICAgICAgICAgY2FzZSBCU1RvcDoKLSAgICAgICAgICAgICAgICAgICAgcXVhZFswXSA9IEZs
b2F0UG9pbnQoeDEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEsIDApLCB5MSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHF1YWRbMV0gPSBGbG9hdFBvaW50KHgxICsgc3RkOjptYXgoYWRqYWNlbnRX
aWR0aDEsIDApLCB5Mik7Ci0gICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50
KHgyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDApLCB5Mik7Ci0gICAgICAgICAgICAgICAg
ICAgIHF1YWRbM10gPSBGbG9hdFBvaW50KHgyIC0gc3RkOjptYXgoLWFkamFjZW50V2lkdGgyLCAw
KSwgeTEpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSArIHN0
ZDo6bWF4PGZsb2F0PigtYWRqYWNlbnRXaWR0aDEsIDApLCB5MSk7CisgICAgICAgICAgICAgICAg
ICAgIHF1YWRbMV0gPSBGbG9hdFBvaW50KHgxICsgc3RkOjptYXg8ZmxvYXQ+KGFkamFjZW50V2lk
dGgxLCAwKSwgeTIpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzJdID0gRmxvYXRQb2ludCh4
MiAtIHN0ZDo6bWF4PGZsb2F0PihhZGphY2VudFdpZHRoMiwgMCksIHkyKTsKKyAgICAgICAgICAg
ICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heDxmbG9hdD4oLWFkamFj
ZW50V2lkdGgyLCAwKSwgeTEpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIEJTQm90dG9tOgotICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0gRmxv
YXRQb2ludCh4MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAwKSwgeTEpOwotICAgICAgICAg
ICAgICAgICAgICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSArIHN0ZDo6bWF4KC1hZGphY2VudFdp
ZHRoMSwgMCksIHkyKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsyXSA9IEZsb2F0UG9pbnQo
eDIgLSBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDIsIDApLCB5Mik7Ci0gICAgICAgICAgICAgICAg
ICAgIHF1YWRbM10gPSBGbG9hdFBvaW50KHgyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0aDIsIDAp
LCB5MSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxICsgc3Rk
OjptYXg8ZmxvYXQ+KGFkamFjZW50V2lkdGgxLCAwKSwgeTEpOworICAgICAgICAgICAgICAgICAg
ICBxdWFkWzFdID0gRmxvYXRQb2ludCh4MSArIHN0ZDo6bWF4PGZsb2F0PigtYWRqYWNlbnRXaWR0
aDEsIDApLCB5Mik7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50KHgy
IC0gc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2VudFdpZHRoMiwgMCksIHkyKTsKKyAgICAgICAgICAg
ICAgICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIgLSBzdGQ6Om1heDxmbG9hdD4oYWRqYWNl
bnRXaWR0aDIsIDApLCB5MSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgQlNMZWZ0OgotICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0gRmxvYXRQ
b2ludCh4MSwgeTEgKyBzdGQ6Om1heCgtYWRqYWNlbnRXaWR0aDEsIDApKTsKLSAgICAgICAgICAg
ICAgICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEsIHkyIC0gc3RkOjptYXgoLWFkamFjZW50
V2lkdGgyLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50KHgy
LCB5MiAtIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgyLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAg
IHF1YWRbM10gPSBGbG9hdFBvaW50KHgyLCB5MSArIHN0ZDo6bWF4KGFkamFjZW50V2lkdGgxLCAw
KSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSArIHN0
ZDo6bWF4PGZsb2F0PigtYWRqYWNlbnRXaWR0aDEsIDApKTsKKyAgICAgICAgICAgICAgICAgICAg
cXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEsIHkyIC0gc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2VudFdp
ZHRoMiwgMCkpOworICAgICAgICAgICAgICAgICAgICBxdWFkWzJdID0gRmxvYXRQb2ludCh4Miwg
eTIgLSBzdGQ6Om1heDxmbG9hdD4oYWRqYWNlbnRXaWR0aDIsIDApKTsKKyAgICAgICAgICAgICAg
ICAgICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3RkOjptYXg8ZmxvYXQ+KGFkamFj
ZW50V2lkdGgxLCAwKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQlNSaWdodDoKLSAgICAgICAgICAgICAgICAgICAgcXVhZFswXSA9IEZsb2F0UG9p
bnQoeDEsIHkxICsgc3RkOjptYXgoYWRqYWNlbnRXaWR0aDEsIDApKTsKLSAgICAgICAgICAgICAg
ICAgICAgcXVhZFsxXSA9IEZsb2F0UG9pbnQoeDEsIHkyIC0gc3RkOjptYXgoYWRqYWNlbnRXaWR0
aDIsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgcXVhZFsyXSA9IEZsb2F0UG9pbnQoeDIsIHky
IC0gc3RkOjptYXgoLWFkamFjZW50V2lkdGgyLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1
YWRbM10gPSBGbG9hdFBvaW50KHgyLCB5MSArIHN0ZDo6bWF4KC1hZGphY2VudFdpZHRoMSwgMCkp
OworICAgICAgICAgICAgICAgICAgICBxdWFkWzBdID0gRmxvYXRQb2ludCh4MSwgeTEgKyBzdGQ6
Om1heDxmbG9hdD4oYWRqYWNlbnRXaWR0aDEsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgcXVh
ZFsxXSA9IEZsb2F0UG9pbnQoeDEsIHkyIC0gc3RkOjptYXg8ZmxvYXQ+KGFkamFjZW50V2lkdGgy
LCAwKSk7CisgICAgICAgICAgICAgICAgICAgIHF1YWRbMl0gPSBGbG9hdFBvaW50KHgyLCB5MiAt
IHN0ZDo6bWF4PGZsb2F0PigtYWRqYWNlbnRXaWR0aDIsIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgcXVhZFszXSA9IEZsb2F0UG9pbnQoeDIsIHkxICsgc3RkOjptYXg8ZmxvYXQ+KC1hZGphY2Vu
dFdpZHRoMSwgMCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDEwNWRjYTA0YzNh
N2Y5NjUwYTk2OWMwNzg4ZTM3NzlmNGE3NzNmM2IuLmM4MGM1ZWZmZjAxNTAxZjk5NjZiODM5YjUx
OGFmMmY5MDJlMDE5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
QEAgLTg3Niw4ICs4NzYsNyBAQCBwdWJsaWM6CiAKICAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdDsKIAotICAgIHZvaWQg
ZHJhd0xpbmVGb3JCb3hTaWRlKEdyYXBoaWNzQ29udGV4dCosIExheW91dFVuaXQgeDEsIExheW91
dFVuaXQgeTEsIExheW91dFVuaXQgeDIsIExheW91dFVuaXQgeTIsIEJveFNpZGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29sb3IsIEVCb3JkZXJTdHlsZSwgaW50IGFkamJ3MSwgaW50
IGFkamJ3MiwgYm9vbCBhbnRpYWxpYXMgPSBmYWxzZSk7CisgICAgdm9pZCBkcmF3TGluZUZvckJv
eFNpZGUoR3JhcGhpY3NDb250ZXh0KiwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxv
YXQgeTIsIEJveFNpZGUsIENvbG9yLCBFQm9yZGVyU3R5bGUsIGZsb2F0IGFkamJ3MSwgZmxvYXQg
YWRqYncyLCBib29sIGFudGlhbGlhcyA9IGZhbHNlKTsKIHByb3RlY3RlZDoKICAgICBpbnQgY29s
dW1uTnVtYmVyRm9yT2Zmc2V0KGludCBvZmZzZXQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>