QFI@phWdirty bitcorrupt bitexternal data filecompression typeextended L2 entrieslazy refcountsbitmapsraw external data  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ UEFI PART\r@ " 5ķFJINEnfI(s*K>;E;Jkqr4EFI=rGy=iG}MiQwAAg9/ />X@@RR?s"@"@Ѿ4>,@b@@  8fot@`@_ @T!@!$Q {S@@SA{¨_a@; 4s:@{S[R@t@y|@y|`  @z@ykT@SA[B{Ĩ_`@4v@ys@_kaT@_@{ @b@ @{¨\A@R, @R{¨_ Վ{S[* A@@SA[B{Ĩ_`RR"rw vu@95!A ?R"AA xabx!R! հ {S@` @` SA{¨_ր@@R_ {S@` @Q` SA{¨_ր@@R_`@_R{S[c@q,T`@@?B@!Ta:@A ?@"aTt @`2@H`@FD RSA[BcC{Ĩ_"!8@@@T@42@)R{SckMRF["FsFTFRb *5v"@yqTF@RY [BSAcCkDsE{ɨ_a@ைҀɨ?T`@9qT`@qTF|a@`v@ybz@yTFR "F FPRFMF@F@R @4] @`F@F@R 5 F@ @!F`@5F `@;bz@y`k T#o*5H#}}`#2 F@5b@Rcz@y`?kTATu@u`z@yk"#T@$qDz T`v@y@!F`@4@!F`4@F@R@c Av_T@9@4F@55 @\ @ZѵZZ@{#av@yZ6Rv@v`z@y_kCT}VC@}V@6 @@@˵ѻuqT qT@@`v@yZ@aR@qTdv@y!u(@Rav@y@A!|!a|! @jZ@7ww@kT@9_ q TrT7@~S@_q6@ @yvT4a5RR#r _q` TF@R !"@95@ ?R!F@! "x`F@R 4@@??@`4B@@@@@4S 9{@@4R`4F@@@4"R@5F5@F5@@@y@Ca@.@?k`Tc@@ F@R 5F"FGRFFFSR@F"FFSR@F"FFd4~4w<Vhq0>Le{  @A ?G@a: @{¨_{!RS?  @  @SA{è_ 5T  3` @Q` {[GS_ tGGR SA[B{è_G@`5G@R  G G@~{@ @R{_  R,@0@4@ (ORRR RB_AT_$@x4f qT d( |S#|S@cl28#DL!c`2`2!`2888R 8qhT8qHTf|Sd2cc`2&$89a ?qiTa ?qTR8a| S !h28a,Fc!`2c`288*{"S[5@yRQA*S`@yPqTSA[B{èAJajt8AFkhTsRZnp{B@y3`:@y+`6@y#`2@y`.@y`*@y `&@yg"@yf@ye@yd@yc@yb@ya @yB}bAd@a"@9 BvdJ@9a@cF@9bB@9$Bnc@yb@ya @y(Ba @y,B0B#4B? qTT?qT?q@TTB?qT?qATaPBX`@9+`@9#`~@9`z@9`v@9 `r@9b@gn@9fj@9ef@9db@9a@8B5a@b@Eb>EC@E@RuSA[BcC{Ȩ_**DE#*@0@*@?HE`R]'@@#'**?ґ@'@0@ @@R`?@7@!LE"@L '@PE- CR"RCR*{[6ES @4A@TR @t@s@au2@@SA[B{ƨ_֍ RBCU3Sc!E!@!0@%@?a@aaZ R{S[cs\k8F@C1TF @@?bTFRSA[BcCkDsE{ǨB`F@SA[BcCkDsE{Ǩ_Cx*qT@>aFo@F!@@!0@#t@@`?o@@?T,F'Fn  t @Aw@v@uR3@l{cC *1T0GRF{¨_ @t {S[c*k+`+@SA[BcCkD@`R{ʨ%75ZF 7?L@`R +@SA[BcCkD{ʨ_1T@FHT;@_Ts?sLC T @`RZ@qT@(T@0DTc@O@?T@ˡ@ 0@ˠҠ@@@?L 0@iTAAZT`TSOK @@_"@@T4TZ3#RBR *@`R5t|s!TRs5_{ `@@ @{¨_@ {R@$4A Ab {A!A_ִ/@hn{Sq!TBb?TRSA{è_ @6@ @!`RR !<?q(T  ??TEҀ?T@R`R_AR2{ASҶARSA{¨@*@?֠ARSAR{¨_ `Sp{SB/BtBT3R'@q#@o@m qTqBB!RBBB *SA{Ũ_B@@94#@@9q@T#Ba/@@7'@@9qT!B 9SRsRB Ճ`<{ 8C' E@t'@6q!T@SA[B{Ũ_ @5a@@@q T@`s@{StE"4xE@@SA{è_TR{ E5!R8R @{¨_ {S*4EC+[!EF"@_@?D E. *SA{ɨ_ հX{ 4FbA_$qTC|@ d"c|%D@h#@  ҀV`A` @{¨_ R`2 lFA_qmTBQ  {C|@c|hcDA  ҁ6 R{_R_ְ{S[F`@@4F@F ?a `6K`6 `5`2K4Fw 2 SA[B{è_ հX){S@9?qAT!RV"RGRe@SA{è_ bѓ8 Q{S @ @ITdG`RD@SA{è_B_TBAtEchG@`` @@`?t Ta@!aTe{@!@ A ?`@@T`@  @G{¨@_ հ{c*S7t@[#@ 5@9qT ҅ @t@9qTp@` @@?5`!{@! "xu*@?STCzTS#@SA[BcC{Ũ_!R` P tJ  @BT{@`R{_@ @A _֊ R_{S[ck @ @(@˟wIӔs"@B@BSA[BcCkD{Ũ__ TBA@_$@@Uwӵ2@@5s9&Ss"@ZC{SR[ck@@+7wR%` 7 R+@SA[BcCkD{Ǩ_*7P7@ @$Q"#7aT*`@9:AqTR`@@@4BR  @@7@`@9qT`7a@9?q$@zAT`@A@`57@@9q@z`T4a@sB`_?ITBRR"@7@ $"c հ{S[ck@ B@@@5 R@?5@Q CRId @R#BBCd@CBC? C@`4C@C ?B$C RC Rd @CBC@x$qTs@@ Cd@C?C @`5@QSA[BcCkD{Ũ_x$qT@Q?@ @@X {S*?TSA{¨_{SSA{¨_` @ 4s@@ BA"_@a@"@BA|_ !<?qhT@UҀ$@R`R_ R{!RC CCC`C`C @{¨,=?C@_,{ Ca@9?qATa!_8?qT` @{¨ @{¨,D@@-Rr_kaT@_{S[ci:F@a"@-Rr_kT3@3s @ Tb@)_qT}s3 TF @ a@-Rr?k T`@s@ @ # T "@-Rr_k T @ "@" TFF>##@A'@bFF FZFH `@9qT!RG`@9 4t#@ #@@9?q$@z@ T_b@a"B @a@8Ҫ`@5a@`"! FF5F@@4`@}s@_ qAT @BB}Ҡ`!_pqT"@9_qT!"@9"5F_q@T!h!8(!F#@'@H'@ Tbha8_q T IT$"F``5'@h38'@tFFbeFeF`^FF@@:F@@' `FaFFF@f@R`?7 Z0[Ї^cjr|8_@@T_#T!"c T%hc8h#8$hc8h#8c_T_#hb8h"8B5_{!(G!@ ?ARSy3,Ga@ ?a@ ? @ R{è_ X!_aTRhd8%hd8kT`K_hb8#hb844Bk@TK_Bhd8%hd844TkT`K_R@9_kT5_C@9kB5_q!!$! 0_{* 5_q,T_qT$š{__q{d@9*55Rccd@9D4*5@9kT*@4@9`44{_cd@9*D4`4d@9*4c R!_\T_T_*R Úc qTd@TFTeh$ a8BTDC|Bcah$8"@9b5 _!{  A!$A*`4 @9 4f@9B4 @94!kaT$hjd84@hd84k@T!R**@he8q@z`T[ 4TD_8q T*S*5qT_ T@_8qTHR! R @*{¨_ Տ{SSA{¨SA{¨_{S`h38SA{¨_{"@T*dC_R҄C@c?hT@˥qT"D{x?`qT߼qARR!ߐq@ T?@qATq! R"R!!(Q DӃ c(qB089>T !0L6@95d5{Ĩ_RR9? qTC!8Ac@!8@"@9@98 8@_IT+i"8@B!?T@_IT"i#8@B@_IT+i 8@!?T{Sc@9*|5qTa@9?qAT_xraTs RA|@$sb5!QR!? qARB0_qARBQ|@(T$ T5@C@R\TSA{¨_'s Rf@94Q_dqT@Q|@Ɯ? T&*T*}f@q T TQqT!47`.*}f*fh""qT`.}47`.*}f@"qT`.}4"qT`>}4[{S[cks3A@9N753@"0Tj 8SA[BcCkDsE{Ǩ_?q`T3@ITj 83vR@9qT:R7@9Q$qTqBR!*7@@9?qaT7@9!Q?$q(TBR7@@8ߐqaTQ7RR߰q T7ߔqT3@iTj 8&@9.7߰qT. &@97@? T@/x|qHTߌqT`qT3@ߌq T qT3@Tj 8Q!! š"B!TqTq!T@9qAT@RRRP3@iTRj 8 @yRRR3?3@iTRj 8 @yRRR3/3@iTRj 8!@9RRRC3%@9RRRC3@iTRj 8)@9RRRC3-@9RRRC1@9RRRC5@9RRRC9@9RRRC=@9RRRC3@iTRj 8iTRj!8R3***ITj 8*q Tq)TRk)Tk(TRARTd$*j 8!QR3!643RRRRRRRRRTb$BB`2j 8!Q"R*B AiThb85F:53@RTE433@R_Te4B343@R?TB43BITj#8c%R%iTha8h!8!%RITj!8!"Rj38{S[$@" AAV|@iT AŅRrA@ ?֟`T@*SA[B{ר_2*8{CC#KCOCDG{ɨ_{CC#K!AGO!@ ?CCD{ɨ_X{S[*@4*RRR@Ts@84qaTQ*qT?|qTD@T qaT?<q87*4_T?kTU`A?qT r`T%R ?qT ER?qTeR5%<?k T$| SQBф$ *Dx$ *dyRRBa$x n{@T@Eg!DE#@CHEaTd@diTc@_ҡ_TLE_TPEB{_ ~8{[VFSck@T(TE!|!Eӕ:R򙧥@&qTqT5`zTD @ Ts?stH T@!R@?4@ R@?@R R@@?@ T@#C@TˁF"@_TF"@G_#TDˀcT_aT @:_T@?AT SA[BcCkD{Ũ_֟TG_T$! { cB"@"h(?T!h(#!T!@@V`RF`R 8{S|| S`SA{¨_F`RrR>{S7RSA{¨_` {cCA@b@_T{¨_a@҅?iT"@_T @F@ET@E"@ @?T"@??B "@_TG!"@?T?T_T_ @!{CSk3AR@A[bAc T`@cT4A@UA"RbA A@A`~{!?T!у(#EB "{!@3 @@AAbAR @@`TbAA@As~s{RJ` @` EӢa@b{!@` `a=3@{ASB[CcDkE_R@A@R#AbAA!TbAgA@AR@`!"E>#{!@@B{ASB[CcDkE3@"@s#@_T6 !@83\dn{S@SA{Ĩ@SA{Ĩ_@~Eӡ@?"T`@B{Ӭ Q$Q?qAz_{@BT @_cTAA`R{_@ F[{@@S@RSA{è_AR@as{S[ @tT* 5c@`@`Xt @SA[B{ĨDB`RHB@@*SA[B{Ĩ_ F{SA!T!ѕ@94"94B@SA{è_ր@R հ{S*q5R@SA{Ĩ_*i 5"94B@aSA@{Ĩ{[*G RS4zOQcPCQ`@4k`TsB`"@9kT`@4`@q9`@[BcCSA{Ũ_44fqT'qiT~qT`"@95 `{S[cks3?`SAD[BcCkDsE@{Ȩ_7Ry @95?@`T?3@!R`??@?@*#Rd` 5@ 5@@5D?@@T*|***H4D@59*!@95qT*`4*A94A49"_qT q@T*oo@44"9|@"Ҁ@kTw҉`@>!Ұ`4@ 59X7 հ{S@SAD@{Ĩ_RzD@gxa_{S[cks@7`@9` 47@94!x!Q!?dqTR]QE@T@Es?`?aE?@"@4-@ @LqTSA[BcCkDsE{Ȩ_ @5 @hz84@7@sa@9?qTs?@Hн{S[E;@ ;@SA[B{Ũ_c@E`?`4F;@@5s@H<F{S[c#@@+@pTtSh58R"Fac@CcCC:`@@`@@08s@)#@SA[BcC{Ǩ_mn{S@!@!@? Te@`@@R@FFFR@SA{è_ Rq{SC@"@kTR@*SA{è_*4{S[*`4`@7@`? 4 R@*SA[B{Ȩ_'@7@@`vG@@G`?`4G@5@ H<{S*@5'@?qT0@@T*SA{è_?qAT@R?8@@R`9@@@@@`@944@@@@'@B !Q`?8@<@@@@@8{?q[SR@@@ R@(q`T4q!T@@@ ?P@RSA[B{Ũ_Q?xqTqlT38@#9'9w*@# ? qTqmTBKsQ@38@# ? P{$ASJ*AR@`@94.AC {S*RZ3# R9&qAT! @ ?RKQ1TSA{Ĩ_Rb@@?֟*qTR{S[R@95@SA[B{Ĩ_A?q30@u*@P{ Aa@aR ?` @@?s@R @{¨_a@ ?@5s@P{S Ba@aR ?s@R*SA{¨_a@ ?֔*s@ PlqRrAzT{@{_ R_{`B @ @{¨_a6@a ?s@P{4{_ B@ Հ!B _ր{a(@$@a @  @{¨_{S(@@Y@~B*SA@{¨_ְ{*S[c* R@8Dq^zT[BSAcC{Ũ_77@@@@qMz TRDD@t4@HDR9 d@G#*?4G@77 Ҽ+4Rs@ JLD "@PDRҥ@"@ "@"@_TTD@5@XDRa@a'@ ?ֵ@@c@'@`?@5a@!a@as@Rs*'@ ?4'@ ?d@G#*?5G@j`Ts@@c@"@'@`?5a@a@'@ ?'@ ? 4 /6Gs{*S*DRDDD@sR b@bs@*@?`4@SA{è_ֵ/6D!D_|S<rT"Q*B<_xq$IzT?4qTB$b7! 2_4qT?4qT*\qT|@!E x`"Q QB<<_|qBz)T?4qTR 8R_րRSA[B{è_{ShE[*`@5@@?@`@b@a @ u5R!E!@4R_R{è_{Rs@5'@6 A(62A 62A6262 E@E5@_q`T_E@ @?qT?qT5@!E!@9@!@!F (F@,F5@_q`T_0F@ @ @`F@5dF@qAThF@ @$@ @y! @y@*_RR F@5F@qT{FS@ @b@`&@@@?a@ ?b@~@SA{¨_ { F@5`@`BRFF!0@@j` @R{¨_{ 3Ga@?qTR}Ro` @R{¨_{StG@5xG`@1T@5RSA{¨_ RS5|GR,a @?1`TSa@?1`T" R`R { *5b~Sa>@G @@{¨ @@ @{¨_{!G!@ 3 @`4  @S@y @ <3{è_`&@d@?{S@5Rc@@@ @`X@kTReshMjbRCy"RkTF_|qTZ"xq( TM T@@?SA{ƨ_aRkTTA2RkTHT2RkT!2Rk`T*B<a2RkT!RkTRᢄRk T(TᡄRkTaRkTRaRkTRBRBRRBRRRRkThqTd@Xa$Y"x*!  @@? {!?@ABCDWXclosing %s efidiskdisk/efi/efidisk.copening %s not a efidiskno such devicem = %p, last block = %llx, block size = %x, io align = %x invalid buffer alignment %dinvalid sector size %dopening %s succeeded hd%diterating %s fd%dcd%dd%dwriting 0x%lx sectors at the sector 0x%llx to %s no media in `%s'failure writing sector 0x%llx to `%s'reading 0x%lx sectors at the sector 0x%llx from %s failure reading sector 0x%llx from `%s'%s,%sRSDTXSDTFACPD$ line size: %lld cachekern/arm64/cache.cI$ line size: %lld Unknown cache line size!invalid arch-dependent ELF magicreloc offset is out of the segment reloc_abs64 %p => 0x%016llx dlkern/arm64/dl.ctrampoline out of rangerelocation out of range reloc_prel32 %p => 0x%016llx reloc_got %p => 0x%016llx (0x%016llx) HI21 out of rangeADR_GOT_PAGE without matching LD64_GOT_LO12_NCLD64_GOT_LO12_NC without matching ADR_GOT_PAGE%lxrelocation 0x%s is not implemented yet reloc_xxxx64 %p %c= 0x%lx dlkern/arm64/dl_helper.crequested buffer size is too largeoverflow is detectednew read is position beyond the end of the written data%s: the command is not allowed when lockdown is enforcedone argument expected/%s%s (%s) unknown invalid argument(%s): Filesystem is %s. %s='%s' not an assignmentSet an environment variable.[ENVVAR=VALUE]setRemove an environment variable.ENVVARunsetList devices or files.[ARG]lsInsert a module.MODULEinsmod%s,%srootvariable `%s' isn't set%s read failed diskkern/disk.cClosing `%s'. Opening `%s'... disk `%s' not foundsector sizes of %d bytes aren't supported yetno such partitionOpening `%s' failed. attempt to read or write outside of partitionattempt to read or write outside of disk `%s'Read out of range: sector 0x%llx (%s). `%s' is already loadedmodule at %p, size 0x%lx moduleskern/dl.cELF header smaller than expectedinvalid arch-independent ELF magicthis ELF file is not of the right typeELF sections outside corerelocating to %p .modnameno module name found.module_licenseno license section in module %.63sLICENSE=GPLv3.moddepsLICENSE=GPLv3+LICENSE=GPLv2+incompatible license in module %.63s: %.63ssymbol `%s' not foundgrub_mod_initgrub_mod_finiunknown symbol type `%d'relocation without symbol tableflushing 0x%lx bytes at %p module name: %s init function: %p prefixvariable `%s' isn't set%s/arm64-efi/%s.modmismatched names.textdynamic_load_symbols %p Print infomation useful for GDB debugginggdbinfo/%sVendor(%pG)[%x: ]%02x set_virtual_address_map failedcould not set EFI variable `%s'section %d is last section; invalid. sectionskern/efi/efi.csection %d has bad magic %08x, should be %08x returning section info for section %d: "%s" malformed EFI Device Path node has length=%dmalformed EFI Device Path node has length=%lu/EndEntire /EndThis /EndUnknown(%x) /PCI(%x,%x)/PCCARD(%x)/MMap(%x,%llx,%llx)Hardware/Ctrl(%x)/UnknownHW(%x)/ACPI(%x,%x)/ACPI(%x,%s,%x)%s)/UnknownACPI(%x)/ATAPI(%x,%x,%x)/SCSI(%x,%x)/FibreChannel(%llx,%llx)/1394(%llx)/USB(%x,%x)/USBClass(%x,%x,%x,%x,%x)/I2O(%x)/MacAddr(%02x:%02x:%02x:%02x:%02x:%02x,%x)/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)/InfiniBand(%x,%llx,%llx,%llx)/UART(%llu,%u,%x,%x)/Sata(%x,%x,%x)/Vlan(%u)Messaging/UnknownMessaging(%x)/HD(%u,%llx,%llx,%02x%02x%02x%02x%02x%02x%02x%02x,%x,%x)/CD(%u,%llx,%llx)Media/File((null))/File(%s)/Protocol(%pG)/UnknownMedia(%x)/BIOS(%x,%x,%s)/UnknownBIOS(%x)/UnknownType(%x,%x) found registered FDT @ %p linuxkern/efi/fdt.cnot found registered FDT mods%lxinvalid memory address (0x%s > 0x%s)out of memoryCould not malloc memory to remember EFI allocation. Exiting GRUB won't free all memory. couldn't retrieve memory mapmemory map buffer is too smallcouldn't terminate EFI servicesTrying to terminate EFI services again cannot get EFI memory map sizecannot allocate memory for memory mapcannot allocate memory for new memory maperror fetching memory map from EFIMemory starting at %p (%u pages) marked as free, but EFI would not allocatecould not allocate all requested memory: %lu pages still required after iterating EFI memory map%sprohibited by secure boot policyshim_lock protocol not foundbad shim signatureDisabledUNKNOWNEnabledSecureBootSetupModeMokSBStateUEFI Secure Boot state: %s efikern/efi/sb.cyshim_lockshim_lock_verifier0falsedisablenoerror: %s. assert: error stack overflow detected! missing `%c' symbolattempt to read past the end of fileattempt to seek outside of the fileinvalid file name `%s'beyond the total sectorsDetecting %s... fskern/fs.c/error: %s. %s detection failed. unknown filesystemblocklistylockdownlockdown_verifier%sroot(%s)%scmdpatharm64-efiprefixnormal%s%sdebugalloverflow is detectedunrecognized numberpositional arguments are not supportedunexpected formattoo many arguments(null)%s:%d:%s: invalid formatarguments types do not match Aborted. Press any key to exit.string too longunaligned pointer %pout of range pointer %pdouble free at %palloc magic is broken at %p: %lxnull in the ringfree magic is broken at %p: 0x%xout of memoryoverflow is detectedUsing memory for heap: start=%p, end=%p regionskern/mm.cCan we extend into region above? %p + %lx + %lx ?=? %p Yes: extending a region: (%p -> %p) -> (%p -> %p) Can we extend into region below? %p + %x + %lx + %lx ?=? %p No: considering a new region at %p of size %lx overflow is detectedpeek out of range%dsub-partition %s%d of (%s,%s) ends after parent. partitionkern/partition.cUnknown command `%s'. helpTry `help' for usage > grub rescue> Entering rescue mode... file: %s type: %d verifykern/verifiers.cverification requested but nobody cares: %sbig file signature isn't implemented yetpremature end of file %sstring: %s, type: %d verified_readcannot set text modeconsolegrub_abortgrub_acpi_find_fadtgrub_acpi_find_tablegrub_arch_sync_cachesgrub_byte_checksumgrub_callocgrub_command_listgrub_current_contextgrub_debug_enabledgrub_device_closegrub_device_iterategrub_device_opengrub_disk_cache_tablegrub_disk_closegrub_disk_dev_listgrub_disk_dev_registergrub_disk_dev_unregistergrub_disk_firmware_finigrub_disk_firmware_is_taintedgrub_disk_native_sectorsgrub_disk_opengrub_disk_readgrub_disk_write_weakgrub_divmod64grub_dl_headgrub_dl_loadgrub_dl_load_core_noinitgrub_dl_refgrub_dl_ref_countgrub_dl_unloadgrub_dl_unrefgrub_efi_allocate_any_pagesgrub_efi_allocate_fixedgrub_efi_allocate_pages_realgrub_efi_close_protocolgrub_efi_compare_device_pathsgrub_efi_duplicate_device_pathgrub_efi_find_configuration_tablegrub_efi_find_last_device_pathgrub_efi_find_mmap_sizegrub_efi_finish_boot_servicesgrub_efi_free_pagesgrub_efi_get_device_pathgrub_efi_get_filenamegrub_efi_get_firmware_fdtgrub_efi_get_loaded_imagegrub_efi_get_memory_mapgrub_efi_get_ram_basegrub_efi_get_securebootgrub_efi_get_variablegrub_efi_get_variable_with_attributesgrub_efi_image_handlegrub_efi_is_finishedgrub_efi_locate_handlegrub_efi_locate_protocolgrub_efi_net_configgrub_efi_open_protocolgrub_efi_print_device_pathgrub_efi_set_text_modegrub_efi_set_variablegrub_efi_set_variable_to_stringgrub_efi_set_variable_with_attributesgrub_efi_set_virtual_address_mapgrub_efi_stallgrub_efi_system_tablegrub_efidisk_get_device_handlegrub_efidisk_get_device_namegrub_env_exportgrub_env_getgrub_env_get_boolgrub_env_setgrub_env_unsetgrub_env_update_get_sortedgrub_err_printed_errorsgrub_errmsggrub_errnogrub_errorgrub_error_popgrub_error_pushgrub_exitgrub_fatalgrub_file_closegrub_file_filtersgrub_file_get_device_namegrub_file_opengrub_file_progress_hookgrub_file_readgrub_file_seekgrub_file_verifiersgrub_freegrub_fs_autoload_hookgrub_fs_listgrub_fs_probegrub_get_time_msgrub_getkeygrub_getkey_noblockgrub_getkeystatusgrub_gettextgrub_is_lockdowngrub_is_shim_lock_enabledgrub_isspacegrub_key_is_interruptgrub_list_pushgrub_list_removegrub_lockdowngrub_machine_acpi_get_rsdpv1grub_machine_acpi_get_rsdpv2grub_machine_finigrub_mallocgrub_memaligngrub_memcmpgrub_memmovegrub_memsetgrub_millisleepgrub_mm_add_region_fngrub_mm_basegrub_modbasegrub_named_list_findgrub_net_opengrub_net_poll_cards_idlegrub_parser_cmdline_stategrub_parser_split_cmdlinegrub_partition_get_namegrub_partition_iterategrub_partition_map_listgrub_partition_probegrub_print_errorgrub_printfgrub_printf_grub_printf_fmt_checkgrub_puts_grub_real_dprintfgrub_reallocgrub_rebootgrub_refreshgrub_register_command_lockdowngrub_register_command_priogrub_register_variable_hookgrub_snprintfgrub_strchrgrub_strcmpgrub_strcpygrub_strdupgrub_strlengrub_strncmpgrub_strndupgrub_strrchrgrub_strtoulgrub_strtoullgrub_strwordgrub_term_highlight_colorgrub_term_inputsgrub_term_inputs_disabledgrub_term_normal_colorgrub_term_outputsgrub_term_outputs_disabledgrub_term_poll_usbgrub_unregister_commandgrub_utf8_to_utf16_allocgrub_verify_stringgrub_vprintfgrub_vsnprintfgrub_xasprintfgrub_xputsgrub_xvasprintfgrub_zallocmemcmpmemcpymemmovememsetT(0![NYd9ir;0--'?Mqh"XNhEC@DTD)C7jSjkiSd\e[n6kTXhhp[YhfTj0rs X'hVMcxR@RhS\S`VW;Ua8UhT(|zpxx8wXy.yIamxP{p|{Tx~}8~)8LV lyxXv8H%4؆E<SOpO`*`\H@8|3@A`ZеtxHȹ| t,*5GHTT`m@-H,zP '4A,O\vhpPxX-)< IXإgrL----LICENSE=GPLv3+mimg`RELF0@@ {S*@@@SA{è_ց@szTR{  @`@ !@`@@T @{¨{ `@ @{¨_{S[c+ko; @9qT4z@9_qD@zTb@C@q@T@R!scaTq`T9`@@4?z9`4+@SA[BcCkD{ɨ_TqT @9qAT@@@!@G?ր4z9;@o@va@ @ qT`@` q!T@ R@@ @?@@@9qTa@BRT5@@4`@@ [Rb@+@SA[BcCkD@R{ɨ{S[c#c7@9qT@R**C7/@CBR *5`@@#@*SA[BcC{Ǩ_C**4C7@@@CkqAzT@RqBzAT@ {S5R@SA{è_*`@@74ha8ha8Q4*Qd4iqc0*dqHT!?kTeqHTdqHTkT@ @ RR*i*d{ @[U$&RS cksK@_TqT@`RSA[BcCkDsE{ɨ_֟T@_ITt3zQ&՚ѕ$՚C` @ ?cT3@?@@?ֈ@@5cB9 C@T@jB?AT@BKB|@FS@@!@@ 5xK98*RR not a directorytoo deep nesting of symlinksfile `%s' not foundinvalid file name `%s'not a regular fileblocksize too largeattempt to read past the end of fileLICENSE=GPLv3+fshelp`h8@HPX`)FU`l$x$dgrub_fshelp_find_filegrub_strdupgrub_fshelp_find_file_lookupgrub_disk_readgrub_errnogrub_memsetgrub_fshelp_read_filegrub_strcmpgrub_mallocgrub_errorgrub_free (`,``@T8X8`@PPTP`HdHHHHH X(X48@HPX-<AX (TX08<tk.symtab.strtab.shstrtab.rela.text.rodata.str1.1.data.module_license.bss.modname @@0 &25|;|KP   Y,ELF)@@ {(@@@R{_ {S[ckW@A @+a 6*[aRR8R@x?kAT@y@yA 4_k T"Q5+@SA[BcCkD{Ǩ_#d|jd_kT@@y@@(#`@("@#`4@ R%|$heT_k,T"Q4RA|haA@y?iTS @y@@s`T҃R@ R.TBS(@@3R2ѡ*a" |S!|S?T@X@R"6Ro"Q~~@o@A4@*&ؚB~! ٚ5sQK1!To@|˟bT@\@ T@`@SR@{@ @  @t@ǀ@@{B_  @0@E{S[5Q"R(@@PA( B BQE|@ $db@D 6dATKaf@` c"@c|!6T@6T!|T!TT`@a@!! ƚ@@5c@ Ra( aN@4b@ya*@eRA  ;@qmT[@B|@!`@aҡ @4@SA[B{Ǩ_cR {S?`*A@@5ar@y`R?kT`@<qTa*@A4aN@4b@y4(!R kT@ R@,qT@ R#`b@"RrjT@86cAy4`QjATrT$R*B kT@b aRtARs`H@5@SA{è_֡R {S@@@0@@@@SA@{è_ {CS@@@n@@y@y@yZ@yZ@yZ@yZ@ycZ@yBZ!Z<Z<<<<c<@B<!<@@@{ASB@_{S@@@/@@@SA@{è_ {S[ck@4`*@X7`@kT*ct:@@@`5@y 4[@ 4{A9 4"e@@5 `@[@{A9k"8A94_qTAR?4 RSA[BcCkD{֨_`@b"a@f@@4R@R_qaTaR_q"R@@4 R@y @q T(@qT @q@y {S@@'@'4@ ER$@#@@5@@h'@@!@T'@@@@SA{Ũ_{[S@'@@@V@@'@@T@-#%R@@*5'@@a4'@ (@X6@R*@ * 4@! '@@ l@!@* "@*SA[B{Ũ_{S@5`@b"a@@@5`*@@X6@RSA{¨_`@a@*?qTa`@j 8U@@`4 {S[*R`@4@929`@#@9 q 39 @`?SA[B{Ũ_ր @b"a@E@@a5!Ra`@4 { @@@ @{¨_ @ invalid extentsomething wrong with extentext2fs doesn't support quadruple indirect blocksnot an ext2 filesystemfilesystem has unsupported incompatible features%04x%04x-%04x-%04x-%04x-%04x%04x%04xdirectory is encryptedfile is encryptedsymlink is encryptedext2LICENSE=GPLv3+fshelpext208x(08@H08@H   x               < (#9HUdp{$x$dgrub_mod_initgrub_mod_finigrub_fshelp_find_filegrub_xasprintfgrub_memmovegrub_disk_readgrub_dl_refgrub_errnogrub_memsetgrub_fshelp_read_filegrub_fs_listgrub_mallocgrub_errorgrub_list_removegrub_freegrub_strndupgrub_dl_unrefgrub_list_push G00I0G$DP>\G`dlEGE>+<xDxdBx8|>((>(@HDh>lpEEG@\s88?I G@@8@@`0h0p?88<IG@@08@@\dl?HIG@  D  D    $  , Ed G @  x x ?          ;(  0  P GX G` Ix    @    ?   G G I  (  ,  0  8 ;`  d  l E = G  @   0  4  H  L  T Et D =   G @ AXG@JC(( F(  (08H@HH.symtab.strtab.shstrtab.rela.text.rodata.str1.1.rela.data.module_license.bss.moddeps.modname @0@` &2p :P5@`( @PU^ ;  )g`ELF @@ C@C{S[cks 4@@{@*SA[BcCkDsEC_GyJR_kT@`R*C"G9_qT!@qAT@R5R"!|@ *5W@4qT@C@ 5@C4SaRb@*sG Ԛ@ Ԛ@@@ F`?֠5A qaTR9AkT R@"b@R@@R@"Ԛ@@! @ no signatureGPT entry %d: start=%lld, length=%lld gptpartmap/gpt.cno valid GPT headerRead a valid GPT header no GPT partition map foundEFI PARTLICENSE=GPLv3+part_gpt (08@HPX`hh#;JUt$x$dgrub_mod_initgrub_mod_finigrub_partition_map_listgrub_disk_readgrub_errnogrub_gpt_partition_map_iterategrub_real_dprintfgrub_errorgrub_list_removegrub_list_pushgrub_memcmp8@D  ``((!PP8@0L!\@88HX@HX@H0 (08 @4H8PFXZ`shlpt| 4 .symtab.strtab.shstrtab.rela.text.rodata.rodata.str1.1.rela.data.module_license.bss.modname @@ &.2B(=@ 0 HX] 0   f (,gpt2)/boot/grub` (x08@HPX`hpx (08@H  `آУأx (08@HШبPX @08Pخ08@HPX`hp08@HPX`hpx`08@H (hا08@H (@h (08` (08@HPX`hpxȭЭ ȯPP (X`h(08x`У`0HPXX`hpxh`hpxȣУأ (08@HPX`hpx`ئx08xȭЭح`px`hpx (@ȣУ08@HPX`hpxpx0`h8@HPةxHhج`hpxȮЮ0`8 (08@ȧX (08@HPX`hpPX@HxPX`h8أx `hp৸ (08(H (08@hpȥH`hpȭ(08`hpxȡСHPXpأ@px@HPXx0ЪPPX`ȬЬ`hpح8Pȯ x8@HPXxȤФؤऐإ(0Xا0@HX`hpxȨب (8@PXhpȩЩ(0@HX`pxЪت 08HP`hxȫث (8@PXhpȬЬ(0@HX`pxЭح 08HP`hxȮخ (8@PXhpȯЯ (0@HX`pxРؠ 08HP`hxȡء (8@PXhpȢТ(0@HX`pxУأ 08HP`hxȤؤ (8@PXhpȥХ(0@HX`pxЦئ 08HP`hxȧا (8@PXhpȨШ. y覇YY覇YO.. y覇YY覇YAbootaTa64.efiBOOTAA64EFI y覇YY覇YPPMZ@ !L!This program cannot be run in DOS mode. $PEdT `P @.text `.data@mods``@.reloc@@@BBX@XABX@`$@zT?q_@!Q@ACR<@@@D@$@_{ @S' @{¨_{ @`@`@` @~ @{¨@q {S[cA>X@@RR?s"@"@Ѿ4>,@b@@  8fot@`@_ @T!@!$Q {S@@SA{¨_a@; 4s:@{S[R@t@y|@y|`  @z@ykT@SA[B{Ĩ_`@4v@ys@_kaT@_@{ @b@ @{¨\A@R, @R{¨_ Վ{S[* A@@SA[B{Ĩ_`RR"rw vu@95!A ?R"AA xabx!R! հ {S@` @` SA{¨_ր@@R_ {S@` @Q` SA{¨_ր@@R_`@_R{S[c@q,T`@@?B@!Ta:@A ?@"aTt @`2@H`@FD RSA[BcC{Ĩ_"!8@@@T@42@)R{SckMRF["FsFTFRb *5v"@yqTF@RY [BSAcCkDsE{ɨ_a@ைҀɨ?T`@9qT`@qTF|a@`v@ybz@yTFR "F FPRFMF@F@R @4] @`F@F@R 5 F@ @!F`@5F `@;bz@y`k T#o*5H#}}`#2 F@5b@Rcz@y`?kTATu@u`z@yk"#T@$qDz T`v@y@!F`@4@!F`4@F@R@c Av_T@9@4F@55 @\ @ZѵZZ@{#av@yZ6Rv@v`z@y_kCT}VC@}V@6 @@@˵ѻuqT qT@@`v@yZ@aR@qTdv@y!u(@Rav@y@A!|!a|! @jZ@7ww@kT@9_ q TrT7@~S@_q6@ @yvT4a5RR#r _q` TF@R !"@95@ ?R!F@! "x`F@R 4@@??@`4B@@@@@4S 9{@@4R`4F@@@4"R@5F5@F5@@@y@Ca@.@?k`Tc@@ F@R 5F"FGRFFFSR@F"FFSR@F"FFd4~4w<Vhq0>Le{  @A ?G@a: @{¨_{!RS?  @  @SA{è_ 5T  3` @Q` {[GS_ tGGR SA[B{è_G@`5G@R  G G@~{@ @R{_  R,@0@4@ (ORRR RB_AT_$@x4f qT d( |S#|S@cl28#DL!c`2`2!`2888R 8qhT8qHTf|Sd2cc`2&$89a ?qiTa ?qTR8a| S !h28a,Fc!`2c`288*{"S[5@yRQA*S`@yPqTSA[B{èAJajt8AFkhTsRZnp{B@y3`:@y+`6@y#`2@y`.@y`*@y `&@yg"@yf@ye@yd@yc@yb@ya @yB}bAd@a"@9 BvdJ@9a@cF@9bB@9$Bnc@yb@ya @y(Ba @y,B0B#4B? qTT?qT?q@TTB?qT?qATaPBX`@9+`@9#`~@9`z@9`v@9 `r@9b@gn@9fj@9ef@9db@9a@8B5a@b@Eb>EC@E@RuSA[BcC{Ȩ_**DE#*@0@*@?HE`R]'@@#'**?ґ@'@0@ @@R`?@7@!LE"@L '@PE- CR"RCR*{[6ES @4A@TR @t@s@au2@@SA[B{ƨ_֍ RBCU3Sc!E!@!0@%@?a@aaZ R{S[cs\k8F@C1TF @@?bTFRSA[BcCkDsE{ǨB`F@SA[BcCkDsE{Ǩ_Cx*qT@>aFo@F!@@!0@#t@@`?o@@?T,F'Fn  t @Aw@v@uR3@l{cC *1T0GRF{¨_ @t {S[c*k+`+@SA[BcCkD@`R{ʨ%75ZF 7?L@`R +@SA[BcCkD{ʨ_1T@FHT;@_Ts?sLC T @`RZ@qT@(T@0DTc@O@?T@ˡ@ 0@ˠҠ@@@?L 0@iTAAZT`TSOK @@_"@@T4TZ3#RBR *@`R5t|s!TRs5_{ `@@ @{¨_@ {R@$4A Ab {A!A_ִ/@hn{Sq!TBb?TRSA{è_ @6@ @!`RR !<?q(T  ??TEҀ?T@R`R_AR2{ASҶARSA{¨@*@?֠ARSAR{¨_ `Sp{SB/BtBT3R'@q#@o@m qTqBB!RBBB *SA{Ũ_B@@94#@@9q@T#Ba/@@7'@@9qT!B 9SRsRB Ճ`<{ 8C' E@t'@6q!T@SA[B{Ũ_ @5a@@@q T@`s@{StE"4xE@@SA{è_TR{ E5!R8R @{¨_ {S*4EC+[!EF"@_@?D E. *SA{ɨ_ հX{ 4FbA_$qTC|@ d"c|%D@h#@  ҀV`A` @{¨_ R`2 lFA_qmTBQ  {C|@c|hcDA  ҁ6 R{_R_ְ{S[F`@@4F@F ?a `6K`6 `5`2K4Fw 2 SA[B{è_ հX){S@9?qAT!RV"RGRe@SA{è_ bѓ8 Q{S @ @ITdG`RD@SA{è_B_TBAtEchG@`` @@`?t Ta@!aTe{@!@ A ?`@@T`@  @G{¨@_ հ{c*S7t@[#@ 5@9qT ҅ @t@9qTp@` @@?5`!{@! "xu*@?STCzTS#@SA[BcC{Ũ_!R` P tJ  @BT{@`R{_@ @A _֊ R_{S[ck @ @(@˟wIӔs"@B@BSA[BcCkD{Ũ__ TBA@_$@@Uwӵ2@@5s9&Ss"@ZC{SR[ck@@+7wR%` 7 R+@SA[BcCkD{Ǩ_*7P7@ @$Q"#7aT*`@9:AqTR`@@@4BR  @@7@`@9qT`7a@9?q$@zAT`@A@`57@@9q@z`T4a@sB`_?ITBRR"@7@ $"c հ{S[ck@ B@@@5 R@?5@Q CRId @R#BBCd@CBC? C@`4C@C ?B$C RC Rd @CBC@x$qTs@@ Cd@C?C @`5@QSA[BcCkD{Ũ_x$qT@Q?@ @@X {S*?TSA{¨_{SSA{¨_` @ 4s@@ BA"_@a@"@BA|_ !<?qhT@UҀ$@R`R_ R{!RC CCC`C`C @{¨,=?C@_,{ Ca@9?qATa!_8?qT` @{¨ @{¨,D@@-Rr_kaT@_{S[ci:F@a"@-Rr_kT3@3s @ Tb@)_qT}s3 TF @ a@-Rr?k T`@s@ @ # T "@-Rr_k T @ "@" TFF>##@A'@bFF FZFH `@9qT!RG`@9 4t#@ #@@9?q$@z@ T_b@a"B @a@8Ҫ`@5a@`"! FF5F@@4`@}s@_ qAT @BB}Ҡ`!_pqT"@9_qT!"@9"5F_q@T!h!8(!F#@'@H'@ Tbha8_q T IT$"F``5'@h38'@tFFbeFeF`^FF@@:F@@' `FaFFF@f@R`?7 Z0[Ї^cjr|8_@@T_#T!"c T%hc8h#8$hc8h#8c_T_#hb8h"8B5_{!(G!@ ?ARSy3,Ga@ ?a@ ? @ R{è_ X!_aTRhd8%hd8kT`K_hb8#hb844Bk@TK_Bhd8%hd844TkT`K_R@9_kT5_C@9kB5_q!!$! 0_{* 5_q,T_qT$š{__q{d@9*55Rccd@9D4*5@9kT*@4@9`44{_cd@9*D4`4d@9*4c R!_\T_T_*R Úc qTd@TFTeh$ a8BTDC|Bcah$8"@9b5 _!{  A!$A*`4 @9 4f@9B4 @94!kaT$hjd84@hd84k@T!R**@he8q@z`T[ 4TD_8q T*S*5qT_ T@_8qTHR! R @*{¨_ Տ{SSA{¨SA{¨_{S`h38SA{¨_{"@T*dC_R҄C@c?hT@˥qT"D{x?`qT߼qARR!ߐq@ T?@qATq! R"R!!(Q DӃ c(qB089>T !0L6@95d5{Ĩ_RR9? qTC!8Ac@!8@"@9@98 8@_IT+i"8@B!?T@_IT"i#8@B@_IT+i 8@!?T{Sc@9*|5qTa@9?qAT_xraTs RA|@$sb5!QR!? qARB0_qARBQ|@(T$ T5@C@R\TSA{¨_'s Rf@94Q_dqT@Q|@Ɯ? T&*T*}f@q T TQqT!47`.*}f*fh""qT`.}47`.*}f@"qT`.}4"qT`>}4[{S[cks3A@9N753@"0Tj 8SA[BcCkDsE{Ǩ_?q`T3@ITj 83vR@9qT:R7@9Q$qTqBR!*7@@9?qaT7@9!Q?$q(TBR7@@8ߐqaTQ7RR߰q T7ߔqT3@iTj 8&@9.7߰qT. &@97@? T@/x|qHTߌqT`qT3@ߌq T qT3@Tj 8Q!! š"B!TqTq!T@9qAT@RRRP3@iTRj 8 @yRRR3?3@iTRj 8 @yRRR3/3@iTRj 8!@9RRRC3%@9RRRC3@iTRj 8)@9RRRC3-@9RRRC1@9RRRC5@9RRRC9@9RRRC=@9RRRC3@iTRj 8iTRj!8R3***ITj 8*q Tq)TRk)Tk(TRARTd$*j 8!QR3!643RRRRRRRRRTb$BB`2j 8!Q"R*B AiThb85F:53@RTE433@R_Te4B343@R?TB43BITj#8c%R%iTha8h!8!%RITj!8!"Rj38{S[$@" AAV|@iT AŅRrA@ ?֟`T@*SA[B{ר_2*8{CC#KCOCDG{ɨ_{CC#K!AGO!@ ?CCD{ɨ_X{S[*@4*RRR@Ts@84qaTQ*qT?|qTD@T qaT?<q87*4_T?kTU`A?qT r`T%R ?qT ER?qTeR5%<?k T$| SQBф$ *Dx$ *dyRRBa$x n{@T@Eg!DE#@CHEaTd@diTc@_ҡ_TLE_TPEB{_ ~8{[VFSck@T(TE!|!Eӕ:R򙧥@&qTqT5`zTD @ Ts?stH T@!R@?4@ R@?@R R@@?@ T@#C@TˁF"@_TF"@G_#TDˀcT_aT @:_T@?AT SA[BcCkD{Ũ_֟TG_T$! { cB"@"h(?T!h(#!T!@@V`RF`R 8{S|| S`SA{¨_F`RrR>{S7RSA{¨_` {cCA@b@_T{¨_a@҅?iT"@_T @F@ET@E"@ @?T"@??B "@_TG!"@?T?T_T_ @!{CSk3AR@A[bAc T`@cT4A@UA"RbA A@A`~{!?T!у(#EB "{!@3 @@AAbAR @@`TbAA@As~s{RJ` @` EӢa@b{!@` `a=3@{ASB[CcDkE_R@A@R#AbAA!TbAgA@AR@`!"E>#{!@@B{ASB[CcDkE3@"@s#@_T6 !@83\dn{S@SA{Ĩ@SA{Ĩ_@~Eӡ@?"T`@B{Ӭ Q$Q?qAz_{@BT @_cTAA`R{_@ F[{@@S@RSA{è_AR@as{S[ @tT* 5c@`@`Xt @SA[B{ĨDB`RHB@@*SA[B{Ĩ_ F{SA!T!ѕ@94"94B@SA{è_ր@R հ{S*q5R@SA{Ĩ_*i 5"94B@aSA@{Ĩ{[*G RS4zOQcPCQ`@4k`TsB`"@9kT`@4`@q9`@[BcCSA{Ũ_44fqT'qiT~qT`"@95 `{S[cks3?`SAD[BcCkDsE@{Ȩ_7Ry @95?@`T?3@!R`??@?@*#Rd` 5@ 5@@5D?@@T*|***H4D@59*!@95qT*`4*A94A49"_qT q@T*oo@44"9|@"Ҁ@kTw҉`@>!Ұ`4@ 59X7 հ{S@SAD@{Ĩ_RzD@gxa_{S[cks@7`@9` 47@94!x!Q!?dqTR]QE@T@Es?`?aE?@"@4-@ @LqTSA[BcCkDsE{Ȩ_ @5 @hz84@7@sa@9?qTs?@Hн{S[E;@ ;@SA[B{Ũ_c@E`?`4F;@@5s@H<F{S[c#@@+@pTtSh58R"Fac@CcCC:`@@`@@08s@)#@SA[BcC{Ǩ_mn{S@!@!@? Te@`@@R@FFFR@SA{è_ Rq{SC@"@kTR@*SA{è_*4{S[*`4`@7@`? 4 R@*SA[B{Ȩ_'@7@@`vG@@G`?`4G@5@ H<{S*@5'@?qT0@@T*SA{è_?qAT@R?8@@R`9@@@@@`@944@@@@'@B !Q`?8@<@@@@@8{?q[SR@@@ R@(q`T4q!T@@@ ?P@RSA[B{Ũ_Q?xqTqlT38@#9'9w*@# ? qTqmTBKsQ@38@# ? P{$ASJ*AR@`@94.AC {S*RZ3# R9&qAT! @ ?RKQ1TSA{Ĩ_Rb@@?֟*qTR{S[R@95@SA[B{Ĩ_A?q30@u*@P{ Aa@aR ?` @@?s@R @{¨_a@ ?@5s@P{S Ba@aR ?s@R*SA{¨_a@ ?֔*s@ PlqRrAzT{@{_ R_{`B @ @{¨_a6@a ?s@P{4{_ B@ Հ!B _ր{a(@$@a @  @{¨_{S(@@Y@~B*SA@{¨_ְ{*S[c* R@8Dq^zT[BSAcC{Ũ_77@@@@qMz TRDD@t4@HDR9 d@G#*?4G@77 Ҽ+4Rs@ JLD "@PDRҥ@"@ "@"@_TTD@5@XDRa@a'@ ?ֵ@@c@'@`?@5a@!a@as@Rs*'@ ?4'@ ?d@G#*?5G@j`Ts@@c@"@'@`?5a@a@'@ ?'@ ? 4 /6Gs{*S*DRDDD@sR b@bs@*@?`4@SA{è_ֵ/6D!D_|S<rT"Q*B<_xq$IzT?4qTB$b7! 2_4qT?4qT*\qT|@!E x`"Q QB<<_|qBz)T?4qTR 8R_րRSA[B{è_{ShE[*`@5@@?@`@b@a @ u5R!E!@4R_R{è_{Rs@5'@6 A(62A 62A6262 E@E5@_q`T_E@ @?qT?qT5@!E!@9@!@!F (F@,F5@_q`T_0F@ @ @`F@5dF@qAThF@ @$@ @y! @y@*_RR F@5F@qT{FS@ @b@`&@@@?a@ ?b@~@SA{¨_ { F@5`@`BRFF!0@@j` @R{¨_{ 3Ga@?qTR}Ro` @R{¨_{StG@5xG`@1T@5RSA{¨_ RS5|GR,a @?1`TSa@?1`T" R`R { *5b~Sa>@G @@{¨ @@ @{¨_{!G!@ 3 @`4  @S@y @ <3{è_`&@d@?{S@5Rc@@@ @`X@kTReshMjbRCy"RkTF_|qTZ"xq( TM T@@?SA{ƨ_aRkTTA2RkTHT2RkT!2Rk`T*B<a2RkT!RkTRᢄRk T(TᡄRkTaRkTRaRkTRBRBRRBRRRRkThqTd@Xa$Y"x*!  @@? {!?@ABCDWXclosing %s efidiskdisk/efi/efidisk.copening %s not a efidiskno such devicem = %p, last block = %llx, block size = %x, io align = %x invalid buffer alignment %dinvalid sector size %dopening %s succeeded hd%diterating %s fd%dcd%dd%dwriting 0x%lx sectors at the sector 0x%llx to %s no media in `%s'failure writing sector 0x%llx to `%s'reading 0x%lx sectors at the sector 0x%llx from %s failure reading sector 0x%llx from `%s'%s,%sRSDTXSDTFACPD$ line size: %lld cachekern/arm64/cache.cI$ line size: %lld Unknown cache line size!invalid arch-dependent ELF magicreloc offset is out of the segment reloc_abs64 %p => 0x%016llx dlkern/arm64/dl.ctrampoline out of rangerelocation out of range reloc_prel32 %p => 0x%016llx reloc_got %p => 0x%016llx (0x%016llx) HI21 out of rangeADR_GOT_PAGE without matching LD64_GOT_LO12_NCLD64_GOT_LO12_NC without matching ADR_GOT_PAGE%lxrelocation 0x%s is not implemented yet reloc_xxxx64 %p %c= 0x%lx dlkern/arm64/dl_helper.crequested buffer size is too largeoverflow is detectednew read is position beyond the end of the written data%s: the command is not allowed when lockdown is enforcedone argument expected/%s%s (%s) unknown invalid argument(%s): Filesystem is %s. %s='%s' not an assignmentSet an environment variable.[ENVVAR=VALUE]setRemove an environment variable.ENVVARunsetList devices or files.[ARG]lsInsert a module.MODULEinsmod%s,%srootvariable `%s' isn't set%s read failed diskkern/disk.cClosing `%s'. Opening `%s'... disk `%s' not foundsector sizes of %d bytes aren't supported yetno such partitionOpening `%s' failed. attempt to read or write outside of partitionattempt to read or write outside of disk `%s'Read out of range: sector 0x%llx (%s). `%s' is already loadedmodule at %p, size 0x%lx moduleskern/dl.cELF header smaller than expectedinvalid arch-independent ELF magicthis ELF file is not of the right typeELF sections outside corerelocating to %p .modnameno module name found.module_licenseno license section in module %.63sLICENSE=GPLv3.moddepsLICENSE=GPLv3+LICENSE=GPLv2+incompatible license in module %.63s: %.63ssymbol `%s' not foundgrub_mod_initgrub_mod_finiunknown symbol type `%d'relocation without symbol tableflushing 0x%lx bytes at %p module name: %s init function: %p prefixvariable `%s' isn't set%s/arm64-efi/%s.modmismatched names.textdynamic_load_symbols %p Print infomation useful for GDB debugginggdbinfo/%sVendor(%pG)[%x: ]%02x set_virtual_address_map failedcould not set EFI variable `%s'section %d is last section; invalid. sectionskern/efi/efi.csection %d has bad magic %08x, should be %08x returning section info for section %d: "%s" malformed EFI Device Path node has length=%dmalformed EFI Device Path node has length=%lu/EndEntire /EndThis /EndUnknown(%x) /PCI(%x,%x)/PCCARD(%x)/MMap(%x,%llx,%llx)Hardware/Ctrl(%x)/UnknownHW(%x)/ACPI(%x,%x)/ACPI(%x,%s,%x)%s)/UnknownACPI(%x)/ATAPI(%x,%x,%x)/SCSI(%x,%x)/FibreChannel(%llx,%llx)/1394(%llx)/USB(%x,%x)/USBClass(%x,%x,%x,%x,%x)/I2O(%x)/MacAddr(%02x:%02x:%02x:%02x:%02x:%02x,%x)/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)/InfiniBand(%x,%llx,%llx,%llx)/UART(%llu,%u,%x,%x)/Sata(%x,%x,%x)/Vlan(%u)Messaging/UnknownMessaging(%x)/HD(%u,%llx,%llx,%02x%02x%02x%02x%02x%02x%02x%02x,%x,%x)/CD(%u,%llx,%llx)Media/File((null))/File(%s)/Protocol(%pG)/UnknownMedia(%x)/BIOS(%x,%x,%s)/UnknownBIOS(%x)/UnknownType(%x,%x) found registered FDT @ %p linuxkern/efi/fdt.cnot found registered FDT mods%lxinvalid memory address (0x%s > 0x%s)out of memoryCould not malloc memory to remember EFI allocation. Exiting GRUB won't free all memory. couldn't retrieve memory mapmemory map buffer is too smallcouldn't terminate EFI servicesTrying to terminate EFI services again cannot get EFI memory map sizecannot allocate memory for memory mapcannot allocate memory for new memory maperror fetching memory map from EFIMemory starting at %p (%u pages) marked as free, but EFI would not allocatecould not allocate all requested memory: %lu pages still required after iterating EFI memory map%sprohibited by secure boot policyshim_lock protocol not foundbad shim signatureDisabledUNKNOWNEnabledSecureBootSetupModeMokSBStateUEFI Secure Boot state: %s efikern/efi/sb.cyshim_lockshim_lock_verifier0falsedisablenoerror: %s. assert: error stack overflow detected! missing `%c' symbolattempt to read past the end of fileattempt to seek outside of the fileinvalid file name `%s'beyond the total sectorsDetecting %s... fskern/fs.c/error: %s. %s detection failed. unknown filesystemblocklistylockdownlockdown_verifier%sroot(%s)%scmdpatharm64-efiprefixnormal%s%sdebugalloverflow is detectedunrecognized numberpositional arguments are not supportedunexpected formattoo many arguments(null)%s:%d:%s: invalid formatarguments types do not match Aborted. Press any key to exit.string too longunaligned pointer %pout of range pointer %pdouble free at %palloc magic is broken at %p: %lxnull in the ringfree magic is broken at %p: 0x%xout of memoryoverflow is detectedUsing memory for heap: start=%p, end=%p regionskern/mm.cCan we extend into region above? %p + %lx + %lx ?=? %p Yes: extending a region: (%p -> %p) -> (%p -> %p) Can we extend into region below? %p + %x + %lx + %lx ?=? %p No: considering a new region at %p of size %lx overflow is detectedpeek out of range%dsub-partition %s%d of (%s,%s) ends after parent. partitionkern/partition.cUnknown command `%s'. helpTry `help' for usage > grub rescue> Entering rescue mode... file: %s type: %d verifykern/verifiers.cverification requested but nobody cares: %sbig file signature isn't implemented yetpremature end of file %sstring: %s, type: %d verified_readcannot set text modeconsolegrub_abortgrub_acpi_find_fadtgrub_acpi_find_tablegrub_arch_sync_cachesgrub_byte_checksumgrub_callocgrub_command_listgrub_current_contextgrub_debug_enabledgrub_device_closegrub_device_iterategrub_device_opengrub_disk_cache_tablegrub_disk_closegrub_disk_dev_listgrub_disk_dev_registergrub_disk_dev_unregistergrub_disk_firmware_finigrub_disk_firmware_is_taintedgrub_disk_native_sectorsgrub_disk_opengrub_disk_readgrub_disk_write_weakgrub_divmod64grub_dl_headgrub_dl_loadgrub_dl_load_core_noinitgrub_dl_refgrub_dl_ref_countgrub_dl_unloadgrub_dl_unrefgrub_efi_allocate_any_pagesgrub_efi_allocate_fixedgrub_efi_allocate_pages_realgrub_efi_close_protocolgrub_efi_compare_device_pathsgrub_efi_duplicate_device_pathgrub_efi_find_configuration_tablegrub_efi_find_last_device_pathgrub_efi_find_mmap_sizegrub_efi_finish_boot_servicesgrub_efi_free_pagesgrub_efi_get_device_pathgrub_efi_get_filenamegrub_efi_get_firmware_fdtgrub_efi_get_loaded_imagegrub_efi_get_memory_mapgrub_efi_get_ram_basegrub_efi_get_securebootgrub_efi_get_variablegrub_efi_get_variable_with_attributesgrub_efi_image_handlegrub_efi_is_finishedgrub_efi_locate_handlegrub_efi_locate_protocolgrub_efi_net_configgrub_efi_open_protocolgrub_efi_print_device_pathgrub_efi_set_text_modegrub_efi_set_variablegrub_efi_set_variable_to_stringgrub_efi_set_variable_with_attributesgrub_efi_set_virtual_address_mapgrub_efi_stallgrub_efi_system_tablegrub_efidisk_get_device_handlegrub_efidisk_get_device_namegrub_env_exportgrub_env_getgrub_env_get_boolgrub_env_setgrub_env_unsetgrub_env_update_get_sortedgrub_err_printed_errorsgrub_errmsggrub_errnogrub_errorgrub_error_popgrub_error_pushgrub_exitgrub_fatalgrub_file_closegrub_file_filtersgrub_file_get_device_namegrub_file_opengrub_file_progress_hookgrub_file_readgrub_file_seekgrub_file_verifiersgrub_freegrub_fs_autoload_hookgrub_fs_listgrub_fs_probegrub_get_time_msgrub_getkeygrub_getkey_noblockgrub_getkeystatusgrub_gettextgrub_is_lockdowngrub_is_shim_lock_enabledgrub_isspacegrub_key_is_interruptgrub_list_pushgrub_list_removegrub_lockdowngrub_machine_acpi_get_rsdpv1grub_machine_acpi_get_rsdpv2grub_machine_finigrub_mallocgrub_memaligngrub_memcmpgrub_memmovegrub_memsetgrub_millisleepgrub_mm_add_region_fngrub_mm_basegrub_modbasegrub_named_list_findgrub_net_opengrub_net_poll_cards_idlegrub_parser_cmdline_stategrub_parser_split_cmdlinegrub_partition_get_namegrub_partition_iterategrub_partition_map_listgrub_partition_probegrub_print_errorgrub_printfgrub_printf_grub_printf_fmt_checkgrub_puts_grub_real_dprintfgrub_reallocgrub_rebootgrub_refreshgrub_register_command_lockdowngrub_register_command_priogrub_register_variable_hookgrub_snprintfgrub_strchrgrub_strcmpgrub_strcpygrub_strdupgrub_strlengrub_strncmpgrub_strndupgrub_strrchrgrub_strtoulgrub_strtoullgrub_strwordgrub_term_highlight_colorgrub_term_inputsgrub_term_inputs_disabledgrub_term_normal_colorgrub_term_outputsgrub_term_outputs_disabledgrub_term_poll_usbgrub_unregister_commandgrub_utf8_to_utf16_allocgrub_verify_stringgrub_vprintfgrub_vsnprintfgrub_xasprintfgrub_xputsgrub_xvasprintfgrub_zallocmemcmpmemcpymemmovememsetT(0![NYd9ir;0--'?Mqh"XNhEC@DTD)C7jSjkiSd\e[n6kTXhhp[YhfTj0rs X'hVMcxR@RhS\S`VW;Ua8UhT(|zpxx8wXy.yIamxP{p|{Tx~}8~)8LV lyxXv8H%4؆E<SOpO`*`\H@8|3@A`ZеtxHȹ| t,*5GHTT`m@-H,zP '4A,O\vhpPxX-)< IXإgrL----LICENSE=GPLv3+mimg`RELF0@@ {S*@@@SA{è_ց@szTR{  @`@ !@`@@T @{¨{ `@ @{¨_{S[c+ko; @9qT4z@9_qD@zTb@C@q@T@R!scaTq`T9`@@4?z9`4+@SA[BcCkD{ɨ_TqT @9qAT@@@!@G?ր4z9;@o@va@ @ qT`@` q!T@ R@@ @?@@@9qTa@BRT5@@4`@@ [Rb@+@SA[BcCkD@R{ɨ{S[c#c7@9qT@R**C7/@CBR *5`@@#@*SA[BcC{Ǩ_C**4C7@@@CkqAzT@RqBzAT@ {S5R@SA{è_*`@@74ha8ha8Q4*Qd4iqc0*dqHT!?kTeqHTdqHTkT@ @ RR*i*d{ @[U$&RS cksK@_TqT@`RSA[BcCkDsE{ɨ_֟T@_ITt3zQ&՚ѕ$՚C` @ ?cT3@?@@?ֈ@@5cB9 C@T@jB?AT@BKB|@FS@@!@@ 5xK98*RR not a directorytoo deep nesting of symlinksfile `%s' not foundinvalid file name `%s'not a regular fileblocksize too largeattempt to read past the end of fileLICENSE=GPLv3+fshelp`h8@HPX`)FU`l$x$dgrub_fshelp_find_filegrub_strdupgrub_fshelp_find_file_lookupgrub_disk_readgrub_errnogrub_memsetgrub_fshelp_read_filegrub_strcmpgrub_mallocgrub_errorgrub_free (`,``@T8X8`@PPTP`HdHHHHH X(X48@HPX-<AX (TX08<tk.symtab.strtab.shstrtab.rela.text.rodata.str1.1.data.module_license.bss.modname @@0 &25|;|KP   Y,ELF)@@ {(@@@R{_ {S[ckW@A @+a 6*[aRR8R@x?kAT@y@yA 4_k T"Q5+@SA[BcCkD{Ǩ_#d|jd_kT@@y@@(#`@("@#`4@ R%|$heT_k,T"Q4RA|haA@y?iTS @y@@s`T҃R@ R.TBS(@@3R2ѡ*a" |S!|S?T@X@R"6Ro"Q~~@o@A4@*&ؚB~! ٚ5sQK1!To@|˟bT@\@ T@`@SR@{@ @  @t@ǀ@@{B_  @0@E{S[5Q"R(@@PA( B BQE|@ $db@D 6dATKaf@` c"@c|!6T@6T!|T!TT`@a@!! ƚ@@5c@ Ra( aN@4b@ya*@eRA  ;@qmT[@B|@!`@aҡ @4@SA[B{Ǩ_cR {S?`*A@@5ar@y`R?kT`@<qTa*@A4aN@4b@y4(!R kT@ R@,qT@ R#`b@"RrjT@86cAy4`QjATrT$R*B kT@b aRtARs`H@5@SA{è_֡R {S@@@0@@@@SA@{è_ {CS@@@n@@y@y@yZ@yZ@yZ@yZ@ycZ@yBZ!Z<Z<<<<c<@B<!<@@@{ASB@_{S@@@/@@@SA@{è_ {S[ck@4`*@X7`@kT*ct:@@@`5@y 4[@ 4{A9 4"e@@5 `@[@{A9k"8A94_qTAR?4 RSA[BcCkD{֨_`@b"a@f@@4R@R_qaTaR_q"R@@4 R@y @q T(@qT @q@y {S@@'@'4@ ER$@#@@5@@h'@@!@T'@@@@SA{Ũ_{[S@'@@@V@@'@@T@-#%R@@*5'@@a4'@ (@X6@R*@ * 4@! '@@ l@!@* "@*SA[B{Ũ_{S@5`@b"a@@@5`*@@X6@RSA{¨_`@a@*?qTa`@j 8U@@`4 {S[*R`@4@929`@#@9 q 39 @`?SA[B{Ũ_ր @b"a@E@@a5!Ra`@4 { @@@ @{¨_ @ invalid extentsomething wrong with extentext2fs doesn't support quadruple indirect blocksnot an ext2 filesystemfilesystem has unsupported incompatible features%04x%04x-%04x-%04x-%04x-%04x%04x%04xdirectory is encryptedfile is encryptedsymlink is encryptedext2LICENSE=GPLv3+fshelpext208x(08@H08@H   x               < (#9HUdp{$x$dgrub_mod_initgrub_mod_finigrub_fshelp_find_filegrub_xasprintfgrub_memmovegrub_disk_readgrub_dl_refgrub_errnogrub_memsetgrub_fshelp_read_filegrub_fs_listgrub_mallocgrub_errorgrub_list_removegrub_freegrub_strndupgrub_dl_unrefgrub_list_push G00I0G$DP>\G`dlEGE>+<xDxdBx8|>((>(@HDh>lpEEG@\s88?I G@@8@@`0h0p?88<IG@@08@@\dl?HIG@  D  D    $  , Ed G @  x x ?          ;(  0  P GX G` Ix    @    ?   G G I  (  ,  0  8 ;`  d  l E = G  @   0  4  H  L  T Et D =   G @ AXG@JC(( F(  (08H@HH.symtab.strtab.shstrtab.rela.text.rodata.str1.1.rela.data.module_license.bss.moddeps.modname @0@` &2p :P5@`( @PU^ ;  )g`ELF @@ C@C{S[cks 4@@{@*SA[BcCkDsEC_GyJR_kT@`R*C"G9_qT!@qAT@R5R"!|@ *5W@4qT@C@ 5@C4SaRb@*sG Ԛ@ Ԛ@@@ F`?֠5A qaTR9AkT R@"b@R@@R@"Ԛ@@! @ no signatureGPT entry %d: start=%lld, length=%lld gptpartmap/gpt.cno valid GPT headerRead a valid GPT header no GPT partition map foundEFI PARTLICENSE=GPLv3+part_gpt (08@HPX`hh#;JUt$x$dgrub_mod_initgrub_mod_finigrub_partition_map_listgrub_disk_readgrub_errnogrub_gpt_partition_map_iterategrub_real_dprintfgrub_errorgrub_list_removegrub_list_pushgrub_memcmp8@D  ``((!PP8@0L!\@88HX@HX@H0 (08 @4H8PFXZ`shlpt| 4 .symtab.strtab.shstrtab.rela.text.rodata.rodata.str1.1.rela.data.module_license.bss.modname @@ &.2B(=@ 0 HX] 0   f (,gpt2)/boot/grub` (x08@HPX`hpx (08@H  `آУأx (08@HШبPX @08Pخ08@HPX`hp08@HPX`hpx`08@H (hا08@H (@h (08` (08@HPX`hpxȭЭ ȯPP (X`h(08x`У`0HPXX`hpxh`hpxȣУأ (08@HPX`hpx`ئx08xȭЭح`px`hpx (@ȣУ08@HPX`hpxpx0`h8@HPةxHhج`hpxȮЮ0`8 (08@ȧX (08@HPX`hpPX@HxPX`h8أx `hp৸ (08(H (08@hpȥH`hpȭ(08`hpxȡСHPXpأ@px@HPXx0ЪPPX`ȬЬ`hpح8Pȯ x8@HPXxȤФؤऐإ(0Xا0@HX`hpxȨب (8@PXhpȩЩ(0@HX`pxЪت 08HP`hxȫث (8@PXhpȬЬ(0@HX`pxЭح 08HP`hxȮخ (8@PXhpȯЯ (0@HX`pxРؠ 08HP`hxȡء (8@PXhpȢТ(0@HX`pxУأ 08HP`hxȤؤ (8@PXhpȥХ(0@HX`pxЦئ 08HP`hxȧا (8@PXhpȨШAf@c% Tg7TgSTg <Bk=H/Hc//mnt~ I1LWs Tg    !x-b$[VcfWc(cccS  ~|  cǰ %.t c9 cc q5 ! >p@" >p#!;*!cEc BcZ#cnYc c+ _} _ c&5i  Y<p E7IH  mpeff.(_g? )l cp  f  P  N   Y     cM `  ` `  ` `  ` `  ` `  ` `   ` `   ` `   ` `   ` `   ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `   `! !`!!! ! !`" "`""" " "`# #`### # #`$ $`$$$ $ $`% %`%%% % %`& &`&&& & &`' '`''' ' '`( (`((( ( (`) )`))) ) )`* *`*** * *`+ +`+++ + +`, ,`,,, , ,`- -`--- - -`. .`... . .`/ /`/// / /`0 0`000 0 0`1 1`111 1 1`2 2`222 2 2`3 3`333 3 3`4 4`444 4 4`5 5`555 5 5`6 6`666 6 6`7 7`777 7 7`8 8`888 8 8`9 9`999 9 9`: :`::: : :`; ;`;;; ; ;`< <`<<< < <`= =`=== = =`> >`>>> > >`? ?`??? ? ?`@ @`@@@ @ @`A A`AAA A A`B B`BBB B B`C C`CCC C C`D D`DDD D D`E E`EEE E E`F F`FFF F F`G G`GGG G G`H H`HHH H H`I I`III I I`J J`JJJ J J`K K`KKK K K`L L`LLL L L`M M`MMM M M`N N`NNN N N`O O`OOO O O`P P`PPP P P`Q Q`QQQ Q Q`R R`RRR R R`S S`SSS S S`T T`TTT T T`U U`UUU U U`V V`VVV V V`W W`WWW W W`X X`XXX X X`Y Y`YYY Y Y`Z Z`ZZZ Z Z`[ [`[[[ [ [`\ \`\\\ \ \`] ]`]]] ] ]`^ ^`^^^ ^ ^`_ _`___ _ _`` ````` ` ``a a`aaa a a`b b`bbb b b`c c`ccc c c`d d`ddd d d`e e`eee e e`f f`fff f f`g g`ggg g g`h h`hhh h h`i i`iii i i`j j`jjj j j`k k`kkk k k`l l`lll l l`m m`mmm m m`n n`nnn n n`o o`ooo o o`p p`ppp p p`q q`qqq q q`r r`rrr r r`s s`sss s s`t t`ttt t t`u u`uuu u u`v v`vvv v v`w w`www w w`x x`xxx x x`y y`yyy y y`z z`zzz z z`{ {`{{{ { {`| |`||| | |`} }`}}} } }`~ ~`~~~ ~ ~` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `   ` `à  ` `Ġ  ` `Š  ` `Ơ  ` `Ǡ  ` `Ƞ  ` `ɠ  ` `ʠ  ` `ˠ  ` `̠  ` `͠  ` `Π  ` `Ϡ  ` `Р  ` `Ѡ  ` `Ҡ  ` `Ӡ  ` `Ԡ  ` `ՠ  ` `֠  ` `נ  ` `ؠ  ` `٠  ` `ڠ  ` `۠  ` `ܠ  ` `ݠ  ` `ޠ  ` `ߠ  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  ` `  `!a!!a!a!!a!a!!a!a!!a???TgTgTg A TgTgTg }2 GZbZbTg )|g0TgTgTgQ WTgTgTgTg@   8" aTg4\A06TgTgTg  $ TgA 7Tg6Tg6Tg V h TgA7Tg"Tg"Tg 1՘ Ǔp89p89 TgTgTgTg  &{մ^ k  TgATgTgTg zCQ UU Tg TgTgPg &D{ .4 UTg TgTgPg &>?$ H UTg TgTgPg &  ]4 UTg TgTgPg &<  UTg TgTgPg &]Ŭ( "a Tg A7TgTgTg  0@- c'Tg&4A7TgTgTg :4 m&4&4h Tg&4A6TgTgTg *} ~&4&4lTg&4A7TgTgTg K F&4&4h Tg&4A7Tg5Tg5Tg [98V A366N!TgTgTgTg &!h &4&4Tg&46Tg6Tg6Tg &Q[Rh zF66b26Tgb2A7TgTgTg aZ! jNTg 8fTg8f &c B TgBO8fTg8f &B\ TgB6Tg6Tg6Tg '" B ap89p89p896Tgp898fTg8f &ӿ~_Y TgTgTgTg../proc/mounts~_*z %Tg8fTg8f &컝  Tg6Tg6Tg6Tg6Tg* AB `QNrS6Tg@KL6Tg6Tg6Tg/etc/init.d/devfsyװ S\\\6Tg\H 8fTg8f &d ))Tg 28fTg8f  &b8 2ZTgEf7TgTgTgg ~4 ^_^_h Tg^_&8fTg8f ,&!'2 [fTg58fTg8f -&H`I yTgA7TgTgTg [#n 3ԀԀ TgԀ|ZbZbh TgZbA7Tg6Tg6Tg M<< Wh TgZbA7TgTgTg & $ mZbZbh TgZbA7TgTgTg  < ZbZb'TgZb TgTgTg../run/lockQh _ZbZbTgZbA7TgTgTg K xR~_@~_@h TgZbA7TgTgTg e$N /ZbZbh TgZbA7TgTgTg (;ݾ |ZbZbh TgZbTgTgTg../run)$ 1Zbp89TgZbA7TgTgTg esk h TgA7TgTgTg pNee th TgTgTgTg../../../etc/crontabs`/+V &TgTgTgTg../mail4Ϸ @bTgC7TgTgTg UnǙ nh TgA 7TgTgTgO 2) I Tg8^gTg^g S&j >6Tg8'^gTg^g T&ۯ 6Tg8\^gTg^g U&#OI 36Tg8u^gTg^g V& fr g6Tg8:^gTg^g W&sg I6Tg8Y^gTg^g Y&Q? a16Tg8^gTg^g Z&_T G6Tg8^gTg^g [&2 O6Tg8)^gTg^g \&(YW 6Tg8{^gTg^g ]&t}q }6Tg8^gTg^g ^&|MHV 6Tg8^gTg^g _&՜! GB6Tg8@^gTg^g `&*f /6Tg8y^gTg^g b&)6 6Tg8^gTg^g c&7t I6Tg8^gTg^g d&i 6Tg8Y^gTg^g e&AA \6Tg8A7TgTgTg  *a_ vTg8*^gTg^g f&+g 6Tg8^gTg^g  g&R:j 6Tg8~^gTg^g m&+}Sg , 6Tg8^gTg^g q&xi ji6Tg`!^gTg^g s& h6Tg`!^gTg^g w&"2* N6Tg`!^gTg^g x&Mio 6Tg`! ^gTg^g y&uz~ i6Tg`!TgTgTg/usr/libexec/rc/sh/functions.sh 6`!`!Tg`!_^gTg^g }&ٽ?q e6Tg`! ^gTg^g ~&ks 6Tg`!4^gTg^g & 5 ~: /r6Tg`!J^gTg^g &DZ 0r6Tg`! ^gTg^g &x9FC 6Tg`!y^gTg^g &S&kt{ S6Tg`!^gTg^g &I8 e 6Tg`!k^gTg^g &M B6Tg`!^gTg^g &q!!U7 6Tg`!^gTg^g &}n 6Tg`!$^gTg^g &(% 56Tg`!^gTg^g &vum G6Tg`!^gTg^g &̈ UW6Tg`!^gTg^g &Z9$ 26Tg`!6^gTg^g &W ӽ6Tg`!^gTg^g &H 6Tg`!^gTg^g &5P 6Tg`!^gTg^g &o̓' b6Tg`!^gTg^g &,s 6Tg`!^^gTg^g &Y ! :6Tg`!\^gTg^g &NS 6Tg`!g^gTg^g &1/D@ o6Tg`!^gTg^g &q|/ 6Tg`!g^gTg^g &* = 96Tg`!^gTg^g &y^3% 6Tg`!^gTg^g &M@T }6Tg`!^gTg^g &%b_ 6Tg`!*^gTg^g &\'nY s6Tg`!#^gTg^g &PԬ 6Tg`! ^gTg^g &GVDY nr6Tg`!^gTg^g &i/5 _T6TgF#^gTg^g & ޭ6TgF#A7TgTgTg 5*AB 66h TgF#^gTg^g &y70j 6TgF#+^gTg^g &:/B 6TgF#4^gTg^g  &*<+ 6TgF#A6TgTgTg Uvܿl 1F#F#FTgF#A7Tg6Tg6Tg ccm . NTgF#A7Tg6Tg6Tg  $&b1 llNTgF#A6TgTgTg AP F#F#FTgF#A6Tg6Tg6Tg =DI FTgF#A6Tg6Tg6Tg { `"d"dFTgF#^gTg^g &w^O &6TgF# TgTg Kf  'h! GQ~_@Tg~_@| FFh TgFA7TgTgTg  _PPh TgF|w TgDQPgTgQPg J:8_Pn 7TgD TgTgQPg JL+ {TgDTgTgQPg  JӅ, x|NrSTgD QPgTgQPg !JhQ^{ VETgDQPgTgQPg "JN" nTgD,TgTgQPg #JQw \TgDQPgTgQPg $J p TgDQPgTgQPg %JK TgDjQPgTgQPg &J( L ГTgDQPgTgQPg 'J>G3 TgD3QPgTgQPg (JkR TgD:TgTgQPg )JR_U o"dTgDQPgTgQPg *JY TgTgTgQPg +J<uJ ((NTg(G12gTg12g @=L z(Tg(12gTg12g @W) (Tg(l 12gTg12g @<^ n(Tg( 12gTg12g @>q :(Tg(M 12gTg12g @ʼx:c (Tg( 12gTg12g @9 (Tg( 12gTg12g @H (Tg( 12gTg12g @w{F `(Tg(12gTg12g @ (Tg(A7TgTgTg /twݬ (((NTg( 12gTg12g @%Q N(Tg( 12gTg12g @hVLN H(Tg(X 12gTg12g @Q K`(Tg(q 12gTg12g @^ R(Tg( 12gTg12g @lrt p(Tg( 12gTg12g @֘_ߧ (Tg( 12gTg12g @M v (Tg(A7TgTgTg /ep9 C((NTg(12gTg12g @ (Tg(12gTg12g @ ) h(Tg(TgTgTgvt220|= 9(((Tg(o12gTg12g @Xyqj (Tg(G12gTg12g @\ (Tg( 12gTg12g @w r5(Tg(12gTg12g @*kG_ (Tg(A7TgTgTg /Z~! y((NTg(12gTg12g @RF Q(Tg(12gTg12g @ (Tg(12gTg12g @\G Z(Tg(12gTg12g @Jg (Tg(A7TgTgTg /))˃;U }H{H{vTg~_@DOgTgOg$ 4 jaTg~_@OgTgOg @Y.8X jaTgBA7TgTgTg /(a]$ BBvTgB OgTgOg A H{TgH{A7TgTgTg />݌ H{H{vTgH{OgTgOg A,= co +wTgjOgTgOg A8. vTgA7Tg6Tg6Tg &r5p kh 6TgOgTgOg iAI5 TgOgTgOg jAG TgOgTgOg kAwU>" 7TgOgTgOg lA TI eTg"Tg6Tg6Tg6Tg &d ' "Tg t6Tg6Tg6Tg &ή 0b2b2/6Tg/A5Tg"Tg"Tg t 3L-L-pr!Tg"5Tg!Tgެf  [M /?:t!Tg|-5Tg!Tgެf  [  pV!!Tg86Tg!Tgެf [dd} N!Tg06Tg!Tgެf  42 <9!Tg6Tg!Tgެf 6Z7 Vv`!!Tg6Tg!Tgެf t LF#!Tgެf!Tgެf Xk !Tg6Tg"Tgެf -Ou mL-!Tg_6Tg"Tgެf .3q 9L-!Tg{6Tg"Tg"Tg [U PLJ 666"Tg6#$Tg"Tg"Tg $ {ѓѓ"TgѓW"Tg"Tg"Tg [s V&4&4"Tg&4B6Tg6Tg6Tg &t1: \6666Tg66Tg6Tg6Tg6Tg gU :AN6Tg@KL6Tg6Tg6Tg/etc/init.d/dmesgq ^_^_^_6Tg^_6Tg6Tg6Tg/etc/init.d/hwdrivers=d ujajaja6Tgja6Tg6Tg6Tg/etc/init.d/mdevMI "d"d"d6Tg"d6Tg6Tg6Tg/etc/init.d/acpid ? Rxhxhxh6Tgxh6Tg6Tg6Tg/etc/init.d/bootmisco IkIkIk6TgIk6Tg6Tg6Tg/etc/init.d/hostname\ ,m,m,m6Tg,m6Tg6Tg6Tg/etc/init.d/hwclockD !Mppp6Tgp6Tg6Tg6Tg/etc/init.d/modules]҅e %prprpr6Tgpr6Tg6Tg6Tg/etc/init.d/swapBL f:t:t:t6Tg:t6Tg6Tg6Tg/etc/init.d/sysctlTĽ ל5w5w5w6Tg5w6Tg6Tg6Tg/etc/init.d/syslog= yyy6Tgy6Tg6Tg6Tg/etc/init.d/chronydn A6Tg6Tg6Tg6Tg/etc/init.d/networkingd{[L 6Tg6Tg6Tg6Tg/etc/init.d/sshd2{ V!V!V!6TgV!6Tg6Tg6Tg/etc/init.d/killprocsw"WW PR 6Tg 6Tg6Tg6Tg/etc/init.d/mount-ro`7fs dHdHdH6TgdH6Tg6Tg6Tg/etc/init.d/savecache;_ :6Tgk6Tg6Tg6Tg 'N=, B6Tg6Tg6Tg6Tg/etc/init.d/tiny-cloud-bootcU1 6Tg 6Tg6Tg6Tg/etc/init.d/tiny-cloud-early,y 2226Tg26Tg6Tg6Tg/etc/init.d/tiny-cloud-mainLh? 7z6Tg6Tg6Tg6Tg/etc/init.d/tiny-cloud-final ^| _lll6Tgl . ..  lost+found} boot etc} tmp} dev} lib var} proc} bin} sbin} usr~ home~media~ mnt~ opt~ root~ run~ srvQsys ގ@ ... NI- 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ...{hcS މ= f . .. repositories keysgworld archprotected_paths.d  . ..<3alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub<3alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub<3alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub<3alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub3alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub jN[ . ..cacheRemptyS libUlocalZ@runW logX mailYLopt[spool_ tmpVlock & . .. apkmisc `d ... !uO ... $:* . L..+busybox ~+ؖ, . L..-acpidopenrc|chrony ޲t. . ../ if-down.d0if-post-down.d1 if-post-up.d2 if-pre-down.d3 if-pre-up.d4if-up.d\` interfaces O/ .... O0 .... 1 .... #52 .... =p3 .... ڽ!4 ..L..5dad ޷!(47 . L..8 udhcpc.conf   . L..=root 0h8@> . ..@blacklist.confA i386.confBkms.conf? aliases.conf WC . .. ,)KE . .. ަ~F . ..G15minHdailyIhourlyJmonthlyKweekly ރ%6G .F.. ^٧H .F.. 48I .F.. 5J .F.. ] ^K .F.. k/L . ..NREADMEOcolor_prompt.sh.disabledM 20locale.sh Fd]P . L..README ޲2Q ... R ... 2S . ..T miscchrony'dhcpcdVcloud ޮ,T .S.. GU ... AW . ..<chrony ކp~}X ... Y ...  [ . ..\Lcron^mail ވy\ .[L..]crontabs ުt_ ... 2` . ..{x ޞCb consolefonte fsckfhwclockjmodulesnseedrngo staticroutep swapqswclockcrondklogdloadkmapsyslog ާ^R ntpdrdatewatchdogchronydimodloopk mtabl net-onlinemnetmounth localmountT,sshdg@ killprocsddmesgabootmiscc$devfs \r . ..{#e מz}hwclocklocalloopback machine-idmodules networking s6-svscan staticrouteswclocksysctlsysfscrondPloadkmapdhcpcd  killprocs localmountnetmountnumlock root save-keymaps termencodingchronydU sshdW$tiny-cloud-bootPrdateZtiny-cloud-mainsbinfmta3wdevfs92d4ebcd17388f3da28dfff0301534b7@5.apk.6e692650a058f59e2f0fd1b1fb6bcc50df4581bbbac53eb7@5.apk.c8402845a4342b34424710347fb0dc850b66d1427dac6a2a@@5.apk.8e2660c28def239b547eef1e266372aaef737161f7632172@5.apk.52114d8630ad2559c12b7e48b376d3588b3214a3f2279709t +Sxdmesgz fsck~ hwdriversmodloopseedrng swap sysfsconfklogdsyslogX tiny-cloud-earlymdevv4 consolefont+P@@8@nFtI@jgW Mv{ functions.sh|hostnamemount-ro mtab savecacheacpid ntpdwatchdogy firstboot net-onlineosclockprocfsrunsvdirsave-termencodingY tiny-cloud-finaltbootmiscucgroupse@7@PÕ@a֨@< @@|@Ȁ@0@Ct@@b;!@BtP@ o . L..README މw( . .. bootdefault nonetworkshutdownsysinit H*ԡ . ..oacpidpbootmiscqhostnamerhwclocksmodulest swapusysctlvsyslog~`tiny-cloud-boot IǢ . ..wchronydx networkingy sshdtiny-cloud-earlytiny-cloud-main|tiny-cloud-final `գ ... a)Cc . ..z killprocs{mount-ro| savecache  . ..$devfsldmesgm hwdriversnmdev . L..lbu.conf ގjU . L..alpine j . ..ct_log_list.cnf.dist$ openssl.cnfcertscert.pemopenssl.cnf.distprivatect_log_list.cnf VH .L..ca-certificates.crt $l . ..certs\cert.pem 9һ ... ހd . .. EɅ . ..PWRF QȾ .L..00000080 [im . L..pkcs11.conf.example ޓ< .W.. G) . L.. chrony.conf ]x .SL.. chrony.drift ķ' .S.. ާ . .. wheel.conf އ) modules9passwd:profile&servicesshadow(shells) sysctl.conf. network7udhcpc> modprobe.dCmodules-load.d`conf.dlocal.drc.confL profile.dPsysctl.dD motd lbu secfixes.d os-release acpipkcs11$chronyPfstab Fl*busybox-paths.dissue apk sslssl1.1crontabsjinittabdoas.d runlevels mdev.confrinit.dEopt% protocols" nsswitch.confFperiodic, logrotate.dhosts doas.conf dhcpcd.conf! mtabhostname6$ securettyalpine-release;groupmkinitfsterminfoN sshdefault e2scrub.conf mke2fs.conf]0grub.d}tiny-cloud.conf *o . ..T features.di mkinitfs.conf ...{o22Tk\] ̟ ata.modulescramfs.modulescryptsetup.filescryptsetup.modules kms.modules lvm.modules nbd.filesnetwork.modules qeth.modules  raid.modules reiserfs.modules squashfs.modules xfs.files xfs.modules zfcp.modules .CAdasd_mod.modulesfloppy.modules jfs.modules network.files$ ubifs.modules base.modulesxenpci.modulesH zfs.modules ޭb( gfs2.modules https.files lvm.files mmc.modules  raid.fileswireguard.files cdrom.modulescryptkey.files ena.modules ext2.modules ext4.moduleswireguard.moduleshxgpio_pl061.modules base.files9cbootchart.files7 btrfs.files4 btrfs.modules@ @5.apk.2a81c41350bd9cc3fceddc5bf57b6ff43a385968981b7b4ft r nfit.modules nvme.modules ocfs2.modules dhcp.files dhcp.modules ext3.modules  scsi.modules usb.modules zfs.filest aoe.modulest @z^%@^@@ī*@sC10@o2@ 4p@Ѷ:@t;@EP@r8U @W ޮavirtio.modules f2fs.modules keymap.files nbd.modules phy.modules4 9p.modules\]@ƌ@D@։@]͐@{ @0@T-@@ܰ@d[@rHP@`@]p@' 3 8(M ,Thundercomm Dragonboard 845c2thundercomm,db845cqcom,sdm845=UIaliases!W/soc@0/geniqup@8c0000/i2c@880000!\/soc@0/geniqup@8c0000/i2c@884000!a/soc@0/geniqup@8c0000/i2c@888000!f/soc@0/geniqup@8c0000/i2c@88c000!k/soc@0/geniqup@8c0000/i2c@890000!p/soc@0/geniqup@8c0000/i2c@894000!u/soc@0/geniqup@8c0000/i2c@898000!z/soc@0/geniqup@8c0000/i2c@89c000!/soc@0/geniqup@ac0000/i2c@a80000!/soc@0/geniqup@ac0000/i2c@a84000!/soc@0/geniqup@ac0000/i2c@a88000!/soc@0/geniqup@ac0000/i2c@a8c000!/soc@0/geniqup@ac0000/i2c@a90000!/soc@0/geniqup@ac0000/i2c@a94000!/soc@0/geniqup@ac0000/i2c@a98000!/soc@0/geniqup@ac0000/i2c@a9c000!/soc@0/geniqup@8c0000/spi@880000!/soc@0/geniqup@8c0000/spi@884000!/soc@0/geniqup@8c0000/spi@888000!/soc@0/geniqup@8c0000/spi@88c000!/soc@0/geniqup@8c0000/spi@890000!/soc@0/geniqup@8c0000/spi@894000!/soc@0/geniqup@8c0000/spi@898000!/soc@0/geniqup@8c0000/spi@89c000!/soc@0/geniqup@ac0000/spi@a80000!/soc@0/geniqup@ac0000/spi@a84000!/soc@0/geniqup@ac0000/spi@a88000!/soc@0/geniqup@ac0000/spi@a8c000!/soc@0/geniqup@ac0000/spi@a90000!/soc@0/geniqup@ac0000/spi@a94000!/soc@0/geniqup@ac0000/spi@a98000!/soc@0/geniqup@ac0000/spi@a9c000$/soc@0/geniqup@ac0000/serial@a84000$ /soc@0/geniqup@8c0000/serial@898000chosenserial0:115200n8clocksxo-board 2fixed-clock,I opp-403200000X 5I>opp-4800000008 5bpopp-576000000"U 5bpopp-652800000& 5u0opp-748800000,opp-82560000015opp-9024000005Ɉ`opp-979200000:]hopp-1056000000>Hopp-1132800000C(!b@opp-1228800000I>!bopp-1324800000N!b opp-1420800000T.opp-1516800000Zh.'Popp-1612800000`!`>'Popp-1689600000d@>>opp-1766400000iI >V0opp-table-cpu42operating-points-v2Oopp-300000000 5I>opp-403200000X 5I>opp-4800000008I>opp-576000000"UI>opp-652800000&I>opp-748800000,I>opp-82560000015!bopp-9024000005Ɉ!bopp-979200000:]h!bopp-1056000000>H.opp-1132800000C(.opp-1209600000H>opp-1286400000L>opp-1363200000Q@>opp-1459200000V>opp-1536000000[Ropp-1612800000`!`Ropp-1689600000d@R'Popp-1766400000iI ^'Popp-1843200000m^'Popp-1920000000rpn'Popp-1996800000wn>opp-2092800000|n>opp-2169600000Qxn>opp-2246400000Xn>opp-2323200000y8n>opp-2400000000 nV0opp-2476800000nV0opp-25536000004nV0opp-2649600000nV0opp-2745600000nopp-2803200000pnopp-table-dsi2operating-points-v2Oopp-19200000$!opp-180000000 "opp-275000000d*#opp-328580000$opp-358000000V%opp-table-qspi2operating-points-v2Oopp-19200000$!opp-100000000"opp-150000000р#opp-300000000%opp-table-qup2operating-points-v2O=opp-50000000!opp-75000000xh"opp-100000000#opp-128000000 %pmu2arm,armv8-pmuv3 psci 2arm,psci-1.0usmcpower-domain-cpu0&'Opower-domain-cpu1&'O power-domain-cpu2&'O power-domain-cpu3&'Opower-domain-cpu4&(Opower-domain-cpu5&(Opower-domain-cpu6&(Opower-domain-cpu7&(Opower-domain-cluster)O&reserved-memory hyp-mem@85700000cp`xbl-mem@85e00000caop-mem@85fc0000caop-cmd-db-mem@85fe0000 2qcom,cmd-dbcsmem@86000000 2qcom,smemc  *tz@86200000c rmtfs@88f000002qcom,rmtfs-memc (7qseecom@8ab00000c@camera-mem@8bf00000cPipa-fw@8c400000c@ipa-gsi@8c410000cAPgpu@8c415000cAP Oadsp@8c500000cPO-wlan-msa@8df00000cOmpss@8e000000cOvenus@95800000cPOcdsp@95d00000cO3mba@96500000cP Oslpi@96700000cp@Ospss@97b00000cmpss-metadataA N@Ofastrpc2shared-dma-poolAS@N]Oframebuffer@9d400000c@@Oremoteproc-adsp2qcom,sdm845-adsp-pas@f++++#zwdogfatalreadyhandoverstop-ackg,xo-./stopokayqcom/sdm845/adsp.mbnglink-edge lpass0apr 2qcom,apr-v2apr_audio_svc &service@3c 2qcom,q6core3avs/audiomsm/adsp/audio_pdservice@4 2qcom,q6afec3avs/audiomsm/adsp/audio_pddais2qcom,q6afe-dais JOdai@22c[service@7 2qcom,q6asmc3avs/audiomsm/adsp/audio_pddais2qcom,q6asm-dais J i1!Odai@0cdai@1cdai@2cdai@3cpzservice@8 2qcom,q6admc3avs/audiomsm/adsp/audio_pdrouting2qcom,q6adm-routingJOfastrpc 2qcom,fastrpcfastrpcglink-apps-dspadsp compute-cb@32qcom,fastrpc-compute-cbc i1#compute-cb@42qcom,fastrpc-compute-cbc i1$remoteproc-cdsp2qcom,sdm845-cdsp-pas@fB2222#zwdogfatalreadyhandoverstop-ackg,xo3.4stopokayqcom/sdm845/cdsp.mbnglink-edge >turing0fastrpc 2qcom,fastrpcfastrpcglink-apps-dspcdsp compute-cb@12qcom,fastrpc-compute-cbc i10compute-cb@22qcom,fastrpc-compute-cbc i10compute-cb@32qcom,fastrpc-compute-cbc i10compute-cb@42qcom,fastrpc-compute-cbc i10compute-cb@52qcom,fastrpc-compute-cbc i10compute-cb@62qcom,fastrpc-compute-cbc i10compute-cb@72qcom,fastrpc-compute-cbc i10compute-cb@82qcom,fastrpc-compute-cbc i10smp2p-cdsp 2qcom,smp2p^ @0master-kernelmaster-kernelO4slave-kernel slave-kernelO2smp2p-lpass 2qcom,smp2p 0 master-kernelmaster-kernelO/slave-kernel slave-kernelO+smp2p-mpss 2qcom,smp2p 0master-kernelmaster-kernelOslave-kernel slave-kernelOipa-ap-to-modemipaOipa-modem-to-apipaOsmp2p-slpi 2qcom,smp2p 0master-kernelmaster-kernelOslave-kernel slave-kernelOsoc@0  2simple-busclock-controller@1000002qcom,gcc-sdm845cg,,567=bi_tcxobi_tcxo_aosleep_clkpcie_0_pipe_clkpcie_1_pipe_clk8O9qfprom@7840002qcom,sdm845-qfpromqcom,qfpromcx@ hstx-trim-primary@1ebc0Ohstx-trim-secondary@1ebc0Orng@793000 2qcom,prng-eecy0g9@coredma-controller@80000052qcom,sdm845-gpi-dmac@ M i1okayO>geniqup@8c00002qcom,geni-se-qupc` m-ahbs-ahbg9d9e i1 : ; ^qup-coreokayi2c@8800002qcom,geni-i2cc@seg9Dqdefault< Y 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8800002qcom,geni-spic@seg9Dqdefault? Y 0: ;;^qup-corequp-config >>txrxokay @can@02microchip,mcp2517fdcgA f@hBBserial@8800002qcom,geni-uartc@seg9DqdefaultC Y8=0: ;;^qup-corequp-config disabledi2c@8840002qcom,geni-i2cc@@seg9FqdefaultD Z 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8840002qcom,geni-spic@@seg9FqdefaultE Z 0: ;;^qup-corequp-config >>txrx disabledserial@8840002qcom,geni-uartc@@seg9FqdefaultF Z8=0: ;;^qup-corequp-config disabledi2c@8880002qcom,geni-i2cc@seg9HqdefaultG [ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8880002qcom,geni-spic@seg9HqdefaultH [ 0: ;;^qup-corequp-config >>txrxokayserial@8880002qcom,geni-uartc@seg9HqdefaultI [8=0: ;;^qup-corequp-config disabledi2c@88c0002qcom,geni-i2cc@seg9JqdefaultJ \ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@88c0002qcom,geni-spic@seg9JqdefaultK \ 0: ;;^qup-corequp-config >>txrx disabledserial@88c0002qcom,geni-uartc@seg9JqdefaultL \8=0: ;;^qup-corequp-config disabled LS-UART0i2c@8900002qcom,geni-i2cc@seg9LqdefaultM ] 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8900002qcom,geni-spic@seg9LqdefaultN ] 0: ;;^qup-corequp-config >>txrx disabledserial@8900002qcom,geni-uartc@seg9LqdefaultO ]8=0: ;;^qup-corequp-config disabledi2c@8940002qcom,geni-i2cc@@seg9NqdefaultP ^ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8940002qcom,geni-spic@@seg9NqdefaultQ ^ 0: ;;^qup-corequp-config >>txrx disabledserial@8940002qcom,geni-uartc@@seg9NqdefaultR ^8=0: ;;^qup-corequp-config disabledi2c@8980002qcom,geni-i2cc@seg9PqdefaultS _ 8=H: ;;: ^qup-corequp-configqup-memory >>txrx disabledspi@8980002qcom,geni-spic@seg9PqdefaultT _ 0: ;;^qup-corequp-config >>txrx disabledserial@8980002qcom,geni-uartc@seg9PqdefaultU _8=0: ;;^qup-corequp-configokaybluetooth2qcom,wcn3990-btVWXY0i2c@89c0002qcom,geni-i2cc@seg9RqdefaultZ ` 8= disabledspi@89c0002qcom,geni-spic@seg9Rqdefault[ ` 0: ;;^qup-corequp-config >>txrx disabledserial@89c0002qcom,geni-uartc@seg9Rqdefault\ `8=0: ;;^qup-corequp-config disableddma-controller@a0000052qcom,sdm845-gpi-dmac%&'()*+@ M i1okayO_geniqup@ac00002qcom,geni-se-qupc` m-ahbs-ahbg9f9g i1 ] ; ^qup-coreokayi2c@a800002qcom,geni-i2cc@seg9Tqdefault^ a 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a800002qcom,geni-spic@seg9Tqdefault` a 0] ;;^qup-corequp-config __txrx disabledserial@a800002qcom,geni-uartc@seg9Tqdefaulta a8=0] ;;^qup-corequp-config disabledi2c@a840002qcom,geni-i2cc@@seg9Vqdefaultb b 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a840002qcom,geni-spic@@seg9Vqdefaultc b 0] ;;^qup-corequp-config __txrx disabledserial@a840002qcom,geni-debug-uartc@@seg9Vqdefaultd b8=0] ;;^qup-corequp-configokay LS-UART1i2c@a880002qcom,geni-i2cc@seg9Xqdefaulte c 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,hdmi-bridge@3b2lontium,lt9611c;J f@T  @fgqdefaulthiO ports port@0cendpoint#jOport@1cendpoint#kOport@2cendpoint#lOspi@a880002qcom,geni-spic@seg9Xqdefaultm c 0] ;;^qup-corequp-config __txrx disabledserial@a880002qcom,geni-uartc@seg9Xqdefaultn c8=0] ;;^qup-corequp-config disabledi2c@a8c0002qcom,geni-i2cc@seg9Zqdefaulto d 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,spi@a8c0002qcom,geni-spic@seg9Zqdefaultp d 0] ;;^qup-corequp-config __txrx disabledserial@a8c0002qcom,geni-uartc@seg9Zqdefaultq d8=0] ;;^qup-corequp-config disabledi2c@a900002qcom,geni-i2cc@seg9\qdefaultr e 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a900002qcom,geni-spic@seg9\qdefaults e 0] ;;^qup-corequp-config __txrx disabledserial@a900002qcom,geni-uartc@seg9\qdefaultt e8=0] ;;^qup-corequp-config disabledi2c@a940002qcom,geni-i2cc@@seg9^qdefaultu f 8=H] ;;] ^qup-corequp-configqup-memory __txrx disabledspi@a940002qcom,geni-spic@@seg9^qdefaultv f 0] ;;^qup-corequp-config __txrx disabledserial@a940002qcom,geni-uartc@@seg9^qdefaultw f8=0] ;;^qup-corequp-config disabledi2c@a980002qcom,geni-i2cc@seg9`qdefaultx g 8=H] ;;] ^qup-corequp-configqup-memory __txrxokay,spi@a980002qcom,geni-spic@seg9`qdefaulty g 0] ;;^qup-corequp-config __txrx disabledserial@a980002qcom,geni-uartc@seg9`qdefaultz g8=0] ;;^qup-corequp-config disabledi2c@a9c0002qcom,geni-i2cc@seg9bqdefault{ h 8= disabledH] ;;] ^qup-corequp-configqup-memory __txrxspi@a9c0002qcom,geni-spic@seg9bqdefault| h 0] ;;^qup-corequp-config __txrx disabledserial@a9c0002qcom,geni-uartc@seg9bqdefault} h8=0] ;;^qup-corequp-config disabledsystem-cache-controller@11000002qcom,sdm845-llccPcP (0@3llcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_base Fdma@10a20002qcom,sdm845-dccqcom,dcc c  pmu@114a0002qcom,sdm845-llcc-bwmonc D ~opp-table2operating-points-v2O~opp-0 5opp-1opp-2.opp-3Ropp-4npmu@1436400(2qcom,sdm845-cpu-bwmonqcom,sdm845-bwmoncCd E opp-table2operating-points-v2Oopp-0I>opp-1opp-2opp-3>opp-4pcie@1c000002qcom,pcie-sdm845Pc `` `p3parfdbielbiconfigmhiWpci=NX 8` `0`0 zmsibu8g9.9)9+9-9/9090pipeauxcfgbus_masterbus_slaveslave_q2atbu111111111 1 1 1 1 1119pci96pciephyokay @# @qdefaultpcie@0WpcicN phy@1c060002qcom,sdm845-qmp-pcie-phyc`(g999+9,9:9.auxcfg_ahbrefrefgenpipeopp-342000000b )opp-257000000Q@ @%zap-shaderqcom/sdm845/a630_zap.mbniommu@504000022qcom,sdm845-smmu-v2qcom,adreno-smmuqcom,smmu-v2c  xlmnopqrsg9!9 busifaceOgmu@506a000&2qcom,adreno-gmu-630.2qcom,adreno-gmu0c ( H3gmugmu_pdcgmu_pdc_seq01zhfigmu g99!gmucxoaximemnoccxgxiokayOopp-table2operating-points-v2Oopp-400000000ׄ opp-200000000  0clock-controller@af000002qcom,sdm845-dispccc Hg,99bi_tcxogcc_disp_gpll0_clk_srcgcc_disp_gpll0_div_clk_srcdsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_link_clk_divsel_tendp_vco_divided_clk_src_muxOinterrupt-controller@b2200002qcom,sdm845-pdcqcom,pdcc "$ ^^asvOreset-controller@b2e00002qcom,sdm845-pdc-globalc .Othermal-sensor@c263000 2qcom,sdm845-tsensqcom,tsens-v2 c &0 "  zuplowcritical O thermal-sensor@c265000 2qcom,sdm845-tsensqcom,tsens-v2 c &P "0 zuplowcritical Oreset-controller@c2a00002qcom,sdm845-aoss-ccc *Opower-management@c300000#2qcom,sdm845-aoss-qmpqcom,aoss-qmpc 0 0O.cxebisram@c3f00002qcom,sdm845-rpmh-statsc ?spmi@c4400002qcom,spmi-pmic-arbPc D ``p @`3corechnlsobsrvrintrcnfg zperiph_irq p  pmic@02qcom,pm8998qcom,spmi-pmicc pon@8002qcom,pm8998-ponc  #pwrkey2qcom,pm8941-pwrkey 1=  :tresin2qcom,pm8941-resin 1= okay :rtemp-alarm@24002qcom,spmi-temp-alarmc$$ E Qthermal Ocharger@2800*2qcom,pm8998-coincellqcom,pm8941-coincellc( disabledadc@31002qcom,spmi-adc-rev2c11  bOchannel@6c die_tempadc-tm@34002qcom,spmi-adc-tm-hcc44   disabledrtc@60002qcom,pm8941-rtcc`a 3rtcalarmagpio@c000 2qcom,pm8998-gpioqcom,spmi-gpioc tNCNCWLAN_SW_CTRLNCPM_GPIO5_BLUE_BT_LEDVOL_UP_NNCADC_IN1PM_GPIO9_YEL_WIFI_LEDCAM0_AVDD_ENNCCAM0_DVDD_ENPM_GPIO13_GREEN_U4_LEDDIV_CLK2NCNCNCSMB_STATNCNCADC_IN2OPTION1WCSS_PWR_REQPM845_GPIO24OPTION2PM845_SLBOcam0-dvdd-1v2-en-stategpio12normal  Ocam0-avdd-2v8-en-stategpio10normal  Ovol-up-active-stategpio6normal  Opmic@12qcom,pm8998qcom,spmi-pmicc pmic@22qcom,pmi8998qcom,spmi-pmicc charger@10002qcom,pmi8998-chargerc@-zusb-pluginbat-ovwdog-barkusbin-icl-change E Qusbin_iusbin_v disabledgpio@c000!2qcom,pmi8998-gpioqcom,spmi-gpiocOadc@45002qcom,pmi8998-rradccE bOpmic@32qcom,pmi8998qcom,spmi-pmicc labibb2qcom,pmi8998-lab-ibbibb  zsc-errocplab  zsc-errocppwm2qcom,pmi8998-lpg  okay led@3c  heartbeat  heartbeat onled@4c  indicator led@5c  indicator led-controller@d300+2qcom,pmi8998-flash-ledqcom,spmi-flash-ledc disabledleds@d8002qcom,pmi8998-wledc  zovpshort backlight disabledsram@146bf000#2qcom,sdm845-imemsysconsimple-mfdck kpil-reloc@94c2qcom,pil-reloc-infoc Liommu@15000000!2qcom,sdm845-smmu-500arm,mmu-500c   A`abcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVWO1tbu@150c50002qcom,sdm845-tbuc P;9 1tbu@150c90002qcom,sdm845-tbuc ;9  1tbu@150cd0002qcom,sdm845-tbuc  9  1tbu@150d10002qcom,sdm845-tbuc  9  1 tbu@150d50002qcom,sdm845-tbuc P 9  1tbu@150d90002qcom,sdm845-tbuc ; 1tbu@150dd0002qcom,sdm845-tbuc ;9 1tbu@150e10002qcom,sdm845-tbucg9;9 1clock-controller@170140002qcom,sdm845-lpasscc c@0 3ccqdsp6ss disabledinterconnect@179000002qcom,sdm845-gladiator-noccЀ';Owatchdog@17980000#2qcom,apss-wdt-sdm845qcom,kpss-wdtcg5 mailbox@179900002qcom,sdm845-apss-sharedc %O0rsc@179c0000 apps_rsc2qcom,rpmh-rsc0c3drv-0drv-1drv-2$ 1  A M&bcm-voter2qcom,bcm-voterOclock-controller2qcom,sdm845-rpmh-clkxogO,power-controller2qcom,sdm845-rpmhpdO8opp-table2operating-points-v2Oopp1 opp2 0O!opp3 @O"opp4 O#opp5 O$opp6 O%opp7 @opp8 Popp9 Oopp10 regulators-02qcom,pm8998-rpmh-regulators ]a j x         $6K]n| Vsmps3-@E@Osmps5- E Osmps7- EOldo1- mE m]Oldo5- 5E 5]Oldo12-w@Ew@]Oldo7-w@Ew@]OWldo13-w@E-*]Oldo17-E]OXldo20--*E-I]Oldo21--*E-I]Oldo24-/E/]Oldo25-2ZE2]OYldo26-OEO]Olvs1-w@Ew@tlvs2-w@Ew@tregulators-12qcom,pmi8998-rpmh-regulators ]bbob-2E6]Ointerrupt-controller@17a00000 2arm,gic-v3  c  Omsi-controller@17a400002arm,gic-v3-itsc disableddma-controller@17184000 2qcom,bam-v1.7.4qcom,bam-v1.7.0xc@ 5p i1Otimer@17c90000  2arm,armv7-timer-memcframe@17ca0000cframe@17cc0000 c disabledframe@17cd0000  c disabledframe@17ce0000  c disabledframe@17cf0000  c disabledframe@17d00000  c disabledframe@17d10000  c disabledinterconnect@17d410002qcom,sdm845-osm-l3qcom,osm-l3cg,9 xoalternate'Ocpufreq@17d43000'2qcom,sdm845-cpufreq-hwqcom,cpufreq-hw c0X3freq-domain0freq-domain1fg,9 xoalternateOwifi@188000002qcom,wcn3990-wifiokayc3membasecxo_ref_clk_ping, i1@W)X<YOmThundercomm_DB845Csound(2qcom,db845c-sndcardqcom,sdm845-sndcardqdefault,DB845cRX_BIASMCLKAMIC1MIC BIAS1AMIC2MIC BIAS2DMIC0MIC BIAS1DMIC1MIC BIAS1DMIC2MIC BIAS3DMIC3MIC BIAS3SpkrLeft INSPK1 OUTSpkrRight INSPK2 OUTMM_DL1MultiMedia1 PlaybackMM_DL2MultiMedia2 PlaybackMM_DL4MultiMedia4 PlaybackMultiMedia3 CaptureMM_UL3mm1-dai-link MultiMedia1cpumm2-dai-link MultiMedia2cpumm3-dai-link MultiMedia3cpumm4-dai-link MultiMedia4cpuhdmi-dai-linkHDMI Playbackcpuplatformcodec slim-dai-linkSLIM Playbackcpuplatformcodec   slimcap-dai-link SLIM Capturecpuplatformcodecthermal-zonescpu0-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu1-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu2-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu3-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu4-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu5-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu6-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalcpu7-thermal tripstrip-point0_^passivetrip-point1s^passivecpu-crit ^criticalaoss0-thermal tripstrip-point0_^hotcluster0-thermal tripstrip-point0_^hotcluster0-crit ^criticalcluster1-thermal tripstrip-point0_^hotcluster1-crit ^criticalgpu-top-thermal cooling-mapsmap0 tripstrip-point0L^passiveOtrip-point1_^hottrip-point2 ^criticalgpu-bottom-thermal cooling-mapsmap0 tripstrip-point0L^passiveOtrip-point1_^hottrip-point2 ^criticalaoss1-thermaltripstrip-point0_^hotq6-modem-thermaltripstrip-point0_^hotmem-thermaltripstrip-point0_^hotwlan-thermaltripstrip-point0_^hotq6-hvx-thermaltripstrip-point0_^hotcamera-thermaltripstrip-point0_^hotvideo-thermaltripstrip-point0_^hotmodem-thermaltripstrip-point0_^hotpm8998-thermaltripspm8998-alert0(^passivepm8998-critH ^criticaltimer2arm,armv8-timer0can-clock 2fixed-clock,bZOAdc12v-regulator2regulator-fixedDC12V-EtOgpio-keys 2gpio-keysqdefaultkey-vol-up Volume Up :s leds 2gpio-ledsled-0 green:user4 indicator    offled-1 yellow:wlanwlan    phy0tx offled-2blue:bt bluetooth   bluetooth-power offhdmi-out2hdmi-connector^aportendpoint#Ollt9611-vdd18-regulator2regulator-fixed LT9611_1V8*B-w@Ew@ 5@Y:Oflt9611-3v32regulator-fixed LT9611_3V3*-2ZE2ZOgpcie-0-1p05v-regulator2regulator-fixed PCIE0_1.05V*-Ecam0-dvdd-1v2-regulator2regulator-fixedCAM0_DVDD_1V2-OEO: 5 qdefault*cam0-avdd-2v8-regulator2regulator-fixedCAM0_AVDD_2V8-*E*: 5 qdefault*cam3-avdd-2v8-regulator2regulator-fixedCAM3_AVDD_2V8-*E*t*vldo-3v3-regulator2regulator-fixed VLDO_3V3*-2ZE2Z 5@Z:tqdefaultOv5p0-hdmiout-regulator2regulator-fixed V5P0_HDMIOUT*B- E vbat-regulator2regulator-fixedVBAT*-@@E@@tOvbat-som-regulator2regulator-fixed VBAT_SOM*-@@E@@tOvdc-3v3-regulator2regulator-fixedVDC_3V3*-2ZE2ZtOvdc-5v-regulator2regulator-fixedVDC_5V*- E tOBvreg-s4a-1p82regulator-fixed vreg_s4a_1p8-w@Ew@tOVvph-pwr-regulator2regulator-fixedvph_pwr*O interrupt-parent#address-cells#size-cellsmodelcompatibleqcom,msm-idqcom,board-idi2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8i2c9i2c10i2c11i2c12i2c13i2c14i2c15spi0spi1spi2spi3spi4spi5spi6spi7spi8spi9spi10spi11spi12spi13spi14spi15serial0serial1stdout-path#clock-cellsclock-frequencyclock-output-namesphandledevice_typeregclocksenable-methodcapacity-dmips-mhzdynamic-power-coefficientqcom,freq-domainoperating-points-v2interconnectspower-domainspower-domain-names#cooling-cellsnext-level-cachecache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopopp-sharedopp-hzopp-peak-kBpsrequired-oppsinterrupts#power-domain-cellsdomain-idle-statesrangesno-maphwlocksqcom,client-idqcom,vmidalloc-rangessizealignmentreusableinterrupts-extendedinterrupt-namesclock-namesmemory-regionqcom,qmpqcom,smem-statesqcom,smem-state-namesstatusfirmware-namelabelqcom,remote-pidmboxesqcom,glink-channelsqcom,domainqcom,intentsqcom,protection-domain#sound-dai-cellsqcom,sd-linesiommusdirectionis-compress-daiqcom,non-secure-domainqcom,smemqcom,local-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cellsprotected-clocksbits#dma-cellsdma-channelsdma-channel-maskinterconnect-namespinctrl-namespinctrl-0dmasdma-namescs-gpiosspi-max-frequencyvdd-supplyxceiver-supplyvddio-supplyvddxo-supplyvddrf-supplyvddch0-supplymax-speedreset-gpiosvcc-supplyremote-endpointreg-nameslinux,pci-domainbus-rangenum-lanesinterrupt-map-maskinterrupt-mapiommu-mapresetsreset-namesphysphy-namesperst-gpioswake-gpiosvddpe-3v3-supply#phy-cellsassigned-clocksassigned-clock-ratesvdda-phy-supplyvdda-pll-supply#interconnect-cellsqcom,bcm-voterslanes-per-directionvcc-max-microampqcom,eeqcom,controlled-remotely#hwlock-cellsgpio-controller#gpio-cellsgpio-rangeswakeup-parentpinsfunctionbias-pull-updrive-strengthbias-pull-downbias-disableoutput-highoutput-lowqcom,halt-regsqcom,vmidsarm,scatter-gatherarm,coresight-loses-context-with-cpuvmmc-supplyvqmmc-supplybus-widthcd-gpiosslim-ifc-devqcom,micbias1-microvoltqcom,micbias2-microvoltqcom,micbias3-microvoltqcom,micbias4-microvoltvdd-buck-supplyvdd-buck-sido-supplyvdd-tx-supplyvdd-rx-supplyvdd-io-supplyqcom,dout-portsqcom,din-portsqcom,ports-sinterval-lowqcom,ports-offset1qcom,ports-offset2powerdown-gpios#thermal-sensor-cellssound-name-prefixcpusqcom,lmh-temp-arm-millicelsiusqcom,lmh-temp-low-millicelsiusqcom,lmh-temp-high-millicelsiusnvmem-cellsvdda-phy-dpdm-supplyqcom,imp-res-offset-valueqcom,hstx-trim-valueqcom,preemphasis-levelqcom,preemphasis-widthorientation-switchsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,parkmode-disable-ss-quirkdr_modepinctrl-1assigned-clock-parentsvdda-supplyqcom,dual-dsi-modeqcom,master-dsidata-lanesvdds-supplyqcom,gmuopp-level#iommu-cells#global-interruptsqcom,pdc-ranges#qcom,sensorsqcom,channelmode-bootloadermode-recoverydebouncelinux,codeio-channelsio-channel-names#io-channel-cellsgpio-line-namesdrive-push-pullqcom,drive-strengthinput-enable#pwm-cellsqcom,power-sourcecolorfunction-enumeratorlinux,default-triggerdefault-stateqcom,stream-id-range#mbox-cellsqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-s1-supplyvdd-s2-supplyvdd-s3-supplyvdd-s4-supplyvdd-s5-supplyvdd-s6-supplyvdd-s7-supplyvdd-s8-supplyvdd-s9-supplyvdd-s10-supplyvdd-s11-supplyvdd-s12-supplyvdd-s13-supplyvdd-l1-l27-supplyvdd-l2-l8-l17-supplyvdd-l3-l11-supplyvdd-l4-l5-supplyvdd-l6-supplyvdd-l7-l12-l14-l15-supplyvdd-l9-supplyvdd-l10-l23-l25-supplyvdd-l13-l19-l21-supplyvdd-l16-l28-supplyvdd-l18-l22-supplyvdd-l20-l24-supplyvdd-l26-supplyvin-lvs-1-2-supplyregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-always-onvdd-bob-supplyregulator-allow-bypassmsi-controller#msi-cellsnum-channelsqcom,num-eesframe-number#freq-domain-cellsvdd-0.8-cx-mx-supplyvdd-1.8-xo-supplyvdd-1.3-rfa-supplyvdd-3.3-ch0-supplyqcom,snoc-host-cap-8bit-quirkqcom,ath10k-calibration-variantaudio-routinglink-namesound-daipolling-delay-passivethermal-sensorstemperaturehysteresistripcooling-deviceregulator-nameautorepeatpanic-indicatorvin-supplygpioenable-active-high Y8( X  ,LG V35 ThinQ2lg,judypqcom,sdm845aliases!=/soc@0/geniqup@8c0000/i2c@880000!B/soc@0/geniqup@8c0000/i2c@884000!G/soc@0/geniqup@8c0000/i2c@888000!L/soc@0/geniqup@8c0000/i2c@88c000!Q/soc@0/geniqup@8c0000/i2c@890000!V/soc@0/geniqup@8c0000/i2c@894000![/soc@0/geniqup@8c0000/i2c@898000!`/soc@0/geniqup@8c0000/i2c@89c000!e/soc@0/geniqup@ac0000/i2c@a80000!j/soc@0/geniqup@ac0000/i2c@a84000!o/soc@0/geniqup@ac0000/i2c@a88000!u/soc@0/geniqup@ac0000/i2c@a8c000!{/soc@0/geniqup@ac0000/i2c@a90000!/soc@0/geniqup@ac0000/i2c@a94000!/soc@0/geniqup@ac0000/i2c@a98000!/soc@0/geniqup@ac0000/i2c@a9c000!/soc@0/geniqup@8c0000/spi@880000!/soc@0/geniqup@8c0000/spi@884000!/soc@0/geniqup@8c0000/spi@888000!/soc@0/geniqup@8c0000/spi@88c000!/soc@0/geniqup@8c0000/spi@890000!/soc@0/geniqup@8c0000/spi@894000!/soc@0/geniqup@8c0000/spi@898000!/soc@0/geniqup@8c0000/spi@89c000!/soc@0/geniqup@ac0000/spi@a80000!/soc@0/geniqup@ac0000/spi@a84000!/soc@0/geniqup@ac0000/spi@a88000!/soc@0/geniqup@ac0000/spi@a8c000!/soc@0/geniqup@ac0000/spi@a90000!/soc@0/geniqup@ac0000/spi@a94000!/soc@0/geniqup@ac0000/spi@a98000!/soc@0/geniqup@ac0000/spi@a9c000chosen framebuffer@9d4000002simple-framebuffer@  @ a8r8g8b8clocksxo-board 2fixed-clockI ,xo_board?sleep-clk 2fixed-clock?5cpus cpu@0Gcpu 2qcom,kryo385SZpscihc{(psci?l2-cache2cache  ?l3-cache2cache ? cpu@100Gcpu 2qcom,kryo385SZpscihc{( psci ?l2-cache2cache  ? cpu@200Gcpu 2qcom,kryo385SZpscihc{( psci ?l2-cache2cache  ? cpu@300Gcpu 2qcom,kryo385SZpscihc{(psci?l2-cache2cache  ?cpu@400Gcpu 2qcom,kryo385SZpscih{(psci?l2-cache2cache  ?cpu@500Gcpu 2qcom,kryo385SZpscih{(psci?l2-cache2cache  ?cpu@600Gcpu 2qcom,kryo385SZpscih{(psci?l2-cache2cache  ?cpu@700Gcpu 2qcom,kryo385SZpscih{(psci? l2-cache2cache  ?cpu-mapcluster0core0#core1#core2#core3#core4#core5#core6#core7# idle-states'pscicpu-sleep-0-02arm,idle-state4little-rail-power-collapseD@[^l|b?'cpu-sleep-1-02arm,idle-state4big-rail-power-collapseD@[lm|?(domain-idle-statescluster-sleep-02domain-idle-stateDAD[ l|'?)firmwarescm2qcom,scm-sdm845qcom,scmmemory@80000000Gmemoryopp-table-cpu02operating-points-v2?opp-300000000 5I>opp-403200000X 5I>opp-4800000008 5bpopp-576000000"U 5bpopp-652800000& 5u0opp-748800000,opp-82560000015opp-9024000005Ɉ`opp-979200000:]hopp-1056000000>Hopp-1132800000C(!b@opp-1228800000I>!bopp-1324800000N!b opp-1420800000T.opp-1516800000Zh.'Popp-1612800000`!`>'Popp-1689600000d@>>opp-1766400000iI >V0opp-table-cpu42operating-points-v2?opp-300000000 5I>opp-403200000X 5I>opp-4800000008I>opp-576000000"UI>opp-652800000&I>opp-748800000,I>opp-82560000015!bopp-9024000005Ɉ!bopp-979200000:]h!bopp-1056000000>H.opp-1132800000C(.opp-1209600000H>opp-1286400000L>opp-1363200000Q@>opp-1459200000V>opp-1536000000[Ropp-1612800000`!`Ropp-1689600000d@R'Popp-1766400000iI ^'Popp-1843200000m^'Popp-1920000000rpn'Popp-1996800000wn>opp-2092800000|n>opp-2169600000Qxn>opp-2246400000Xn>opp-2323200000y8n>opp-2400000000 nV0opp-2476800000nV0opp-25536000004nV0opp-2649600000nV0opp-2745600000nopp-2803200000pnopp-table-dsi2operating-points-v2?opp-19200000$!opp-180000000 "opp-275000000d*#opp-328580000$opp-358000000V%opp-table-qspi2operating-points-v2?opp-19200000$!opp-100000000"opp-150000000р#opp-300000000%opp-table-qup2operating-points-v2?=opp-50000000!opp-75000000xh"opp-100000000#opp-128000000 %pmu2arm,armv8-pmuv3 psci 2arm,psci-1.0asmcpower-domain-cpu0&'?power-domain-cpu1&'? power-domain-cpu2&'? power-domain-cpu3&'?power-domain-cpu4&(?power-domain-cpu5&(?power-domain-cpu6&(?power-domain-cpu7&(?power-domain-cluster)?&reserved-memory hyp-mem@85700000p`xbl-mem@85e00000aop-mem@85fc0000aop-cmd-db-mem@85fe0000 2qcom,cmd-dbsmem@86000000 2qcom,smem *tz@86200000 camera-mem@8bf00000Pipa-gsi@8c410000APmpss-metadata @?fastrpc2shared-dma-pool @)?memory@b2000000memory@8c415000AP ?memory@8c400000@memory@8c500000P?-memory@8e3000000?memory@8e400000@?memory@96d00000P?memory@97200000 ?3memory@97a00000 ?memory@97c00000@?memory@99000000memory@9d400000@@memory@f0800000memory@f08010002qcom,rmtfs-mem 2Amemory@f0a01000remoteproc-adsp2qcom,sdm845-adsp-pas@K++++#_wdogfatalreadyhandoverstop-ackS,oxo{-./stopokayqcom/sdm845/judyp/adsp.mbnglink-edge lpass0apr 2qcom,apr-v2apr_audio_svc  service@3 2qcom,q6coreavs/audiomsm/adsp/audio_pdservice@4 2qcom,q6afeavs/audiomsm/adsp/audio_pddais2qcom,q6afe-dais /service@7 2qcom,q6asmavs/audiomsm/adsp/audio_pddais2qcom,q6asm-dais / @1!service@8 2qcom,q6admavs/audiomsm/adsp/audio_pdrouting2qcom,q6adm-routing/fastrpc 2qcom,fastrpcfastrpcglink-apps-dspadspG compute-cb@32qcom,fastrpc-compute-cb @1#compute-cb@42qcom,fastrpc-compute-cb @1$remoteproc-cdsp2qcom,sdm845-cdsp-pas@KB2222#_wdogfatalreadyhandoverstop-ackS,oxo{3.4stopokayqcom/sdm845/judyp/cdsp.mbnglink-edge >turing0fastrpc 2qcom,fastrpcfastrpcglink-apps-dspcdspG compute-cb@12qcom,fastrpc-compute-cb @10compute-cb@22qcom,fastrpc-compute-cb @10compute-cb@32qcom,fastrpc-compute-cb @10compute-cb@42qcom,fastrpc-compute-cb @10compute-cb@52qcom,fastrpc-compute-cb @10compute-cb@62qcom,fastrpc-compute-cb @10compute-cb@72qcom,fastrpc-compute-cb @10compute-cb@82qcom,fastrpc-compute-cb @10smp2p-cdsp 2qcom,smp2p^^ @0hmaster-kernelwmaster-kernel?4slave-kernel wslave-kernel?2smp2p-lpass 2qcom,smp2p^ 0 hmaster-kernelwmaster-kernel?/slave-kernel wslave-kernel?+smp2p-mpss 2qcom,smp2p^ 0hmaster-kernelwmaster-kernel?slave-kernel wslave-kernel?ipa-ap-to-modemwipa?}ipa-modem-to-apwipa?{smp2p-slpi 2qcom,smp2p^ 0hmaster-kernelwmaster-kernel?slave-kernel wslave-kernel?soc@0  2simple-busclock-controller@1000002qcom,gcc-sdm845S,,567=obi_tcxobi_tcxo_aosleep_clkpcie_0_pipe_clkpcie_1_pipe_clk8?9qfprom@7840002qcom,sdm845-qfpromqcom,qfpromx@ hstx-trim-primary@1eb?hstx-trim-secondary@1eb?rng@793000 2qcom,prng-eey0S9@ocoredma-controller@8000002qcom,sdm845-gpi-dma   @1 disabled?>geniqup@8c00002qcom,geni-se-qup` om-ahbs-ahbS9d9e @1 : ; qup-core disabledi2c@8800002qcom,geni-i2c@oseS9D.default<< Y 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8800002qcom,geni-spi@oseS9D.default<? Y 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8800002qcom,geni-uart@oseS9D.default<@ Y8=0: ;;qup-corequp-config disabledi2c@8840002qcom,geni-i2c@@oseS9F.default<A Z 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8840002qcom,geni-spi@@oseS9F.default<B Z 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8840002qcom,geni-uart@@oseS9F.default<C Z8=0: ;;qup-corequp-config disabledi2c@8880002qcom,geni-i2c@oseS9H.default<D [ 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8880002qcom,geni-spi@oseS9H.default<E [ 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8880002qcom,geni-uart@oseS9H.default<F [8=0: ;;qup-corequp-config disabledi2c@88c0002qcom,geni-i2c@oseS9J.default<G \ 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@88c0002qcom,geni-spi@oseS9J.default<H \ 0: ;;qup-corequp-config F>>Ktxrx disabledserial@88c0002qcom,geni-uart@oseS9J.default<I \8=0: ;;qup-corequp-config disabledi2c@8900002qcom,geni-i2c@oseS9L.default<J ] 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8900002qcom,geni-spi@oseS9L.default<K ] 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8900002qcom,geni-uart@oseS9L.default<L ]8=0: ;;qup-corequp-config disabledi2c@8940002qcom,geni-i2c@@oseS9N.default<M ^ 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8940002qcom,geni-spi@@oseS9N.default<N ^ 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8940002qcom,geni-uart@@oseS9N.default<O ^8=0: ;;qup-corequp-config disabledi2c@8980002qcom,geni-i2c@oseS9P.default<P _ 8=H: ;;: qup-corequp-configqup-memory F>>Ktxrx disabledspi@8980002qcom,geni-spi@oseS9P.default<Q _ 0: ;;qup-corequp-config F>>Ktxrx disabledserial@8980002qcom,geni-uart@oseS9P.default<R _8=0: ;;qup-corequp-config disabledi2c@89c0002qcom,geni-i2c@oseS9R.default<S ` 8= disabledspi@89c0002qcom,geni-spi@oseS9R.default<T ` 0: ;;qup-corequp-config F>>Ktxrx disabledserial@89c0002qcom,geni-uart@oseS9R.default<U `8=0: ;;qup-corequp-config disableddma-controller@a000002qcom,sdm845-gpi-dma%&'()*+   @1 disabled?Xgeniqup@ac00002qcom,geni-se-qup` om-ahbs-ahbS9f9g @1 V ; qup-core disabledi2c@a800002qcom,geni-i2c@oseS9T.default<W a 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a800002qcom,geni-spi@oseS9T.default<Y a 0V ;;qup-corequp-config FXXKtxrx disabledserial@a800002qcom,geni-uart@oseS9T.default<Z a8=0V ;;qup-corequp-config disabledi2c@a840002qcom,geni-i2c@@oseS9V.default<[ b 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a840002qcom,geni-spi@@oseS9V.default<\ b 0V ;;qup-corequp-config FXXKtxrx disabledserial@a840002qcom,geni-debug-uart@@oseS9V.default<] b8=0V ;;qup-corequp-config disabledi2c@a880002qcom,geni-i2c@oseS9X.default<^ c 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a880002qcom,geni-spi@oseS9X.default<_ c 0V ;;qup-corequp-config FXXKtxrx disabledserial@a880002qcom,geni-uart@oseS9X.default<` c8=0V ;;qup-corequp-config disabledi2c@a8c0002qcom,geni-i2c@oseS9Z.default<a d 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a8c0002qcom,geni-spi@oseS9Z.default<b d 0V ;;qup-corequp-config FXXKtxrx disabledserial@a8c0002qcom,geni-uart@oseS9Z.default<c d8=0V ;;qup-corequp-config disabledi2c@a900002qcom,geni-i2c@oseS9\.default<d e 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a900002qcom,geni-spi@oseS9\.default<e e 0V ;;qup-corequp-config FXXKtxrx disabledserial@a900002qcom,geni-uart@oseS9\.default<f e8=0V ;;qup-corequp-config disabledi2c@a940002qcom,geni-i2c@@oseS9^.default<g f 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a940002qcom,geni-spi@@oseS9^.default<h f 0V ;;qup-corequp-config FXXKtxrx disabledserial@a940002qcom,geni-uart@@oseS9^.default<i f8=0V ;;qup-corequp-config disabledi2c@a980002qcom,geni-i2c@oseS9`.default<j g 8=HV ;;V qup-corequp-configqup-memory FXXKtxrx disabledspi@a980002qcom,geni-spi@oseS9`.default<k g 0V ;;qup-corequp-config FXXKtxrx disabledserial@a980002qcom,geni-uart@oseS9`.default<l g8=0V ;;qup-corequp-config disabledi2c@a9c0002qcom,geni-i2c@oseS9b.default<m h 8= disabledHV ;;V qup-corequp-configqup-memory FXXKtxrxspi@a9c0002qcom,geni-spi@oseS9b.default<n h 0V ;;qup-corequp-config FXXKtxrx disabledserial@a9c0002qcom,geni-uart@oseS9b.default<o h8=0V ;;qup-corequp-config disabledsystem-cache-controller@11000002qcom,sdm845-llccPP (0@Ullcc0_basellcc1_basellcc2_basellcc3_basellcc_broadcast_base Fdma@10a20002qcom,sdm845-dccqcom,dcc   pmu@114a0002qcom,sdm845-llcc-bwmon D popp-table2operating-points-v2?popp-0 5opp-1opp-2.opp-3Ropp-4npmu@1436400(2qcom,sdm845-cpu-bwmonqcom,sdm845-bwmonCd E qopp-table2operating-points-v2?qopp-0I>opp-1opp-2opp-3>opp-4pcie@1c000002qcom,pcie-sdm845P `` `pUparfdbielbiconfigmhiGpci_pz 8` `0`0 _msi8S9.9)9+9-9/9090opipeauxcfgbus_masterbus_slaveslave_q2atbu111111111 1 1 1 1 1119pci96pciephy disabledpcie@0Gpcip phy@1c060002qcom,sdm845-qmp-pcie-phy`(S999+9,9:9.oauxcfg_ahbrefrefgenpipe,pcie_0_pipe_clk9phy9: disabled?6pcie@1c080002qcom,pcie-sdm845P @@ @UparfdbielbiconfigmhiGpci_pz 8@ @0@0 3_msi@S9691939597989494opipeauxcfgbus_masterbus_slaveslave_q2areftbu91$111111111 1  1  1  1  1 119pci97pciephy disabledpcie@0Gpcip phy@1c0a0002qcom,sdm845-qhp-pcie-phy (S9993949:96oauxcfg_ahbrefrefgenpipe,pcie_1_pipe_clk9phy9: disabled?7interconnect@13800002qcom,sdm845-mem-noc8rr?interconnect@14e00002qcom,sdm845-dc-nocNrinterconnect@15000002qcom,sdm845-config-nocPPr?;interconnect@16200002qcom,sdm845-system-nocbr?|interconnect@16e00002qcom,sdm845-aggre1-nocnPr?:interconnect@17000002qcom,sdm845-aggre2-nocpr?Vinterconnect@17400002qcom,sdm845-mmss-noctr?ufshc@1d84000+2qcom,sdm845-ufshcqcom,ufshcjedec,ufs-2.0 @%Ustdice  sufsphy%99rst @1{ocore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkrx_lane1_sync_clkice_core_clkHS9999,9999t0:;(ufs-ddrcpu-ufsokay 9uEvP '?wopp-table2operating-points-v2?topp-50000000H<4`xh"opp-200000000H р%phy@1d870002qcom,sdm845-qmp-ufs-phypS,99orefref_auxqref9wufsphyokayaxqy?sdma-controller@1dc4000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@@ S,obam_clk0@1111?zcrypto@1dfa0002qcom,crypto-v5.4ߠ`S9 9 ,oifacebuscoreFzzKrxtx0@1111ipa@1e400002qcom,sdm845-ipa@1 1"0pp @Uipa-regipa-sharedgsi8K7{{(_ipagsiipa-clock-queryipa-setup-readyS, ocoreHVV| ;memoryimemconfig}}*ipa-clock-enabled-validipa-clock-enabledokaymodemhwlock@1f400002qcom,tcsr-mutex?*syscon@1f600002qcom,sdm845-tcsrsyscon?pinctrl@34000002qcom,sdm845-pinctrl@ u~Q?ucci0-default-state gpio17gpio18cci_i2c&?cci0-sleep-state gpio17gpio18cci_i2c&5?cci1-default-state gpio19gpio20cci_i2c&?cci1-sleep-state gpio19gpio20cci_i2c&5?qspi-clk-state gpio95 qspi_clkqspi-cs0-state gpio90qspi_csqspi-cs1-state gpio89qspi_csqspi-data0-state gpio91 qspi_dataqspi-data1-state gpio92 qspi_dataqspi-data23-state gpio93gpio94 qspi_dataqup-i2c0-default-state  gpio0gpio1qup0?<qup-i2c1-default-state gpio17gpio18qup1?Aqup-i2c2-default-state gpio27gpio28qup2?Dqup-i2c3-default-state gpio41gpio42qup3?Gqup-i2c4-default-state gpio89gpio90qup4?Jqup-i2c5-default-state gpio85gpio86qup5?Mqup-i2c6-default-state gpio45gpio46qup6?Pqup-i2c7-default-state gpio93gpio94qup7?Squp-i2c8-default-state gpio65gpio66qup8?Wqup-i2c9-default-state  gpio6gpio7qup9?[qup-i2c10-default-state gpio55gpio56qup10?^qup-i2c11-default-state gpio31gpio32qup11?aqup-i2c12-default-state gpio49gpio50qup12?dqup-i2c13-default-state gpio105gpio106qup13?gqup-i2c14-default-state gpio33gpio34qup14?jqup-i2c15-default-state gpio81gpio82qup15?mqup-spi0-default-state gpio0gpio1gpio2gpio3qup0??qup-spi1-default-state gpio17gpio18gpio19gpio20qup1?Bqup-spi2-default-state gpio27gpio28gpio29gpio30qup2?Equp-spi3-default-state gpio41gpio42gpio43gpio44qup3?Hqup-spi4-default-state gpio89gpio90gpio91gpio92qup4?Kqup-spi5-default-state gpio85gpio86gpio87gpio88qup5?Nqup-spi6-default-state gpio45gpio46gpio47gpio48qup6?Qqup-spi7-default-state gpio93gpio94gpio95gpio96qup7?Tqup-spi8-default-state gpio65gpio66gpio67gpio68qup8?Yqup-spi9-default-state gpio6gpio7gpio4gpio5qup9?\qup-spi10-default-state gpio55gpio56gpio53gpio54qup10?_qup-spi11-default-state gpio31gpio32gpio33gpio34qup11?bqup-spi12-default-state gpio49gpio50gpio51gpio52qup12?equp-spi13-default-state  gpio105gpio106gpio107gpio108qup13?hqup-spi14-default-state gpio33gpio34gpio31gpio32qup14?kqup-spi15-default-state gpio81gpio82gpio83gpio84qup15?nqup-uart0-default-state?@tx-pins gpio2qup0rx-pins gpio3qup0qup-uart1-default-state?Ctx-pins gpio19qup1rx-pins gpio20qup1qup-uart2-default-state?Ftx-pins gpio29qup2rx-pins gpio30qup2qup-uart3-default-state?Itx-pins gpio43qup3rx-pins gpio44qup3qup-uart3-4pin-statects-pins gpio41qup3rts-tx-pins gpio42gpio43qup3rx-pins gpio44qup3qup-uart4-default-state?Ltx-pins gpio91qup4rx-pins gpio92qup4qup-uart5-default-state?Otx-pins gpio87qup5rx-pins gpio88qup5qup-uart6-default-state?Rtx-pins gpio47qup6rx-pins gpio48qup6qup-uart6-4pin-statects-pins gpio45qup65rts-tx-pins gpio46gpio47qup6&Drx-pins gpio48qup6qup-uart7-default-state?Utx-pins gpio95qup7rx-pins gpio96qup7qup-uart8-default-state?Ztx-pins gpio67qup8rx-pins gpio68qup8qup-uart9-default-state?]tx-pins gpio4qup9rx-pins gpio5qup9qup-uart10-default-state?`tx-pins gpio53qup10rx-pins gpio54qup10qup-uart11-default-state?ctx-pins gpio33qup11rx-pins gpio34qup11qup-uart12-default-state?ftx-pins gpio51qup0rx-pins gpio52qup0qup-uart13-default-state?itx-pins gpio107qup13rx-pins gpio108qup13qup-uart14-default-state?ltx-pins gpio31qup14rx-pins gpio32qup14qup-uart15-default-state?otx-pins gpio83qup15rx-pins gpio84qup15quat-mi2s-sleep-state gpio58gpio59gpio&5quat-mi2s-active-state gpio58gpio59 qua_mi2s&DQquat-mi2s-sd0-sleep-state gpio60gpio&5quat-mi2s-sd0-active-state gpio60 qua_mi2s&Dquat-mi2s-sd1-sleep-state gpio61gpio&5quat-mi2s-sd1-active-state gpio61 qua_mi2s&Dquat-mi2s-sd2-sleep-state gpio62gpio&5quat-mi2s-sd2-active-state gpio62 qua_mi2s&Dquat-mi2s-sd3-sleep-state gpio63gpio&5quat-mi2s-sd3-active-state gpio63 qua_mi2s&Dsdc2-clk-state  sdc2_clkD&?sdc2-cmd-state  sdc2_cmd&?sdc2-data-state  sdc2_data&?sd-card-det-n-state gpio126gpio?remoteproc@40800002qcom,sdm845-mss-pil H Uqdsp6rmbLK 0_wdogfatalreadyhandoverstop-ackshutdown-ack@S9$9'99%9(9&9@,2oifacebusmemgpll0_msssnoc_aximnoc_axiprngxo.stop mss_restartpdc_reset]0P@888 cxmxmssokay6qcom/sdm845/judyp/mba.mbnqcom/sdm845/judyp/modem.mbnmba{mpss{metadata{glink-edge modem0 clock-controller@50900002qcom,sdm845-gpucc S,99 8obi_tcxogcc_gpu_gpll0_clk_srcgcc_gpu_gpll0_div_clk_src?remoteproc@5c000002qcom,sdm845-slpi-pas@@K#_wdogfatalreadyhandoverstop-ackS,oxo.88lcxlmx{stop disabledglink-edge dsps0fastrpc 2qcom,fastrpcfastrpcglink-apps-dspsdspGl{ compute-cb@02qcom,fastrpc-compute-cbstm@6002000 2arm,coresight-stmarm,primecell  (Ustm-basestm-stimulus-baseS. oapb_pclkout-portsportendpointw?funnel@6041000+2arm,coresight-dynamic-funnelarm,primecellS. oapb_pclkout-portsportendpointw?in-ports port@7endpointw?funnel@6043000+2arm,coresight-dynamic-funnelarm,primecell0S. oapb_pclkout-portsportendpointw?in-ports port@5endpointw?funnel@6045000+2arm,coresight-dynamic-funnelarm,primecellPS. oapb_pclkout-portsportendpointw?in-ports port@0endpointw?port@2endpointw?replicator@6046000/2arm,coresight-dynamic-replicatorarm,primecell`S. oapb_pclkout-portsportendpointw?in-portsportendpointw?etf@6047000 2arm,coresight-tmcarm,primecellpS. oapb_pclkout-portsportendpointw?in-portsportendpointw?etr@6048000 2arm,coresight-tmcarm,primecellS. oapb_pclkin-portsportendpointw?etm@7040000"2arm,coresight-etm4xarm,primecell#S. oapb_pclkout-portsportendpointw?etm@7140000"2arm,coresight-etm4xarm,primecell#S. oapb_pclkout-portsportendpointw?etm@7240000"2arm,coresight-etm4xarm,primecell$#S. oapb_pclkout-portsportendpointw?etm@7340000"2arm,coresight-etm4xarm,primecell4#S. oapb_pclkout-portsportendpointw?etm@7440000"2arm,coresight-etm4xarm,primecellD#S. oapb_pclkout-portsportendpointw?etm@7540000"2arm,coresight-etm4xarm,primecellT#S. oapb_pclkout-portsportendpointw?etm@7640000"2arm,coresight-etm4xarm,primecelld#S. oapb_pclkout-portsportendpointw?etm@7740000"2arm,coresight-etm4xarm,primecellt# S. oapb_pclkout-portsportendpointw?funnel@7800000+2arm,coresight-dynamic-funnelarm,primecellS. oapb_pclkout-portsportendpointw?in-ports port@0endpointw?port@1endpointw?port@2endpointw?port@3endpointw?port@4endpointw?port@5endpointw?port@6endpointw?port@7endpointw?funnel@7810000+2arm,coresight-dynamic-funnelarm,primecellS. oapb_pclkout-portsportendpointw?in-portsportendpointw?mmc@8804000$2qcom,sdm845-sdhciqcom,sdhci-msm-v5@_hc_irqpwr_irqS9h9i,oifacecorexo @18okay u~.default<opp-table2operating-points-v2?opp-9600000|!opp-19200000$"opp-100000000#opp-201500000 `$spi@88df0002qcom,sdm845-qspiqcom,qspi-v1 @1`  RS99 oifacecore8 disabledslim-ngd@171c00002qcom,slim-ngd-v2.1.0 FKrxtx @1  disabledlmh@17d708002qcom,sdm845-lmh !q$$s?lmh@17d788002qcom,sdm845-lmh׈  q$$s?phy@88e2000(2qcom,sdm845-qusb2-phyqcom,qusb2-v2-phy okayS9, ocfg_ahbref9DPxq[p?phy@88e3000(2qcom,sdm845-qusb2-phyqcom,qusb2-v2-phy0 disabledS9, ocfg_ahbref9 D?phy@88e80002qcom,sdm845-qmp-usb3-dp-phy0okay(S99999"oauxrefcom_auxusb3_pipecfg_ahb99 phycommonayqx?ports port@0endpointport@1endpointw?port@2endpointw?phy@88eb0002qcom,sdm845-qmp-usb3-uni-phy(S99999oauxcfg_ahbrefcom_auxpipe,usb3_uni_phy_pipe_clk_src99 phyphy_phy disabled?usb@a6f88002qcom,sdm845-dwc3qcom,dwc3 ookay (S9 9999#ocfg_noccoreifacesleepmock_utmi99$рDK~ ~~<_pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq990V;)usb-ddrapps-usbusb@a600000 2snps,dwc3 `  @1@  usb2-phyusb3-phy 0peripheralports port@0endpointport@1endpointw?usb@a8f88002qcom,sdm845-dwc3qcom,dwc3  disabled (S9 9999#ocfg_noccoreifacesleepmock_utmi99$рDK~ ~ ~<_pwr_evenths_phy_irqdp_hs_phy_irqdm_hs_phy_irqss_phy_irq990V;*usb-ddrapps-usbusb@a800000 2snps,dwc3   @1` usb2-phyusb3-phyvideo-codec@aa000002qcom,sdm845-venus-v2   8venusvcodec0vcodec1cx8S  Aocoreifacebusvcodec0_corevcodec0_busvcodec1_corevcodec1_bus@11{0;+video-memcpu-cfg disabledvideo-core02venus-decodervideo-core12venus-encoderopp-table2operating-points-v2?opp-100000000!opp-200000000 "opp-320000000#opp-380000000W$opp-444000000v%opp-533000097clock-controller@ab000002qcom,sdm845-videocc S,obi_tcxo?camss@acb30002qcom,sdm845-camss 0 ˠ ̀ P ` p ƀ @ `@ @@EUcsid0csid1csid2csiphy0csiphy1csiphy2csiphy3vfe0vfe1vfe_litexE_csid0csid1csid2csiphy0csiphy1csiphy2csiphy3vfe0vfe1vfe_lite S %&,-23  99RS!"$#()+*/10ocamnoc_axicpas_ahbcphy_rx_srccsi0csi0_srccsi1csi1_srccsi2csi2_srccsiphy0csiphy0_timercsiphy0_timer_srccsiphy1csiphy1_timercsiphy1_timer_srccsiphy2csiphy2_timercsiphy2_timer_srccsiphy3csiphy3_timercsiphy3_timer_srcgcc_camera_ahbgcc_camera_axislow_ahb_srcsoc_ahbvfe0_axivfe0vfe0_cphy_rxvfe0_srcvfe1_axivfe1vfe1_cphy_rxvfe1_srcvfe_litevfe_lite_cphy_rxvfe_lite_src0@111 1  disabledports port@0port@1port@2port@3cci@ac4a000!2qcom,sdm845-cciqcom,msm8996-cci  Ġ@ 0SSR 5ocamnoc_axisoc_ahbslow_ahb_srccpas_ahbccicci_srcĴ<4`.defaultsleep< 8 disabledi2c-bus@0B@ i2c-bus@1B@ clock-controller@ad000002qcom,sdm845-camcc S,obi_tcxo?display-subsystem@ae000002qcom,sdm845-mdss UmdssS  oifacecore S0mdp0-memmdp1-mem@11  disabled ?display-controller@ae010002qcom,sdm845-dpu   Umdpvbif(S9 ogcc-busifacebuscorevsync$8ports port@0endpointw?port@1endpointw?port@2endpointw?opp-table2operating-points-v2?opp-19200000$!opp-171428571 7"opp-344000000$opp-430000000G%displayport-controller@ae90000 disabled2qcom,sdm845-dpP      (S "%;ocore_ifacecore_auxctrl_linkctrl_link_ifacestream_pixel!& Bdp8ports port@0endpointw?port@1endpointw?opp-table2operating-points-v2?opp-162000000 "opp-270000000߀#opp-540000000 /$opp-8100000000G%dsi@ae94000(2qcom,sdm845-dsi-ctrlqcom,mdss-dsi-ctrl @ Udsi_ctrl0S$obytebyte_intfpixelcoreifacebus B8 disabled ports port@0endpointw?port@1endpointphy@ae944002qcom,dsi-phy-10nm0 D F JUdsi_phydsi_phy_lanedsi_pllS, oifaceref disabled?dsi@ae96000(2qcom,sdm845-dsi-ctrlqcom,mdss-dsi-ctrl ` Udsi_ctrl0S $obytebyte_intfpixelcoreifacebus B8 disabled ports port@0endpointw?port@1endpointphy@ae964002qcom,dsi-phy-10nm0 d f jUdsi_phydsi_phy_lanedsi_pllS, oifaceref disabled?gpu@50000002qcom,adreno-630.2qcom,adreno  Ukgsl_3d0_reg_memorycx_mem ,@ Ygfx-memokay?opp-table2operating-points-v2?opp-710000000*Q bnopp-675000000(; bnopp-596000000#= b@^opp-520000000 b^opp-414000000# b>opp-342000000b b)opp-257000000Q@ b@%zap-shader{qcom/sdm845/judyp/a630_zap.mbniommu@504000022qcom,sdm845-smmu-v2qcom,adreno-smmuqcom,smmu-v2 l yxlmnopqrsS9!9 obusiface?gmu@506a000&2qcom,adreno-gmu-630.2qcom,adreno-gmu0 ( HUgmugmu_pdcgmu_pdc_seq01_hfigmu S99!ogmucxoaximemnoccxgx@ disabled?opp-table2operating-points-v2?opp-400000000ׄ bopp-200000000  b0clock-controller@af000002qcom,sdm845-dispcc HS,99obi_tcxogcc_disp_gpll0_clk_srcgcc_disp_gpll0_div_clk_srcdsi0_phy_pll_out_byteclkdsi0_phy_pll_out_dsiclkdsi1_phy_pll_out_byteclkdsi1_phy_pll_out_dsiclkdp_link_clk_divsel_tendp_vco_divided_clk_src_mux disabled?interrupt-controller@b2200002qcom,sdm845-pdcqcom,pdc "$ ^^asv?~reset-controller@b2e00002qcom,sdm845-pdc-global .?thermal-sensor@c263000 2qcom,sdm845-tsensqcom,tsens-v2 &0 "  _uplowcritical ?thermal-sensor@c265000 2qcom,sdm845-tsensqcom,tsens-v2 &P "0 _uplowcritical ?reset-controller@c2a00002qcom,sdm845-aoss-cc *?power-management@c300000#2qcom,sdm845-aoss-qmpqcom,aoss-qmp 0 0?.cxebisram@c3f00002qcom,sdm845-rpmh-stats ?spmi@c4400002qcom,spmi-pmic-arbP D ``p @`Ucorechnlsobsrvrintrcnfg _periph_irq   pmic@02qcom,pm8998qcom,spmi-pmic pon@8002qcom,pm8998-pon  pwrkey2qcom,pm8941-pwrkey =  tresin2qcom,pm8941-resin = okay rtemp-alarm@24002qcom,spmi-temp-alarm$$  thermal ?charger@2800*2qcom,pm8998-coincellqcom,pm8941-coincell( disabledadc@31002qcom,spmi-adc-rev211  ?channel@6 die_tempadc-tm@34002qcom,spmi-adc-tm-hc44   disabledrtc@60002qcom,pm8941-rtc`a Urtcalarmagpio@c000 2qcom,pm8998-gpioqcom,spmi-gpio?vol-up-active-state gpio6normal . ;?pmic@12qcom,pm8998qcom,spmi-pmic pmic@22qcom,pmi8998qcom,spmi-pmic charger@10002qcom,pmi8998-charger@-_usb-pluginbat-ovwdog-barkusbin-icl-change  usbin_iusbin_v disabledgpio@c000!2qcom,pmi8998-gpioqcom,spmi-gpio?adc@45002qcom,pmi8998-rradcE ?pmic@32qcom,pmi8998qcom,spmi-pmic labibb2qcom,pmi8998-lab-ibbibb  _sc-errocplab  _sc-errocppwm2qcom,pmi8998-lpg  O disabledled-controller@d300+2qcom,pmi8998-flash-ledqcom,spmi-flash-led disabledleds@d8002qcom,pmi8998-wled  _ovpshort backlight disabledsram@146bf000#2qcom,sdm845-imemsysconsimple-mfdk kpil-reloc@94c2qcom,pil-reloc-info Liommu@15000000!2qcom,sdm845-smmu-500arm,mmu-500 l y A`abcdefghijklmnopqrstuv;<=>?@ABCDEFGHIJKLMNOPQRSTUVW?1tbu@150c50002qcom,sdm845-tbu P|;9 Z1tbu@150c90002qcom,sdm845-tbu |;9  Z1tbu@150cd0002qcom,sdm845-tbu  9  Z1tbu@150d10002qcom,sdm845-tbu  9  Z1 tbu@150d50002qcom,sdm845-tbu P 9  Z1tbu@150d90002qcom,sdm845-tbu |; Z1tbu@150dd0002qcom,sdm845-tbu |;9 Z1tbu@150e10002qcom,sdm845-tbuS9|;9 Z1clock-controller@170140002qcom,sdm845-lpasscc @0 Uccqdsp6ss disabledinterconnect@179000002qcom,sdm845-gladiator-nocЀr?watchdog@17980000#2qcom,apss-wdt-sdm845qcom,kpss-wdtS5 mailbox@179900002qcom,sdm845-apss-shared o?0rsc@179c0000 apps_rsc2qcom,rpmh-rsc0Udrv-0drv-1drv-2$ {   &bcm-voter2qcom,bcm-voter?rclock-controller2qcom,sdm845-rpmh-clkoxoS?,power-controller2qcom,sdm845-rpmhpd?8opp-table2operating-points-v2?opp1 bopp2 b0?!opp3 b@?"opp4 b?#opp5 b?$opp6 b?%opp7 b@opp8 bPopp9 b?opp10 bregulators-02qcom,pm8998-rpmh-regulators a         $ 2 A P _ n          / B U dsmps2 w smps3 w@ @?smps5 w   ?smps7 w  ?ldo1 w m m ?xldo2 wO O  ldo3 wB@ B@ ldo5 w 5 5 ldo6 wR R ldo7 ww@ w@ ldo8 wO   ldo9 w@ , ldo10 w@ , ldo11 wB@  ldo12 ww@ w@ ?ldo13 ww@ -* ?ldo14 ww@  ldo15 ww@ w@ ldo17 w  ldo18 w)B -* ldo20 w)B -* ?vldo21 w)B -* ?ldo22 w* * ldo23 w- 2 ldo24 w/ / ?ldo25 w- 2 ldo26 wO O ?yldo28 ww@ w@ lvs1 ww@ w@lvs2 ww@ w@regulators-12qcom,pmi8998-rpmh-regulators b bob w2 6  ?regulators-22qcom,pm8005-rpmh-regulators c    smps3 w ' 'interrupt-controller@17a00000 2arm,gic-v3    ?msi-controller@17a400002arm,gic-v3-its   disableddma-controller@17184000 2qcom,bam-v1.7.4qcom,bam-v1.7.0@    @1?timer@17c90000  2arm,armv7-timer-memframe@17ca0000 ,frame@17cc0000 ,  disabledframe@17cd0000 ,   disabledframe@17ce0000 ,   disabledframe@17cf0000 ,   disabledframe@17d00000 ,   disabledframe@17d10000 ,   disabledinterconnect@17d410002qcom,sdm845-osm-l3qcom,osm-l3S,9 oxoalternate?cpufreq@17d43000'2qcom,sdm845-cpufreq-hwqcom,cpufreq-hw 0XUfreq-domain0freq-domain1KS,9 oxoalternate 9?wifi@188000002qcom,wcn3990-wifi disabledUmembase{ocxo_ref_clk_pinS, @1@soundthermal-zonescpu0-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu1-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu2-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu3-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu4-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu5-thermal L btripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu6-thermal L b tripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalcpu7-thermal L b tripstrip-point0 r_ ~Npassivetrip-point1 rs ~Npassivecpu-crit r ~ Ncriticalaoss0-thermal L btripstrip-point0 r_ ~Nhotcluster0-thermal L btripstrip-point0 r_ ~Nhotcluster0-crit r ~ Ncriticalcluster1-thermal L btripstrip-point0 r_ ~Nhotcluster1-crit r ~ Ncriticalgpu-top-thermal L b cooling-mapsmap0  tripstrip-point0 rL ~Npassive?trip-point1 r_ ~Nhottrip-point2 r ~ Ncriticalgpu-bottom-thermal L b cooling-mapsmap0  tripstrip-point0 rL ~Npassive?trip-point1 r_ ~Nhottrip-point2 r ~ Ncriticalaoss1-thermal L btripstrip-point0 r_ ~Nhotq6-modem-thermal L btripstrip-point0 r_ ~Nhotmem-thermal L btripstrip-point0 r_ ~Nhotwlan-thermal L btripstrip-point0 r_ ~Nhotq6-hvx-thermal L btripstrip-point0 r_ ~Nhotcamera-thermal L btripstrip-point0 r_ ~Nhotvideo-thermal L btripstrip-point0 r_ ~Nhotmodem-thermal L btripstrip-point0 r_ ~Nhotpm8998-thermal L btripspm8998-alert0 r( ~Npassivepm8998-crit rH ~ Ncriticaltimer2arm,armv8-timer0gpio-keys 2gpio-keys.default< GPIO Buttonskey-vol-up Volume up s ?vph-pwr-regulator2regulator-fixed vph_pwr w8u  8u ?pm8998-smps4-regulator2regulator-fixed vreg_s4a_1p8 ww@ w@   ? interrupt-parent#address-cells#size-cellsmodelcompatiblei2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8i2c9i2c10i2c11i2c12i2c13i2c14i2c15spi0spi1spi2spi3spi4spi5spi6spi7spi8spi9spi10spi11spi12spi13spi14spi15rangesregwidthheightstrideformat#clock-cellsclock-frequencyclock-output-namesphandledevice_typeclocksenable-methodcapacity-dmips-mhzdynamic-power-coefficientqcom,freq-domainoperating-points-v2interconnectspower-domainspower-domain-names#cooling-cellsnext-level-cachecache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stopopp-sharedopp-hzopp-peak-kBpsrequired-oppsinterrupts#power-domain-cellsdomain-idle-statesno-maphwlocksalloc-rangessizealignmentreusableqcom,client-idqcom,vmidinterrupts-extendedinterrupt-namesclock-namesmemory-regionqcom,qmpqcom,smem-statesqcom,smem-state-namesstatusfirmware-namelabelqcom,remote-pidmboxesqcom,glink-channelsqcom,domainqcom,intentsqcom,protection-domain#sound-dai-cellsiommusqcom,non-secure-domainqcom,smemqcom,local-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#reset-cellsprotected-clocksbits#dma-cellsdma-channelsdma-channel-maskinterconnect-namespinctrl-namespinctrl-0dmasdma-namesreg-nameslinux,pci-domainbus-rangenum-lanesinterrupt-map-maskinterrupt-mapiommu-mapresetsreset-namesphysphy-names#phy-cellsassigned-clocksassigned-clock-rates#interconnect-cellsqcom,bcm-voterslanes-per-directionreset-gpiosvcc-supplyvcc-max-microampvdda-phy-supplyvdda-pll-supplyqcom,eeqcom,controlled-remotelyqcom,gsi-loader#hwlock-cellsgpio-controller#gpio-cellsgpio-rangeswakeup-parentgpio-reserved-rangespinsfunctionbias-pull-updrive-strengthbias-pull-downbias-disableoutput-highqcom,halt-regsqcom,vmidsremote-endpointarm,scatter-gatherarm,coresight-loses-context-with-cpucd-gpiosvmmc-supplyvqmmc-supplycpusqcom,lmh-temp-arm-millicelsiusqcom,lmh-temp-low-millicelsiusqcom,lmh-temp-high-millicelsiusnvmem-cellsvdd-supplyvdda-phy-dpdm-supplyqcom,imp-res-offset-valueqcom,hstx-trim-valueqcom,preemphasis-levelqcom,preemphasis-widthorientation-switchsnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,parkmode-disable-ss-quirkdr_modepinctrl-1assigned-clock-parentsqcom,gmuopp-level#iommu-cells#global-interruptsqcom,pdc-ranges#qcom,sensors#thermal-sensor-cellsqcom,channelmode-bootloadermode-recoverydebouncelinux,codeio-channelsio-channel-names#io-channel-cellsinput-enableqcom,drive-strength#pwm-cellsqcom,stream-id-range#mbox-cellsqcom,tcs-offsetqcom,drv-idqcom,tcs-configqcom,pmic-idvdd-s1-supplyvdd-s2-supplyvdd-s3-supplyvdd-s4-supplyvdd-s5-supplyvdd-s6-supplyvdd-s7-supplyvdd-s8-supplyvdd-s9-supplyvdd-s10-supplyvdd-s11-supplyvdd-s12-supplyvdd-s13-supplyvdd-l1-l27-supplyvdd-l2-l8-l17-supplyvdd-l3-l11-supplyvdd-l4-l5-supplyvdd-l6-supplyvdd-l7-l12-l14-l15-supplyvdd-l9-supplyvdd-l10-l23-l25-supplyvdd-l13-l19-l21-supplyvdd-l16-l28-supplyvdd-l18-l22-supplyvdd-l20-l24-supplyvdd-l26-supplyvin-lvs-1-2-supplyregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-always-onvdd-bob-supplyregulator-allow-bypassmsi-controller#msi-cellsnum-channelsqcom,num-eesframe-number#freq-domain-cellspolling-delay-passivethermal-sensorstemperaturehysteresistripcooling-deviceregulator-nameregulator-boot-onvin-supply 8Ӭ( t ,Lenovo Tab P11&2lenovo,j606fqcom,sm6115pqcom,sm6115=tabletJV"chosen dframebuffer@5c0000002simple-framebufferk\|ou| a8r8g8b8?clocksxo-board 2fixed-clock$%sleep-clk 2fixed-clock*cpus cpu@0cpu 2qcom,kryo260kdpsci-pscil2-cache2cache@Lcpu@1cpu 2qcom,kryo260kdpsci-pscicpu@2cpu 2qcom,kryo260kdpsci-pscicpu@3cpu 2qcom,kryo260kdpsci-pscicpu@100cpu 2qcom,kryo260kpscif  -pscil2-cache2cache@L cpu@101cpu 2qcom,kryo260kfpsci  -pscicpu@102cpu 2qcom,kryo260kfpsci  -pscicpu@103cpu 2qcom,kryo260kfpsci  -pscicpu-mapcluster0core0Zcore1Zcore2Zcore3Zcluster1core0Zcore1Zcore2Zcore3Zidle-states^pscicpu-sleep-0-02arm,idle-stateksilver-rail-power-collapse{@"xcpu-sleep-1-02arm,idle-statekgold-rail-power-collapse{@)DVdomain-idle-statescluster-sleep-0-02domain-idle-state{@"hcluster-sleep-0-12domain-idle-state{AD F cluster-sleep-1-02domain-idle-state{@B:Y!cluster-sleep-1-12domain-idle-state{ADv"firmwarescm2qcom,scm-sm6115qcom,scmmemory@80000000memorykopp-table-qup2operating-points-v2Oopp-75000000xhopp-100000000opp-128000000 pmu2arm,armv8-pmuv3 psci 2arm,psci-1.0smcpower-domain-cpu0$power-domain-cpu1$power-domain-cpu2$power-domain-cpu3$power-domain-cpu4$ power-domain-cpu5$ power-domain-cpu6$ power-domain-cpu7$ power-domain-cpu-cluster0$ power-domain-cpu-cluster1$!"remoteproc#2qcom,sm6115-rpm-procqcom,rpm-procglink-edge2qcom,glink-rpm 7#H$rpm-requests#2qcom,rpm-sm6115qcom,glink-smd-rpm Orpm_requestsclock-controller2qcom,rpmcc-sm6115qcom,rpmcc%cxo)power-controller2qcom,sm6115-rpmpdo&6opp-table2operating-points-v2&opp10dopp2@opp3opp49opp5opp6@\opp7]opp8^regulators-02qcom,rpm-pm6125-regulatorss67s7s8<@l1l4r@B@,l5%-*?l6 l7*@*@l8 l9w@il10@ l11@Bl12F-l13l14@ l15,@1Q.l16@ l17@l18̀̀Cl192j@l202j@l21$6l22- @-*>l2303@l24)B6Areserved-memory dmemory@45700000kEp`memory@45e00000kEmemory@45fff000kEmemory@46000000 2qcom,smemkF '7#memory@46200000kF memory@4ab00000kJnmemory@51400000kQ@Pmemory@51900000kQmemory@51a00000kQmemory@53800000kSmemory@56100000kVmemory@56110000kVPmemory@56115000kVP [memory@5c000000k\memory@5cf00000k\memory@60000000k`memory@89b010002qcom,rmtfs-memk +ramoops@ffc000002ramoopsk+7smp2p-adsp 2qcom,smp2p@ H$ JYmaster-kernelimaster-kernelyslave-kernel islave-kernelsmp2p-cdsp 2qcom,smp2p@^ H$JYmaster-kernelimaster-kernelyslave-kernel islave-kernelsmp2p-mpss 2qcom,smp2p@ FH$JYmaster-kernelimaster-kernelyoslave-kernel islave-kernelmsoc@0 2simple-bus dhwlock@3400002qcom,tcsr-mutexk4'syscon@3c00002qcom,sm6115-tcsrsysconk<1pinctrl@5000002qcom,sm6115-tlmm0kP@@@westsoutheast (r(qup-i2c0-default-state gpio0gpio1qup0$3Equp-i2c1-default-state gpio4gpio5qup1$3Iqup-i2c2-default-state gpio6gpio7qup2$3Kqup-i2c3-default-state gpio8gpio9qup3$3Mqup-i2c4-default-stategpio12gpio13qup4$3Pqup-i2c5-default-stategpio14gpio15qup5$3Rqup-spi0-default-stategpio0gpio1gpio2gpio3qup0$3Hqup-spi1-default-stategpio4gpio5gpio69gpio70qup1$3Jqup-spi2-default-stategpio6gpio7gpio71gpio80qup2$3Lqup-spi3-default-stategpio8gpio9gpio10gpio11qup3$3Nqup-spi4-default-stategpio12gpio13gpio96gpio97qup4$3Qqup-spi5-default-stategpio14gpio15gpio16gpio17qup5$3Ssdc1-on-stateclk-pins sdc1_clk@$cmd-pins sdc1_cmd3$ data-pins sdc1_data3$ rclk-pins sdc1_rclkMsdc1-off-stateclk-pins sdc1_clk@$cmd-pins sdc1_cmd3$data-pins sdc1_data3$rclk-pins sdc1_rclkMsdc2-on-state;clk-pins sdc2_clk@$cmd-pins sdc2_cmd3$ data-pins sdc2_data3$ sdc2-off-state=clk-pins sdc2_clk@$cmd-pins sdc2_cmd3$data-pins sdc2_data3$sdc2-gate-stategpio45gpio$3\<te-active-stategpio81 mdp_vsync$Mjdsi-active-stategpio82gpio$@kclock-controller@14000002qcom,gcc-sm6115k@ )*cbi_tcxosleep_clkphy@16130002qcom,sm6115-qusb2-phyka0h) ccfg_ahbrefsz+okay,-.Tdma-controller@1b04000 2qcom,bam-v1.7.4qcom,bam-v1.7.0k@@ )Fcbam_clk</////0crypto@1b3a000*2qcom,sm6115-qceqcom,ipq4019-qceqcom,qcek`)Fccore00rxtx</////phy@16150002qcom,sm6115-qmp-usb3-phykaP ccfg_ahbrefcom_auxpipes   phyphy_phy usb3_phy_pipe_clk_srch11D disabledports port@0kendpointport@1kendpoint?2Uinterconnect@18800002qcom,sm6115-snock rst)Dccpu_axiufs_axiusb_axiipaOinterconnect-clk2qcom,sm6115-clk-virtOGinterconnect-mmrt2qcom,sm6115-mmrt-virtO`interconnect-mmnrt2qcom,sm6115-mmnrt-virtOinterconnect@19000002qcom,sm6115-cnockb8cusb_axiO8qfprom@1b400002qcom,sm6115-qfpromqcom,qfpromkp hstx-trim@25bk[c+gpu-speed-bin@6006k`cZrng@1b53000 2qcom,prng-eek0Tccorepmu@1b8e300(2qcom,sm6115-cpu-bwmonqcom,sdm845-bwmonk o3opp-table2operating-points-v23opp-0h 5opp-1hOopp-2hopp-3h!bopp-4h)opp-5h.opp-6h>opp-7hRopp-8h^opp-9hnspmi@1c400002qcom,spmi-pmic-arbPk `corechnlsobsrvrintrcnfg vperiph_irq  pmic@02qcom,pm6125qcom,spmi-pmick pon@8002qcom,pm8998-ponkpwrkey2qcom,pm8941-pwrkey= t3okayresin2qcom,pm8941-resin= 3okayrtemp-alarm@24002qcom,spmi-temp-alarmk$$4thermaladc@31002qcom,spmi-adc5k1 14channel@0k ref_gndchannel@1k  vref_1p25channel@6k  die_tempchannel@83k vph_pwrchannel@85k vcoinchannel@4ckL !5 xo_thermadc-tm@35002qcom,spmi-adc-tm5k55  disabledrtc@60002qcom,pm8941-rtck`a rtcalarma disabledgpio@c000 2qcom,pm6125-gpioqcom,spmi-gpiok5 5vol-up-n-stategpio5normalF3Spmic@12qcom,pm6125qcom,spmi-pmickthermal-sensor@4411000 2qcom,sm6115-tsensqcom,tsens-v2 kAA`vuplowcriticalinterconnect@44800002qcom,sm6115-bimckHOsram@45f00002qcom,rpm-msg-ramk_p#sram@46900002qcom,rpm-statskimmc@4744000$2qcom,sm6115-sdhciqcom,sdhci-msm-v50kt@tPt hccqhciice\`vhc_irqpwr_irq jk)mcifacecorexoices6o7 /0 8&nsdhc-ddrcpu-sdhc disabledopp-table2operating-points-v27opp-100000000hАopp-192000000 qh 5  @opp-384000000`9h 5  @mmc@4784000$2qcom,sm6115-sdhciqcom,sdhci-msm-v5kx@hc^avhc_irqpwr_irqop)cifacecorexo6o: /s 0 8'nsdhc-ddrcpu-sdhcd,hokay (Xdefaultsleep;<=>?opp-table2operating-points-v2:opp-100000000hА>Iopp-202000000 Fh 5>ufs@4804000+2qcom,sm6115-ufshcqcom,ufshcjedec,ufs-2.0 k@0stdice d @ufsphysrst /@vsu~)}|xiccore_clkbus_aggr_clkiface_clkcore_clk_uniproref_clktx_lane0_sync_clkrx_lane0_sync_clkice_core_clk@. <4`рxhokay<AG 'XBe 'xCDphy@48070002qcom,sm6115-qmp-ufs-phykp)zcrefref_auxqrefsDufsphyhokay,-@dma-controller@4a00000(2qcom,sm6115-gpi-dmaqcom,sm6350-gpi-dmakxOPQRSTUVWX  / disabledFgeniqup@4ac00002qcom,geni-se-qupk  cm-ahbs-ahbhi  /d disabledi2c@4a800002qcom,geni-i2ck@cse\defaultE G FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a800002qcom,geni-spik@cse\defaultH G FFtxrxHGG8$nqup-corequp-configqup-memory  disabledi2c@4a840002qcom,geni-i2ck@@cse^defaultI H FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a840002qcom,geni-spik@@cse^defaultJ H FFtxrxHGG8$nqup-corequp-configqup-memory  disabledi2c@4a880002qcom,geni-i2ck@cse`defaultK I FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a880002qcom,geni-spik@cse`defaultL I FFtxrxHGG8$nqup-corequp-configqup-memory  disabledi2c@4a8c0002qcom,geni-i2ck@csebdefaultM J FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a8c0002qcom,geni-spik@csebdefaultN J FFtxrxHGG8$nqup-corequp-configqup-memory  disabledserial@4a8c0002qcom,geni-uartk@Jbcse6oO0GG8$nqup-corequp-config disabledi2c@4a900002qcom,geni-i2ck@cseddefaultP K FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a900002qcom,geni-spik@cseddefaultQ K FFtxrxHGG8$nqup-corequp-configqup-memory  disabledserial@4a900002qcom,geni-debug-uartk@csed K0GG8$nqup-corequp-config disabledi2c@4a940002qcom,geni-i2ck@@csefdefaultR L FFtxrxHGG8$nqup-corequp-configqup-memory  disabledspi@4a940002qcom,geni-spik@@csefdefaultS L FFtxrxHGG8$nqup-corequp-configqup-memory  disabledusb@4ef88002qcom,sm6115-dwc3qcom,dwc3k d08t&ccfg_noccoreifacesleepmock_utmixo$@0.*vpwr_eventqusb2_phyhs_phy_irqss_phy_irqs0 8,nusb-ddrapps-usbokayusb@4e00000 2snps,dwc3k  T usb2-phy / 4H^ }high-speed peripheralports port@0kendpointport@1kendpoint?U2gpu@59000002qcom,adreno-610.0qcom,adrenokkgsl_3d0_reg_memory0V VLVV *ccoreifacemem_ifacealt_mem_ifacegmuxo  WoX6YzZ speed_binokayzap-shader[&qcom/sm6115/LENOVO/J606F/a610_zap.mbnopp-table2operating-points-v2Xopp-320000000opp-465000000V@opp-600000000#F9opp-745000000,g@opp-82000000005\opp-9000000005]opp-9500000008ـ^opp-980000000:i^gmu@596a0002qcom,adreno-gmu-wrapperkgmuVV-cxgxYclock-controller@59900002qcom,sm6115-gpucck)IJViommu@59a0000@2qcom,sm6115-smmu-500qcom,adreno-smmuqcom,smmu-500arm,mmu-500klLVMcmemhlosifaceVWdisplay-subsystem@5e000002qcom,sm6115-mdsskmdss_=?_  / /!0`8nmdp0-memcpu-cfg dokaybdisplay-controller@5e010002qcom,sm6115-dpu k  mdpvbif0?__ _ __cbusifacecorelutrotvsyncoa6bports port@0kendpoint?cgopp-table2operating-points-v2aopp-19200000$dopp-192000000 qopp-256000000B@opp-307200000O9opp-384000000`dsi@5e94000(2qcom,sm6115-dsi-ctrlqcom,mdss-dsi-ctrlk@ dsi_ctrlb0_____?$cbytebyte_intfpixelcoreifacebus__ eeof6 e okay Cports port@0kendpoint?gcport@1kendpoint ,?hlopp-table2operating-points-v2fopp-19200000$dopp-164000000 qopp-187500000 -panel@0+2lenovo,j606f-boe-nt36523wnovatek,nt36523wk 7(R Cidefaultjk Pportendpoint?lhphy@5e944002qcom,dsi-phy-14nm-22900kDEHdsi_phydsi_phy_lanedsi_pllh_) cifacerefokayeclock-controller@5f000002qcom,sm6115-dispcck$)*ee>_remoteproc@60800002qcom,sm6115-mpss-paskL3mmmmm0vwdogfatalreadyhandoverstop-ackshutdown-ack)cxo6n Yo jstopokay#qcom/sm6115/LENOVO/J606F/modem.mbnglink-edge DmpssYH$ stm@8002000 2arm,coresight-stmarm,primecell k (stm-basestm-stimulus-base) capb_pclk disabledout-portsportendpoint?pwcti@8010000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@8011000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@8012000 2arm,coresight-ctiarm,primecellk ) capb_pclk disabledcti@8013000 2arm,coresight-ctiarm,primecellk0) capb_pclk disabledcti@8014000 2arm,coresight-ctiarm,primecellk@) capb_pclk disabledcti@8015000 2arm,coresight-ctiarm,primecellkP) capb_pclk disabledcti@8016000 2arm,coresight-ctiarm,primecellk`) capb_pclk disabledcti@8017000 2arm,coresight-ctiarm,primecellkp) capb_pclk disabledcti@8018000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@8019000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801a000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801b000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801c000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801d000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801e000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledcti@801f000 2arm,coresight-ctiarm,primecellk) capb_pclk disabledreplicator@8046000/2arm,coresight-dynamic-replicatorarm,primecellk`) capb_pclk disabledout-portsportendpoint?quin-portsportendpoint?rtetf@8047000 2arm,coresight-tmcarm,primecellkp) capb_pclk disabledin-portsportendpoint?szout-portsportendpoint?tretr@8048000 2arm,coresight-tmcarm,primecellk) capb_pclk disabledin-portsportendpoint?uqfunnel@8041000+2arm,coresight-dynamic-funnelarm,primecellk) capb_pclk disabledout-portsportendpoint?v{in-portsportendpoint?wpfunnel@8042000+2arm,coresight-dynamic-funnelarm,primecellk ) capb_pclk disabledout-portsportendpoint?x|in-portsportendpoint?yfunnel@8045000+2arm,coresight-dynamic-funnelarm,primecellkP) capb_pclk disabledout-portsportendpoint?zsin-ports port@0kendpoint?{vport@1kendpoint?|xetm@9040000"2arm,coresight-etm4xarm,primecellk ) capb_pclk Z disabledout-portsportendpoint?}etm@9140000"2arm,coresight-etm4xarm,primecellk ) capb_pclk Z disabledout-portsportendpoint?~etm@9240000"2arm,coresight-etm4xarm,primecellk $) capb_pclk Z disabledout-portsportendpoint?etm@9340000"2arm,coresight-etm4xarm,primecellk 4) capb_pclk Z disabledout-portsportendpoint?etm@9440000"2arm,coresight-etm4xarm,primecellk D) capb_pclk Z disabledout-portsportendpoint?etm@9540000"2arm,coresight-etm4xarm,primecellk T) capb_pclk Z disabledout-portsportendpoint?etm@9640000"2arm,coresight-etm4xarm,primecellk d) capb_pclk Z disabledout-portsportendpoint?etm@9740000"2arm,coresight-etm4xarm,primecellk t) capb_pclk Z disabledout-portsportendpoint?funnel@9800000+2arm,coresight-dynamic-funnelarm,primecellk ) capb_pclk disabledout-portsportendpoint?in-ports port@0kendpoint?}port@1kendpoint?~port@2kendpoint?port@3kendpoint?port@4kendpoint?port@5kendpoint?port@6kendpoint?port@7kendpoint?funnel@9810000+2arm,coresight-dynamic-funnelarm,primecellk ) capb_pclk disabledout-portsportendpoint?yin-portsportendpoint?remoteproc@ab000002qcom,sm6115-adsp-pask @#vwdogfatalreadyhandoverstop-ack)cxo66 Y jstopokay"qcom/sm6115/LENOVO/J606F/adsp.mbnglink-edge lpassYH$fastrpc 2qcom,fastrpcOfastrpcglink-apps-dspadsp  compute-cb@32qcom,fastrpc-compute-cbk /compute-cb@42qcom,fastrpc-compute-cbk /compute-cb@52qcom,fastrpc-compute-cbk /compute-cb@62qcom,fastrpc-compute-cbk /compute-cb@72qcom,fastrpc-compute-cbk /remoteproc@b3000002qcom,sm6115-cdsp-pask 0@ #vwdogfatalreadyhandoverstop-ack)cxo6 Y jstopokay"qcom/sm6115/LENOVO/J606F/cdsp.mbnglink-edge cdspYH$fastrpc 2qcom,fastrpcOfastrpcglink-apps-dspcdsp  compute-cb@12qcom,fastrpc-compute-cbk / compute-cb@22qcom,fastrpc-compute-cbk / compute-cb@32qcom,fastrpc-compute-cbk / compute-cb@42qcom,fastrpc-compute-cbk / compute-cb@52qcom,fastrpc-compute-cbk / compute-cb@62qcom,fastrpc-compute-cbk / iommu@c600000/2qcom,sm6115-smmu-500qcom,smmu-500arm,mmu-500k ` QXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/wifi@c8000002qcom,wcn3990-wifik membasefghijklmnopq / okay     Lenovo_P11watchdog@f017000#2qcom,apss-wdt-sm6115qcom,kpss-wdtkp* mailbox@f111000;2qcom,sm6115-apcs-hmss-globalqcom,msm8994-apcs-kpss-globalk =$timer@f1200002arm,armv7-timer-memk d $frame@f121000k  Iframe@f123000 k0 I   disabledframe@f124000 k@ I   disabledframe@f125000 kP I   disabledframe@f126000 k` I   disabledframe@f127000 kp I   disabledframe@f128000 k I  disabledinterrupt-controller@f200000 2arm,gic-v3 k 0 V m  cpufreq@f521000'2qcom,sm6115-cpufreq-hwqcom,cpufreq-hw kRR0freq-domain0freq-domain1) cxoalternate thermal-zonesmapss-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivecdsp-hvx-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivewlan-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivecamera-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivevideo-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivemodem1-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivecpu4-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu5-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu6-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu7-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu45-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu67-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalcpu0123-thermal tripstrip-point0 _ Epassivetrip-point1 s Epassivecpu-crit   Ecriticalmodem0-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivedisplay-thermal tripstrip-point0 8 Epassivetrip-point1 H Epassivegpu-thermal  cooling-mapsmap0  tripstrip-point0 L Epassivetrip-point1   Ecriticalpm6125-thermal d tripstrip0 s Epassivetrip1 8 Ehottrip2 6h  Ecriticaltimer2arm,armv8-timer0aliases /soc@0/mmc@4784000gpio-keys 2gpio-keysdefaultkey-volume-up Volume Ups 5    interrupt-parent#address-cells#size-cellsmodelcompatiblechassis-typeqcom,msm-idqcom,board-idrangesregwidthheightstrideformatclocks#clock-cellsclock-frequencyphandledevice_typecapacity-dmips-mhzdynamic-power-coefficientenable-methodnext-level-cacheqcom,freq-domainpower-domainspower-domain-namescache-levelcache-unifiedcpuentry-methodidle-state-namearm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uslocal-timer-stop#reset-cellsinterconnectsopp-hzrequired-oppsinterrupts#power-domain-cellsdomain-idle-statesqcom,rpm-msg-rammboxesqcom,glink-channelsclock-namesoperating-points-v2opp-levelregulator-min-microvoltregulator-max-microvoltregulator-allow-set-loadregulator-always-onno-maphwlocksqcom,client-idqcom,vmidrecord-sizeconsole-sizeftrace-sizeecc-sizeqcom,smemqcom,local-pidqcom,remote-pidqcom,entry-name#qcom,smem-state-cellsinterrupt-controller#interrupt-cellsdma-ranges#hwlock-cellsreg-namesgpio-controllergpio-ranges#gpio-cellsgpio-reserved-rangespinsfunctiondrive-strengthbias-pull-upbias-disablebias-pull-downoutput-high#phy-cellsresetsnvmem-cellsstatusvdd-supplyvdda-pll-supplyvdda-phy-dpdm-supply#dma-cellsqcom,eeqcom,controlled-remotelyiommusdmasdma-namesreset-namesclock-output-namesorientation-switchqcom,tcsr-regremote-endpoint#interconnect-cellsbitsopp-peak-kBpsinterrupt-namesqcom,channelmode-bootloadermode-recoverydebouncelinux,codeio-channelsio-channel-names#thermal-sensor-cells#io-channel-cellsqcom,pre-scalinglabelqcom,hw-settle-timeqcom,ratiometricpower-sourceinput-enable#qcom,sensorsinterconnect-namesbus-widthopp-avg-kBpsqcom,dll-configqcom,ddr-configcd-gpiospinctrl-namespinctrl-0pinctrl-1vmmc-supplyvqmmc-supplyno-sdiono-mmcphysphy-nameslanes-per-directionfreq-table-hzvcc-supplyvcc-max-microampvccq2-supplyvccq2-max-microampvdd-hba-supplyvdda-phy-supplydma-channelsdma-channel-maskinterrupts-extendedassigned-clocksassigned-clock-ratessnps,dis_u2_susphy_quirksnps,dis_enblslpm_quirksnps,has-lpm-erratumsnps,hird-thresholdsnps,usb3_lpm_capablesnps,parkmode-disable-ss-quirkmaximum-speeddr_modeqcom,gmunvmem-cell-names#cooling-cellsmemory-regionfirmware-nameopp-supported-hw#global-interrupts#iommu-cellsassigned-clock-parentsvdda-supplydata-lanesreset-gpiosvddio-supplyrotationqcom,smem-statesqcom,smem-state-namesarm,coresight-loses-context-with-cpuqcom,non-secure-domainqcom,msa-fixed-permvdd-0.8-cx-mx-supplyvdd-1.8-xo-supplyvdd-1.3-rfa-supplyvdd-3.3-ch0-supplyqcom,ath10k-calibration-variant#mbox-cellsframe-number#redistributor-regionsredistributor-stride#freq-domain-cellsthermal-sensorstemperaturehysteresispolling-delay-passivetripcooling-devicemmc0debounce-intervallinux,can-disablewakeup-source! . ..# mxser.ko.gz$ n_hdlc.ko.gz% nozomi.ko.gz&serial" moxa.ko.gz Mğ& .! ..' 8250+altera_uart.ko.gz,arc_uart.ko.gz/ max3100.ko.gz0 qcom_geni_serial.ko.gz1Txilinx_uartps.ko.gz-jsm*Daltera_jtaguart.ko.gz u' .& ..)8250_tegra.ko.gz(\8250_bcm2835aux.ko.gz - .&L... jsm.ko.gz wW>J2 . ..3 core5host O3 .2L..4ufshcd-core.ko.gz R݄&5 .2L..6ufshcd-pci.ko.gz G7 . ..9 uio_aec.ko.gz: uio_cif.ko.gz;uio_netx.ko.gz< uio_pci_generic.ko.gz= uio_pdrv_genirq.ko.gz>8uio_sercos3.ko.gz8 uio.ko.gz އ {$? . ..@ atmFc67x00HchipideaQclassUcommonX core[ dwc2^ dwc3ggadgetj host~isp1760 misc mon mtu3 musb phyrolesserialЎstoragetypecusbip ޒ`v@ .? ..Bspeedtch.ko.gzCueagle-atm.ko.gzD usbatm.ko.gzE xusbatm.ko.gzA cxacru.ko.gz d F .?L..G c67x00.ko.gz FBAf@!A TgSTg <Bk=H/Hc/~ I1LWs Tg    !x3$e$x ֵ    r   0  :J 0M  ;  ѫ! " 6#! !\fcm   o   (  ˒  ʴ   \  I Ϳ         H3      -s  m 6=  z    5 DELF̖@ @8@    4h h h $$Ptd   QtdRtd GNU8I@S1җo0HO,:6AVwV!OK0W?.)h9U 6q-]c$H3|u &rbqiGs5It',ul]>^H<, !bH@G~ 5LfXMY<bfRn> pn0  ,!x>CMh.  yqd&e2^p/#M'tJZ79O9 G_4C l2Qg-Z-,GFxakxIVvu(E. _ll5  AL[?^(8Ef/27'@+'  "N.z "o%P%a hdjTy1$_z3+/a[XNS8"/l#7kJKN\os?Kp}OBp*oz"[<Z:0+]  W}*1s4}%RBt'Rw-F~:R>_6 !zI\#AIfTbQ9AyAQ#699e6~K4\aT`USS4LDkCSV_Yv@I;T/{ ]$AJBDyCR1%`T;1xtZY]-c ){/$mQ;S<}ij`sX+mn8F?3ENW0rD<nonP T"C\`~ i,HRPk 8,E0f7BO(<LDn{$eH}aW`3q\M &W=U:j@(X Gs \.@xEp-|vJ)D5&Pt/u= c=YXgO*h Qf~w<5 R_p3$hUT2aMk(BP*=;g?CL*wmjFjD@=Zy:BU=(Eis+o7c^Y&Gr +0kc m&VG;qI$4Wu`SoK;dPj}N{g?J9 [Z|7A")FK:Sb^\4)O Yvy|.h*f4LY'rNl8wXg#?#{PE 37J>J{&%2@1dlB tek`5Qm_Vvi!e F8edg>HX"md-]c[!2F1eL8^#Z]6Imjw[3vb ^ah>VMN~|q:M+(*U|=)QC)W1zn2dz5;xbic'[rUD!6%gri%uK.   E@B< N&18 b#$!@$AX@@  B He@ HHLB R "8PL@`HH`  @ bAB@@  ` c1H@ @ *B@ @B aD @@ B $b4J  `( bKX( !  @D@ )h@   }2 P% $H0@ H@A*" KĠBy eP@L1@$"& `R$@P H@A& @DbAX"`   B9 PH@R D A(@ A $9$0$ `` 4@"TEH@C9 &40 8@ pA P`pAA@ X@hA)A(`&"@@!  @P@( @+Q Ԁ0d@H0  @@`H ( @0 `9 Q@  @FHA A@ 2 qP!`a a "A   @@   !`0RjR `D @q D6@P)AB  9@`P @hEa`A@ H ,B`@`* d@A H DB!@@@ DP"B@(FEh&B@0 @I0  0 ˆ RE((@PAPJPD!F P@@ex0zr` "!g2@TN@ HdFÀ3   t 0"  .)GA )$<@0)c7"phD: PB `E JFQG #d q $&"AA 10H(@@ B TNH@4R ($ ED "@ HF@B " P  A0$b@86) !0H@!$@H  %$"  `D  " Zd  aB4@D10g$@b@B0@ @ H  숁@B@0 C-  `0U !"#&'()*+-/1246:<=?@BCDGKLNPRUWY\adfjkoqtvz{|~  "%&'),.12567:=>?@BCEGIJKNPTUWY[\^_abcehijmoqrvxy{~  !#%'(+,-27:=?ABEFINPRUWXZ]`abcefhjlmpqrtvwx{     #%&(*+,-01358:;<=?BEGHIJKMRUVWX\^bdegiloquvy| "#(+-/345679:;=?CFJKLORUX[]`acefimqrstw{}   "%)-.37:=>@DEGHJLMNOQSUWYZ[]_acfhjkosvwxz|~  !#&()-157:<=ABDFJMOPSVWXZ\_abegklm*s<|t#ZuV4[_̦ #rx3h[YYr/ :ns:3R/13Ĉ QyË{-8RG|:=O)Va6'l[{T r1:=O+A~zk-4_](B"=5|.G|s=4-2@ʖ:_8-|l·G|.<#=tgV+ì'|KT _ʖ8f|{K.|gY(Gs|?~|V3f^3<KwNuE׈j$PzVYȈ%=r>Qw8ybUt(9AtK eZiƒ`3f rG|Ñ|./A%9H`[%Kcc"Zb@(k8|RqEE!1K0鼽Pvi@c?Lٝʼn,+#$cPl5y>Mv`\zY* دzYVpA>4Btu7[-̎m&J6߲:o* w#6:zk䚥fHAKn`|i.ɝ= |wH: k|L;^p#ua{|1cf qWm!t~2 S hΩa9 >Ϯ ܷ^LFTAt4NWc5|v24ܢKq#8@ =9?fQE{|- o9|g~2&KqÝH{|\Ew|u"?wqIN7V~.rroI>{𦿋$uuCȕx|m"HE(LzYw-^uk:Uk9@d9m7s[fv@a'"OH*3|@y s$qw|%] ^7vZ=XMW[e-M־6zfiugQ;#mˁ"|gUaVI7 0||`uDe=U:yO7t Ij Һ2(ٽ%T -|(IQ1bD/Î_|>z8oNړעÛPS;#|)]wT< |i|SL2|GF3EpN_9M ;ϝ|JEKP-+k޶Baw )$@@Eqq9ܭP129K39Y:|1 ,GX] ޓvTpN2^?r=ޓ@橉5dr KPT[fޓjޓmj(c$ p|c2(}`,\ TnElsu* H􆳔uJ؄|qbmcٴr0>KωEj2@9ozKD} LZOz}L\tB1kΪ8͓н"Ym\{,*&˂T |4,4Fní qk&`I'b;UŦ̇,3&|O=i |m!UYU`I bn |O=bhѾ nw)ThX9AL5hhZwx# ,ӅyRLnJiQ׋=qј;R+cs? IU Tf $$LR8 y=vט;ue{ 2w{ Y±3~aC+`J)9] Gf9ӛݯڋ;;\Jab AÈʙO۝|ZVvްb>d,)(ϴG@8pFÈ̈́|WH kS|1 o_%t4V.ac1O$sAr]|T|9Kd|Wۓ q߽_| JbYws4/u~|1BfK#♔|ca3u(r89݀AM|z!%u 5sR^_&+\43BE  Z[VGДI-8zRȑ6P QG}Dmw?|7G)1UEHcVs zVؽx+ ]co\jב]TzDuE|ͫbW5r ?]|nE|ݣkB ut.]5r<U+|lsmũl󼖍iN}>|aFs`Y旁B}`|Jm}/&ʃY  @Η;?M%O7+%N+} |1Վ+LBlfV1'*,ږ|Ed|99!X|p7|oc;8/)>Hd|^i;U(Msmږ|9H0/tOd|\ӮKu!Ţ|9NM| -R . ږ|͊>rrfk:>]8/tٽ˜V~vjrO>Fx릮e e K(8!8s sӏhn^-o,vu ;O RJZ[ח^(ĩ! 91A!D=|Ĉ߁i>1$$;Ӛ7Q|{'Si7ѣ"h; |=8X3&N(GiֶOţu=9 \Gy$s`p[!>D|_*EמFG( N_֔ GN$; 70c6;`J|j9Ij0.9D,5? y rt,ap_cĔ84 |Mv+63#ӳ݅x1{`^?ۀA|+67-ʚxh׻dvƟ\,P(]]'2P|kcv88zS@̰umzmjq@|Odr@|o_wope/K)Æ1w@|ke-oĹ@e i5;`Jޔۍ7gII";yhno5৖|h=kQj-j% G>-|!䲢s+o S!C#~}LA΂|9RiVmD{`CƤ-g];-i[)o #x+rk$mDTn7V|V|3aoT-iWҊ|-# CZtb7V|bX=~]0ratE LJ*0k.%$ `k oQ(>Ja. 8|/`VfcM(Rj%F/ Qn?ZL퐗+&{J`f`Ȫ"yiJxY xYğ,ߣ_Ws)o'1aD>W_y4=vhKG#=Yџ,W70|qHΚD%ō=i[v 02Z\0V̷>SAM|,R'A`,p+G2f.9VAJ)LyFauշ>hƏ򽋨 PP)L|,fqD> U|$)~ +W|֌`ςZ|i68^ gIo/(%mc`.̎[&7vRQZke]2ľ^5%V6d!9!R(!8yOei9EHry?`:iJrfBYnr,cr^]xY:4)?Nb voPhE=2vnFu>J3KYfHVrٿ͒},>GX7G3q,:_a.#VrH0J\e)[zsZg3eyA5)txR.v Kon<|(f8~Uq"$Aۖ|~x$Z5s<|@'kaBw)t<|^؄ROZ#' gutZ5Ó VRCB4M[;as6F@h$K?B'iG)uuwכ|J.f|X7t uŨU_x,z'63䉠rM iReg ៩3TGn%")VRo?fm7e)Y]r\ /fmkwz%w>1u!%ٔVL C?o!8h|PK-7ws`fkEe=Zp*ÛbAT?s@iǗlky<ya|򢒱46j4ksp y87$?O/('Z"p.W#P4a| LX4ɤXVӦ0+ }m\P!egQSr~58" #,zu #sUemotBYz8ºe| \&})fRS{C"6pzrDn%o796Xձ/xzxN+G116KK4cKbN!t!9K]Y /Pb]l"i$$X&| bd c Bo͕w94PnrH5 )$(ٜ o{ČK=G>| Wnr&|I˵ LSy|&p4 >-ئVLWd*慽,W6z1?eT3?\ W22lvxMc<X7?X=n]Ée|dPJֽ/lW>ݲĥ9m$H3R;m$Ps^{f[@m$wAm$c(>B\Q)f9QaXTJKgٓו| UhʿaȜ1^t;ŧZY{%%v6% {;/%c0|F|pźO s;Pev J k5%ܖ|O</^َLN؋SyvbI4|_{BnN] > -^4 uծ7w0n5/N=-L"|)"BYF%: w V17w~ )Y2"\H90TsY?|V?;H2vըK7 fB;V? PJ)%~" XsV?8|LI$|7I;lU'ාjK" &oXs*r `}.@Z+}2 w[`y^bM2*_jԿw[ ,X6L52*S@dkNº҈,_,hv.a|߈n$'!gi PTK6MxmOi$|8maʊЪ5 s8(&$ `5 W c* $n  |  D(:$  z F$ 4b' 7`] : ĒR L  A& +$M8!. 8 (i 2 `c5 8(% x:" @G- d 4\  O h  B88.  u\6 ,> @" r pDh Я4 ĵ`" X_b9" |(* \k@t' :tB <$8 d$ Xc hh  4,"& x%4) $`47 $X% h DP BD" F\%. < F$ jW4" .<' v& &" jT) Dq. T4J t^ d,& &@"  Pv9 X2 `5$' 44 J  PB  O'" ,7T# " |S ]2 dt  Z $8 N(" 8:L  A& $P $ \Z z% 5 7s/   >' p`*" jh" )4" LnK  H5 @ t, <l " $O  D~" ,u 4 02(" A Ti : <: Ȕo  Fp D 8 d^p- D% 0 |D  9  4 \Yl" `j/  T(" 0 (7 I |X  Hh6 /   }0- ,'  }/ ph { wL) en8 @fL2 d 0t | [!- 0 O$l <P x7 G3(" :t + 4* o/ " H 0X? y y d+ r0(7 B4 8#  % T5" :0:  %: $D i3 ` ( <' P,Q7 |B  |^: P/ |TF  4, t. <  4  hfH `/ N +78&  h*" p`? ]h"  x, " p/ L (!   h@. 4'  O$    =5 8 H8S. 84K%  4 TZ6 P E|(" `B\    / T(  |?`T% 4   |p<0-" @P  K XZ# %+ u8)% h  D(a C\  G"  J   3t `6*" \k@d ,P  94G C4o" `: $  4 d4 0Hi !Lh" 8^4 d* jh $8 l09 DxD   r( J( U" x  (" 9L& P+0H  ~  >xS" h4% !`p eH  D( N`' D+ P) TT *" od~ T}! $"4w/ X"X $ : ď Tt TI  ,mr n |  y"  D4c }p d^* m,/ (,/   :d \4  `?+ 4  L( tNj# 0#8 P   ^$ L^ ! # <A D # 8 !  ;T_8 8}4% etb @& "{:  DT  ,6+ h " $" `   |S-   (8& p&  0  ,H  4(i hF$F 47 ȕ(E* |ll  -X" " 18  ,|8 ĪL $'4_(" >  (38D% " hZX \ -[ & *(" 0- \J  4~ '" +8n   |Y 4" l D," h  4% 8J$0 e \,^/ |% `  |*@ " i, `, H|, 2  (" 9L I$* 0" P*h& H& \ <" <L. + " $-" 8  - l0 $ D8* g @ Q *" q`5" ,;   B2 $93 F+" ظL 3" * s H !`" + 9/ ( X " 0 $ A" B- | ?8  HH d f8 h<" "' ,' 8 \' 9L" 2 H  N: ̖^-" l! l( `  C! x " ;A) S ( L(: $9 rc } P9 `   , \  p<  h\m9  /  4!. . + 0 $ 1  C( <H tOi K0Q ?  ~  D x (  ą4- ,, X_ X|  P" ' < 4 xD4" T-d d| L x,  d 0 X! > 8_% " P ' 8$8" gxT #  i+ X4 p8S 09  J 40: $   8*d8" e L\1 8 =! 0hd  x j 8^45  \P( t ( U L?  <  i,  T 8 `N  0p+ 4s> \<   pI" y/% +" H h9 H@! h P(  e  L7X I@7 B L' 7   `N O )" pO M- AO  "  Y % @ p+" x dwLv# ! M,t"  |% $jx}  ) [(^ |,] wp| D.  ly 8 0. 0 e 8(!1   " \@)" Z$* Dq`) [T  \:d " h@  0 # W D   l4 >+ < ` -/ |   >  -`7 M+ " 89: (<    0<  4G |Sd 9  Il  4) \` r. 0  <  <4 1S ]( n CL$*" \k@\8 e - P tH g" d,Y p D 8  \B H2 ,8X 0  D( 0 3 +) \D L< P 7  ~ y : |L | L - p$H u  d` АO " @$! , 9 |`V) ̶8" $" |X/  7 M4  3$y) LY`7 & X'|8! ha 0F' ,7T9" 8! & 4M" (00 Y n   m"  tP/ tU  ~D/ ԑH   8  a ; L%   88 w [4 M$[  <U% >% x  d L  |  ܴ @< 0I$`# \- ^8 hh E5 7 (c,"  D-Xy eD3" <6_  A  0 L   o(2 X!  L4" 68 X9  `3 + -  4" 82\7 At  2D ,d T]% <7 tB . +" d*H E l!(02 lP L   8Lh $  h&t%  X  (:4 Q ?9 4 PC / $ *)" Q`S  L58. @ $# @ P2  @$ 0@) H0" !," H| (<: D3" P*h LH(  LL! 44-  pt  T  '" 8 <7 M0" # < 48/  }  YH" ) D6 >g: d% ( `8 hX ( X`8 $N  \>,?!. z" 8[  9   ;:  P  T~,C% xXH. 6 ?T: <$ ( i L," H T D3 G," H| lj4" `/ TX`9 | $" 86 Ao u  EX & "D rX+ $4 [4m" *  <`% L"  D p K$ Ыl% "^" ]Hs% , ؄`" <X+ 4 $+' p- +" D C    ,j0 ` ^ * ylI)" hTT8 l}t?: f  P Ф D  L X ~* 0nL$ M9 (40 (V: $ x$.  G $,  U 2   &tj' 7M  4Q  px" 9 ȋ n( ?x=' 6`V8" b0U P'5 F {" xD5 L" h9 H,A  " p@  6L8 lN  4u1  $ DI  " 4v E  < 8M 8 f  J& T$3. $XE 8X  / t T, 0  3 +  3   r @  BT.  H X# P  * p`: 0q: | P hX \C< lw y- d# |: r i%  QH#   t lS$i t|H" x=S P@' 8  d  2(*8 S !$% \ D) xD 8O  = ?X: tD9 X, 4B@Z O# |J  |, $p(" L(. l  @8 N@ |   /8 N4    :   d& P& 3 *  $  x- \ ,  @Z" : h01   8,' @8%" X"X  ?|5 P9()6 >," ܓ4(" L(+" 0  } ( `B\  * fX6 ?3" *  $9 |  P: T7 dCT 1 z& d$9 ԅ4` M   8~ )" \D  D(  s P `" ( 8 Pz" x  2   ^ @P+ q`4  @/ X/ B pO 8]" 8 HjX u$n  @6 l B ' 8w  X* |n, L8V#"   `   xL   @(  0 Ț(r2  @u _ \? lJ `=. 8    x` l$ 8!  G  8~  LO v <  '# 4 D2  $ W DF$?" \  p@U v   8 4/   $ 8" DTz6" H> Q , $ (  dD<X  @=   `@ = )" tN P   b& \$ ` H  \ <L T-& # c 0|-"  ؐ/ ,z  th-" Px* olx xt xy+ xK `2 0. 0^4 }  AR l ,J XQ @,i * " x@   t " `@" >" 4" dh /  p  5 :." \L @N ( pc. P l +  . \L PV8- ( pVS d( 4: D  $#. . D+ l}4 T1P&" X"X< n" t D  $Q$ 0 M0s  @$(+   C Pp = 0q `x 4&" H*| Ѝl  8 t*  ,a' pwx8 B@{' 7" 4` & |& _" i , c Է& ** od ~ P    D<, H`  l<. y} LT9 ~X P @  |;X:-" K. ,(. H( `?1 7 4JX, XB# `+" X4, <+ @ \ d" & %\y. " H> , + D1 8  [2 D{9 Lf ȏ8 dy (@19 0l 08' 08. 4 - L" H" ." @  ȂX % |W+ E4  ,,  d  |`1 h  ! )" \ZH - & \& h' `8  $,   ,  " XO $h<f q(" ?xO:  НX) 4d x ( ' 8+ I  m$ d  z " * oO3 0 0 (`)" X  = ," " ^" I( <j C|t  U  XP  : , ! :( PTp(" ?x=   " E,="  o,  L4 + d& ,yx= \, 8:L )-" p=% 0H" (U PZ6 DT2 W) \W`+ 4D t,!   (c! " 4u" > d$ ]@  h4 q @ Hr $8X T < Y ( \  t    " (  x:)" Sd" `, H   s]    \L# PI $ H s  H? @B) `:  \ <J T;. |< |  \ P1 A HB\  $p`1' 1p)" LY`4," Q XX. L <u7 B$ X |@& & \T [ @"  $ 4(" LLl*" $n  4@  {Dj. # K8. [. lL  020 8  =  9 4v - X0pthread_mutex_locksem_post_pthread_cleanup_pushpthread_mutex_unlocklseekfcntlpthread_cond_waitpreadpwrite_pthread_cleanup_popfdatasyncpthread_rwlock_rdlockpthread_rwlock_unlocksigfillsetpthread_sigmaskpthread_rwlock_wrlockpthread_mutex_initpthread_cond_initsem_initpthread_attr_initpthread_attr_setstacksizepthread_attr_setguardsizepthread_attr_setdetachstatepthread_createsem_waitpthread_cond_broadcastgetpidgetuidaio_readaio_writeaio_fsyncaio_returnaio_erroraio_cancelpthread_cancelpthread_rwlock_tryrdlockpthread_rwlock_initaio_suspendpthread_testcancelclock_gettimelio_listiomalloccabshypotcabsfhypotfcabslhypotlcacoscasincacosfcasinfcacoshcacoshfcacoshl__signbitlcacoslcasinlcargatan2cargfatan2fcarglatan2lcsqrtclogcsqrtfclogfcasinhcasinhfcasinhlcsqrtlcloglcatancatanfcatanhcatanhfcatanhlcatanlccosccoshccosfccoshffabscopysignfabsfcopysignfccoshlccoslcexpcexpfcexplcimagcimagfcimaglconjconjfconjlcpowcpowfcpowlcprojcprojfcprojl__fpclassifylcopysignlcrealcrealfcreallcsincsinhcsinfcsinhfcsinhlcsinlctanctanhctanfctanhfctanhlctanlconfstrfpathconfget_nprocs_confsysconfget_nprocsget_phys_pagesget_avphys_pagesgetrlimitstrcmpstrnlenstrncmpcrypt_rstrtoulsetkeyencrypt__ctype_b_loc__ctype_get_mb_cur_max__ctype_tolower_loc__ctype_toupper_locisalnum__isalnum_lisalpha__isalpha_lisasciiisblank__isblank_liscntrl__iscntrl_lisdigit__isdigit_lisgraph__isgraph_lislower__islower_lisprint__isprint_lispunct__ispunct_lisspace__isspace_lisupper__isupper_liswalnumiswalpha__iswalnum_l__iswalpha_liswblank__iswblank_liswcntrl__iswcntrl_liswctypeiswgraphiswloweriswprintiswpunctiswspaceiswupperiswxdigit__iswctype_l__wctype_liswdigit__iswdigit_l__iswgraph_ltowupper__iswlower_l__iswprint_l__iswpunct_lwcschr__iswspace_ltowlower__iswupper_l__iswxdigit_lisxdigit__isxdigit_ltoasciitolower__tolower_ltoupper__toupper_l__towupper_l__towlower_lwcswidthwcwidthtowctrans__wctrans_l__towctrans_lalphasortstrcollclosedirdirfdfdopendirfstatcallocreaddirreaddir_rrewinddirscandirreallocqsortseekdirtelldirversionsortstrverscmp___environ__progname_full__progname__libc_start_main__stack_chk_guard__stack_chk_failclearenvputenvunsetenvsecure_getenvstrlen__errno_location__strerror_l_Exitabortraise__assert_failat_quick_exit__cxa_finalize__cxa_atexit_finicreatopenatposix_fadviseposix_fallocate__flt_roundsfegetroundfetestexceptfeclearexceptferaiseexceptfegetenvfesetenvfegetexceptflagfeholdexceptfesetexceptflagfesetroundfeupdateenvscalbnfmodlscalbnlfabslprogram_invocation_nameprogram_invocation_short_name__uflowftokmsgctlmsggetmsgrcvmsgsndsemctlsemgetsemopsemtimedopshmatshmctlshmdtshmgetdlsym__tls_get_addrdl_iterate_phdrdladdrdlclosedlerrorvsnprintfdlinfodlopencuseridgeteuidgetpwuid_rdaemonsetsidvwarnvfprintffputsperrorvwarnxverrverrxeuidaccessfaccessateaccessnftwfutimesfutimensgetdtablesizegetloadavgsysinfogetpagesizegetpasstcgetattrtcsetattrtcdrainendusershellfclosesetusershellfopenfmemopengetusershellgetlineisastreamlutimesutimensatulimitsetrlimitendutxentendutentsetutxentsetutentgetutxentgetutentgetutxidgetutidgetutxlinegetutlinepututxlinepututlineupdwtmpxupdwtmputmpxnameutmpnamevallocadjtimexclock_adjtimecapsetcapgetchrootclonecopy_file_rangeepoll_create1epoll_createepoll_ctlepoll_pwaitepoll_waiteventfdeventfd_readeventfd_writefanotify_initfanotify_markflockgetdentsgetrandomgettidinotify_init1inotify_initinotify_add_watchinotify_rm_watchklogctlsem_destroymembarriermemfd_createmlock2mlockinit_moduledelete_moduleumountumount2name_to_handle_atopen_by_handle_atpersonalitypivot_rootprctlpreadv2prlimitprocess_vm_writevprocess_vm_readvptracepwritev2quotactlrebootremap_file_pagessbrksendfilesetfsgidsetfsuidsetgroupssethostnamesetnssettimeofdayclock_settimesignalfdstatxfstatatstimeswaponswapoffsync_file_rangesyncfsteetimerfd_createtimerfd_settimetimerfd_gettimeunsharevhangupvmsplicewait3wait4lgetxattrfgetxattrllistxattrflistxattrlsetxattrfsetxattrlremovexattrfremovexattrbind_textdomain_codesetstrcasecmpcatclosemunmapcatgetsbsearchcatopenstrchrstrcspnbindtextdomaindcngettextdcgettextdngettextdgettext__duplocale__freelocaleiconv_openiconvmbrtowcwctombiconv_close__nl_langinfo_l__nl_langinfolocaleconv__newlocalesetlocale__strcoll_lstrfmon_lstrfmonstrtof__strtof_lstrtod__strtod_lstrtold__strtold_l__strxfrm_lstrcpystrxfrm__uselocale__wcscoll_lwcscmpwcscoll__wcsxfrm_lwcslenwmemcpywcsxfrmaligned_allocmprotectmalloc_usable_sizeposix_memalignreallocarray__fpclassify__fpclassifyffloor__signbit__signbitfceilceilffloorffmafmaffmaxfmaxffminfminfllrintllrintfllroundllroundfnearbyintnearbyintftrunctruncflog1plog1pflog1plcbrtcbrtfcbrtlceillexpm1expm1ferfcerfferfcferflerfclexp10exp2pow10exp10fmodffexp2fpow10fexp10lmodflexp2lpow10lexpm1lfdimfdimffdimlfinitefiniteffloorlfmalfrexplilogblnextafterlfmaxlfminlfmodfmodffrexpfrexpfilogbilogbfj0y0j0fy0fj1y1j1fy1fjnynjnfynfldexpldexpfscalbnfldexpllgamma__signgamlgamma_rlgammaflgammaf_r__lgammal_rlgammalllrintlllroundllog10log10flog10llog2log2flog2lnannanfnanlnearbyintlnextafternextafterfnexttowardnexttowardfnexttowardlremainderremquodremremainderfremquofdremfremainderlremquolscalbscalbfscalblnscalblnfscalblnlsignificandsignificandfsincossincosfsincosltgammatgammaftgammaltruncla64ll64a__xpg_basenamedirnameffsffslffsllfmtmsgpthread_setcancelstateforkptyopenptypipe2login_ttywaitpidget_current_dir_namegetcwdstrdupgetauxvalgetdomainnameunamegetentropygethostidfwriteoptind__optreset__optposoptargmbtowcoptoptopterr__posix_getoptmblengetopt_longgetopt_long_onlygetprioritygetresgidgetresuidgetrusagegetsuboptinitgroupsgetgrouplistioctlissetugidlockfsetmntentendmntentgetmntent_rfgetsfeofferrorgetmntentaddmntentfseekhasmntoptstrstrlstatptsnameposix_openptgrantptunlockptptsname_rrealpathreadlinksetdomainnamesetprioritysyscallgmtime_rstrftime_lsocketconnectsetlogmaskcloselogopenlogvsyslogwordfreewordexpfdopenexeclmincoremlockallmmapmremapmsyncmunlockmunlockallposix_madviseshm_openshm_unlinkmq_closemq_getattrmq_setattrpthread_selfpthread_detachrecvmq_notifypthread_joinmq_openmq_receivemq_timedreceivemq_sendmq_timedsendmq_unlinkc16rtombwcrtombc32rtombmbrlenmbrtoc16mbrtoc32mbsinitmbsnrtowcsmbsrtowcsmbstowcswcsnrtombswcsrtombswcstombswctobacceptaccept4binddn_compdn_expanddn_skipnamesethostentsetnetentgethostentgetnetentendhostentendnetentether_aton_rether_atonether_ntoa_rether_ntoaether_lineether_ntohostether_hosttonfreeaddrinfogai_strerrorgetaddrinfohtonsgethostbyaddr__h_errno_locationgethostbyaddr_rgetnameinfogethostbynamegethostbyname2gethostbyname2_rgethostbyname_rfreeifaddrsgetifaddrsinet_ntopstrcatif_indextonamentohsgetpeernamegetservbynamegetservbyname_rgetservbyportgetservbyport_rstrtolgetsocknamegetsockopth_errnoherrorhstrerrorhtonlif_freenameindexstrncpyif_nameindexif_nametoindexin6addr_anyin6addr_loopbackinet_addrinet_atoninet_networkntohlinet_makeaddrinet_lnaofinet_netofinet_ntoastrspninet_ptonlistenstrtoullgetnetbyaddrgetnetbynamens_get16ns_get32ns_put16ns_put32ns_skiprrns_initparsens_name_uncompressns_parserr_ns_flagdataendprotoentsetprotoentgetprotoentgetprotobynamegetprotobynumberrecvfromrecvmmsgrecvmsgres_initres_mkquerysetsockoptsendtosendmsgres_queryres_searchres_querydomainres_send__res_statesendmmsgendserventsetserventgetserventshutdownsockatmarksocketpairfgetgrentfgetpwentfgetspentfreadgetgrnam_rgetgrgid_rsetgrentendgrentgetgrgidgetgrnamgetpwnam_rsetpwentendpwentgetpwuidgetpwnamsetspentendspentgetspnamgetspnam_rulckpwdfputgrentflockfilefunlockfilefputcputpwentputspenterand48drand48lcong48nrand48lrand48jrand48mrand48srandrand_rsrandominitstatesetstateseed48srand48_Forkvforkexecvexecleexeclpexecvpexecvpefexecvesigismemberposix_spawnposix_spawn_file_actions_addchdir_npposix_spawn_file_actions_addcloseposix_spawn_file_actions_adddup2posix_spawn_file_actions_addfchdir_npposix_spawn_file_actions_addopenposix_spawn_file_actions_destroyposix_spawn_file_actions_initposix_spawnattr_destroyposix_spawnattr_getflagsposix_spawnattr_getpgroupposix_spawnattr_getsigdefaultposix_spawnattr_getsigmaskposix_spawnattr_initposix_spawnattr_getschedparamposix_spawnattr_setschedparamposix_spawnattr_getschedpolicyposix_spawnattr_setschedpolicyposix_spawnattr_setflagsposix_spawnattr_setpgroupposix_spawnattr_setsigdefaultposix_spawnattr_setsigmaskposix_spawnpsystemsigactionsigaddsetsigprocmasksigemptysetwaitidfnmatchglobglobfreeregfreeregcompregerrorregexecsched_setaffinitypthread_setaffinity_npsched_getaffinitypthread_getaffinity_np__sched_cpucountsched_get_priority_maxsched_get_priority_minsched_getcpusched_getparamsched_getschedulersched_rr_get_intervalsched_setparamsched_setschedulersched_yieldhcreatehdestroyhcreate_rhdestroy_rhsearch_rhsearchinsqueremquelsearchlfindtdeletetdestroytfindtsearchtwalkppollpselect_longjmp__setjmp__sigsetjmpgetitimerkillpgpsiginfopsignalstrsignalsetitimersigaltstacksigandsetsigdelsetsigholdsigignoresiginterruptsigisemptysetsiglongjmp__sysv_signalbsd_signalsigorsetsigpausesigsuspendsigpendingsigqueuesigrelse__libc_current_sigrtmax__libc_current_sigrtminsigsetsigtimedwaitsigwaitsigwaitinfo__fxstat__fxstatat__lxstat__xstat__xmknod__xmknodatfchmodfchmodatfutimesatlchmodmkdirmkdiratmkfifomkfifoatfstatfsfstatvfsumask__overflowvasprintfclearerrclearerr_unlockedvdprintf_flushlbffflush__fsetlocking__fwriting__freading__freadable__fwritable__flbf__fbufsize__fpending__fpurge__freadahead__freadptr__freadptrinc__fseterr_IO_feof_unlocked_IO_ferror_unlockedfflush_unlockedfgetcfgetlnungetcfgetposfgets_unlocked__fgetwc_unlockedfwidefgetwcfgetwsfgetws_unlockedfilenofileno_unlockedftrylockfilefopencookiefputs_unlocked__fputwc_unlockedfputwcfputwsfputws_unlockedfread_unlockedfreopen__isoc99_fscanffseekofsetposftelloftellvfwprintffwrite_unlocked__isoc99_fwscanf_IO_getc_IO_getc_unlockedfgetc_unlockedgetchargetchar_unlocked__getdelimgetwgetwchargetwchar_unlockedopen_memstreamopen_wmemstreampclosepopen_IO_putc_IO_putc_unlockedfputc_unlockedputcharputchar_unlockedputwputwcharputwchar_unlockedremoverenamerewind__isoc99_scanfsetbufsetvbufsetbuffersetlinebufvsprintf__isoc99_sscanfstderrstdinstdoutvswprintf__isoc99_swscanftempnamtmpfiletmpnamungetwc__isoc99_vfscanfwcsnlen__isoc99_vfwscanfvprintf__isoc99_vscanf__isoc99_vsscanf__isoc99_vswscanfvwprintf__isoc99_vwscanf__isoc99_wscanfatofatoiatolatollecvtfcvtgcvtimaxabsimaxdivllabslldivqsort_r__strtoull_internalstrtoll__strtoll_internal__strtoul_internal__strtol_internalstrtoimax__strtoimax_internalstrtoumax__strtoumax_internalwcstofwcstodwcstoldwcstoullwcstollwcstoulwcstolwcstoimaxwcstoumaxbcmpbcopyexplicit_bzeromemccpymemmemmempcpymemrchrrindexstrrchrstpcpystpncpy__strcasecmp_lstrcasestrstrncasecmpstrchrnul__xpg_strerror_rstrlcatstrlcpy__strncasecmp_lstrncatstrndupstrpbrkstrsepstrtokstrtok_rswabwcpcpywcscpywcpncpywcsncpywcscasecmpwcsncasecmpwcscasecmp_lwcscatwcscspnwcsdupwcsncasecmp_lwcsncatwcsncmpwmemsetwmemchrwcspbrkwcsrchrwcsspnwcsstrwmemcmpwcstokwcswcswmemmovemkdtempmkostempmkostempsmkstempmkstempsmktempcfgetospeedcfgetispeedcfmakerawcfsetospeedcfsetspeedcfsetispeedtcflowtcflushtcgetsidtcgetwinsizetcsendbreaktcsetwinsizecall_oncecnd_broadcastcnd_destroycnd_initcnd_signalcnd_timedwaitcnd_waitmtx_destroymtx_initmtx_lockmtx_timedlockmtx_trylockmtx_unlockpthread_atforkpthread_attr_destroypthread_attr_getdetachstatepthread_attr_getguardsizepthread_attr_getinheritschedpthread_attr_getschedparampthread_attr_getschedpolicypthread_attr_getscopepthread_attr_getstackpthread_attr_getstacksizepthread_barrierattr_getpsharedpthread_condattr_getclockpthread_condattr_getpsharedpthread_mutexattr_getprotocolpthread_mutexattr_getpsharedpthread_mutexattr_getrobustpthread_mutexattr_gettypepthread_rwlockattr_getpsharedpthread_attr_setinheritschedpthread_attr_setschedparampthread_attr_setschedpolicypthread_attr_setscopepthread_attr_setstackpthread_barrier_destroypthread_barrier_initpthread_barrier_waitpthread_barrierattr_destroypthread_barrierattr_initpthread_barrierattr_setpsharedpthread_exitpthread_killpthread_cond_destroypthread_cond_signalpthread_cond_timedwaitpthread_condattr_destroypthread_condattr_initpthread_condattr_setclockpthread_condattr_setpsharedthrd_detachthrd_equalpthread_equalpthread_getattr_nppthread_getconcurrencypthread_getcpuclockidpthread_getname_nppthread_getschedparamtss_getpthread_getspecificpthread_timedjoin_nppthread_tryjoin_nppthread_key_createpthread_key_deletepthread_mutex_consistentpthread_mutex_destroypthread_mutex_getprioceilingpthread_mutex_setprioceilingpthread_mutex_timedlockpthread_mutex_trylockpthread_mutexattr_destroypthread_mutexattr_initpthread_mutexattr_setprotocolpthread_mutexattr_setpsharedpthread_mutexattr_setrobustpthread_mutexattr_settypepthread_oncepthread_rwlock_destroypthread_rwlock_timedrdlockpthread_rwlock_trywrlockpthread_rwlock_timedwrlockpthread_rwlockattr_destroypthread_rwlockattr_initpthread_rwlockattr_setpsharedthrd_currentpthread_setattr_default_nppthread_getattr_default_nppthread_setcanceltypepthread_setconcurrencypthread_setname_nppthread_setschedparampthread_setschedpriopthread_setspecificpthread_spin_destroypthread_spin_initpthread_spin_lockpthread_spin_trylockpthread_spin_unlocksem_getvaluesem_opensem_closesem_timedwaitsem_trywaitsem_unlinkthrd_createthrd_exitthrd_jointhrd_sleepthrd_yieldtss_createtss_deletetss_set__tzname__timezone__daylighttzsetasctimeasctime_rclock_getcpuclockidclock_getresclock_nanosleeplocaltimelocaltime_rdifftimegetdatestrptimegetdate_errgettimeofdaygmtimemktimestrftimetimegmtimer_createtimer_deletetimer_getoverruntimer_gettimetimer_settimetimespec_getutime__wcsftime_lwcsftimeacctctermiddup3getgidgetegidfchdirfchownfchownatftruncategetgroupsgethostnamegetlogingetlogin_rgetpgidgetppidisattylchownnicepipeposix_closepreadvpwritevreadlinkatrenameatrmdirsetegidseteuidsetgidsetpgidsetregidsetresgidsetresuidsetreuidsetuidsymlinksymlinkattcgetpgrptcsetpgrpttynamettyname_rualarmunlinkatusleep_dlstart_dl_debug_state__dls2b__dls3_dl_debug_addrlibc.musl-aarch64.so.1h gx ~    *  D   +    |0 W8 %@ ^H ;P X f A? |Dh9^{pG<    pG< pG< pG= pG"= pGB= pGb= { *4bk*S4       <#"#@ Z!?@ ;<a+:  d!T8 ' #>mT'd#>ǟ">!R<"ǟ@ "R"..T` #]  T#>} T#>.ǟR"d #9..T#?&T # ">"?R' ! !_">T` #.F T} '#>T.X w #>T">.ǟR"">MT #>T #9T#?FT@ "T` #'Td. #>MT{ `#>MTZ @#>MTd..#>.T.d.d.d..   <cbc@`Za?@`;|a+z ` daGT8`g`#~TOg#~nǟ"~Rbǟ@ bRby..T` c\`F T#~}`T#~nǟRbO #yn..& T#FT c b>b?Cg a a_"~T/` c.T}`g#~T/nX`w`#~T"~nǟRb"~MT`#~T #y&T#FT@ bfT` c'TO/n.`#~MT{``#~MTZ`@#~-TO/n./.#~/.TC`nO/n.O/n.O/n.     { AN=+= =/=B3=A7=E =F==NN]q= NXqjT+@C@K/@@G@#=@O@2=E5@2#==qT@2'==8 5@2'==qMT@2#=3R=*4`R3RЄ@2f'==/@$@4`R@f=$@ N 5@3@=@7 N&5@2==#@;'@@? `5@2==q T@2=3R= 5@2==qǟ`R@.=ff@'@@=&@ N 5 = N `5=== ==N=+ @0==B== =N=@0== @C{Ψ_@2'==oqǟ@2#==gqǟl@o@ === N 5#@;'@@?@2== @5@2==IqmT@.=f@C#@K@@G'@#=@O@2=` 5@2#==*q T@2'=3R=R 5@2'==qǟi@2'==D 5@2'==qT@2=S@CW@@G#=2 5@2#==q-T= N' 5 = N# 5= N 5= N 4'@o@ ==N@2=[@C_@@G#= 5@2#==qT@2=c@Cg@@G#= 5@2#==qT@2=k@Co@@G#= 5@2#==qlT4/@o@ == @o@ = ='@o@ =@2=== @5@2==qmTB@._=f/@o@ ==@o@ ==@o@ = =v      f f! D;$F)p@pH}'} KE BpC}i}_` TqT_ !TqLTMql2TR!K$%)!? !$!ˡ ?@ *TdjRPT``"T$ @T!c4dM4R   DBdj_aTR*DPT`6Tg!%  T% 0 *@B4ҟ6TqM%T!?ڣqmTD q2T_`Tq Tql8TR!K$%)!? !$!! 5B_@4T @dLAAӢ q/T_Tq-Tѿc@dڄ0Q|@RKc Ě $! Ě_L TKK#$Ě! Ś?! Ś!$Ě ?@@Tdj RPT*dMRA!4!T "$*/+ @C!  eM_ TqlTMQdM5$BҀR_ TR B8a  *cCF4T`0T Aɓ? TdjPT   ՊR *a cC_Tc@B8B< *e@ gE) џƔTR!K#%К)!? B$КB_@TR!KQ !)$К?!(C?@!TR_6R)!$R4٧jRD) !=1 cG!Q$!@j2P T`@T" @_`T!7 RI@)@_(CRҊ! 7B 4JR “C@'7   f$f%D;gӦhpa@Ӭ@Ӡp T TT R_֋ @@(T{ R R{_? BTRkThJ__J @?ITT T k_  f$f%D;fpl@aӨ@өpӠ T? `Ti _f ?!T?_և?T? RZ_'I?T TThTqBTTqRB(T_R_ ?!T R{ R {_?T   f$f%D;gpl@aө@ӪpӠT_`TG+_) g ?T? RZ_ֆ_!T+k{ R @R{_?T lTT TqBT TqRB)T?_R_?aT R?T    {f$f% D;*H!@Bp4R_kT!*!MC}Rӫ@Ӈpb4R_ kT*B c)LTJkē@bM}  T-ҥ!ΚaTHҿ$TҿT`Ӓ`Ӆ|S4`Ӈ}[QV`Ӑ}|@~%E}B|.҄~q|3B|}LVF R~|@G~1BA|@ƀ ^ BŀER̓M!eЁ! 7'|@! 7@@&`LL7! 7!75@@BD4A8@d@BFF!Aӟ*TSA[B7Fӫ@ӇpRO5bb mڥ=Ѱ RBKk!К$šB Кm  ) TJ@ LT     T T@ Td@HmTc@T"j2_P@%T_`@(T @H_`T!4a!Kd@ҟlT8& Ɠ!C8bc(TJ@ P>&'<f RBK! ƚ$šA ƚcRҎ/R@)LTJ@ 0 lTHR҄<*#@g  X6R4"TB CГBA T$jRP!T &RC ÓBC?@TB@!8!<*E@`g%gR~f0Z@RfC(5S@R(LA"LS@R(LAFCRQ(L @=CӄX6RH3`g @{¨_       Հ6?!D;ՠ6.=!D;6µRr?'^'+>!D;Հ6D <!D; 6.';> D;_$_T_T_@T&@44?_6&@__ 6&@__NA&@9_8(hn89h.88_ &@($A,~4_T$,>4?_ .4?_ ,4@ @|!B&A 4($B*,C,4ĩB@iTf&Ah$($Bj,*,Cl4,4ĩBT<|f}h$$~j,,l4<<=$>,?_  N_T_@T<N6_ Ղ6_ւ9B6x_=07?_ւc@B@``BT>?_{S[cksl@@uc@C@gA*RX0a;@$RR@; s S)_A< `@|;4!:#t4qT` @5+` @4*CA"R*A "R!a Rb `*aR (J!@"0@_qT` &K@+`@4*A+@qTDq TqAT*A * B*@|@_R3!Rp#SA[BcCkDsE{̨_*o@|@k@{[7UkB?s\S**c,Gw~x^Pz>H{ Xw}haA}ha a}hab%*-SAcCkDsE ?!R5B?,SAcCkDsE[B{֨_ֶB?,*!R @7R.V-G@G~}jwGhw}jx@GhwhxZ}jzGhwhxhz{}h{b)B?,OSAcCkDsE` Y?B?Ҩ,8 O?j7G6hw G?j8G hwhx >?j:G hwhxhz`!4?G hwhxhzh;)#A!9 _ 5)B?p,@R-SAcCkDsEv{S`[*UB?,y)`@qaT`@ABB9!G|\P@rB cA!G!RCCR-`RrBc%5@R-/5cC#@SA[B{ݨ_(`@q,Tb cRr>@R,cC#@Q`){R[SĢc@@b~=]@t^ =t@uLE)x@e<_57.@c`_a5qaTCc9R`_a55b( @@ @@ !@qT4 qA T@;տ;@;#@[BSAcC{ШH !{@T!H !{@T!H !{@T!:Qx)OaC<?= ?,?#@*HჀOSA[BcC{Ш_R!R*Ax ?@qaT*{_R{_<@_ֿ;p@x_{S*[c @kTC#CWRR,,>R* 8@3R'@$qZb__qTt5@ #RH.@q;Ղ5 @v@?T @c(@R+#@*SA[BcC{ը_{ *;A!|N5* @{¨_ҢqTT{A?| S`B?*5@G`B? @{¨)@@?*@@?*@ @{¨_ք T@c  T@ hc`B _ T@ hchb@!hc!hb?h  `T@{S*[co+7N4RRus" T`@CqTx@k R4@?GBs!;T?RR?!;s"T`@ q TkDRSA[BcC{Ȩ_ֵ4qTbRr_?qT5;yRr+z5@;U[`9_55*;s" T`@q T+@kD`9+@$Rc***qTqTqTsR/kD{S@[R@kT*i 5skTzsqTqz3*5*SA[B{è_R{S@@4qT@ @ ?OaC44@qT@#=t@@ =~v`d*?[BcC' #A!TAC!R R]*B"@5@RR*[BRcC*SA{ب_{!?@G3m+@`8 *;m[@``A`f @!t$K!Q g  |@ !|K!!, S?g, SW`_gW`_>W @``A` l n o|@` @A`!l3Bm!n;Cm!o@{Ĩ_{wRAdr?'3m+@ 8? *;m]@ `A & X!|S2!LQ '  |@ !|K!?'W7'W7:W @ `A  , . /@  @A !,3Bm!.;Cm!/@{Ĩ_[ccc{m !@a{DG;`_{{`R!@! r'{; _{ 3f>@`@a @C`C`{¨_>@a@`{ 3&6>@ @! @C C {¨_>@!@ {  NIA*s4@#@ NA'= @{Ũ_@#@ =A'={Wx>N.NN=fsA =WA{è_?@`@`C`P?@ @ C LQN NNQ(a8a{pn |?m.@`~@`;!n8n!(o@`?Am @`{¨Ca_{p.?m.@ "@ (."8.!{ <!};?!@b28.!(/@ ?Am @ {¨C!_@` @a{C`@`{ @`Ca_@  @!{C @ { @ C!_{ =N@ @A= =@ @ NA={è_{=@N=N@.==.== =N=<= =N===N=?f N A={Ĩ_{n?m`/@`!a(`;n;aDPl }HG#`JT +}n^ 9{){LG a^PG ` oTG | })n(n {;|`;};r@`jA`?Am!{¨_;}{.?m /@ !!( ;.;!P,`R r'>?# JT%+>8.9?)? g">" = /g "XG+.). { |  z;{9}9~Abv@ *A ?Am!?{¨_;>@` @a{C`@`{ @`Ca_@  @!{C @ { @ C!_{ =N@ @A= =@ @ NA={è_{ =N=@.NN==0= = NN=)N==NN#=P.==/=p=o= 7.==@/=N==/==N=N/====@. ==N==@. ==NB =x@  = N==0uNA  ==0 ==dN @={Ǩ_ր.=@` @aC`@  @!C f$f{"`Ӏ`_k?mǟq@`.@`Cz, T*`47m@_kMT ȅRr_k T uRr_k,T=JA`c-@`@`A`nT@`A` a7AmCU n@U @`A`T@`A` ~@`A`|@`A`7Am a?Bm{è_JY @`lA` T @`A`A` l~Tg @`  oT@`A` 7mG*G5k T o9n)o n n7Am.8a/ ncT@`7AmA`&`*5 `_kTL*&5A`/ST@`A`7Am!n(`/ aJT@`A`7AmqCzT 8a7Amo_k TL `*5kT.8aA`7Am o @`HT@`A` m!&&{"xax?k;m䇟q@ /@ B@zH TB4޷?kITBR Vr?k T{S@"@C`9qHTRbBKR@B}ӂ*"cB@!"8@B|S"8@y"8D@B|S"8T@SA{è_RBKbRl{k!҄RkhT[bG@!6S*I5csSA[B??@? `TC@ha8!q@zT{@ O`Oz~@=@gz 7[<~7@_AT7@b@#3;GJFs[=<`aTF*;@G@O@0BQ-BqHTqbQBlZB "9~S4"T7|UR\Ur@.F;@y 5V52qTHO@hhRe1$A`j48.3@[YS 5 5R~ ?=sapSs K<KK6[ T{Hb8"8|S?aTc a`T@9@9@9b8`8f8B\S@@**B9!A]9CB|SK@#Hc8!Hb8U9Y9SA[BcCsEkD{Ѩ_GG{S! 2@TsB4SA{ƨ_ց!b4&@9ߐqT&@94'@94qTqTqTqTbqTX& @9ߐq!TqRGzT&{' S[$@9!"_8#_8&_8<S`* *B*DTC@L)M)N)@ @*EHJ BJ! ! 8*M aL!DJ *!(CJ*****aTLA)HB)@C)*8D)*******B__B B * **d  ***C J,b*av J !4JB B*fJJ!XJ!  Tc  ) k    J ) ,) )()@SA[B{Ԩ_{S[@rTRsK*T7˵qz shaT@@SA[B{Ĩ{S@"@C9qHTRBKRm@B}ӂB ڂ2@"c @9!"8@y"8@B|S"8D@"8T@SA{è_RBKRL${S! c? `qTb!6k*(5x!7!5`*@9Q$qhTC`*BR*@@9?qaTTϒT[@c! 7}R[qR[BTkv8q@zTqJzT[BkDSAcC{ب_ր~@s[gz =C=7<<7@_T7@@;Cr I ==<<T{F*C@SqT{QQqBhZB ~S4T6R ==<<kT{CR ==<=a |? = kATR`a= /==ao>=a |? = kB9c@kTCQYqHT*S755Mz@k`T!/RowUR!WUr |a~?=apSa9K`_= K?=oKc==`g= =k=T7;@ 55***QqHT*o@5Q qHT*?@@c!7h ЉХ a$$c a T@9@9@9b8`8f8B\S@@**|S?THb8"8C9!$Y9CB|S?@#Hc8!Hb8Q9U9cCsEC@|C@{S;Ѐ!#$3@TsB4SA{ʨ_ց!!v4{!c  a@8!! B*B9KT!  TR!@{¨_{*RS~R[KKTb@8%RB B *%4Kv~RROK Tb@8%RB B !*Re4O4C@B0 RE@cD@@Bed<_!T@3#R$RK@KT$!8O@KT $`8@SA[B{ͨ_._@;]!@?_._/_2!Q?dqTQ$q_ R2Qdq_q_qIz_q_z_Q$q_Qtq_Qdq_Qxq_Q?tqiTR_{q{_q$QDz_Qdq_Q?$qhT R_{q{_kTRArk_|S!+C"Hb8b !Hb8 (*Qq R _zIT" R_kT! ?q_!?,T?,qTB`BHa8a""@Q$q_+:DdtR{S4Rs(sa@9A4@9_kAT5~@@SA{è_Q$q_{ *I4R @{¨_*q{ *k @{¨_*q)T" R_kR R BzT#8@QRk)T`bR# rRkHT!8R?k!?q_kiTR_|S!*C"Hb8b !Hb8 (`5R_{*({_{ *wk @{¨_Q?$qT2Qq_ RQ?$qT2Qq_ R_Q2_hq 0_Q R_hq 0_*kTbURBUr|S@} R )a2Hf8caӭA?nA0l   KIf8*'ygHc8c|c| Sb|BbB bK ybC|DaN @{¨_{Bk! S[c6`B3A  "T# a@a@`@s@9 !@j8bSA[BcCkD{Ũ__{&SRGczbB b"@@T@x3@s@"8` , K@4!GBG4T@_84?qT@0@wK?T#'R/FR( aS[!@8`6L?aT@ s"bT @y`/6` 29} Ե R 9@SA{٨_{[V!"S*{0*?E{S*B!@ a@q*cP@SA{è{[V;"b@@S43DAa@xtbARb)s@cTb@SA@[B{Ĩ_{GGA;9@ {_G͉8|9A;@ _9} {G @s`@s" @R{¨_{RST@95G@@SA{è_s"a@@5`@hu8?qT{cGS[5@Sa@4s"# `@vL# @}С@?T~@}T@vj9z43#@RSA[BcC{Ũ_m }@"#@m#@{R +`T@95 @{¨v @{¨!I9A5y_{S@@S@SA{è@B @TD@cT$SSs}#@"x!@SA{è_{@S*[RT@954 @Rj58@[BSA{ĨCSA[BDR @SA[BRSA[B*{Ĩ_{R[@T@95GS@t!R"~s"a@5`@hv8?qT`T`@"@TSAR[B{è_@;_ q(Tc5B9``x!@9A;!]|@  {R~6@;Hc 9} {*!8@{SsД:[ BbJ?@"Q?qTSA[B{è_{SЀ@NqT!@RC3 **@SA{è_{SД[c&@s":RAUhc8@?&@a@#Qc#|}?q,TB@&wSA[BcC{Ĩ__{S[b&@bТN_q`Tc&@@b"VWR@SA[B{Ĩ_@`&!AҜa&@R Rc&a@!_{ *b*-*!HR]{*C|@)'q TqT$qTc(X1T5C)?qZCo(Y {Ũ_ ҟO !|@G q!T(X1@T|@7A"6 X1T7|@(Ԡ* |@{ *'07!!Pa ?PqTK@C)c2a c|@V|@76(A" @{Ũ_{*07dPe PqT;@)c2|@c|@/{Ĩ_|@c|@K_|@K_{`qT* T R4?Pq@RZ{_pqZ`RD; _D;!t!*DR_!D; _!D;! !DR_!D;!*!DR_D;"D;)R_@T@)D"DR_{ **Ra @{¨_{RR{_{S*@ @` RSA{¨_tr`T_ֵ{SR**RSA{¨_{S[*@\@_T@S@9`QxrT@^@T@9Q_$qTq***U4b@@рOaQ?$qTRwRRr b@@*aQ?$q  WzlT@` ^@Q#?@T3@9ҵ~@7\(*aQ `~@?$qWT@Uс^@ T@9*aQ?$q(T@^@T@9b@@р@qSA[B{Ĩ_ c,{S*[*cksRc);Rq!T@^@T@9RqTRRR'@^@T@9|;RqAT@^@T@94RY54R@^@T@9qQ IzTq T?qTq4%~Z;Rje  j%_'qT9;RR:R*9q`T`R2 >q42?q T7b@@@4 IT@xqT&4c@#=`~S K T`Q +TZ4_#qT!~#@jaT_qT_q@T_qT_qTA_qT?qaT Rr|z#9#qRӖ*kQzT9@9zy47R* kT&qR!K @RR RRaJsrkT@F  +Iz|T)'Q))@`T@@5ҹ @D6RCoc@/b{@ SA[BcCkDsEc,_c@|=*N=dbB@2#=ARA=`@2=WbB2#=ARA=`2= xSj! R|j!}}R|j!yR|j!uԐR#r|j!pHRr|z#kВRr|z#f@'q T#qT'Q@ K xqlT& 5+Qx*=*G#=N=*?#=*:#=K=vN=/h4\"K *'jJ Rj@RrHs3 )z'&Qk`T?k`T( (~*'|@Rj`t* TIӥ|ʛK*?k T(5* Q**b5qTw kTQ{wQ!)RQ'*kT7qTqT R̪RRRRrWrNrm1rrQ(~* (~jej`!*j kTw9+op?kT`29+~ +='=jy'=bk`T`2+~='=jx+'=Tk@T`2+~R='=jxxK'=E#=@#=_kT:7*4R?qLT R!RK5Kn _{#=L7N*n+=_sN#=BN'=#=$N+=!#=(kT(~៌Rrj`k(T5(kTc@BVN'= '= RKqT@KDsK+=NaQ{?kMT{@*SA [BNcCkDsEc, _<+Q w|(Q y|(Q |(Q *?R(R14(kT<*k Tw kT kT +k T(~j` kTkT (kT(~j`kiTkaT(kT(~j`khTqTq T)R* *{ *R"|~&?k@Tjb $+j" Wz| (T7+'QQ(~j`!2j R5R R4RTogc@!_bkTm `pl(k!T`@.'== Bo9`5`@.'==k'=d=>`3s=j=`6xkMTo'==!q=j`T=z=ARU`.N{=N_kR*4kTF4R5b@@?qZT{*S*2B2[cUxac^@xa q*$QDzTc^@`@Ta@9?q $QDzT Q7RxraT`@?qa^@K Ta@9 2qIT`@a^@ Ta@9!2?qOT`@a^@` Ta@9!2?qaNT`@a^@Ta@92qOT`@a^@Ta@92qKT`@a^@Ta@92qaLT`@a^@Ta@92qKT`@a^@ Ta@92qGT"R'?SA[BcC{˨_** *`b@ `@b?@T"?@T_`b `q`b@@`@`q,=TqT`b@`@`55`ѿT@@3=ss@`@a^@Ta@9R **$R?q!T`@a^@Tb@9R?q@T@@.R=#=2`@a^@Ta@9 s*s@|*$R?q!T`@a^@Tb@9:R?q T\Q?q T {$R`@a^@Ta@9<Q'qIT 2Qq)T?qTz5:Rs T@3#==#=*#=N==@qR?jT@.#==N== R)*@$4_qT9oSaT`b@@`@45` @5`/bkDsE9oS9_S9OS9?S9/ S*aT@`5kDsEBR*"@@2=6@@2=2kDsEv=s@.==97v9{S=NN`7@@.9=dN=a=`65TvKՂ1Tq,T3nRK)\@`*NA`#=#=c4#=o=~qǟ qj@T973@9R3*k=='=*=#=)'='#=%=o5HAR=*kDsESA[BcC{˨0\3@4T9oSaR T?`T?`T?`T?`T"? @T#S_yqT`b@`@`4#K!,TQ JTBR*"@2=@2=kDsE'`b@@`@4 `.ks?qT`@b^@Tb@92qT`b@`@`kD*sE***cC[BSA{˨iqqT`@a^@Ta@92qT`@a^@Ta@92qAT`@a^@Ta@9q55`@a^@Tb@9QqmT_qT!$ša64Լ5`b@`@`RCoT44`b@``@`o_{?q$Az`TS*[*ck\@wR{ƨ_q$Q DzTb^@`@Ta@9q$Q DzTQR?xrATa@q`^@Z?T ` @9zr Tq@TB! #@9U 4<qh T+RRB}`@a^@Ta@92?qTB +@95yRRg`@a^@Ta@9B RR@9<qT+S`b@@`@4`SA[BcCkD4SA[BcCkD`1SA[BcCkD$qHT3R43r)B! #@9k"T*qT8RQҚrjTR! 3+~E9H`8`b@`@` RSA[BcCkD[   Q$q TzT`@5Qa^@`Tb@9R*53Q $qb|@U!ӈTBT`@a^@Tb@9$qTB @9$qTUR*` @9k"2ZzHT`@4*a^@`Tb@9BZ'ٚ` @9*k T_cT`@"ٚb^@4 Tc@9+@B- @9k2ZzHT`@a^@Tb@9*B@ @9~ٛ*!kT"Ta@`^@"?Tb @9 @9k"T`@a^@Tb@99@R bb@V6"`@R`@`@`4SA[BcCkD+@`b@`@`"T@SA[BcCkD6IT BR"SA[BcCkD5SA[BcCkDRyR_`G͌RŬr89*Rr4E|*c$qhTRH$8r#|Q*ccb "K*BH$8$qT_Ry@,@c BD\_{SL@,@4˔`T Ta@b.@7cb@d @c˅˿#dCd^ccf?HT 8SA{¨_BB*a bf{ @T @{¨_֐K"{d@Ac7xbTBcC{Ǩ_[BSA[BkDsEBxbf[@p@yu@l@yc? Te@qTqTb@_AT0Sks@TB@S@3C@TTT9@d@T?`@ZRԀRC@B@#4@@y7@@y J8@TA @7@Aha5@SAkDsE[B`@sbT@9C +#6B|S*6@y4@5A{sx{ *> 7@S@yS*`* @{ʨ_{h|@!|@|@I{_{H|@!|@@{_{|@|@ҁ{0d|@|@{t${_{_PqT$še7|@!|@B|@|@{Ĩ_){R?k,T|@!|@B|@{_֠{(|@{_{|@{_ֈ|@B|@{h|@!|@|@{_{{_{?|@!B|@H{_J)@_ A;@@B!_!x`  _(A;"V8! "6 T@c 9Bx"9`_D;Ձ^ "_ T ;ՁT@pA#T@ !_T A5_{S[c;fpA` _AT` E5s@V;՟z@^"z@T~~@0|@_B S~@!@9V29SA[BcC{Ȩ_{CC#C#' ) A=={Ѩ_{S*;(5 qT@SA{è_* :!{ @9@@ғP T@B@S{@ @!_{ * 45AR@8*7R6 qlT @{¨_M4*!R|@7*ARx7 qT61`T5x701T4R*G*D{BGSsBB@!:t~@=_=1:@SA{Ũ;{BGS[BB@!:T~@=_=BSA@R[B{ŨA{^|@ * ==*Ͼ{^|@ * ==*¾{CC#C#' ) A=={Ѩ_{CC#C#' ) A=={Ѩ_{C#C#' ) A=={C#C#' ) A==*@R` #Rd{CE @DAcBcBcBc}B} {è_~{RCWa @{@{¨? _?q-T{S*q`R`Ҁ>gZ_?@a~ ~z"Bk,T@SA{ڨ_B_{A Rr[: 7S*t'=s@!@v@c t =2* k9TwS?qT7@5 k@`8T!<R\RX8+@?qT\R+@XҌm R)RR[R㭁R_kTqT_k TD *c|Sy`x\4cABT 4@I95 >@kZsR@9q@9ARB4_IT;k58 c3B_9`" 7@@B9AkDcCsE7@SZkDsEkDsE, @BB9AcCcCV4SA[B{ר_cC/_a"B!@AB,!A` _{cCS[* k|! s T*T*7tzsssS C@V,U?jTT4N4N4SE43C?4Ҋ` =v@=t =v@ =v vSA[BcCkD{Ȩ_*z3sAT@C k RҔBq T{Ssa@9?q#$Q`DziT Q$qT?qT?qT?qTSA{è_BRo@$AaT@9?q!$Q DziT@`@9?q!$Q DziTa@9?q!T@9?q!$Q DziTa@__{[uQc#**c@4ҟ,T@9ahd8k`TS*q T! 4@9|@!d8_k`T qTSAR#@[BcC{Ũ_4"hc8 4"t84֢a?@t8_kT@*@2qHTJt8bT4$@7ᇟᗟ'aaa~SAb A!a SA4{STQ*R@9?qTSA{è_[*u@@9?qT[Bv@*Uv@v[B_{Sc RR#T@9?qT?qaT@ b R@@9?qTSA{Ũ_b R@@5@@9{Sq( T[ж *qT*T! 44@s= s [BSA{˨_cks`ȅҠ?j98@8q*]T *aRT?_T [BcCkDsE=a |@"=<_{ V=RyR"a@@?@j48T8 ZqS[BcCkDsE[B 4@B;B]{S[>ck9+z@{@s8X e@9 4q!Te@9bqTR!BE@9BQqT ĚTpqT0qT(RE@9 FQg $q TqT!RDRqT Rkןjc7A?:}@#|@TRA $ @8Q_$q)T!RR @8 Q$qiTaC?qTB?*Z} @;*R"+@SA[BcCkD{ƨ_{C#C#' ) A==b{Ϩ_{C#C#' ) A==J{Ш_{[STSA[B{è_C;c]Р>!A?_֠{STРAA@SA{è_R Ҵ@B;C]B Ѡ$ @L! `_,B;B]{S[dTsSA[B{è_b C;c]{a"|S3|k!N!4?Tb.@RSA@{è_4SAB@_TC!aB`Rn?T@@RSA{èaq{a"|S3|3!N!4?Tb.@RSA@{è_ָ4SAB@_TC!aB`R1?T@@RSA{è${b#TSA@B0AT!N4!NA4@B l  @AT_8_8_x44_9} 6R{¨_SA.RSA_RkTlS!"haC@T9} D@kLTA@!$7A@!$7Bt!CB@_T,S_q(T!@(!bx|kT! kJT?)Tt'D&cT!@џ@T!@(!bx!<|Ӣc@B@*sB  B`TRcDkHTf<R8C8akx TK_#8?qLT_8BC e88!DӁxSAz??TA!k TK_#8?q T_8BA %8SA_8A_8QR!R_8A_8Q{c @"S[5Rc8|RkZZC(@b?9} ԂA(@!@ @ qW T@{vx@|lS?TzsRQ@?09@"49@33B9@9} @(SA[BcCkD{Ũ_ @T_8_8_xB4c49} _RkmTdlS!$ha@?T9} @$kKT@$7@$7tC@T$,SqHT@(dx|_kT kMT??T!t!D!?#cT_"z_?T{"RA S@Rb@c@e@D@F,Sc* $ QkT#5߼qmT9} "/6e@߼qTG_@ T_?)T@(@t@тfxB<|TE|@(xa Tc@(ec@#xb T~ T`@,S߼qlT|@!|@bxa@`x!`@?T"@N9@_q TQ @9_|qhT""@@ 9a@` @!t~~ @" bB@bSb@S_?TT|@(xaQ_|qIT|@(xb(?x""|@@M9qiT}ӂxb_cTMqMT# 5(zfTKec@#x"(xaD@5@ERp@@ӥ QK;Ճ@a @_kaTA5 ! @,8T Rf @_8!6sN |@(xf_Tc@d@d9} "b@@``@`r_"*5SA{¨_sNx& { S_8BR Rc@!8x c@F Qe@b@*jT9} ԥ4 _k@T @9 _r@TbrD_kTC5SA{Ĩ_c;  @9raT @S@ ?3?@_qT`T8_ @9r`T " f{S@ 43@`@Tb@@b@ @!T`@ &͉[#8ҵ ~'sB@ hs@daT!!@!!R'@[B @3 @єa~SA{Ũ_?[c"@TA 5ATT@VCRR@"~RTL@~B'aTbRR4N@q@T[BcC6aT ACRRRL 6 $@ѿ5$@ѿ5@@$ @!BU RC 5 " @C3 @[BsbcC{c|@[k+xab@5b@`@4x!@AR@C@! !Qk T@AR@CB@! !Q?jT@ T+x!@ 5@GRp!@!@ QKUTb@@b@xaT+|xas{`C(SuxnS>|`7xaDTA"q Ta!'"3h`8`~ TS@9`~I TS@9``@x!x!b/6+@ x"@@`@(c,SaxlSa|!@c* @QJ?qMT @9kЃQ3 9;@ _kaT5 5Ss9} @!,S!Q?|qTa!#M95KA ajTZZ[BcCkD{ƨ_cQ# 94a8s~7`vS TO@s~~TAz~@qT@?iTfvS|@Q"@N9|qhT @M9M95qᗟ臟B?TZ*AK?$q,Tq! !  9R(R@_q T@@9u7~qTq@ @cbFTqT TT"R* B@,_8_T RqbFTqbFC Tq`~@ǟ!RZ@ZZ_ja TCRbRKQTFLӅ@AךcQz~@t!Q @?k!B "| AR$ Qzf! cz&c2 c*@!K!Q @ @9A3 9B@y@L@`*By QB9} ԠqT iT*SRZ@ZZ`9SBTTazS!|@?Zs)T`"R*3RR }Dӡ0*@TBcC(@|SB*@*@* @*@@*9Z9Z9Q9wS%$ cex_뙀yx_9*X*1 T{C(9eyx(@lSQ@|@?@`@ T,Sc`xc<|@ |@bhф@BFD_8# 4_xcc _85#bTBBBBBc #TcKcQ##T#4blS8x"8@@!8BDxbk TK!8_qT_8!" A80R@c,@_8ccd28!~~ @@@SAsEt@Ѯc0@98_8!!Q!!_9BkTcQ*@`_9} +zx`@@SARsEyRz8{! TS[`c k T D*?|Ta!@(|SB@*BB*BB*S B*ssZsZsQsvScb #cxS!sxs  @9raT`~@(7xbd CzT~qdFzT7 x`b2@|@(7xc x` @ 40T**1`T|@3@w*@dRҴRCRbRO@T  @9r!TЁ"@N9@_qT@C9  `wtB@{RTT3SA[BcCkD ! B@,_8?T R &PSA[BcCkD @A5  0s@K!j T6ZZK@~@ @?`@@@Tc,S`@(cxc<| @ea˂@!&D`_84_xBB_849} * SA[BcCkDyctc@"bTA!A!AB "TBKBQ"T"4AlS8x!8 @@8b˄DxBk TK!8_qT_8!" A8SA[BcCkD{Ũ_8b_8!!Q! @T_8_8_x!4c49} _RkmTdlSB$hb@T9} @D?kLT@$7@$7tЄC@TD,SqTeР@(dx!|kT kJTR_?TAt D#CTR_@T@(!@Ѡdx<|?'@z?T_?hT R_@tD#BT  @T_8_8_x4e49} _RkmTlSB#hbC@T9} D@?kLTG@$7G@$7BtCB@_T,SqTbB@(Bgx(|kTB kJT?)TtHD%cTB@џ@TbB@(BgxB<|Ec@|S!b|q TqaTD_ TE_85E˿cTBD@95aha85@_ւz_?!T{S` [?Tca@k!T`_8i_8b_x&44?9} SA{Ũb_R_kTAlS!avj` @?T9} @#kLT@c$7@c$7tЄCc@T',SqTcc@(cgx|_kTc _kJT??)T$tDc"cT@?@TbB@(Dgx<|@*%}SB H ?}qTqAT_T_84#z?!T*˿T@9$5Xhj85d$멐 TqDI T$z?aTubҙ!t9:t? T@ZS9L @b!th:8ku TKS_!8qTR_8@_8 8cCkD1jҁR,D"| T!cd@( |SA*@*@* @*ZZQtSbx?iT c@(``x?BkmTp_BcCkD[BSA{Ũ_֥k TK 8qLT`_8 f8cCkD8f_8ƀQ#RMT@cCkDŢ?IT{ Ra @{¨_@R_bC|cA|{R{_ր`lndGahG  }lG ~ zpG+v{ {tG;y;zxG } };y;w+x;z { }+~ };`+|+y_ր`n|GG`G~G| }+z;{+} `+~@b_{=N=?.==:N@.N=={ =3==-4=q='@4=k=!4=e=4=_=5=Y=@5=S= 5=M=5=G=6=A=@6=;==N===NN=.=@. ==(=N%N=" = {ƨ_{G /@`8g  @{¨ `_{wR@dr' /@ 8?_g ? @{¨  ?_f"tӢ4R_qT_3&"xWӢ4R_qT_k'kfd@ap4RR?kT_ք6{==6=Ĥ=z7==t@7==n7==h7==b8==\@8==V8==P8==J =9==D@9==>9==89=|=2:=v=,@:=p=&:=j= :=d=;=^=@.=XN ={è_q~n~/`_q>.> _8``_8  _{N;N{_ gf  gf@aq`_@!q ?_f{DORrS"`4_k(T#``?RcL rkT/R@r_k(TGGT R8;};~;}~~mSA{Ũ_ GGt@R (+};~+}~~m`LjRr_khTRr_kHT/R@r_k@ TaG G8`R;~;};~}~m(@+;}+~}~m`?R r_k TGGtR`@?R 'r_kT_k T!@, g.gxcRb;} ~xb;} ~#`mTqcB|SBXQ$R[ = =GggGG+~G;~ { zx8~;|#ydT9G#yTfB|S!tAK?@qT=G_ ~(~kJTc B kT/Cҁ7 g!.*h gWm]@x>b l8+}xaD?qlT*7@`ovdqH9xb9mT~R!KRBKjn`( cKj.c(qT!`ATRLaTzlc|q T_qTqaTEl!'TRR_qT@R!4 RKAa@Kak_kLT!RqTqT q@TqTn8n4*Y7@9`@k_kMTa@ ~ӀjlXj,~ӀjlTj,A@*с kMT5W@ R"_4@JD - [@ S@ _@+*a!@+ --k {`=_ }+kJTc y"B@ k Tyb/?bx+*YQzX@,@  T:bQ9QbQ_4,@n*O6O@@`@@  =g&A`K6.g@ }@TxL@ z8gYb~,@xb }8~xz89 !@?b ~ }_1T b} *B@*RPx`x` g1*gkkTk TQ! 7/@qTq,T/T@ qT  *: @s*r1eTeBaqc@s{@ SA[BcCkDsE7Fm?Gm _ @*u1eTBaqc@@ Rv:vD/"@*b?kTBaqc@tt9`@mBQ7+x9;w9+x7dm! _q Tl@m9Q+{;z+{pm ?q T/=@+}! qLTK=5c@=c@Can=CR_qTn;n{AR!rS&zkiTkIT8 R"`SA{è_ր"Gggп GG+~G;~ | {x;`8~ zT>G ~LTn+~ | {;|;nQ;~ | {;|;|SBXQR#R\K'"@6@aK{CRrS='@c[pӂ`Ӕp;S*kTRkTD^g~sN`T=b 9=NN==N@;=;=ߠ;=۩=Qx;==N=Щ=<==N=N#=ũ=@<= 7<==¦q T/@pӀKqm T<==fN=N=N=N==N====S=N#=N==/@pӀKqT@===AN=N=N=N==N|=N===-=sN#=N=n=$@.=sQ=f;==N=^=<==N#==T=@.=s=L==B=F#=D=3=R?.g#R?_#`aTcQdR cC*O@r=S@o=%=K@j==f=N=fx7ggz*SA[BcC{ͨ_AҡAKf_&|S_C=@Cp|S_ց`%G$G e ~'G~&G g8d ~=G8f~ f(}(} 5 }G8 |+`C`_l |"bG]8} { ~;a;{8{`GG ~G ~@ y;z |;{ | ~+`+`@b_{ *==NfN=N =a=> ==[@>= =U>= =O>= =I?= =C@?= ==?= =7?={ =1=u =+@=o =%=is4.======NN=Z ==VN= ==N =LN=I @{Ǩ_N ==?==;fㄒR@`r"`Ax?kTD|Sd4@a!@a_G^@;{;a/+z {_@] zG @y z^@п P@о ~Q@+gR@+pS @ }T$@ }U(@+qV,@+rW0@ }X4@ }\8@ℒR+sr+t< | } }+u+v } }+w+x z+~ y+a z+a+a`+?k(T4~on`:;{;{: ` `+|+~ }+`_!R` Kqb(}`;~+{(`;`@a``><@8@@о ~ }RAŧrr:''.-R;9} =@tr'@R r' ;+8+: ;= ;>8>; _{,?m.79 ?A %`mRNRr'@wRAŧr ?१r'Rr;'';=/ > /=+.+; <(< /9=>: (=(<( ?Am{¨_(.?A `mRNRr'@wRAŧr ?१r'Rr';'-R >;<@tr'@R r' /+.+; /= ;<+ ;>( {f@`t`P6(?`qIT2&@{è|@(_n8)o o()`@{è'`;mn)o8n(o@`9`;Am{è&{&@ 6PkiTf)CR@ r'{è(?_.8?)/ /(?) @{è' ;m.)/8.(/@ 9 ;Am{èH){-{_{R=@p?kT@.=mo4 = ==eo5@*= N= = N =NNN@T@*R=?kHTN@ =NN{Ũ_= =0=-@)=q=oN =NkNpx7@.==b.= =}3=Ag>NN= N =P=N=KN=N = =v= =@=N=N;N@.=5.==P3N@*==Z=ޡ@)="= N =NNnT@X@\@`@+ud@~h@ `l@;vp@;wt@ `g `+x+y ` `;z;{ ` `+|+} `~_f{@`S`kiTRs s*s5DGg~*SAB`{è_8`/t`kHTsDQ8k)T`t(tfnl9` A`@`A`@fRrkT `x@+sDG(`8~:`Baq@to~*sx@? `G s*+9|:s)o;o;};:{ &`zkiTRkT8   @{è_ր"DGg~(@b kT`QkT `mRr'@wRNR१r' ?RAŧrr<''.;; > =+:+< => + ?m.,9  ?")`mRNRr'@wRAŧr >१r'Rr<'';;q =DG /+.+< /?Bm=" `+`(`;`@b@! f{ @/gt?`q(TtbP7?qTg)A`R$|@(Aa @o@{è_ o;mn)o(n(o`(m>$@`;Bm;m o n)m(m`(o%@`;Bm&{P x|S/'?k(T7и?kTpR')?A u'CR r'(?A!q @/@{è_ /;m.)/(.(/ (-`'@ ;Bm;m / .)-(- (/%@ ;Bm{6{_{RS =@`pkiT@.=uq ==nqs*6@* ==U@ = = = NNo = TRkHT =#= =SA{ɨ_ =8 =5 ={ =N@.tps`=q.=%=1N= =@)A!*⿝R=<==kTN == =WNU=SN=NO =?TkT BAABB.=NA== =NN:=N== NN=0NA =,N =N'N=$N=!N= = NN=N =N= =f{@`~S`kT@ Tgq>DG+@a`E`Ӏk T8k T ~?@| {2@=@ 4@ }3@+r6@;s5@ |8@ |7@+t:@;u9@ | |+v;w | |+x;y | |+z {+} ~1TbBa!@q\`=`;|;~;`@a`SA{¨__(lT@bPkHT@k(T(`n`R(};`n R8(` Dk(Ton@R8+}~~`R`; f@`@?Tf#@HT`RB #`B*4{b|Scxa* |Sss*5 qTq@~ @{¨_ (_Sx*4RkTR _kd @zT6c kT/ q@T@`HG8~8sQkT/ qT4Xs qT@5XsS7`DG`HG`G@a qT@`HG8~;`a@aq` &@ Rxk(T&DxkTRkT{|S |B*5 q Tq`R r'> @{¨_ (?_D4kTRb kAz Ts 6 kI T q TR`wr'`R(> r'8?@`RaR r!r'?'?k TbQ_qT5Xb qTq@Tq`RaR r!r'>'>`R! r'* = >`R1 r'* = >@`RaR r!r'>'>`R r'!F qTR`wr'`R(> r'; !8@!q { N5A=={Ũ_=4@.==C4oS='@@spӔp`~S~S*6 5 q`Tq@T=@SA=={Ũ@*= N\@=SA@*!.=!= =@SAo= 4:s:Rk T?kd@z` T6sk- T q T@)= N4N=1=@*= N+N=(=@SAk`T qTqTq@T@SA@*== q TqT.=qTN@=SA@#@A'==@SAu ===@SAl @*==56 C@SAAA^@ @=SA=WA2Y D= qT@*= NЖ@)== NʖN=ǟN=ğ=@SA;A= (=q T@SA1&{pSx|SkTRk T@RpR r?''q(?@! \$kTиkT Rr'R §r'| ;HR@r' UR@էr' > =SRɧr'+8;9 < <+: ;+= 8>9 rT 5 kTk(T( . !RgR5r(?ݧr;>7''? =Rr'Rq §r'| ;HR@r' UR@էr' ? >SRɧr'+8;9 < <+: ;+> =;7;=8?@! SA{¨_.-R@RAdr8?(? r7''?kT/.R R?8?br`r7''+>=>-R@RAtr  r7''f{ @ gt?qT?xqT5@b(`n;` `(~!ln;`(`!l@a @{¨`_&{  x|S '?kHT?kT rT ( .;  ?(>!,?.; ?( !,?@!q @{¨ _f{#p"p aR>CUr"ʤr&x!|!a! ( cURB>RCUr"Jr!|!a! "*'"+ ~ ~(|+| ~}+|} ~ ~(}+}~+}@b_{RS='@DpkTp4*_R` r^g||!~!`!K! K?q T?qT?1T?1!TN=lN` |Nk =`f=`p@ 4Q_NNN`@Q|RBrN=|!R`K *RCUr"Jr)ox g|a '" { +{){ \+{|  +|)| )|o+`@=c@=_N==NN==U==NNP=NN===Gg_B@SA{Ǩ_{ Ro=@Sppӟkq=*5==x7'=#=!NRkIT=N=No==Ns=`7@NSA{ƨ_ ==NRkT@ ==@.==@.N=Nf f @g_& & x3'_Cf=@"pgCcpc@B*A

._"{"zR!|SbrkTb|R"rkT`DGA4{¨(`HG4(@!{¨_8:RBrkT⻝Rrk(T!4@!`@{¨";``"@4({¨8`"@{¨;`kiT8 c@qTqT5@af{!ȅ@g`HT6Tg(n{_Hn(~`+(~!hT{n nl`+`~&{BR!rx'kHTиkTpR'(?.{_.(> +??(>BR!VrkT{.., + >{p>{_{R =B@spa>PkTg = =B =6RkT@.=ّ = @ ={Ũ_NҚ = @{Ũo@AqTqT56 = f A, R ={k) T *7m?mK`nmR@`rkT` A`A` ~A`A` o+{A` A`9| $A`(A` +q,A`0A`9r4A`8A`#r':'ࣈR / [r+<'`!R\Rzr'9: R ?gr r<''R ?@dr+;' R R {r'9<` R ar ?'R3r' ?R!Or r+36''AR94`R%r r8'' ? ?P,+596 ? ?+798 ? ?+99: ? ?+;9< ?+=/?A! -; 9.,)- @  ?(/  @7Bm.?Cm{Ĩ_a.aTR8Rr87ar>''`R`Rr' > ?`6R!r r'@R3'+;+<`r'\RʟRar@ԧr = =5''RARArקr+3;48''!fRRڧr!r = =':'R@cr'+5+6Rçr' = =+8;9 = =+:+; = =+7;<>8?@RaaR`6r'tRr}r'NR > ~r'R:'ࣨr /'`Rਨr+<' R9:r'@]Rdr ?!R' Rშr@tr ?<''a R R1r@>r+;8''R@R9<r r:''_&{ x3|Sk(Tk TйkTR$`r'?(=+><. RK ?"+  @{¨_ @CRжr' ɝRQR@!r' = ֊Rr'"R!rtr ?+:' R7'wr'`LRa}R <;;r'yRԧr`٧r9'+6 <'R.`r' <;7+8 < <;9+: < <+;+5= + k)TpR.'8?@!q .; & x!|SkhTk TkT BCRжr]'"ɝRQRB!rZ' ="֊Rr_'"R#rtr ?+:V'"Rw'wr['bLRc}R <;;rX'yRԧrb٧ry'+6 <Z'Rbr.['0 <;7k*+8 < <;9+: < <+;+5= 4+ :?_.?' W!!^(>_.; _,8?+=;>_ķkTpR4' 8?_4{F {; _A' _{z{_{ޝ{_f#t`$QqT@l@m`Am}|BmpCm+{;{f~ ~{ x"D8B<+`xdxb+{  ~ |+x(y }+z} |(~(4g(_`7 qT?TqTRn(R6gn+{#|Tg `gg(~+|;}/;z+{+}++z;|#`Tg `gC` ~/{ @`@t?T `ATg@x!<a @{è_`Aj@@x!<aA`d{ @ /@xW?q(T AT'A!8 ` @{è_OR r'?/@A!8?`?`"A7@b{C==AR= =@pkHTo g`5 =Ssb<` @={ƨ_=Ss=EN= =P< =` =; @@==Gfta$Q?q(T@tDm|Em+``Fm;|f8|"D8B<`xd}x+y |xb+z({ |}+~+`4g ~+~_!7 qiT@Tq@TƒHTA#?c n(R R 6gn ~+{#|Tg `g ~(~(`+|;}/;z+{+}+~+z;|#`Tg `gC` ~/&"xT?qTA!&n=Pm;hQm+;}f;}@!xb `  z ({+|~(g@b_`1T?qHT LTbR' >ITR( R{R =@p?kTpӢ "R_ kTR?k`T=1@6 ==+qT@ ==[o=u{Ĩ_ == === =r4@ ==; ==qToR?k T =S=f=sts~N = =*@|3A!+= xb=rN =w ==*@=n =$=h ==b ==\ =@=V = =P ==J ==D =@=> = ==N ==5*SA{ĨL!@.=-p&"xT?qHT@&nxRmlSm ~@+;}f;}"@xb `  z({+|~(?g@b_`1T?qTBR Vr' >lT6RYr' >DTR( R{l:{_f"R@`br``?kI T@T~`A# T`lA +}`A`Axb | };|;;~;lana w?Aac3Aa z4Aa5Aa 6A+s };t }+u };v }+yZ {;z {;{;z{ }@4;| ~;|;}1Tq@T=gWt_q( TR!K=gWt_Lq T;=;}(}|-g )@ȅRr?k(TnR?khT(lT@b VRr?kT`Aa8| R?Aa(|?A`Ac|l ;};_;w8wz#}T;(`(y+wp;w~;(yqT n8+g ~+};(y|&bR@ 2r x#|Sk) TRk T> 5BR!VrkT`GR,r' =+=0R r' Rr'8;"} ={ <;=;;,R.Yr' R! 5r';># 9;; ?;7 <+69 ?[;9 ;;;;:; <A4;= >;=;<?1 T?q@ T 'W7?q( TRK'W7?Xq T;?:=(=<%g ?"CR"֧rkTk T,RYr'= Rr'.!#= ?;9 <+8 ?};==;=];;= < ?;<;?_!RrkT0R r' R5r8=!R'r(='`GRr'=c4<,? rAT ;?585:#=T;?( (6+50;5>;?(6?qT ?.8?+?g >+=;?(6<{˘{_f"pgA

N{oS[cN_EWF%@5BNSA[BcC{Ȩ_7@=xpspmqRd@zT/@gg#u>Pp=7?PN=q=,T= 5o=#@35 =fpsQ*Y5 ==ڍfpӄQ"&`sQAkmTӢe!ڡ  !ڡ BT"sQ`>qT*g#@?P!@ g*!=?P#@#@={f Ata4?qTBA!Q@ Kga @{¨_ `aT~?g`@Q`{& AxWa4?qTB\!Q@2'a @{¨_ aTR?'?`@Q`{SfpA4R?k`Tp@g02! a>"" `+`@b/ @{¨_л.kHTR'PR' >>_!f f{ep$p_ggS**kT**{Rk`To=`4`KqlTRkT ==~ ===x=@== ==nN ===N =N#=N = = N^===XN===N=N=N== NH==NN=B=N==NN=8N=}N== N0N=u=#=NN='=mN==NNg =N=bN = = NN =ZN=W=U=Ss= = =SA{ɨ_=hq!T= =AB =!@.R?==kT@ == =@=====nf"tb5!tӡ!K_?R@Q_q!T?3Z&"xWb5!XS4!ZK_?R@Q_q!T?'kZ{SR =* =@tQo =!p5! =!=@5>R` SA{è_BR ?kT?oc@@g`qZ{?m@`S**7m3 @`A` @aq`)lkT`A`@C 7Bm`SA?Cm{Ĩ_)n l@a#`T okTfAaq`lkhTAхRArkhTmRrkTa>Aa4Aa6Aa8Aa?Aa3Aa5Aa7Aa;Aa9Ba:B9mlYb!;gA/^B4 BA6BA8BA?BA3BA5 BA7$BA9(B nn}  ~+s+t } }+u+v } }+w+x } }+{+y } }+z+|~+| ok TAхRArk(TmRrkT@B@B@B@B@B@B@B@B@B@B@B@BFA>,BA40BA64BA88BA?XBA4\BA6`BA8dBA?hBA3lBA5pBA7tBA;xBA9|BA:B@/B@B@B@B@B@B@B@B@B@B@B ~ onh+q)r } }+s)t } }+u)v } }+w)x } }+y)z }+{~9|n l;o @B@B@B@B@B@B@B@B@C@C@C@ C@C@C@C@C@ C@$C@(C@,C@0C@4C@8C@+3+4 = =+6+7 = =+8+9 = =+:+; = =+5+<>+< /?k(T@}R r?kT"Rr?kTkRSR rjr'1' ER|Rr`r3''ᑕRRpr@0r:''!RR?r,r2''AŞRRrr';'`;RRA>r r<''eRRr'`R¨r`r' RT'urRBr'qRW'rbRtr'RS'`Nrb/RPr'@RV'rN'Z'RRer'@9RrvrT''bnRRr`?rW''B"RRMr@rS''BJRR5rArV''R`Rⱷr%rZ''t mR!kRr'`RR)r`r'ԒR1'rڃR(r' cR3'`rAXRr'`RR:''rARAr'@՘R2'`drR';' > /.(+1)2 = =+3)4 = =+5)9 = =+:); = =+<)7 =+6>98. ;/WR!Rസrr'҇R`Ҩr1'R'r`Rr3'᠛R'!rR`r:'R'rR@r2'AM';' RR rTr'<' R᪈Rbrr'1'KRlR!rନr3''R|R!rdr:''ۙRRAer@Er2''R`R rr';'`R"RaHr2r<''{S&zkT .?SA{¨_@ 7kTлkT*??.;>*RSA{¨N Rr'TRR3r!r =9''ёRr' ?҆R+9r'R(r,+:' <6R.r' <R+7';;+: <^;><+8~ >(9 <<+:?<(>&x@`T7{;m@ kHTkHTkhT}`0R@r'քR>ಧr'8?;Am{è_>?_ _. ;Am!R{è `=Rŵr '@WR-RUr' -RϦr'@Rar@r')< MR ?='6r'RpR >@r+='Rrr'97R >:'Ƨr'քR. >ಧr+8')9 > >+:9; > >+6)< >9=?I@ A ' `0R@@r'?(-{?m@`S***7m@`qA`Ca9`k TAaq@A`@Co H@`SA7Cm?Dm{Ũ_ @`)n l#`LT.Aa9lmkTfAaq`mkHTAхRArkHTmRrkTA>CA4CA6CA8CA?CA3CA5CA7CA;CA9CA:C o!fBС;gA/^C4CA6CA8CA?CA3CA5CA7CA9C nn}  ~+s+t } }+u+v } }+w+x } }+{+y } }+z+|~+| ok TAхRArk(TmRrkT@4D@8D@CA4CA6CA8CA?CA3CA5CA7CA;CA9DA:DA>DA4 DA6DA8DA?DA3DA5 DA7$DA;(DA9,DA:0D@/dD@hD@lD@pD@tD@xD@|D@D@D@D@D ~ onk+q)r } }+s)t } }+u)v } }+w)x } }+y)z }+{~)|n m;o@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@Df{@`S3`tzkHT7@`kT@`nD@D@Н }D@D@н+tE@П E@н |E@;u Eҽ+vg | |+w+x | |;{+y | |+z}l+} ~SA{¨_`n~b_*SAR{¨xf `!*a47{?m@`HTw@TnT@E` /~_/`_n`?Bm{è_?BmR{è!RQ@`7m nE@ E@E@+v E@ n$E@ ~(E@)w,E@+x0E@ ~4E@ ~8E9y+z ~ ~){+| ~ ~9}+l `h @`A` `o@G9l )n7Am{7m @ S***?m@ qA "Aan " 9lkITAaq@РA +3+4 = =+6+7 = =+8+9 = =+:+; = =+5+<>+<" o?k(T@}R r?kT"Rr?kTRA^Rracr'1'RA%Rrr3''hR@6Ror@5r:''ᣉRR!Er3r2''R`Rr!r';'@&RR=rr<''e0R°Rr' 6Rrr'RT'rbDR⴨r'`RW' rR"r'RS'MrBR[r'gRV'rB'Z'mR}RYr'3R‹rurT''b|RRBr@HrW''BR༖RVr`rS''HRIRAr`ArV''bR!R⽧r)rZ''siRҗRr'RA$r@r'`ІR1'rSR%r'`МR3'rbRr'R:'@0rAR!Ǹr'ঌR2' drAR';' > /.++1)2 = =+3)4 = =+5)9 = =+:); = =+<)7 =+6>)8-" n;o/RR`rAۨr'1'RmRArѨr3''1RRr`r:''aƔR`mRarfr2''RR r!r';' CRRATrඵr<'' pRzR`rr'1'@NRRr`r3''R`Rr`kr:''AӇRqRlrLr2''aR@R`r!r';'੏R#RGr5r<''{@ S&tzk(T7,k T ?ϊR r'RAR5r' >@Rjrr'7'ƅR.+; =r'VR@(r' <;:RWr' R+7 <r'R' <+8+9 < <;:+; < <+6>+ ?SA{¨_ .?fb~S*SAR{¨&x@T7{?m@ khTkTkT`0R@r'  >?_ _. ?Bm{è_?BmR{è!R 9R@r'`RAR:r' ?`Rxr'ZRA_r .r+<'R9'r'`RǓR >)=*r'@ Rr`r;'+8 >' fRɧr'7m . >99+: > >);+< > >9=+,? X @ A  /`0R@r'9, ?).7Am{@`RSf[Ku`!*~A*?kTq@4b`QB|SKT4C`T *7m @`qR/@zTCaq7DmSAC`[B{ƨ_SA[B{ƨ@aBR *SAC`[B{ƨ?mb!`T>k T߂q, Tl n@R|C`b | }kaT~?EmkTq T qTv5h@`A`!9`@A`@C ~`?Em@`A`XAa9`@`A`Q9` @`A`K)`H@`A`RC`b+m `;o@`kT?Emn` R)~9Z`;g/m)lm(z@`};~+z };|C`C`#{$T/nbQ+l+m;oo1THl@A TA`g n&A` nblA`)nq lm9A`TA`@`A`C`>@`A`( @`A`%P!`T n/Cm?EmlJl nq Tb)n km;l#~TlA`C` m?Emk/Cm6f{R?m@`K!*C`a|A*?kH TE`SETc*#5q4 TqRTA` @`A`FfRR!`R/SA`0k Tq@4TqRTSAA`?Bm{è0SAA`?Bm{è *4kiTA`qT q`T5@`A`HAa9`@A`@C `@aqSA`?Bm{è_8@`A`y9`v@`A`/)`p@`A`)9`b+n `;o@`fC`!`ӟk$BzTSA/ *t5A`@aSA&{@ R5xk Tq 4S!|SQ Ts4C 4 7mu @ qR@zT?mn"! DTPk(T,"qRsҀ<s .@RC " < =kaT>?Em@{ƨ^@!!R *@C SA{ƨT@ A RC "+?- ;/@ kT?EmC!qSA?7DmC @{ƨ_. R R)>èrZ ;'/m),-(:@ =;>+: =;<C C #;$T."Q+,+?-;//1T ,0R Vr' ?TRA ' .%A  .n"lA ).sq ,-9?A TA @ A C C@ A  @ A P! T ./Cm,?l? .sq@Tn"). +-;,#>TlA C  -?Em+/Cm&{R?m@ Ax?kT?q|BjT?kTq4S TqRTSA?Bm{èU ?Bm{è_?Bm{è  *5J@!SAA @ A A&RR "+?/ ;.@ &C k$BzT@!qSA @G{!RSf[7m` @`?mak Tk T`6 R x rT/4747@R`rk(Tn/9@E@E@ E@E@+| ~E@nE@+} mE@|E@ m+uE@ }E@+v mpE m+w+x m m+y+z m m;{+| m~+}+o`A`SA[B7Dm?Em{ƨ_֖ @a`A`@a @al oA`9`@HG)oX|@ |"9 ~q@ T/ q@ Tq` TRi ` T `LTa`@lHG`@`R x r T4(4A`6xAnl/EA2EAb?EA3EA9~4EA5EA o 6EA }7FA)r+s8FA9FA ~ ~: FA;FA)t+u@a/9@a9mn@ms@aA`w7Rrk T@R`rk T`/;m@ |lHE@ {LE@ PE@ ~TE@+qXE@+r\E@ }`E@ }dE@+shE@+tlE@ }pE@ }tE+u+v } }+w+x } }+y+z | }+~;{+o@9o,A`@a`(RrkTn;m̔RrkiT@@E9x `R`rk T@/DE9x x@xE@< x|E@E@ ~E@ }E@;f E@+g  E@ |E@ |;lE@+mE@;p |E@ |E@ |+qE@;rE@+s |E@ |E@ |;tE+u;v | x+w+} y |Z;~;z;{+okTA`kTn@lm8}F@9~F@F@ ` F@$F@(F@,F | )v }9w })x }9y })z |){)~sqTqTc+b+`b+ `a+``+ `K)`^@`Fn8 mW/V@@G{!R[&S?mz@ ak T~S`k T7m 5R xr=T)7̌RrkT”RrkT ;/ <@tRR`rr'>'R ?R >,r@r:''!R+:ƖR+;Sr@r3''OR =@~r ='؍R!Rgr'+3"R+4!rr7''gR =LR =rԧr9'',+5+6 ; = =+7+8 = =+9+: < =+>;;+.6449.7Cm A SA[B?Dm{Ũ_֖4@!`A  @! @! , -A 19  HG).|@ |" -9?" ~qT qTqT @T LT`,`R r'  @ R xr@,TA u@a@!9/.7Cm/@!A @!CR`rkT.;/i`Rͧrk TaRݧr'9: ÔRrk T`؂R`r'9:[ :>R5r'R$RAr`4r| :5'' RLr'!ӂR`mR > =4rbr'7'RR;5+6 ?Vr nr9''R < <;9r'Rxr'+7;8 <R`r'BRᨉR < <+9r''R§rr;2+3 <'4'+Rާr' < <;4@R;>;>;8+.A.9?RR`r'`RAͧr ?@jr;''UR. >r+;'@vR@r'+<R /r'\R@r' /%R+=r'R@r'+7ׅR /r'gRr' /<+8 =+9 / /+:+; / /;<+6 />+=+.k( T8Rr'RRަr"^r'S'>"ڝR`Ir'R.@r'9>Rr'R§r' . ?RƧr'@R)3+=ԧr'R,r' > >@R =˧r'`R)4+5@r'gRr' > >)6+7 > >)8+9 > >):+; > >9<+  >?)=?q TT? qT@ ?qT?qT?q!T#+?"+ ?"+? !+ ? +? ) @ A pkT.RZr'/8=@R,`Kr'ˀR9>Cr'RJr' lR fr'`UR@r'Rڧr'} ; ?)6 =97 =)8 =99 =): ;)<)>g.8? /ba7Cmc{ q> @{¨_@G{R =Ǩ =* =5={qT ==:|`6R =M @{è_{ F{_f@ޒc@ApT#@QRk TAA @ #m$tc$!,LB˜ba|Ygh@mha~@ {@{Y z\Bm+{`Am+ ` ~ }(w;y+x[ { zz+~(}+|x+{((y__T @ n4>g8D@GmFm`~EmzW w+}(~{8 x;~+w^ |{+vDmCm+x }{+~|8}Z u(} y w+v w+{(x+z } y8{+|(x y+`+`+ T_T?qT!(R?k@Tfgf R /f`#DQk) T TA 7jg@AR0Frf?4F`!TB!="L!|SB !QB|` bz|@ng`l;~@oAHF@?8FA+{ xLF@' R8 ?Nk TRk TRRaR4,rX.B ^' ,;?ēRϧr|S='Qa™R +: 9٧r5'![R"rR:9 <3'aRr@ӧr2'';9=R 2 7/#ҧr{'BURBrT'R7ۧr8'V :;? 8 6;9 ; ={+4+5{ 6 7+;+9 :+<+= 83(2(=(1(>_{ڃ{_fRrR@`r!` kT?iT~ T/~a8`/]"xSذ_k Tؗ@?hT/C`)?(l T@bN?h Tn/+|f@`TB=|S!Q?qT?qT;~;}8b!LB|@9ARr !n y@=A }g9+;~` l+|8F  { ?T>W8 ?S kT ÞRҷr?khTC (? rT E?kHT.+<&R!4, |SQ`qTqT;>;=?" Rr'`R!Xr! 90R. r;''~;> <9+= =RēR!ҧr+;ϧr=''AUR`™RAr٧r;5'', :Z >w ; 7 = ?+5+6 7 8+=+: ;+9;:+>(<_;<;<{{_f j ݒC@ApiT#@QRkh TAA$,L#n5c$B[g~d|!tBm=bhd@{[+}p@mtCmlAm ` ~8 ~ } {9~ |(vV z+w+{+uz v;w+y({+x(~+}z((w__T5npDm8|HmtFm|`T@m}+zhGm+{lEm `z y+t y{`uZ+v6 y y{+w+|+z+{(x;w v+|+}+` v+~+w T_T?qT!(R?k@Tfgf R/&RkT`Q _k(TR D !CXS!K'd|n"B|>tPm#;hd@by@ {;hQm(y;|  } z ~+{(+} |(@b_xS4Rk`Tq "@z(T~eR>&  Rr{{/C{_f!@?T `T`~_`_{|{b_&!x?kT T >?_ _{{"_{=qTo=Lx5= N8y N=u{¨_= N.y=x&RkT`Q _k(TR D ACXS!5K'd|B|"#&  R{fx{_{R = =* =5='xqT ==xx`6R = @{è_{ {_f@`At!Q?q-T?qaT3aTAA g_A7a$?TA!>g8~C`BA_g&@ AxW!Q?Xq-T?qaT'kaTA '_A7a(_jTA! >'8>C B_'{ =@S p!p! |S?qLT74 ==z=z =q=ow4o=wqT@.==z=@#@A' ==q`==SA{Ũ_`= 452o4@ =~= == ==@ ===q=z =z=oDw@4o=wqT@.==qz=#@'@A ==g_R'_֠@3=_{R =3 =**4 @{è_R =- =f@`#@(T f@T @``Tc$A@g `+~+a_T B tg?qaT+a5&@ R#xk(T &xkT @ k`Tc5$42' ? +>+!_kTJ B6 Q 'R?kaT+?A5{5BpNN{Ǩ_=4Bv=4o=S[WDv 5/@4Ҟgpq2'>  /)?q`Q)/#f#f@`tet QqH T(R"Q_qTbU"!.E,LCmӄBtg%~_b> @;p@m$@6PCm {=wZ |Em?TAm{+z+x7dBm  ~+{ v w +t{;z*y*u x_+x{+} x+vZ;+{ xZ+x+y+wZ+| }+z+~;};}=}+~bf aDtӁ$Q!(}?qT!?p@m=`Am 9Bm:xCm+|;|f } xC@@ e8c<+{8xe!xc+| !( `=a?~!(x(y }+z} ~(a(d4g(_`"T T(d _q T_q T`RK & T`$SCQ@&(qHT5f>g ~f!@$xnBBT+a__`*TҟT_qTnIT (`_nBT!TҟT#/ᗟ?kT a_`d#_֥(QqhT`RK! !T@a`$@`n`_@Qq(T*RC`R8a_֟ᇟ?kRT7 q)Tnq`+`@a`_RMB7gg(~_{ ;mng n)mA`n ~$Tg @ @;Bm{è_!`~9o`AggO~)m~C`)|;z+o+n+z;|!` {n_"&& @ %`QCxSkdQ TRk TR# d "cXSB/!K?'e|n"C|[@_he!"by@ _hQm+yXdPm;|  ~ { x+z |+{+y | z+}+~ afBo_HT!&n=Pm;hQm+};}f;}C@@@ !xc `  z ({+|~(g@b_֟k"T xSQkTR7?kT~eR >&BxA .4!xSk"EzT+!qR.$@zT!xSkT?kT "*?k|Bk!T ! 76. @xWQ?\q(TR!K R Q?jAT@!j CxWqTXqhTRK R QjTj<S!xC !>\F#~ TA >g#~IT { = N}@` =}A` r| @{è_{s{¨_{s{¨_{s{¨_!f`Tf#@t_qbDTT)t'B5tӄڈ Ț4(RK?kT?@aa$Ț ga(`R0 DT8a@akxZ`a`_@cLi5$tӄڅK! ŚR %tKK?kT!R!K?kT_ kjTA?kTa! gR&!@!L! ŚcӄxSe?kTBQEe/ *cBQCT%RҥKa_q!c$Ś! gG!@a?k@TB?k!T(`#aT#aT$7!&kT&"xRyWӟqBCzTkT5YS#xWӄZ!4%RKkT'|SR?@!q!R!KA$ '!( R#!LT8!}S@!?kxZ?q ! _Y*B 2%xWӥ5&XS'|SZK! R"%XSKZ'|SKkT!R!KkT*'|SkJTkTA`Q!\* 'G4R%!X! 2! BxSxSEKkTcQE7*e7**5BxScQ_BkTA`Q%RKq!\*B$! 'g4!@!'RkTckT( #!T#!T7{>NoS[ksNoFWGr5CsNIp==SA[BkDsE{ɨ_cC?@c=ppqR@zTo=r47@8p9pS4*5 @g{@=`syp9QkJT>PWR4 FAAkT= Nl=#=rq, T=#=yr 5 6ck T?PWRX4 g@=Xsfp Q*5 @g{@s`=Iss@*yp9Q?kTRqT<*' RzScQ$kT?&!ӆBڂ?Bڂk"KB\ %R@ g5PN!|q@SA{è_N*kT@=oqNR kT@=fqNAR ks{ @`|A` @K{¨v{ @ A  @K{¨fb?R@`"r` xkHT6kT?(lTg~C`_g(~/RkiT8`_{CPAmqTqT`5 Rs{¨_֞ Rm@a@a{b?R"rSf@`` xkTRȧrk(T?(laTgn@SA{Ĩ_g(/RC@`/A`l`kT8`o*Cm R.@`CmYqTq`T5`@Aao@Aa@a@ao@{BR@ "rS& xkTиkT?( rATpR'>.~SA{Ĩ_pR'(>"A`@ A`B`@"zR!|Sbrk(Tb|R"rkHT 4DG+~A`.@ A`C!`@DG9A`"@ A``@ HG4+~A`@ A`C!@!`@;~:RBrkT⻝R"rk(T @4+~A`@ A`@!`@;~ @a4+~;~kT8 @*@ @q TqT`5`@@}A!@@wA!@!`@@p@!o@@j{RS=D['@spc>PkT@g=`o6RkT5@ ==o=@.===7i=SA[B{Ǩ_N0r==o=RtNo====C *B RefBf`qTq`T5^@AҖ@AҶaA҂@aAҢ^@&BR@ "r xk(TиkT? rTpR'>C _pR'(>"{"zR!|SbrkHTb|R"rkT DG4(0@!{¨_{¨8* HG4({¨@a8:RBrkT⻝R"rkhT @4{¨(8@! @4({¨8kiT8 c?@qTqT5@a@!f{l!ȅ?m|@ @``νghT@`TA`6Tn ++}9nn(oo)`n @?Bm{è_ @)n?Bm{èD{,BR Vr &?m<@ qsz`'ν?khT@ kTA иkT. ?+?+=?9?..(//) . @?Bm{è_ @).?Bm{è%{wuv{_{R =B@spa>PkTBgA= zn6RkT5@ ==n= @ ={Ũ_N q = ==h @Ro ={ŨF =AqTq T5 R: =` = R3f AUf{#phT“'ABqc6“Aӄj4`J`xdxc!<ScA }`|@|`xS|`$`|(H` }|$|``ӄD ! _$!_ӄ|(|!`ӄH!(`!|}!` @_$}|||@M|@,+|@AG}`ӌ`k!`ӧGDJ-) $`}` } |`|`l}@0|@| B-AK@ k` 1-  !!$˥˥˫` `-}||}@E}`|@! }ƀH`ӧG||``ӥ@(`ӡAD&J  $!!$?4ēMӉ`7||%|`ӧ`EE%! ˧|`EE@&!_)T!(%"EBʿBA@"BggGC _pR'(>"R"zR!|SbrkHTb|R"rkTDG4( RHG4(R:RBrkT⻝R"rkT @58 @58kiT8 _{c@{¨_f{B}" @ g `TiT/n`;`@a @{¨`_(`l`n(~`;~TO@(T@b(`[`(pT@a`(~`&{Rr x|S '?kT$R?kiT. (?@!q @{¨ _(  .(> ;>RBЧr?kT r!T (  (??0?@! (> {}uKt{_{R =B@spa>PkTBgA= Pl6RkT5@ ==lN == @{Ũ_Nn ==eN @Ro ={Ũ( =A"f{S`+@`kTnkhTn`g(+@SA{ƨ_;mU oTSf!iT kT +m l`F9m3mA`)N9o9/B@=!;C`k\h`k=h` +|+}TI/;Dm`x8;Dm!Qa k)TsgoCbA`@`l  !`/g;Dmg;Dm 3mAa +mko`Fp!nj)nTN9n9kd lp!m9mDT/B@=!; C` ~ ~\h`=h` +|+} T~@Aa!`lT l@A`dF a  oj)n `+Bm3Cm `;Dmx_9k;n ll iA`9`HG)lX|@ |b i9 ~q@T/ q@Tq`TRk AaAa@ oo@@a/;@a"{5@b{_{ot.=s{_{ R=@p?k(TR?kTp?@kAT=d=m=m =ojqT@. ==m=d=  =dNo==|k=={Ĩ_@d===m=m=d =oj =qT@.=m=mf A{SR[?R@9A4*˔! s*qT~@SA[B{è_DЁ c?bHb8|S"85 ?9_{ @95`> @{¨_`ja8qTj!8! ѡbj`8_qaTs`>_{ @95`> @{¨_׎`ja8qT!a!`ja8qT!`ja8qT a?9`>_֠4|@_֠_R_R{CS[Cc*ks? "B3 R_=^t@ =v[q@T q Tq@Tqsb?ss>H7 @7@H@{ASB[CcDkEsF_s?s"?!R?FR*74c:q'?vƀ?!@?_ !! *#a*?q*ǟwS"Bk`8q@zTe#*AR;@94R @Cah`8A4k`8_q Bz@TRj!T4 BCD73sR;R5T R**c:q!!3?!@z!9D@zaT_"@z@k!! @R`qLT@8RqZd4 R**c:ƀ?!@?{S?@ 7CCZRA R#Rn`55*57@*K@(;@O@**s5!C@q@R%@*SA{ը_;@7@-*#Rϳ;@O@K@ҥ TK@7@q-TR*g8?@K@"{ @ޒ @95 @{Ҩ_@]5`>;]`5@S@?T@W@?aTʌ @{ \ T!!@A3@ST!@ I93@ғAR @{¨_{S%"Tj@RSA{ܨ_@R"{?(TS R١sRu* 7 s R @qT?@áSA*@{Ĩ_R_{S[5BcB@A6d6SA[BcC{Ĩ_^**d6s4SABcC[B{Ĩ'^"g@!gaT@Ril"g@!gaT[BcC@RSA{ĨRl{c7GS[*@#cG5!!G"R*?k T`a@9?q@Ta@9?qT!!G R#SA[BcC{Ǩ_a@A4a@94?q@Tk99G+!@A4!|@aҀ *7@:@B "`"b8::5?`@9RRQojsa@95 R! R8Rk{TM)k Ta;S qT{ *?q* BzATb{8{@_q`T+@kD M) G`@9qT G@5+@RkD@@!!`"$G{@#@e@9q`TbBC5?kT"BG@RAa@9?kT G@@4@@!!4bB#{c7GS[*@&Gt5 G!R*kmT~}~@x`j`@@9RQjTs*<G`{@9?qT*kT@c"RQK|@g'@4kTazfA'@9q!T @94s*@94?q$@zT?qT@9F4kR F@9 ƬQ j R?q)ZHf8qjAT*qTvi@9q TkDkTFi`8ha8k Tk`T@944"BG@@_q T G@4uhav@O!!`9bb) k"BG@@_qT G@ 4uhav@4!!EKR G_qT G@ 4q y@ 5@b*@)kDR[*kDXkDVaxbaz"BџkTkT@ sESA[BcC{ɨ_*6  G GFG@@G T"!{`@9@q@Tq TD@@A RkD@9*`4k|{`h` @9?q$@z`T@9kTsER%R{*|@԰qR!K{_{ԥ{_{Ԟ{_{ S|@ԏ`4*%@qTSA*@{Ĩ_hCR{|@|@q{_{S[cR@_k`@a9Ҡzs*Vzss5jt8qT@5*SA[BcC{Ĩ_C`{R /5)7/T @{˨_{|@!|@)|@{Ĩ_ I9_{|2C#*??q@T T4?qTR? qTRCy7CyqT ;@1kT @R R @ @RCy*Rh{Ĩ_{R{S*|*R5R**k!R*h*ARe qT*SA{¨_*=!8#@94pqAT"@9_pq T('RS?T"@9BQBD _qT!!q!9_P`{\ R{_ R_{S[c8ks*;<{ Z?*Cf@+!@b AR{BSC[DcEkFsG_NSC3#jj`8qTTT*]\`5\5ARKa<sc{@Tj 8j 8j 8j 8nዀjᓀf ᛀb"!B!@ R{BRSb4 RSA{¨_b@dAfD)!``|S @{S*[c*ks`jv8q T6X4{@?4qATRR/=K<aC)!q` T4 6 K`X6b@?qTqX@4!@@ @qTR(@qT9R @ @qT(@q!TR}YRR9#{6[@;`@T_@#{ S_@#{ S)рaj`8?qTѠbja8_qaTRRb*k@qsaRMz9W5*#*?*@4 {@`@T` @!TRSA*[BcCkDsE{Ө_q {Bz@Tj58\4*#?*k@7k@m`? ;ێs@*7;F?@_TRbj68}C*Q2*@5`CL@9ALqTCP@9ң4B@B<`_TR"(k#k@k@ c,{SR_qT*[*@hTm R***7@Ҵ[B*{@ SAc,_wR[B{S[cA R#S`7*S RC!R*r`5R*r*5S@cBүhA R*7R*RvW@4h#@*SA[BcC{Ǩ_* W@\{S3s-+5SA{¨_*4{*@ Q*7* @{¨_@?pq!TaRR_{!Rrs3{¨_{|@STK4*SA{è_/@*BCh ARs c,{G !S?"Tkc"s{ [cc mc#7c$R;_RRARSAzc9 kz8qTR3CzAc!CR3!h{8?q@TSg9o k{8zq` TzlRg9u?(T!lj58z AT;@Rhz8qT_TTߢ T7@hb8q T[ ф k{8qT5RӅ @z T T?@hs8q@T{R k;87@hz8q!TC@T48RC@CR5ARSA[BcCkDsE},@XqT57kz8s" `Sj`8?qaTT TRcB9R?qAT Z@8?qTR@9?qTcj38cB9qTG@`bWlSA[BcCkDsE>! L ! !C@CTT"k`8_qaT? Tc ht8qTR k48sb?T4s!l[BcCkDsERSA{@ c,_{H{_{|@B|@*{_@qT K _{*|@  1T|@** @{Ĩ__=` ) =7@qS4mTq{+) +/{ƨ_{CcS*[k3JC@ 7rTCs*8SBЄB"N 7D!d*s.Bf*~@|@===|7 Ts `Q`8(qT@R38sCv~@R N(73@{ASB[CcDkE_ARRr RZ!7R!`: 4@!`RR@qTQqHT! $6CR!`:`6N 6! Rr? * 7@! bK#W*CR @@@R! bK#W{S*4"CS4"=*@SA{è_{ RSș3s"Cn'/@ҺSA{è_{S*3 R[*c8#͊\.jj68!46`C7#O@ҐSA[BcC{Ũ_.9ARRr R `7R!`:z{S*`Cc (`6qTSA{ƨ_[s R6g"~@*=_=Ŋ_@X[B{C#C#' ) A=={Ш_{k{_{S@ @asxaV@@TV~SA{¨_{S* R[|B7 7cso 6R@ 4 @TR 7kd5`j`84q R?qRB Bф *|@cjd84(qTcQflqTlqTHc8`#`ր5cj`8q`T`@9q`TRfB !5'RRo@`4 @ TR 7k R7k  R7kCO$+*O?qkT@`T:{@!3T` #R_C@ UW 4V*R.69@qTcCkDsER {@@kD\5~3RcCsEw@Y*SA[B{Ѩ_q@T!RЄcB @;) RRAR{@#*!RQO*RS. 6@qTz3RP_C@#T*6V}ӋU`V*|V*R,.6Չ@?qTRo@4 @ mUo@4@?x T@ @˷qcCkDsESR{(B|@{_{ {_{{_{|@{_{,@TS?(T* 7B|@|@c~@ԟATs`qSA{ĨyR{Ĩ_sRSA)|@@F){$H҄TAB|@`a!!Ծ{_{ *7_HT7c~@Ԯ @{Ǩ_CR"L@7@B+ )C|@{`݈{_{Ԇ{_{{_{S!rSA{¨__qTB|@(K_R{Ssb@9_qTRm@9?qd@@T˿ lTa@9?qT"!`Fh&Bh@SA{è__8qT@ԈR T͈R@{S** RR*r**?@@*SA{ը_{Cw{Ҩ_{(|@{_Ҿ{ERCS[c@@ @$@+@ )KS(4SA[B{ɨ_jk R**QT?A9qT?{S*C @q`T~@Լ**SA{ܨ_aRRrR[*7S)a@#!?=>t@ @`~v =R̉RRCZNR#B5@R RT!9{@5G@K@[B~@(@RaR@[B~@('@G@.{@@{@9_q!07!|@N{Ĩ_3@) {(|@:{_{|@z{)*|@*{k{_@9?q@7_{1R Z3 @{¨_`87_A;"]R! B@_A: Z_#c:bD@@#<*5d qTT5 _c cTSC_! ?qT! _{_m R"{_9_$:V{S#c:sa`@qT"CT/@R?k T"$Ra(A RB b/t/@ya@?q T@y@SA{è_{ C!" @{è_$:!"DHT/@a$:$:{d@Asb5 @9`86E;ե]@eQqT!FX`Td 4߆ R"{¨_qR ҄  @9|Sh @Q*qT%@8ѥQ*6%@9QqT@@q_ R{S[cks<@7`ҟbBӄ@TBhT낒<@T`T 7@{"sv7@{@SA[BcCkDsE_ 7@[T7@es?T7@{ 7T`7{S3@e@E4a@9 |Sh @Q*qT!Q%*e7sхD@;]@$ c@9aQ?qH T@@ TsуDRSA{¨c De@9s%5@˟hsc@a !*?r`Ta@9#Qq T!Q?qTc@9Xaa|S#@Q!h !*?q Te5a@9 4 RGsfa@9!Q?qTe7s aa @9!Q?qTs[6ߟR߿r a @9se_8@>)сc@9a_8Tf@ *rTaQ?qTsуDaQ?qITcQqTa@9Xc#|Sf@Qch c*qhTswe5a@94 RSA{¨_a@9!Q?qTsс R%*e7s ca @9!Q?qTs%*\@sqTe7sa@9#QqTߟR߿r@Ts{c'{¨_A {" @9s@86E;ե]@eQqhTЄX`_ TB @xSQ  7"@9@|Sh @Q*qHTBQD*$6 @9QqhT*6 @9QqT*Rdq`{¨_R R d@Rd`Rd5 R"R_֠?q)T{@;]@@?q T#8@QRkR @zIT#@@Qk)T R qT A9{_#|S!cd2!`2@C9A9$| S#,F!h2c`2!`2`D9C9A9%|S$DL#,F!l2`2c`2!`2E9D9C9A 99 _{S[vckc4@ˀ@є 4@`T@@3`TTT!dU4SA[BcCkD{ƨ_{S["3@# cCSA[B{Ũ_sa@4?qiTeT98cҟT@d@Q*q)T4KT@sc#9˿cCcC8c@d@Q*qIT$4) TT@s!@@cC{c{¨_qITA;!]!@ ?q0Z_{{_R_|@{@у{_#4{d|@S*[|@*@Ҽl*6@!XQ?xrATRrjT**7|@37(ҁ@*SA[B{Ĩ_R(A"_6{*|@8{_*|@{`z*{_C {S*GOWc}Cq TO@ R?9{@SAC _ H@?qǟ`D[Bh`8_qT @zATH[C@"RRwK @zTCw@K%QqHTK@&8kT@w*BkTG@h`8q!Tw@K$QqTK@w@%8W@ @@C@[cksCg ?GqAT @9c*c|@!"@9%GCSBqhT4lT!e[3xs4o@s~@sw@R[@sB ˔K@Es`jv8xo8`8 kT|y@5  Tv5@@o@q!?@ ??@@W@R@s@o@kJTC@<To@o@QCC@@ QA!Cg@[BcC? kDsEC@@@!TG@O@GbK@R?W@?O@A@8a 8! C@|@?T@4O@@|cd2h!8"8c@?W@$@Bz-T!@?@c ?A@ac@?TO@A|*O@_h!8qDATqRЀ+ n$ R_4T8@9&˟T ˟*Thf8Hi&8aT)  mT@9qIT?T@9Sq*|@ jTKq9&_TE@9|@4q(TBjT_B@@B?Z?,q- T{S @9 @ T[ |@s*у@9@92#  T@9Qq)TT@9?qBcQ1Tcky@73ќ@9@9  T@9Qq)TT@9qc"@9a&@9#  z(Z@_LTa@9*b*?`7fQ1T[BcCkDsERcCkD[BsESA{ƨ______{S[ vsc@_hTb8@TR@9qT@95 @y3@ ySA[B{Ĩ_!@{S[cjs8s(\ TSA[BcC{Ĩ_!.___{S3s@y R!2ހ@y!K!<y5@SA{è/MSA@{è ! R@95A@9c4!505{S [?cksbZ\@)VTA)TjT*qT$ך6XZ(7c77@*** *7** *75~ Rz ~!!3L;S 5RRRfc9hF! ;7lF: m)Gb! @!@*B@:@@G5@*ߠ@4G@[`Q@qhT! $6s@k**97@ QR;~"R'ARr?T7@x`k@T_sH*S R6ր@cCUkDsEm*RRRRR}bB|@%``by@y!`fy``sbbkTty _@9 @9q~~~`)d)bT4s _q@T(qT`by@y`fy`$_dJ_9s*?TF R*z sGR AyycCkDsE5cCkDsEcCkDsEcC*kDsEcCkDsE cC5kDsEcCkDsE*{@SA[B_{[c**kcSҚӠATLKyEd**qT/@`R[BSAcCkD{ƨ_{[*yKSck*s_|#y*qT q DzTw_Rh rR*o}@"Tca@zzj ֢р@@\_@Bo@*R*R҇@@ 1T1T01T,1T`R@?@qT:_RaRR@RSA[BcCkDsE{ɨ_`5@f)!@AR`RaR@ RAR{c*#cS[ЕA\KFK~c*qT/@`R#@SA[BcC{ƨ_{kS*[*csDR *`7*q @ҁRRB )7xx7@@RTa~} `L5ҁ& 1T1 T,1@T1TR1T R-AR`R*aR@ R&`R8@!h3r@hss"^@Th3@Uw@x@w@5_@4R{@SA[BcCkDsE_sU@@w@@ixARm{*S?q`T?(qTa@9@ ?qT?qT@_TSA{¨_a@9!?qTea@9! ?qTfy6^{S[ @y@q`T!@ @z`!@?kT@kB"A? T@y@yqaT!! !8~k LJ c @y@qT+W#X@@Yc@U@dAq@@U#@@aBqATU"D@xB]`@y@`@y 8~s T`@y q@THTqTq!Tb@yB_`T&@y#R@W#CyAa@#y@SBO9]W`@y@b@yB_@(TWa]W`@y@b@yB_`T&@y#R@WCyAGa@y@3B/9]W`@y@@@ @@}@AwqTB@9@dD@x3c@y@c c8~s!? T`@y qTHTq@TqT@@^BC#Dc@[CDR^<_<]B@9@c@yB@9@@dD@x@c@y@B@cc@y@b@yB_@hT[aK][c@y@@@@F@9UWB@9qTR]y~bCR]?CqTs R!KR 98*R+@@@@@@@cCkDRSA[B{Ǩ_+@^IcCkDkD{ s@QI @{¨_BR{SV]RRB-% @*5{@*SA_?0q`TR_{%  RqT @R{¨_9${CS[*c*k*s@y? qT+qT{ASB[CcDkEsF$_C?<qTe@9d@9c@9!b@9RKW@zTc9 6+7C@c* R4@6R/r/9~*Bc@ K* 8$qTR"8uv@7"Tu?@D@zTR C?lq)T!`;_s 4d^BRK_88% !|SEe8Aa8888T!`uu@eR@9dV@9cZ@9!b^@9KgWcWHG C@O qTc GKcH95c K@ RR҃R"RRC *W@@Ro 9ic9qTq@R0cW@BPfcH95y\!`; \O @99$Qq@Dz4(TG@?9RqT@#qTO@r5@kT@RfJaRt`ARySS[S@!`;[S@9 @9$Qq Dz@4IT! @9$Qx`4_qHT"?9_LTBc[0FcH9`4c4C@@9q TqTC@@9 qTC@@9q!Tg*@ ``@y' c9<6R/r/9b~*Bc@ `K*8?$qT<cc FWRRIaRt@yA@9[ $Q?qDz4(T_9BRp@3T[@`T64Ђ! u5b_LTcQ[EcH94cKu@:T?@tЂ!@ u 4 {|@6{_{ sc/q` @{è_{S[cBRc/|p/@@9`4Kk@AC@R?(TV!` @tR@5CRR6,RkD?qIT@RSA[BcC{ƨ_! )t"R*R4kDRzjwJ9@y@?<KA9c` q! !RkD{ s"c@/q` @{è_{FRS[c<ks*yyCowr T~@!˿Tsеb!` s"s`5SyB[ TYB@YsqR lSRҷ*$1TR?,1T?01T@RSA[BcCkDsE{Ǩ_!` 4*! 5BRo* " `TR s*R!4@R{|@E{_{(|@!|@B|@|@9{_@;XG__{S :@SA{¨! @KsQ  R@95A@9cQ4!5j5Z_Z_NF{R[ARrS* R7*"RK(*`~@!7OtSA[B{ƨ_zz@?Lq`TR{Sks; @y9@@q@T;` @!  T`@yt@y q!TQBq, Tk [DZcR\<@ @*@x:~{a@3Q4sa@?k!Ta"@9?kT`&p 4@ @C@)kT4!xSR"3A|EC@S@ Ra~@s|`$yt 9Y@ @A@ !A@ @j3@@cCRSAkDsE{ƨ_[BcC[BcC{ RS#c/#RYB2ARR7K@S@ P E [K@/@|&T_Br2^88Y2^8s8j8[BG@/@zEy" R"SAcC{֨_{ARrRS R!@7*}s*a&R(*`~@a7;@RSA{Ũ_{cq@{¨ Z_{S cC#[@LRLRSn'@"T@9_qD@zATc@9`Q$qT4qaTRq`T qT5+@\@X+ @@ <@!P@H !_?Tj 8!T RSA[BcC{Ǩ_{{6qhT `*_"@*Rk *|S6?q<_\*|S6q |S!|S _{*|S s/\P@9b:@9`4H! "! #  B ;S9 RXRR#  #B` )Srksd@9q@zd4Tq Tr@6cTcFkGxR{CSD[E_քKBK@@CR8"8|@:8p=qcFkG{S[qT(qTx" R"YaQ#  @Tdj`8Q _$qT 4qTb@9_qT?qTb`8|@j&85 q?_qaTsTR @9qTcR6 @9qT3c a@9sj xa4qT*R* cT`jc82Q%Q$qTqhT \Q#4 ac8qc|@j x!5A:TcCRSA[B{Ũ_@T?qTcs`@91qD@zTR?qAT_qEzT8R j xR1TB*R|@BK4F&BxSB|@eoR!Kz x?kT&@x"|S$88aT Rx5cC2@RRqcC{(|@!|@4{_{[*S,q-T*qT`"W@` RSA[B{ʨ_cCRcpTC@R*R?qT q@T`"VBRb5@9Q$q T'@9`5R`cCVk78# l'@!@94CA9q`TqTGA9 q!T5GA9q TcC @)TcC@9_qT_qT#@R5#@5#@C5#0@95#4@95#8@95 <@9qT_qT#@9`qRR_@9 @9`qT$@d5$@$5$@5 0@95 4@9@5 8@95@RR@!@ K_ c,{C[C kb<XStRRcs*##c  kRos"qT#R@w~@gfR"RRk@T@q1~@ck!} Th!_h%84C9!ke8kT k%8C*XR@7c~@c!XҀ ?T_! q T@ @9B q`T q@T@4`'uQ` QXRJ3c|@Z7>fWsѵ$  1 T@a_?k)TXRw@q@@{A SB[CcDkEsFc,_{Ss<R[sRbB@9l~~B45 `F@9u8! @u8!kT@SA[B{Ĩ_{ UpTR @{¨_aTs`@9Qy! AzITp5`@9q{Skk?o @[cRRs\Ro=.v@?PqT$ 6oi@RD` aRn@y-q@"_8_qB$Q@DzT!ht8?q!$Q DzHT@@9Z$Qx`4?q(TRk@9f2 4qaTo848R@RC qT?[BosEcC)Z@@9$Qq Dz4IT! @9$Qx4_qHT?9;b*;@@4?@"B+U?o@q[BsEocCo@{@SAkD_@o{*S?qT@q,Tb@_kT_qT_pqTRb|@c@|$gh c@`@ $c@`@e $ TRSA{Ҩ_% RqT@4`@/nqTGR@qaTGR{S*[cks*?9Po?TT6*q`T{#Q*q4 :T q*`@ 4; 7R"A_(qTkaT3SRZR>O6(q@T7{7(q TR?AR r! ? ?kT sBR!R|?"!9?7-6|AR|#RXRp?!RCRR#"#9!/9? ?|?3!9?7(q@T?@R ? ?k T sAR|!??7XR Ro|#i|R R? 8R# _9?q Az+TR"A_qTkaTVR~{6 Q**q4 )T q`y Ҡ 7@k|8q4!3ABk`8?bT_qT9\_8?qT9_qTTSRD9ˀj<837%@8$Qq`DzT@8$Qx@4qhT?TT?TT57@*9IqLTT3@S*h68:q@5@9kTKR! Rd"}B" p T@?(qaT=<#>k<<sr`T`^qaTt2тSҕSzC RaRK{3#G`>COҁSR3;q;@*SckR*c@k@`5_ q TckRRrL@9@b2c@RkR[#|S (BKc8Jc8BJB_jT!?qTR s3cJSc@#\S*c“c@RKe*srB*QP*{@*tBk Tz)# ?| g7;_+q@TC@ SSSSSG@R3c;CAR*L@9rH@9"R* kRR73@**k@4R@c'g@Ҹ*{@SA[BcCkDsE_{S*[*cGq@TqT4 y 9 97Rb4_q TR Rb4_Dq T6R7RRt@94s#BRhG@!@95TsE<FqT RyyqTWR!BRyyR7RwsP7klC=Fq C7@ w?4s@W?Pq T$@ 6kDsEX9 @9$Qx`4?qHTBRgTG@T7@Ҵl 5qT~~"BRj x"y?@G@lqw@@zTqǟR@$@z`TaRHk`ARym ?T"_8_qB$Q@DzT!hz8"$Q!xa4_qT~~ Rj x"y<q TkDsE*{@SA[BcC_sE7 c,{cC*S**R[#*^RR$`R*RSyy[9T7*RҸqT _<iTb @y_ q`T_qT?5a@! !t~s#@ {@SA[BcCc,_R{[*aRrSR*R7**BR!R*@4`~@(@*SA[B{Ĩ_**RAR*__@yZ<_@Z_Z y_Z _{S[*c*Q4@7|@?"Tsw4x`T|@ TrB R"SA[BcC{Ĩ_`K{[! ?,qmTScR"y 2&y&xv ATz3*`7 s@T{sx5z3?ATaR~SAcC[B{Ĩ_SAcCqA RSAcC{ *7* @{¨_֪qA R{? qhTS*[*@@kT*a~)`z``&1` T 7wF4**@y?k- TcF@kl Tb&@kmTa@K*[ 7a&@uF" b&`@$` 7b&@a@@ `&!? Ta&:y`&@a&5 y4a@`&@!?- Ta&/ `&@a&&<@yb@a&@BLT !a&`F@`F*@ykTtBqT`F&uF@FRbz`b& y `F@`F*@ykT R`BFSAR[B@{Ĩ_SA[BSA[B@ qaR @SA[BqA RSA[B@Z_Z___{SЂN_qhT! @s"b8 a`bXjNB! SA{¨_{Sa@i@5SA{¨_{ *@?kT @{¨_{*|@|@sp{"{{G|z*'*T*|@`]p {{_{C|@S|@v@ҟ =~v@6`4Ni@3@5{@@?T3@"}; @"@!|@?T1T@!}4@!|@!@4ViR@B!a@"@C_TD@85"X @#@c747@@3@54?X @?k T3@R5@7w"@ೀ@ @_85㷀_8`5a5w_kaT555`@@whSA*[BcCkDsE{̨_{cS R[*sv*@*a?@7@A} T @v3@N= H3@=N=nN=;@TRO43@M4_@vh3@!ˡ;@d@!hcc ;@:43@84_@Ҷvt5[B*SAcC{Ȩ_R*{ `zB@5z @{¨_{ `zBB!0@ @{Ĩ_!; a8`z{*ccBF@{è_{RccB5@{è_{Ss[ RckBv<>`b@AR@8`@p``8ARk`R_84*`4g@`@3_@v? 4gEQZA@9 "Q' _$q)T@@9qT8A@9?q@94?qT@!@{3@!g3A@94!g@`@l3@9"}@4qaT!8@`h"@h"@_@u4R[B*SAcCkD{ƨ_{S[c*`@G [qMTFSR@ 4ˀ3`ˀ!~ӡ@4"Ҫ9 X4 5hgRcz`!Zz ˀ?LT3!; s7c7;C36ks?.Cg@qTzT6t @qm TG@*5ˀTz`@_kATz ˀw@!hy_!# 5w@hy?@kT@FF;@5O@ cgc@kDsE32S@2W@2*SA[BcC{Ϩ_tkDsE⇀ˀMTz`?k`TTaD@* TG@kDsEG@G@ҟZ{S[ Rck*t!; 6`f@g@ts4@kT>*S5@U@?_@583@g@tRRqT$Ӛ 67y9`Tc @A 4@! 4@ 4@ 4@f 4@% 4#**c*c* 7! ! ! "@! @!|@_#T"җ8@Pi$RiG@b@ _85c_85B_85⛀_85^5R*r|*ccb K*B"8$qT/1/@!@34#f@2p_kT2g@ҳRLt22Rg@Dt2@`g@Hq(TRr:eg6@qTzTsEAR*sEOR<=p,g@5@  @qT Rgrg@*w@r@sE*!`;g-g@@!; 3 ! ggR @sEqTzjc8(qg@1!]cc57T]7@*@5ju8_qTjc8_(qT1@T!R{gRsEt!Rtg!RpgYR*R_R_{[*STR ckcs9 )I]OBs =ZG\KWHc@RRC@R!RRr R*7-*Rs@qT^**R7@"\5 0*5@a5/7@!Rs@ .Zs7`@qaT!@8%3 `@qMzBzAT| @ 5@qTR`/[BSAcCkDsE{ͨ_~?T"@BZ"D{[1@@!@37S@Bc"#Cxt!c3*7@6 cC#@@R 4*6`~SA[B{Ũ_#@cC!{C @AB)@3|{A_{C @ @_@T @ T @T @_T @?T@ ?T!@ T#3C!'3|{E_RRR R R  R R@y%@ @yf@$ @y!a @!`ay_{!|n$Lg{;`_@ҊA{!{Q_{!{P_Q _Ң B" | a_@͉R8r$RЊRRr! ,AJa JA< JH@J|S_CC$`@#4|qdGzbRB𥒩*?% `ӂx!!|kLT@2_{Ssb*"a*SA{¨ba{_TS[*baCaCD`@\SN@*!*~T T)TRRR0R1RR*A`eCbNA *!*+aSA[B@{Ĩ_RRRR{SДb`ЂCaCh`@B\SNA@*`!*a@""cks^_CRc@94R1XSA[BcCkDsE{Ǩ_ YTRҏYo9?9|c9ARX_T@95o@4R3>3@Rk"8@$c >@4qTPqTqT Ro@8 4BGB@{|@(#S!1T|@iSA{Ũ_*Wi@hE_@?q`T!R{S[cCk`j$ @9q,T=*)_@qNis-)BuB_"T@@`j^8X;#ќe @*_@64eq*(" @TFs"^`T`@@@s"T`@@`v5s"Ta@ @@v_65*h*$*_v7SA*[BcCkD{ͨ_RA:O{Sc3R[cckJ`@)~:WI~~~""=~g$*% 4`Qq T*_$o@T*oV$s@q T6*|%4#A8777Z@@@O 7W@H 5W@W5H`5W@KWS҂qCzATR~@W* 7(W@q`TqT@k`T@|@?k T!|@W*6G(ҀԄ@@k T@ qT-Tq`TqTHW*60(!bxAWB|@W*6!C)` B2B|@W*7@?k T|@!|@W*`7((W*6@KW@(A"##@R$H}al@! JG G@c`?]@W`4q@ ̂c,{S[ Rc#GkoC"Rs=l ]R5""R̂-c! ^*g@}B]qTKGc@}G@q @AT"@RlK@kG@ ̂{@SA[BcCc,_C*RM=!]]@Gc@`TG3*RO{SV ~`tF` V@`@R@SA{è_րR7{S*} R@L)@@@_RSA{¨_ R_րR{S*!*7*} @R`P)s@`@R@SA{è_ R@R7{S*Ҳ}R@L)@@@_RSA{¨_ R_րRa7{S*[c**SV}`R`R)w)`U@`@RSA[BcC{Ĩ_ R_րR{ @s@ @R{¨_R?_R_RB@"y_RB@"_ R~<]@>t]A?t]B>t^=?x_ R~<]@>t]A?t]B>t^=?x_{*R`<R{_R_R_R_R_!<R?qhTRA_RA_?x@ R<=|A^=xB_=|C^<_?x@ R<=|A^=xB_=|C^<_{S[*;Ɛ{@SA[B{٨_* <OC{S[5Oc=Mk* C@RcM" `RH"!Rq"RE#" ATARd"WATaR^" lRsGЦ @!@C#**)53K@R:6[@qT@R"`R!@R#cCO@{@SA[BC_@R!`R!@R"[R*d|@**{ e[f{_C|@|@{ X[f{_{Sck**@9"R?xq$Bz`TR?tq`T?q`T[*_8 @94R?wq`T[@96o?qTR.@9?tqATo?kT_k`T`@9xtq Tq@TlqT@?6 7|@o@s7M)?kTBK#KkTAK_k#T[BRcC*SAkD{Ȩ_|@s@9Qc<qT&Ú6 @9s*`@9kTtqATqT `?lT+:k88(V* V5"V*V4+@R[B+@R[B{$SD@9pq`Tlq@Tq Tq TR` 86~` 7 /@!|@Y@9 4 7@Ҁ*@9? T@9"RxqBz?IThd8"tq?Thc84c?Thd8tq@z T?Thc8lq@z`TŸQ<qTE$Ś6?Thc8 ѿq?Thc8tq4hc8Fz@TcD?T` R@  `hd8` RA5SA{è_{S*[c6@@9q@T`@9`4kc*r*1@TkD1T`@9qaTROk:@9Y87?q Tt 71T?kD: TkDssIT{3*aT@94D1T1ATkDsE8RSA*[BcC{ʨ_S7@|@kDq*7V*?kT1T?kD:DXz!TO@skD$V***@4OO@3O@ST;B;ZZT@8@6@]@A_8!Q?q’ZTXS3@G{R7O;@`T@9#587qT{@51TkD:!T7@a`T@9 4*O@*7G@Q7@|@X5k3@TSC-*CU*C@kT1`TkD:DXz`TbU*C@**CC@5VROB T@9'Ҝ874k@51TkdD:!T3@T@9@4*zO@*1TC@;@7@|@?@*qUG*kT1`TkdD:D[zT cU*G**G 5BT@9 ҡ87?qMTS*@|@6SB T967@7xkDsE{S[c*k+6ZY*sc@9qd@zT7@@9*d4 *4qT`@9qT56`@974R94*co@547@{7SA*kD+@cC[B{ǨZs`@9@4qT*cO5R*cF4+@*SA[BcCkD{Ǩ_`@95R_@!@oQ{S[@(c*_$@`8j@T_8qTtxR"9#9RSA[BcC{Ĩ_{Sks*e@957qBpS 4_qBtSh&8%@8F?hTq T RR RBM 59Z k:8; @9@5{ 6_qDJz_q 4[k!k@`5@[B @qA07a%ka8f55/tqTGZ_?Tk@9 R @_?T"5&R%ka8!J"k 8E@9RqLzTtqRc*C44lqTpqTqaT4RSA*kDsE{Ҩ_"5 "4RPq['!`5[B X@R?q`T?bSq[B@RBR[clPRU06_`>T7W@W`GxRa *)4?T_8?pq`TR@6 R*?bS@5[BcC!@`*[;@b? 7?@AB99K@9**57@pT K@94q`T(q! TOQB" T@9?_@5@?@ 4O@9qTS@94 @<`T@?2K5Gb6?@7@sSs@[BcCM7@4T@)7@-T@O?P?@@BT?O#?@O@`5;@b?6?@K@9A7@ T@uB997@S5@[BcC@?d*4[BBRcC @_?T!&R"*[B c,{S[c*ksW6v@! 3w(7~ !@9Ra5iO9Rj T@9q`T*RR*"?@qTGR7_O@9\48@947@#C 40q`T"?@tR`U@9 5vx#CG@ [@m"?@! 8bha8??TB5h!84!h!85Үs@V"#@sCsw 7 44@b!!!}9"@?@}C0CO3R44R-?@s@+"}"_Tx"B@?@s@"C@B C@@B@C T@w6{@*SA [BcCkDsEc,_֠@c@ JtR{S @asxa !@?T!~SA{¨_@ @A@@ K_b@|7&@g|7h'_{[cSksRsc@"@` @``{`h<`\`B^?@BpS!*@**`"2@72`"a*@ @]`@@!7@`B !Txa!|}l!` @!ht"`@SARkDsE[BcC{ƨ_c!`xa6]*@R!@xa6 `@@W!t5*\7?k`Ts{`sj<~4!` @CR]h" @`@"|~%chb6**I|~!@7SAkDsER~ah`!ah @@B 6@7x'G]`@id7 TeD@kT{S[ @@@5@@q@T qTqTRSA[B{è_@@!@@5@4@@1`T@@B4R{S@ @kjTa @5 `@`R@SA{è_a@_kTc @` @B _kTЁ~} t` R{S[c @$7? qT@A@#@#5A@"@"4-@A@? T?AT5B@@!*$D@D@!"@7c!"aTc$z#RSA[BcC{Ĩ_֡@!@"@45a@kJTe @!Qaa@?qTT4@@`5@{SB)_kKTR?k,T`@!xSa!|}+ @b@``@AaS|}#RRj3SA{¨_@{SR[*cks3R dx`C7*#C6Rc"C6 R#R3@҄|R7~~R%77@SA[BcCkDsE{Ǩ_Ba@xa7*" @Bhah!!?aTH:jaBk!!?TAk79 @`7 @ @ @* @ @ 3@3" @@R3@D RR~?s~~7@R b @Bhah!!aTh6{s``@7``@`` @` `@``@``@``3@`2` @xa!63@R҄~R ~~`?'{_ NRS *#R=#RRd@T/=u=@SA{Ĩ_{RSR[*`*A``RR``@"Rc@R@dc@ac@aa@?a@?a@?a@?SA[B{è_րR{RSR[*қ`*A``RR``@"Rc@R@dc@ac@aa@?a@?a@?a@?SA[B{è_րR{SR[*c**#R_#RRXd@@T/ARaB@9twb)3aB9@SA[BcC{Ĩ_{#RS[R6#RR/d@T/!RuR@@! SA[B{è_{#RS[R#RR d@T/aRTuR@@! SA[B{è_{kS[csT@W*!RoX4R@*o@! SA[BcCkDsE{˨_!cQC3_C@kTbQBA @B|}$hb4qT!cQC _@?qTT! 4@ @obbA@?|@Q5G@|`GJ5a"F 5!<|@@`5@<5O@|`O5*? qT@ @gb@S@%5C@|`C 5a"5!;|@5@`5K@|`K *@@@*D*T@o@9 co*;G`;@@ @ @@?k Tv T@c7*C4@4W@ R %A**@k TN@!@ 5?@|`?@5!@"A)$ @`@@I {c SR@Sb([3kRs`@9xq)`!?qR@Rsn?@?T @*@9q`TW W@@a@b~@ 7@@`T;@@9qMT?tqT?q!T?@?T@9?tq T?qT @9?tqTsR@`53/R?lqT@9R?q$BzT ?qT:@Tks8t4q`TC038ZL kt8tqT@s 4@?q T"!R/@ /[BkDsE*{@SAcC _ր@9tqT;@@q`Sz,T *!M**kTMkT{{*kTMk TWwW@@Q'? N =kT**4L{5*{L4*L*sRRҮ7@ 7~@c7AEWMW@@ @==@!53^W;W@ @?==@!R$|}RR`⿀3B}0࿀z =k@ZkT@zz`4`@!kT'Q* N =/@`y#RR@3@RERC3@R@RG{S!@94@?lqTDH T?q"TT?qT,@@a6["R.R@.@a.aR@$T@{[B5@**T?qaTR$"5[3*"76@@6O@K4O@c@5L*O@2L*.@*iO@@'L*O@$L*.@*]@T.@.[BcCR!Q!?qT?xq@TT?qT?qT$5?pqATR1aSA{Ũ.B@9@4c@9kAT1"A@a@9b?q`TT?qTTR4?q TR5s e?q!T@!Rs ?qT ?qT)T?qT?qATD4[?qT@!Rs @!Rs ~@!Rs v` @9qTf ERRfR* ck@GzLThc82Q$\Q!Q$qT?qiT qThc8 R?q Ts.@*@d.K[$5 Q qT.@5Q@d.*as 2@_kB2[B6.Rs/5@T@!"Rs#D5`@94pq!T` @9RqAzT@!BRsO@|J`5@O@.@*z.@s5.[BRNSA{Ũ_[B@ScC[B@R{S[cks: @` @P7@x}Ӱ7@~Ө7@}ӡRRj!wk"7@"|}kbTR* R* R )oe?qJT?qT?qTQ! QA_ B_oaw7*_k KT6Q O_!N@6ySNZ!h`6L @_kGT!H@6zS@Z!S;@@"|@?K?@@@4RAg@ )SDB@SA*[BcCkDsE{Ԩ_ֈy`6@~|4@{~{@@`R@HB@h!!ja6h!W@{"|@GWD{@@5H @qTT>5@@D!T@R@?7 Ro@*o q@MTR *?K@*@ @k@?@ )K@e6#@!N@6g@|~I!g#@%h *#@  BA@ |7@|7i0c@{R"|@cH {@@55_@{H {@@35@{|`H {@@25O@{@@o@ "|@H {@@/5O@@q-T_@@qT*o{@{|@{H {@@,5w@{"|@wH {@@*5O@{H {@@)5s@{|`s}H*{@ @?@O @ R 7[@{|@[hH {@@@%5?K\?@ K@@@#5o@!{"|@oLH {@@!5O@{@AH {@@` 5@{|`4H*{@ @5@7so@*! )@@@9g@{ }@gH {@@ 5O@{@@!@"|@O@@@97k *?KpI*@ @k@!@@9@!!*A)?@E6 *k??@k@#@!za6|~g@!gi #@!%*#@ o@ * *?;@*@ @k@?@ )K@E6 *{CC@{@#@!za6|~g@!gi #@!%*#@ Q/ QO@A_ @@@0io  @_kJT. @'0Qio 5_kk2T E^_k TkQ _kTA_ @@@B@ @6 @_kJT5. @Q"B|}ib? q T,T?qT?qT5Q O_@p6@?qTTA4@?KB @O_@?@ K@@@`4R@/7!N@6OZ!Q! QQ QA_0C_/O^-3$@@B^4@?qן@@    @. @Q! Qa @?q #T _k"T_Rk{ k@@.R@ @."I4@ R{@ k "{@kG*G@ k@@ BA@ |7@|Ӏ7h&7#@!D@6g@!|~Ig#@h!#@=? qaT@@@O_!7o@S@{|@SH {@@5k@{@kH {@@ 5{H {@@5@@!*{!|S"|@H {@@5?z?@ K@@@`5_@{GnH {@@5O@{dH {@@5@a{"|@VH {@@5_@{LH {@@5@{|`?H {@@ 5@A{"|@1H {@@`5O@{'H {@@ 5@{|`H*{@ @`5@ 7o@*o@qTo@ o_kT}Q"Q QB|}ib1_ @qTk͍T!Rk{S@ [RR@ @ @su~kTA @@ @@A @@@ @b @ s`@`@` @@6@R@6@s P3kT@v@@s@@p"@@m[BSA{èhSA{è_{[sGH@kScA =R?= C`CRSZ*C@@gut5a@9 RRWR5?pqT`@9qTqaT@ @'%SAcCkDRV5R`5W@@~@WJ`54`sa@9?qT?qd @zTS@*5@@` s!a @9?pqT4R5`@9RaRqBzAzT{@`T`@9qTq TR<RqTZ`_8xqT@a@9a@9 Q$q(TeR  @8 q QIz)T*?qTqT?q`TVR?` @9Q$qhTe @9EQ?$qhT@9R Q  @8 QqIzITkJT6qT@95pqT@9qaT@ 5 ** qT4qT@[ W6RPRC@ @pn>@@a@9?q`T?qd @zAT5R@ @sQ" @Q |}@Th` 6@q!)?q`~S@z T?q@z T!@" @ Q !Q|}CZh`!t_a@9?pq$WzT4?qR$@z`R$@zaT?k T?qZ@{@ #RR? ?@#R R; ;@@`T/AR@@9!xp)@9@@@@Ha@9?pqT`@9qTq`T R@Ru@**n@- @G@@A@Q{|@bkJTC@RL @ ҵ`yA{A!*b6|S` )a6K@ 7`5`J@qT~Ӛ`bJ@`BB|~(`J@xS`"{AҊ`C@@4C@R @[ @;?5ҷ5!@@kJ%T Q # @|}"Qdch`"_?4qT?@! Q@!_ @;qT@qT@qT@;?@@q THT`4?@@@5@|`}5@y@5@|`r qT?@@@j`5@|`c5@_5@|`X4A@?A@ k?@@ @DT @;A?A kT?@;A?@"|@@7535@!"|@+5@'5@|` 5 @qT;@d@q,T@#RsO @k T@O@kC@㷟;AcsV*5@@_1T#O<@C@;ARs95@R@R *@;C@b?@@@@`s@KA@@a@ $C@**C@@ kJT@O@C@;ARs*5_Ts@;@AR@R?Ac kcC@d 4@o5k*5#!@; qa#T@@!R@4@!@?qA@!@A@@@!@ @@q TT 4H5k@A"|@k@5A@!@;5o@|`o4 5A@!@/5s@|`s(4\ qT!5_@!"|@_5A@!@ 5c@|`c @5A@!@5g@|`g 45\@@T _C@#R/@Ҍ@R{ EO@3{@/ 4)S@|#R0RC@OV G+@@+ A?)?@+J@  0) 0/6@3@!@~C@_#R@R /| @0#RC@ GR@@/@|0??@!@R_C@#RCR`3/#RRF @3@!@4__3@r5w@a"|@wj5A@!@e@5{@|`{^4@RC@ @!@B@@ @R@B@@!@?kT Q " @|}!QC@h`!z_qTT 4qTV@@!@5@@q\@@@4@@q@@ @ 5 @@@ @5 @@; 5CA|~`;@@K,5@C@KA!@B@@@@@-5CA|~ ;@@K 5 @C@KA!@B@@@@ ~ӂ`~}{ A?kTҁz a{`{ ! A?k Te zu j* 5R@"@!6O`` R@  G@%;@^@`7Z`h8@@bB Ax`6|~ )`C@R @6420G@zSAcCkD*[BsE{٨_֟Ru C@@!za!h"@aAa ) @G@SAcCkDC@ @C@R @C@Ru @@``a@94@Sa@9?qT~4{ R` a @9@>{6Ro{ RSs*sB[k>sd@9T4Q$5sWbB 4_SA|@[B{è_D5TkTk-T'xdFxdexd5TTR_ R7k@Ro=Ro'ET4oR_=&Ye||f7&hg*H@TG@F@Tf4@*kTTeB|ө@"R*?h<C|_cT_E %h&B@hP@k@TbB_AT?h<f4@kIT*_TF|iP@b*hif k Th(h&B@iP@_ kTbBT{S*@Ab4*z@a@b?**5r@a@\?5`@  RSA{¨_*R?@5a@R{S[c@k[@ u6_@ 5w@cW@` 7|@sRK@qmTc@!|}`@sK)w5W@K@|z|@@~aa7}Ӄ|c8||!cT|g@`g@@@U# @ ˀRC@ ˀ @! R_@5w@cR?MRR-`kK@@57@[5W@C5 BRs@G_@KS 7K@qmT@38sE?@R|}X?@kD2||P[?@]kD'|~EC?@:R[@@OkDR[@`kDB{ bz K@?klT B{ K@?kTC@?x W@?klT7@K@S@@|@7T@@ @ @zK@{ K@q JzwT 74R?@z [@@ C@>64w@57 7A6@5@5@_qJzATA 6~qT*=5@|qT"@!(6*=5k= 5h!(6~qT@|q@ T= 5"@06@`4~qT|q T!R=@qk T"@@ 86*=*@|qa4TT"@86*=*@|q4T 87<a86@`4~q!T|qT!R=@qkT&T@@!?@RR%`*R?@RKO}O@(@B{`"X K@?kLT@@"@A5@%K@@@@@UX!@6|/K@X @`79U[ G@T`@aT@K@*`5G@ . @#@@6C@?x @ҁ@^@`K@A{`az K@klTG+@[@[@}||@ Bx Ѣil@_@v'<@5C@"~a`hb`5 R 7@[@{T 7A6w@4@q JzT7 7A6@5@5@qJzAT 6~qT*OC{_{ G*5* @{¨_8{S*R[*҃3;'gZ*GSZ*~@~@HCC*SA[B{Ө_{S*9*7 RSA{ʨ_R_`R_ {[S**7 T#*@7 R7*Oq@@ #*҂7R6{@SA[B _*d4@*_{7B{_{S 71T|@B@SA{è_{ 7#@Ra @{ʨ_***H*b@/**@6{*` UB{_{|@S*$1!T(!Ԁ*A` 8B`|@5BSA{Ĩ_{S*[|@c4*c|@81ATqTB*SA*[B{ͨ_B*|@B*C**B`5c@ (@qT `61T|@A* A**A*5c@ (@qT` A*~@(Լ A*7Ra!{A{_{|@@q@zSCT @9@5 *$1!T(!Ԁ *X1T*GA@ ` *c|@ *`|@c5BO@~D=/=|n;@aC@cc@b:a:~v=ASA{ͨ_R{C@GTcD @cF@cc}TC@C}R{è_֠XA* R` ! R` {*H` EA{_{*H|@Tc@TQc@~@sB{a@`$!07`xca``{¨_{ @@AQ@!*T$@`?`@~7aED!a @{¨_2a@@@Q* 7"ER?"C#_c2#{ 5c"@"`?T@9 @{è_{C#C#' ) A=={Ш_{ @6@t` @{¨_da@!ta 4 @{¨{C#C#' ) A=={Ш_ҨR_@7@_ R@7@_ R@BR_@ CR_@ *|S_0@_@@@ _OR??==_d@DqTA@!#_{![UK RkS҂B|@*@sQq T5 ;@4SA[B{Ө_@0 c,{S*[*ck*=Q4BBG FAA"Rs=LqMT=3s82jN=oY@q 5Tqk2T:ǑRzrz~ZaZ[~hUX7r@A!s G@G Rs= NY(66Sqs@ss@ @ks @z`T@(6v @q @zT@kࢀ{@ SA[BcCkDc,_Sqsb@@s*Rd;@@G@@/7aҬ@*RR@Tq%T:ǑRzrz~ZaZ[~Ӡ=wQ==q#c#=FiN=2==o@5hJ @h*RIs QG@;rs@ $BGjqhTwRK=NQN=1TG@@9qT===N=qCZC3B|@3@;7@N+=A?=N+=Nf3 A7CA `8@|ě"@3TqR`RaqSן<{`8s!?Ra8*R`8C/o_qs@* 56 R9S@Y39b~@_T4_Ts ; s " 8o==4=9`8b*8N=j==@TsE; *@z R rjAT@_kT@ (6bK_qmT@_kRRg@(7S@v @q @zT@sE_k@**RRG@@t_k@@q @zT@*RR?@@(7bK_q T@a/6@_kR?j @zTbK_q-T@*R# R* R*A@! ƚ!@# I|țK* @T4ѣiT_4K RqTtqЊR4 @RR*RKsr*KR @ $ Db| ?#TD@?q4Dq"R_ g6$1T$(RF!QRi)B4Tˢ@@R{B{  xS{ _kTq``K@q!BD@z!K! ? T@!ǑRar\R|!!a!|K"  !Kb:*RR!C"bA8a|؛#;8?T@!(6s&QqVT@&&q!Raҁc !|@0b&_$q T#RRWT@RcT4*@5g'R8;@"8?Ta! (˃4sKqVT@`'a|؛c!C"bA8!3G@3@*G@c`45 !`>3G@3@cG@a~@?!К33@bJ_HqT@ (6@v @q@z T@sE?k CRRnS@s!˼@*Rb@_6@==.='=s@4G@@9q T='=[)=[@@5D֒{&[5R5rSckRsR;@8_qD@zTs `@9qT`@9q TK˟#LT*x@(64Kk TB@99 [4~@{C\C@{@`@9Q$qTa @9?qTsR%R `@9!Rs`@8 *Q_|q T&!7qa T`@9Q?$q(Ta @9?q T@ X5s** b8_ P !R;@6h`ER H !R*7@%h `@9?@T5s*X3@@@73@,!}A@`@962K+3@" _q,T3@@!6 K`@8Q?$q(TkHT~@ ?kT`@9Q$qT`.@8Q$qTa RsR*r% 1Tq T`@9qT` @9Q?$qTa@9?q T@@K53@@@a73@,!}A @+*}Ss @8_ P ;@+h`+*}Ss7AR@H *7@-RAh 3@" _qLT3@@!*-RRs*r%  K `@8Q$q(TkHTk}a kT`@9aQ$qT`.@8Q$qT-R*  R-R *`@9QqH@T *}}ӥs%`8 QqIT>4?lqT1@T;@P$@ @=(7d_84 x? qszQ7q,TA! !X`x`! ֟1;TX7@X$3@{OHO@{@@@@R[@[@"B =[@|}@CTa@a4C@{?57|@?@(T q@TTq@T qT[@q`Tq TqT[@9[@y[@!@AqR2k!RR @DAha8*A8`w6D DR@[@  !C@8w6+T< *-[@X776<$R <$R[ [@<*<$R<*A|ś!C @@8"<*}KjTqzq@zATk}@- !K Ѝ? kkT| kۢkTt 5kT@(6 * k Tkǟ{G-@;G@{@@{C 7a}@C@M{@z*%lT **[@ _{@M@k`8C@{@4k[@l<R z**-9)[{@Tkǟtq @zTҟTA@A4?|@Z?@(T@@/7??@**R??@@)u? @q@zT@kۢ@*R??@?}Kj!T/=* ***?@1aT<* * *_* ˿+mT< * *U** P  *L**R?GO~@?@G@O@@@/7@`(7|@?G?@G@@ktǟ@@q @zT**R?G[?@G@@ * kT *RPG@(6)u? @q @z!T**R?B?@) ??@@4;@3@7@xsa43@sB*T9R s*T7@xs`4%RSA*[BcCkDsE{Ψ_{S[ck#x@z W 7`@R`6`2@b@AxaW + ~{.@a5*c&@`?`@~{Z+@b@A*a_{Z5[B*SAcCkD{ڨ_g*`@ |*4+@x@R=f @*?qT6B !Q#R_q-T<}?kT<!Q}?qTa4 c4*+7<} @_R +qLT@%+{S[cks@W@X@A6@aR ;@ *@R@@94q$Q DzITqTB@9_qA T҆$B@9@_@_q`T T@9_k` Tc@@!с ^7^5[B*SAcCkDsE{ߨ_@`@@9Zq$QDzIT[$@b$@q$QDz(T_@T" @9c@`!с/@g@!!zY @9q$Q DzT@_@T;$B@95$B@9@/@g@_qTAQ?$qT@ @9qT87>w}@@R$B @9@ AQwx~~@/==B@9@AQ#qT>*}`@8*c C @9cQAQ?$q Tk_q@T_q T_HqTFLQ!'$ ! ƚ? T_q T_q`TqZk@4;@SC@Q[?@9k;C_0qT@9@RoT_ q TT_qaT*ol*_q`Tof@9 RoR@  q T*_q@T_qT_lq T`|@{G#@_@{@@Tc@@р@Qq3T!! !X`x`! RA ? qT_q T*oAQ!?qHT*AQ!?8qT&҇S ?!T ?Ta6@9_q!T@9`Ro@9`Ro@9o_qT@9 o@2q@Tq`T* Ro{F#@{@-Y6Y6 Roo Roqz Rcğo@qT1 T6yo@qT q@T69{(#@{@q$QDz(T_@T" @9c@`!с/@g@ e{ #{@6)@{{qaT" ;9;@_qT{@ho@q Tk@5ҹ@#9'9`@9xq`T{R" {Kl9`@9K@q{@Ttq`T&R${ !R`@9"R{[9`@9"R{9?tq$@zT[9?tqaT{`_8*?kTf9` @9{A{!8tqT4a@9qT**Ұk@C5OoSsWs@_@T@9a84Io9W@"#KMK@#GTTC@@ x&k@jTC@h~KK@CG}~CGC;t5#Kb"K@#GO@;g;@4@;D;G@_@ T@9a8A4;@ h&8!Th? C?@;IK."K@G@C%"Ga8a4 k&8@_@T@9@;Cc@`!с/@g@ T_q`Tk@4o@qT;@ C@@x&;@`;@h&8@/@g@9;;!@;@`8 4_@T" @9;CG@?롿Tk@4o@qT;@ C@ C@ RR @/@g@!!T_q$ @T @/@g@lo@_qT_ q`T 9 o@R@/@g@`TYo@?q T?q@TA5 K  =DqZ; RARR@/@g@!!`T9o@_q"4T_1T yqZRR@/@g@!!T!$Q?DqT#c` cXaxa##`C@A@7#,c}C!_d DqTA@!#C@A@7#,c}C!@_d DqTA@!#C@A@7#,c}C!y_d DqTA@!#C@A@7#,c}C!@y_d DqTA@!#C@A@7#,c}C!9_d DqTA@!#C@A@7#,c}C!@9_d DqTA@!#C@A@7#<c}C!@_d DqTA@!#{C@A@c7#<c}C @@={¨_d@DqlTA@!#C@A@7!<!|#@C>==_d@DqTA@!#_C{Cc7RR7rS[RksC &8R#bN@_qD@zTsZ#@@qT@@q TsKsB T*t~@ {|7`T`@ /6s4Kk T"@ "G4A@$Q$qT@ @qTZR#RA@ RZ3AO@* Q|q Tb & 7?qa TA@ Q$qTA @?q T@5Z**K@ARZ3AX R@_O@Q|4@ـ"0K@ـ"G0@xqTtq4@tqT5 @"@5q &T@5K@Gـ"@qTq (T@4??@G cW@kG`?@&٠q,"T@4Ҁ?`G`@&٠?~G75K@G* 7"@_qT_tq!T R?tqT  R?qT"@#c*?kTb@c_tqD@zT_qT`@tq@zTb_kT?kTBR R@kTA{<?@@j!Tq!Rן{kT`@T9a7a@9?@!?!~Ӄ@qTG@W@@ 7 @@4?@T?@G@!?i@G@@5@q T` @?qT`@`*u@q@R *`5@5Z_{NKk,T:qRsҀ!3!R@@{@SA[B_Ѐ!A``K{* !  @{¨__ __ __ __qT{cA|}SC[O"# k! `@b@Bb!T7@@#@SA[BcC{ը__{S*[ck9Rs? 9?@7sQ[O3tqT3@aha{?*7?77@*{@SA[BcCkDsE_s Q{S**[cks?G˖h@C!RwO R"K&B#šVZ'"R`T~}7?@kc?qMTqsRן7@jTC@s_˳?`6?6w@wBB*5BBB*_qT _qTBQ"RV'šT34{@SA[BcCkDsE_w@cG@,{@[B*kDcCSAsEHE|Eѩ {sC[kScod@CT3**$7@#Q_qTRK"ښ8R`&z"ښS@9? BT`@ `TQ&7*z_TRS?7@qT`9Rӓ@?T* ӓ7s@7@B 9t"Ț8R3?hT*RSU*9qMT QӓsQAs@Ҁzs` &R#`ӔS*@&RS_qATa!!*5!!*?q T"Q ?qT&š9qT*AT{@SA[BcCkDsE_**RAKs&*"3&9*qTAT*_/{[*S K*"R/#@K@@sSA[B{Ҩ_{R{_{"R{_BR{S#[*_S*"R+@S@@!!s@SA[B{Ө_{[*S Ks*"R#@K@@!!sSA[B{Ҩ_{S#[*_SS*"R+@S@@!!s@SA[B{Ө_{[*S K3*"Rv#@K@@!!sSA[B{Ҩ_֡%L@R@q,@c0h$80@T@q5,@LD@dÐAT_` b@9"9{OS[r~!0+*~co~~s~~~s`@ 5*"RC6G@o@@BBb U@SA[B{ר_{R{_{"R{_BR%L@R@q,@c0h$80@T@q5,@LD@dÐAT_` b@9"9O{S[c~!1*~rco~~s~~~s`@5i*"R6G@o@@BBb USA[BcC{ר_ҿpR{R{_z$B@`T?@ T$@9c9!kT! #? T%@ʆ $T#$@9c9!k!T_H|@g})'}ߟ!cB@ T`@9k!T`@9kT&|@@}g`|ߟbc @Td@ʅ$T@9BkaT_B@9B$@9!k T`KR_!$&{@LS[CckޢL_`Tjb8BF} zah$z!8 `T BA?bTdhy8ja8kT8T8# `T BA?bThe8ja8kT#T#:?Z9f4` #T_8Fzac$6}@h``T Ҕ "Tjd8jd8k@TҔITѣj`8j`8k@T{@SA[BcCkD!_{[C S( TA@9A@ Ts˟T TT@T[BSA{è<@y$@xBZZB<<TkT@8 *<kTSA1@9@9 @9@9<S @9<S@9`*`* *@ *"@8@*\S?TkATSA$ kTSA@D@BZZTkT@8 *kTSA[B{è_SA@T&T @bT`#@@T@T@88f}hah!! ?Tc@h`8"h 8T_@TcѿThc8ѡh#8b@ сh`h Tc@cрhc8h#8{  @{¨_B!_T@9BkAT_4"_@T?@T"@9!9b4ߟ! #@bB#_@T"@9!95_{# @T"B!?@T#@995b#@9#4E}&%ߟ! ?T$@c$TBs @9!`9@5R @{¨_{Ss@9*4a@9A4_kTq*`@9nk@T@9*i*`@9*e`K@SA{è_{Ssc@94" 5@SA{è_{S`DSA{¨_{ *@9?3k @{¨_{!r  T @T`@94kTss @{¨_&|@ߟ|`@D "Ts"s`@9@4kThb8#hb8BkaTc5RK_{ ! @{¨_{S!@9a4`@95@SA{Ũ_R$a@9s#Fӂ 4zcBz#ca@9"FӁ4zbA$A6`{S~SA{¨tSA{¨_{SiBTbR@SA{è_s@RsUj38{S[`T SA[B{è_={ !B?@T"_T@9#9C4!B!@TB@9#95@94F}ߟ %T@c%T3?9 @{¨_!?@T"@95ߟ! "@Cb"_`T!"@95 _"{S[Vsb@9?*4@9$@z@T_kT*@9kTb@9* *@9 `K@SA[B{Ĩ_R_{Sba8Ta@9sa59@SA{è_Ehc8$hc8q@Dz4Cc!T@K_RR{  @{¨_{S~j48@SA{è_{SR4`SA{¨_{ a`j`8 @q {¨_{S*Y*SA{¨{S@sbj`8cb4aj 8SA{¨_Q$_qT@85BQ_1TB/#@9^@LLC4"@9B4&"@9!EF š4xecx%!"@9_kT ca@9"FӁ4xbA$A7`_C"B/C${^@LsSckL{bh#!{" kx8F}Ӂ 4`kx853@?`T!!@#Tdha8#k`8k@TT3 B3 [3# `T BA$?bThf8$ka8kT#T#?3@33!74 @CRT?#T{`T`_8AFӁ{a!$š6B}ӡjbT_A#s_B#B#kb84djb8k`TBs_TB!kb8`jb8?k@TkFs[B[B{@SAcCkDsEC"_{ !@95 @{¨_P@c@94@94d @94@9A4f@9&4 @94a@94 @{¨(c@y@@xcZZc<<A@8 *<A@94kATBf@9c<S@$@8<Sc`*`*d * *A@8 *\SA@9A4kATB@4@c@ZcZA@8 *A@94kaTB ѹҷ{S[u`j`8@4Bj`84!j 8SA[B{è_Bs{S[v`j`8@4j`84!j 8SA[B{è_S@s'R'Rhc8$hc8EQ*_k!Tb4c$qT_q hh8Q qT hh8Q qTjT@QQ$qT?$qIT@K_*hc8QcQ$qT$qHT%hc8$qHT!K R@9!$@8$8#8C,T_{SDz` SA{¨_{S` SA{¨_n{S_` #SA{¨_{ 5R` s`@4kT @{¨_hb$hbBkATc5k'Z_#hbh"B5_{S!@4@4a@4sB@SA{è`B@SA{è_{S `~3SA{¨SA{¨_!"@5 B_{ST[sѢ@*4a@?q@@T_kTl*`@ikT@*d*`@*``KSA[B{è_R_{S AD@sєa5_@SA{è_֢@B$@q!CzTk Z_R{ BD#@!c5RC @{¨_{SR`BSA{¨_{ R~`aja @?q{¨_{S*w` T@_kaTSA{¨_{Ssa@a4``@BSA{è_{Sc!@4@4@4`@ 4s{{4`z{{5sE҄[BkD?`T!! T{c{`k`TiT4B4[k# `T BiT{d{akT#T#? ~rt4` ~`@3~73@RS (T7@ B{b4dzbk`TBs  T?"#c?"TA{b`xbB?k@Ts[BkDsESAcC{Ǩ_{S[?v `z``4o~ ja4j!SA[B{è_S@S8@BkaT_b@B#@!k T ZR_$xcx#c_T_`TT #xbx"B_T_$xcx#c_Tx#c_T_{ RBA;"U2eB#C AcBEa 8!T @{è_{["TSѴB 5 R8R4sqT@?DqTBSASAR[B{è_SA*R{S*[*)Ta~@?TҔB@5v@Rz  R**0R`6sqTj@?DqTB@@^R@SA[B{Ĩ_RRR{[hTIR9[B{˨_SASѴ!@ҏ5 RWy 5sq!T9+!RSA&@qT9SASA@R _ R,yA)&@! f!2d cB )_?jTRb@B A*a_{R"{_a5R_|@{#"ҟO {_*AR!p*aRp{!RpqZ{_{!Rsp7@{¨_{|@a+ {_R!Ro?qTCR! o{R{_{|@ {_b 2B @9B4_55b6c  9;բ7cR2c  9 *;cq@T@7 *__kT5_օ_5|@H `T ;*7 _kAT5@@7_a_  `52?kTH !"!T{S4|@[*cCa@?Xs?(T*d5`@ D!qBy@ *1T?1$D:T?1RRSA[BcC{Ũ_!@ Ҽ*?1`T RNqtS{S* R3[**"****O@@*SA[B{Ũ_@A;!_!xb _* R@5@kT;q!T_5q|@)yӇ@  H kTT@?kAT;qaT_Q5_@R_Ԩ !| *@_ ?֨ @@5_ s_R?|?|?|_!Rj{4qARR{_M  " _!R_|A_|__@A5R"_5#5R_ֿ;{9 4qARR{_@b5R _5"5_ֿ;D_{ 4@q{_ {SГCqkT T`zC?֓s@3`@`s@`@?s@` @?֓s@sSA{¨`SA{¨_{S[ҜbJuZt~ C`@ b3@RSA[B{Ĩ_րRR_RB@"_RB@"_RB@"_RB$@"_RB @"_R?_@@RDc#_RRB@"_RB@_q"_RB@Bx"_RB@B|S"_RB@B C"_RB@BG"_RB@BB"_RB@B"_RB@"_O{ |=C!C` @R{¨_R?qhTRA_?TRA_RR?qhTRA_!@RA$_RA _R4?q RR_D T!Rba_R# TRA__R{ @7 @R{¨_`@`55`_2`5Gb@R_x@AT_qMTBQa @B*|Rb|_R{S[@"4q4RJTz !4;Rb_B5u5`@ak T;;`@5u2wB;;`@u2`5H !{@T!H Tb@R_qLT_ Q5wB?+!T;;`@ 4H !{@ATb@Rb52;b@d@_k@Qa__kT`52_kTq@AzT!H T@$#R*a_t55u@u@kT;;`@ 5"#RR_ Q5?q T[B*SA{Ũ_`;;`@`5 R H !"T;q`TO@43_3@a5O@H "ҿqTT;;`@`5; R;ՠ @@4H !{@AT!ԮH !"TH !"Tԓ2_ 54H !"!TԍR_R?_R?qT!SRA_{SS;s"U@;`.@ 4`@9qT@@A`@`@9r!T!T!TH!`"@SA{è_@R `@9rT`@9rT R`9!A; V8! rT @9rT"R"9_{|{SS;hV8s"rTAzT`DT`.@`4a@9`!?q TA; V8! rT @9rT"R"9SA{¨_D`@;@V с4@9?r@T_@9?rT@9?rT!R9_{-{SN4; R`.;,  T!RSA{ͨORc@ r === R@ R`@9rT`@9rTSAR{ͨ_{S*4a@SA{¨SA{¨_@! @c 4`_`5H !{@TR_{S@@42a_!2a5"a_!a5H !{@T@R_x@ATSAR{¨_|||!@"xa7R_@! @c 4`_`5!H TR_!R{S[c @ @T@3RA;!Uxka)T@?@sR?(Tk+@ @ @"2_5;RZ@R o@q` T***A@*?kaTxrTq T 5AR_`5A`5!R`_5a5!R`_5a5;AR`_qTa5;TR;#RBRZ`_ 5t5@@R@? Ra_`5?qT3RYRH !"T> R;42_ Q52?kT*@5*o@+ qAT  Rq!T @k!H T;!R_` 5A`5i;AR`_qTa5;VR;#RBRb_"5v5@?T;@a?@"@? T?@`;@Rb_`5_q@TG@"_@Q 5_qTG@H !"T?@;@H !"!T;AR_qTA@5;SR;#RBRҟ_53`5K*@5*?@;@#L@b2qMT _kT"5;@ @`7" _ 5;;@R@! ;L;5H a# To@q TokD+@*SA[BcC{ɨ_H !"Ta@`7"_Q5OR+@kD;@+@kD{S[*!R?`_5a5;@Ra_?qT`5;TR;#RBRb_"5t5@$R;?@ ?@q@@T@C_5D5Q@@Rb_`5_qTH !"T?@#Rb5RRb_`5_qTSAR[B{Ĩ_H !"TR_R?_?q QAzRTb@RBA*a_R?qTC@Rcxa|*A_?q"H !y!@T_{@;SU`NkTs:b;  N  ;Rb_B5t5@SA{è_ N@5;:;N5_Q !H T;NB5_{RS:b;SN5SA{¨_!H T{!RSS;s"[a99`2"@!@a6@?a6@acu; R_ qT5wS` @`T" eRa>@a? T&^#^aFD^a>_5F_q`@zT&*!^;՟qT`@@ pt*R n @!Qa5 9`@ a @sq`T;*;!R6 `@ܽ`B@h `C{S@4BARc_qTa5BRҼ;Հ@4 Ԩ b@ԁ@ ?e{@ ?|@_A;"Z _@A; _O{S[RdI9? =~d4` ckW;s"@94 hTv@ =v@ =C@x K@@VЁC|BAB_ BT@˔CRbRҟn T` CA @<v ZY@[X/\;@O4`R@+@@?v}^@@_܂@A7@;@@?q>"f@_` @"a5!R 9!0RE#:DrJ7@ 4@#ᣀqaRB_5q@T5 @WR@@ e?@cCkDsE*SA[B{Ԩ_:@8@@6:@`@a7TA`@7d@`@7d c@*:` !R9B(C4C@CAR|˛M|@ҀX@G@&8ACRT RmTbRm@5A<`  @0V@qT;nuRcCkDsE@R@+-H !"!TeRbR_6KuRs `@Q`4incCkDsE[9bR҆mTA<cCkDsEH{cR "__qT#5 ; R2/@, @R{è_?_O{S??|?=(@?qן,@$@ (@RSA{è_[ @@a @@s`"ӠRrmT@0qT[BR_RB @"*BpSB"_{STR_<T@Tc"@B`A RR*6@7@@*SA{ƨ_RK*`4@@TR?8*Zv@@{S[w`"@4|@(K5`"ԠtR@*SA[B{̨_A;!Z X`_{S[\3 RqO@4R j$RR**@!4qdVzT?qT9} O@VqdVzT@*SA[B{Ũ_w2@@`"@lR(@_q`TҿR__qTTO|=_!{B;S@Z9@'N**ExckAT`R @*@"x#R@SA{è_{[ST;*L"~}8@?h"@Tc!@?x7k@RSA[B{̨_{S[V;"cCkR9+Q?s"@T:@kshsh3W@TZ>_q@9?j T@9w9x9+@SA[BcCkD{ƨ_{S*[vs"@4`~@~@HK*SA[B{˨_֟qR3@A@~R#td@zTa6@;U R?kTBA_!xA5_@qlTR_{AR{_R_||a!@R_@? @ATR"_5#5R_ֿ;R_{S[k@@TR_55SA[BkD{ƨ_ֿ;U@@qT Ru7cAF@E;&* `87@D2D!|@H 1@T4D1 TT1TqTs$RRR_qT R7@@`7@ @ 5@SA[BkD{ƨ;@ ;H 2ԿD;qTA@a4A @A45*YX;U?kaTcC`R;*Rb_BQb5xrTt@qTC@`traT#45 qTS#b_Bb5a2"_k!T!5cCzF;@ÀU @tkTk`T` 5D4' 686@@bh @Ԣ@a2D_q#!*C_kTA57"G ?@T@<D5R%g6@7?qT@w2`R?kHT!@@4'*!yH !@DG6`R ;D0qaT@5R_@R@_ @aTR _5"5;_֗{S[ck@@3*yr TW;ո@""@ Rw_kT`qTR6b4@@A?@T"3687`_kTt5@ 4QF;մ4; ; 2H 5F Ra_t5_q!@z?q@z T5RSA[BcCkD{Ũ_F!4G!y!@H "TR_R?_?q`T R?q@TR5@R!x_C75@!2_CH 3K;ՠ;Հ5@!2C__R?qTC@Rcxa*A_?qT!4D75a@!2a_Cш #K;Հ;Հ5a@!2aC_a@R!xa_R_R?qTb@RBtA*a_Rb_a5_ q@T_H !{@!T!{S4R ;q T qTbRqT`_qTb5 H !{@T!;#RbR3`_5t5!%?R@Rb_`5_ qT@RSA{Ũ_@_qT{R{_ֿ;R_R_O|=!@!`SR_{Sm@q!T R[;qTa@a4a@A4;d @RR_BQ5xrTN@q!T`@`4x?kTt_B5a_kATu5[B@SA{Ĩ_{SF@qAT R;q`T@!4@A4;Մ @RRb_BQb5xraT+@qT@c4a2b_Bb5_kT5@SA{è_w2;#@`xk@Tk@Tb _kT"5_R`R _5"5;R_@;d@f@xQ_kDAz!`_kTa55q@zkTR_qBx@H !y!@T!҄R_R?_R?qhTRA_@; _{OS~@?|Rd@~?=?3P5*uN@뵒saC@C?k! k a@}@*SA{ʨ_{ pOC!C`j @R{¨_qhTB;B сC@9c#RA9_RB;q(TB сC@9c#A9`5R_{R{_R_qaRR _{S҈<T`Tc"@B`A R!Rr*6@7@Ҵ@*SA{ƨ_R7*@4q@@Rd*Ie@TR@{S[*w`"@sR4|@~@K@*SA[B{̨_{Su?l`"@sR4|@Kf@*SA{̨_B;CZ|}B dh`Tah @@92@9R_?BzT|@kD@TA@!^A_RR_R?_R;տ;@5_a55R_R _5"5;_ֿ;;R_։R_RB@Bx"_B7?qRb!`Sa_{R"{_ {c*k[_gS[ӂs g7C RR `7DSA[BsEF@EAc @z!?1qTqd@zw TR!|5R?%3 R_q TR)w` 5{!RwR"SA[BsE7*#RbRfT*A*>dZR`P*T**#RbR 7f*?@ T$ @ 4=<@  4 gw@q QzAT_q`TRARrp*`6'@qT0654B B   6R s[)b7!R8C77@R7@ns@ARrF*6@DqT@ւ)K?@a7C!?SA[BsE{@cCkD _*2d7CR@A?TsqaT?@ya@@!cad@SA[BsEҦf?@R`7Cs?y@{SЀ4C !`"__TAT`@Q``5|8ҁfSAR{¨_ր/@ {a R*{_ֿ;Ղ@@@xk@TAq x__kT5b7*_qq{@H !yBԟ!@aT!_!Q5_{S[q? 4 Rc#;!qT`@x@aT`@ 4t$R;c0*RR!R*(5@4x @_B5`_5u5!8#@cCcC#@RSA[B{Ǩ_;#@x@TbQ _k!T"5_{bR"{_Sfҡ_A;N!U?k@T_{Ss:@Z@;8C!8 @{¨{S"3@1+ TG@? T@T`C BPC!LCc! "[SA{¨_s_  TccCѣG?z3A|CccHc*d*$TAT RR#R( Rp'<0RB$&r|#BKB C@&_QB|@TBQa#R#0RQ#rpR!ccaz# X@!d@xa%`@&9?d_T$X@xbB9D4B"daz5Tazcc%L}"j!@?9_TB2<Ҹ@Tazt h@` @ 6!@A@?@ 4!RE7cCSA[B{Ũ_{ OC#+ ) C 4AC=?={Ѩ_AC@R=_=D@R!,D!R{S@`@ysb)T A @A@@P@@ySA{¨F@`J@SA{¨_SA{¨P{kwS["cCss|*@(T"|@hTR@6@qhT@' 7 SA[BcCkD{Ũ_{RS*[ @9 52Ҵ}SR"͚RՀR R!4*$`AJ@9  e5m@@9# dqaT!|S*6SA[B{è_*7B4@bA(@* * @y55@9# qT@{kS.R[csA@[V#@S3@_ T 2<~}k_4RFx@ T{,Td@Qq(T`*q"T@} @`47@kE.BF!|}TKhak@k`ӤR| jdy hhKh!d@hh R|!j`y q`T@9|Sd5@@@qTqTT qTq TqTq"T"@ F@9|S5@qE4@Eqs{/# S'S@/H#Is@{@!kb84B_D T@8`1!@9@9?kTA5!"Rs{/# S.S@/H#Is@{@_)T^ k~8qT _8q!TRB2?h>81B>@9@@9k!T@5"Rs{/# S@@9B5 @94 @yqBz T@?@QqiTРA@DA?֠@ 4=AC@b@!x!BGa@@ AG @C@@CRA@lE?HT@@B h({<d@t5xr@TG@h@T`k @*D4РC@A@A?!RE!q TqTbh( [@ h(@@h( TD@lEhT`h(b@@B@7K# SS@7GKH#IA@@kD@, h(@@CAA `?!REۜY*A@A_@?֠@4SA[BcCkDsE{ͨ_Cx{SCkg<`&i%TCAyBQB<_q$TAyAyc|7|@?qT[@;asT[JR*:GrLQ 7?=6`#[@g@! TAyAy[;g@C !TAyAy[`@7`@e@ ?`@ `@ `@qT`@"Te@t@BӥSZ *Z*e@_B !cA`@qTqT k T kT O@5`@C T` `@`@ `@e@ `@7@kg@k8 ) 4*CRGM@TCAy: qTZTsTAy??3)R~[@#Ta@_Ta @AyAy"3 !e@aTg@*CRaM Ta@ TAys`@qAT @e@c @a@`@:G BjB *S{ cU*{T`@bTa@!6b @R:GecCbBC@`Ta@T*CR!M7@@@?XTG@RBM5 @46 ;@z[BcCsE{@SAkDC_֗@qTsE[BcC ?@){cC;R;@\cC;[BcCcC;[BcCcC{S[@0 @ Ta ,@A@:Gc @ˤ@$@c ?cT?! ?T@s4`@qAT`@qT:Gc @ˤ@`bTT@T?T`@Ac!!T?T@?"T@SA[B{è_{ESR@T[cRAT[c: @ @T4R[c!BA@?/ D@9 B53ҵ}Ss"͚T4Y@RրR R'4*r*`AJD@9B  d5o@#_q!T!|S*6@9 q T@[BcCSA{Ũ_*"74@)@* *h @y@9" 5_qT@5@@[BcC@"BA@?[BcC{S"[#.HB@A@a hT'@ C@'z!w@@?/@@c! M@Cҁ HcҤ@@@T@f4ETR`T@!H"`A T@BA@?֠ O5 R9@B95 @?T%ҰB!A6dzbdz"sc Ta@!7@has"h!!RE)@SA[B{ר_{S[U;*"c;k * obj@_DUAT@5#@s4*`B9@5a @cuj_T$!@ @у _HT/@%@B/x /@6sfEa *47 * R`9jt@@@Z}@?֟TSA *[BcCkD{ب{ C@?_T(B@A@a$џhT@!E@x!bc@a@?`Ta@!@@w@B}BA @{ը_7@dU_@B|ě@BABCA@`>Ea:a@#BA@?֠!REx@#?T&c@a@$ !HT@g@y!C@@ 0 6@$x6C@$l6{@!l6@ޟ#@T!@!@(A@?TB@A@,_.{SR[cks`@9`4qTR.@`ka8bha8!_kTb5.@ ӂ._RZ`@9q!T` @9qTv51Rd4`@95@9`4O 491 RN j`T$R‚.c*!$D @5R=R*7*X(7 G!E3 @0AE@ E @s@c@bha8`ka8!_kTb5{@SA[BcCkDsE_TE *%9#%`n@R`n@`r@R 74"2@4`r@s^@A:A T`r@ *T`B94 @9 5 `%@TT_k 83L@`r@?PqhT'{2`@33@ RB @9)ˡ43@@9qAT`n@`r|n@|ˣ73@7@!`@9q|R#8 1!TE #*8ւ.@@9qTaR <|B%c VR0*6@q T@"!#@9qc5?T*lRa\5S@  ch<8@qTA*T4T`TsE}*E!@$E`@R` s@aN@?TaR@?!T`@[T*cO4*]x**V3"R! &!&"R@ O 4Ov4@R_tE|B c` ~@Ba! ҳ .ҩt^=`O`a9<T`@R>`bz@fP qE~@vEB A!! bt@a qvvE vX!}CxE aC``@x E3AO `4d@ R!$>V&N` D!5:`>3{[X@[B{Ũ_SEck_`T @ A @! @!@3@_A)T+Z@E`T @b'3<>Z@@&BA@?֠ O4 Z@ x6 @Z@ x6 @sBThsTz"2@@hz`h @2@#A!hz`?@`4!REZ@x6bSAcCkD{Ss,Д*[cRK*"R"%U;E"`B9`5s@3bj@_DUTa @#T$!@ @у _HT'@%@B'x '@6@@}x@W!C {w?TSA[BcC{ר_{7*{,,{*{ `>EN5`>E!@>@T> @{¨__{S[3@s 3 b@cGС.B& "dp@y$0dl@yc@$ B@C@`TA@8.k@_T&c@b@bDџhT@ š`@x"LРE Td@c@x@ B_?T9} B.СB}B<B||c"v" ߢ9R!@(Ec@B@?ֿSA[B{֨_{SB@C@@`TA@8! *A"43;@7R.!`(E@SA{èc@B9} {CS[ckCs@cG@;Bb?T&@@u?xhTK@ ՚@!Kx5@_Tb@,A@ ,K@! c@D;Հ #@T !R9.W@@p7@? Tc"$K ha0fN_TO_AT@(?9Ѐ)"@b!A@_qT_ q`T_qT@ @b|@b@b @`"$@aD! x`D!. 7@`"$?b"$C@cй7;`"$Qз  H.D@[V@98@!@)f4@G T с`!(!@9#@9_kTB5!R`)7`)B @< @9q7T @9qa7T3 @947@5!Ry@;@`y@ `9C@һ5 ;@9qT4;@ ˀЀG@!O(?qB`3!*@R R!?y@`@{Cy@ !)Ҏ5 '@9qT5v@vy @{C6+y@!){5 @9qT 5`@? #?y@@s@"G@!+@RK Rc@G@!+@RC R_T@? qaT@a.!,@ R0$F@ A@x@˥!@ ˹Щ@!' &c&wp!y@`"$X@aREE$|@94qTITqT9ғ|9<4QcqT'ܚ6@8'QqT{@ @ 4@`T#R@4C4@@TZCC@C``@bl@yap@y`bp@y0 @!@al@yBb@?qT?qT@a!ˁ`!@cB,$R9XТ!E@ c"$B+`@ "h!`@huhah `@BhuVTs"$< F$wE<"AcpEC` @BH T!ҝ`@"wE"l4_ T 7O@5O 4R@@!-@RUR9} ԷRЁ"R!-Ed.T!R"R!.X.T!RУХ`+DE"R!-b ?@@"o@ `@$l=;С5 *4S;շ@a" T9} ;@` `R*7w"$*.G@@cD!Ob@`o!4@R2@B!D {S[cksc;c R,r"!R _N4/!A ?֠ _@ E ,2c@c@Tc@G@Ҡ_@{@SA[BcCkDsE _֠E!xEBEc@!pESAWEO)uE#aE7GY7@*5;@!E__@ _@`Z@` _@N 5[@>?B95c@#Rf 4@?4?@7@" @_ _@_@!@@3@_@_@@_@@_@_@!p@l@?T_@p@_@X@_@_@__@_@ @c@cC@C@xA?G@tS@dpW@CO@"?@_? \DB.$O;@qcA@.@`?Ls@B95R4C9[@ha! "0:RbZ@Bxa!BB9_qc?!Ta!}ӵ4P@BA@?֠ O5[@9#hy3db@b@ !RE[@}}TbZ@}BhaCB95Z9cZ@[@ahaAh$eb@[@*h$!R9E9 @s*G_@3B9T4_@B9 4_@B943@@7_@7@B9 5_@K_@c3@6_@ҏs"_@X@hs_@X@hsB95_@X@hs_@&_@#E4@R%R`T `4 _@!X@!h`_@!X@!h`"4@?T*a4d6_@B9 43@@6E`6@67@7@`>@~`B@BuGcB}Ӡ`B@@E`:cwE! A`pE}#D  G@TW;"ѡ#"xEb@V$@!@Kz]Z} ab@)`wE 9s @STEZ@K@@@?T[@A OS@s ss @@{ @P{TA@ wE?TRR`!@?@AT@#͐ BEB @_TR_{!BA@? R{_{[,S'RS bD @R RRh*@ @@ H!D@c TRC@ cxc6*B`_ TD@C@9e c|S(6#(6c@c CT˟aT`@ @!?CTa2@`F@@!`@`F@ R@SA[B{Ĩ_{Ss,[0SA[B{è_{S,SE[c#C O?*5s@a@c@`@;a2@EyKR#@*SA[BcC{ʨ_ŌiBD???ŌiBD@hBD@9Ō?1]c>SDpH~??#EgܺvT2g jgrn<:ORQhك[ɼg j;ʄg+rn<6_:OтRQl>+hkAكP@p@?e'?h ?pB?;'h?v˨%7H;s>?KďJ?Y.Q{?*.w'?=?\llll?HUUUUUUUUUUUUU?$/@M,!!9ڍ1췃%/?y\AxD"?7 ݨQ͉֗?xiKt YoRP?'`h]D Ѽ?ܣu vz>((S?}LW7Ng[W?A./6)C  >@P\u<36@j꣯NS*E?o@iBD?"@J47࢘1?ŌiBDŌiBD?@J47࢘1?͉S:3E'q?:3E'q?"qdY(@=?'&v?ດ q?0gI/?px# w,?*܁;s>? e= ŗІ:a$a?tiBs8NTVd?gqU8slU:q???UUUUUUUUUUUUUU?UUUUUUUUUUUUUUĬCY?` @|$͋?CoG?@U)/?f? &*pl?!#?Rq1/?Wp +)Z*?g8^?PzU9- ?lQB˯~?d&}Gt6$X5?7{ℎ_W?͋2HOf??wlQ&E;v.?`VΞ?R$]8?w)Y?1}5u?&f͈I#w?3-?y[!}I? ne4w}?._+^Rd}?"#v#l^5n"?Li?SUUUUUUUUUUUUU?@?w@?ŌiBD@^3}'F?[u-O?Nax?7N/8 ?#n#tFȃA?)EXKh/?K)6lv,d? q{k(?8W?u]A]tE]t?bCy$I$I$I$?QUUUUUUUUUUUUU?,ـb΅q@KReI7zk;;?W=oM aS)?o!=h|?cG9٬yCV-x? ֔aQ@{?KɛXuG?-\x2a?0L?u;;;?#qqq??@;@o@BD?_W74@@@  j h@ ④V?0qYA%?p|\:"b?X?_r ɚ;@@p@@d  cc  (  i1D709vfamulimlGcq0qq3UvuUasvEaUVUrPmXD6q/nVSSp7pNDhCR9071IfIReU@@@@@@@@@@@@@@6789:;<=>?@@@@@@@ @@@@@@ !"#$%&'()*+,-./012345@@@@@./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789hprOBnaeloheSredDyrctbuo./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz          @@@@@@@@@@@@AAAA      $$  $$ " "@H@H@@@@  @@@@@ @@ @ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!   !!   !!! !!! !  ! !!!! !                                                                     $1$abcd0123$9Qcg8DyviekV3tDGMZynJ1Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzxjVp $ν|*ƇGF0FؘiD[\"kqCy!Ib%@@QZ^&Ƕ]/SD!7Ç ZEogL*B9q"am 8D꾤K`Kp~('09|eVD")*C#9Y[e }]O~o,CN~S5:*ӆ    $5$rounds=1234$abc0123456789$3VfDjPt05VHFn47C/ojFZ6KRPYrOjj1lLbH.dkF3bZ6$5$rounds=1234$abc0123456789$Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/BD7q۵[V9Y?^[1$} Ut]rހܛtiGƝ̡ $o,-tJܩ\ڈvRQ>m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq*+,-./012 34 5 !6"7 8#$9%:;&'<(=>)$6$rounds=1234$abc0123456789$BCpt8zLrc/RcyuXmCDOE1ALqMXB2MH6n1g891HhFj8.w7LxGv.FTkqq6Vxc/km3Y0jE0j24jY5PIv/oOu6reg1$6$rounds=1234$abc0123456789$Xy01@# !./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"(ט/Be#D7q/;Mۉ۵8H[V9YO?m^BؾopE[N1$} Uo{t]r;ހ5%ܛ&itJi%O8GՌƝew̡ $u+Yo,-ntJAܩ\SڈvfRQ>2-m1?!'Y= % GoQcpn g))/F '&&\8!.*Zm,M߳ 8ScTs ew< jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c ?G5 q}#w($@{2 ˾L*~e)Y:o_XGJDl     `  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy P ߼@0?YmÇ^?=``@]/_ ? ;_ ? ======?? ???o?????_/>PCx >??|/?8<~~~?_????>????7?o?????pG@??? {? Cd{_??C ꖪ^alnumalphablankcntrldigitgraphlowerprintpunctspaceupperxdigit !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|x< @@@I<` N 0 o @     `8p0/1? @ !`{B ???p@?C80?0?0`?? 8?`? DhL>4?0?? p?????{??        ( ) _ 00 1 x !"###$#%& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\e?f@hAiBj@kClDoBqErFuG}HIJKLLMNOPEW{|}XYZZZ[\\]^^^_`aabcdefghijklmn---PiQiRiSiTiUiViWiXiYiZi[i\i]i^i_iuvpqvwxyz{|}â̤ڦۦjn&*+Nbcdefmnop~}ύДѫҬӭ԰ձֲ y$9Oa8($3&~+*](*?*=EG***.265OK1(D/-)A)+*)C*'%$L Tt&%@?p P0 `З@‰8AVJdp~ A 0  ZuZ0ZZZZZZZu0h` (@  "'Qow|  $++++++++TVVVVVVVV+++++++++[VVVVVVVJVV1P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1N NN$nN1&nQN$PN9S1P1P 1P1P1PS$P1\{\{\{\{\{y\{\{\-+IHx\{ +(***+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++++F+%+UVVVVVUVV$+ѲѲѲ׃1P1P1P1P1P11P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1*++++++++++++TVVVVVVVVVVVVTVVVVVVVVVVVV *+++++++++++++**++++++++++++++++++++++++++VVl++++++++++++++++++++++++++++++++++++++++++lA++VVVVVVVVVVVVVV,V+++++++++++++++++++++ l%%%%%%%%%%%%%%%%%%%%%%%%%Vz&%%%%%%%%%%%%%%%++OVV,+VV9++UVV++OVV,+VV7u[{\++OVV9++UVV++OVV,++VV2Wo~~-~9oW~~+++++++++++++$++++++++++*+++++VVVVV9*++++++++++++++++++++++++++++++++++++++++ɬ N1$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1PSG++++++++++++N1P1P1P1P1P1P1P $P1P1P1P1P+++++++++++y\{\{O{\{\{\{\{\{\{\{\{\{\-++y\{\-y*\'\{\{\{ \{\{O*++++++++++++++++++H*++++++++++++++++++++++++++++++++++HVVVVVVVV+++++++++++++UVVVVVVVVVVVV$+++++++++++VVVVVVVVVVVV$++++++++++++++++VVVVVVVVVVVVVVVVV*++++++++++VVVVVVVVVV*++++++++++VVVVVVVVVV+++++++++++UVVVVVVVVVV !"#$%&'()*+,-./01  `0 `0@,$ P!?@??x`?'{? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV?= >!  @9#!  @  =` @0  \?@fd  ?@ x` @<;@!|<?D`0?3 ~f0@ !@ n`x& @\@ <0( y~m~`< m  1%[B/SETdQsNFe]+8l{!5GVo /F`n 8La9I^No error informationIllegal byte sequenceDomain errorResult not representableNot a ttyPermission deniedOperation not permittedNo such file or directoryNo such processFile existsValue too large for data typeNo space left on deviceOut of memoryResource busyInterrupted system callResource temporarily unavailableInvalid seekCross-device linkRead-only file systemDirectory not emptyConnection reset by peerOperation timed outConnection refusedHost is downHost is unreachableAddress in useBroken pipeI/O errorNo such device or addressBlock device requiredNo such deviceNot a directoryIs a directoryText file busyExec format errorInvalid argumentArgument list too longSymbolic link loopFilename too longToo many open files in systemNo file descriptors availableBad file descriptorNo child processBad addressFile too largeToo many linksNo locks availableResource deadlock would occurState not recoverablePrevious owner diedOperation canceledFunction not implementedNo message of desired typeIdentifier removedDevice not a streamNo data availableDevice timeoutOut of streams resourcesLink has been severedProtocol errorBad messageFile descriptor in bad stateNot a socketDestination address requiredMessage too largeProtocol wrong type for socketProtocol not availableProtocol not supportedSocket type not supportedNot supportedProtocol family not supportedAddress family not supported by protocolAddress not availableNetwork is downNetwork unreachableConnection reset by networkConnection abortedNo buffer space availableSocket is connectedSocket not connectedCannot send after socket shutdownOperation already in progressOperation in progressStale file handleRemote I/O errorQuota exceededNo medium foundWrong medium typeMultihop attemptedRequired key not availableKey has expiredKey has been revokedKey was rejected by service d'@B  !"#  !"#/bin/sh /bin/csh LC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGESPQW+J= X>?      !"#$%&'()*+,-./01234567      012345789:;<=>?@ABCDEFGHIJKLMNOP6!%&'(VW$#RKLMQ    ,-.>/?<DFF;)* HIGGEAA@DEBC<=     ]Z\[]YXIHUTS123456789: +,       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUKY"[*ED3(,/M/!15)F-!)/E"/Y/<"F///&6&B%"*(H /G /DOH+5O,\% / /-,G /UR%/>=E*.).///*/QFQ*[\]A#-///,-///7O//)%$!/4(F/!/D!@-) /#F"N"/&J#/*?KY('8PF/ $K&%/'A- &V0#")/+B#,-!(/,$/&/M'/4//2/0/!)*/./R'3/+/B-W,/1/4/-/, 4X*M(S-7)!C28/=/;/6/!9//?/L//&(G/O)K/E/N/1 #;&&?M/<$B/UT@/9H/N),"D/PA/I/C/0-J/ .EOO/P/T/-/)S/R/V/U/C#QW/$!D#UX/Y/[/*EV'Z/$",]/0\/#\0.00%[ ,*0-000- 0 0 0 0') 00 0S0005/0]0,8+000000SZ"GVM0'+%$X00=$T0]% 0 0 'W.!0)!P$R"0#0A%>&0\%0%'0ME(0 *)0*0+0H+.0,0+-09(/00010>$50304020B60I+C-7080990["-?$$1:0S$;0=*G[!=0C%>0?0 @0+%Y/'A0@$.B0 )9C0E0D0R-H'+)F0W,G0H0]$I0]SJ0(NE#L0!NM0N0 K0P0*CO0T=L&S0Q0Z(IZ0CT0R0. V0U0#?[0 -W0\0Y0X0.-X"S-T7$D11D- .1Y115*#,8)14O%1 +1F) 1  1/ 1   1111:Z=+G+V%P)111111+*[18 1:'1111(GD%1H 11@"1'#1;'!M!M%"M&-*%1I&1'1 TL!0P,*1)1 +1P+,11-[-1/1.1>=011121M31S*9,/ '\&GTU'61"0 \$F:1"]! ;191#E!*OE)<1=1(%F'>#%+X,&$]F1B)*<'E1=@1A1C1D1:@ )B1>1B?1.Q)G#AOG1<%K1]UN1L1+I1R1M1P1%+Q1S1U1O!.J1H1T1O1W12Y1]12Z12HX12U2)(2[1V1\1'2V222H* 2 2$ 2 22A$ 22,222"!2N!22C+22222 2%2!22&2 (22\""22 MD#22U)2'22 ) $2S#-2+2302*2.2,2+/222725242"$123262=A2[=2;2<2>2 8292Y@2NC2?2B2 )4%'E2D2$F2I2H2G2&J2K2M2L2O2R2P2N2Q2S2T2U2V2W2$0[,RW#"X2.=Y2&P[2Z2?)\23]233V?33339$3>." 3 3 3 3C0* 33 3"39#3A33333333333C*J333!3&G5("3\<&OJ8*%W.! 3#3#!$3%3'3H# S@R)K'$E-3)<-S)3 ,3B$($C$',#((3U$*3&3/.3- /3G)\ %#13.*2373)63033353()83$"TL:393G;3=3<3?343A3@3>3-03 B3LC&:#D3C3E3F3G3H30)I3%J3,(1'!K3J++M3F!$!6(N3O3ZP3/Q3R3AP?%S)V34 U3:*T3D$X3W3Z3Y3[[3]3"\3)V:$44&='0+& 4$,+ 544$!*)$4D*) 4/.' 0 4 4 44$+(X0144+444 49)C44 4 .+&447(44+=&4(444&44X+4$4!4C" 4"4#4%4&4Q(4'4)4M,4;#$*4-4.414/40412434Y!445491+(64774!84594:4;4=4>4?4O!H!6 E$G"I#T)!1J,@4;*B 'A4%,(CB4R1%+C4D48(F4VE4J4(I4G4K4H4 &,;L4-M4O4]"N4Z/!VT(K,P4 Q4R42!1S4% T4LU4V4?+W4%X4Y4; S%3W'&(Z4N[4].%2\455\]4$!*$'7 Y,555%555S 5 5  C 5+1!855> 555555% D555V)U)F$535Q5I!5"555&5%5$5 55#5W)*5'5)5Q,(55R+5,5-505/5.5G$5652515354575E-855595?:5<5;5=5>5MCB  O?5)@5+"&A5  "13:( 'B5TE5#D5C5F5J#B4)2!#G5H5N*K5J5I5\(R59*L5N5J*M5O5'P5)Q5)&S5T5 U5#,,UW5# >'WK#X)$ ;(X58$!*L#"M&,Y5Z50&[5V- .]5\5&6666(66666 6 6 6 6 6CM#6YU&6Z%:)6 .6)6//T%6<#Y6)/"N#N++666D#6 (%"66666U$ 6!6"666#6 (+(#*($6%%6&6Q+?')6\ (6'6!3!-6+6*6-DX,6+$%06/6.616E26[(:36X' %#$46  (V&565**]:6H"76V 796&8666Y<6B6H6@6;$E6<(?6D6F-64!=6=G6 DA6WF6C6I6K6U6S6P6O6W-Q6YX6J6N6>6YR6T60"L6W6V6!E"M6Y6\677O#Z67X77]67F ,87& @';6 77D+7H$ 7O76%&. 77Z*3 779 [6%!7: 777E77777[+Z+7747Q7"7!7&7'7%7(7 7$7)7*77[#75!777H)-7.7/76757\*37$07-27547+71787#,7<, ,;7?7] X-@7=7:797>7)%%A7<7B7ZJ7H7I7G7E7D7K7C7M7ZO7N7#R7P7F7[Q7U7T7V7S7W7X7Y7I)[7Z7 E[\7+]7"K8@8N888886!,@+*I8OMA'I,8&!)P! 8 8 8 8 8)=(B'88888#&=,888I$8=%8'Q!C' 9Y)P#T*8I"#8"8$88&8"8!8N&8\8PR!88: 81&Q'F(8-8)8\.8H8\+87,8#'8#R*8"Q#3'08= ! 1838/8@)#; Z)-?8>8W]88G%&68< W;858:82&48<<8 --"98;CE 78$&.#=8> @8B8!H8C8E8 (R#F8 ,', D8A8WFG8(,K8!R8L8I8P828M8Q8!'J$J8N8'P<V8$S8?*T8U8-+A\8Y8X8&%$Z8[8N($&P/*(9]8),999? 9899 9 9$ 999999999P9999O899W89989999 9][)-"9%91(>$9#93&&9(9'97%(S)9$>(*9+9,9)<4%+(7D'"',$ -.9//93,?(09!&":19\)V;492959-39Z69!79Y9989:9;9Z[%"K<@ ;<9@9?9 >9+ 6-E9&4E*QD9B9C9J":I9]G9H9F9K9J9O9P9L9M9N94'@()Q91"&R9V9*S9U9T9J'"$W9X9 #P-"J)*:Z9]9\9Y9:=%[9:K:*,W&::::)' : :PA 71  7!&Q/M ,])]( :R# :.* # :[::9++U*;*:J0*:::X?:::XZ,(?!<R:-$: !:Q<+::G,!:4&:K$=9A9.&& :#'&:Y':#:":.L*2-F*+='.%:T$::.+:):,':-:3:'! )5:(4:O&*V2# ,0:/:1:.:6:,:*:2:(:K"W+%SN* -#)%(Q 8:[::S@:=:R* ).;:D*L$9:%<:>:, *A:XP*B:(N:C:T:D:!-K:>&S:F:H:J:I:E:P:L3G[,G:S# ?:O:@M:Q:M$];(+V:\]:*;;;X: "N$ ;[:;; ; ;/.U:;7W:+\:&#R:;Y;P;Y:;;Z: ; ;;-%;;;7#+,U(;)!; ;!; ;N%;I%#;;';<?&;*;;;.9;";F<3;.6;5;4;1;%;B;$;7;/;*;';(;0;S-;'#C +;&;);,,I*.;8;@;9;F;D;?;>;/#D <;:;A;G;T'M;H;K;E;S"(;;C;.+W;J;>2; O;V;XQ "L;Q;U;+S;*%R;T;N;P;?("[;Y;HX;<7:Z;\;]; <,<<<5<<<-"< <O(A)#.T/Q-$<%<=<@<@+A) =(=$H0#=!+=1=L@=:=S.$5=>=7= !.=0= A=<=4=;= +9===/$"3=,6=/=Q$2=8=0.]*B= 'N=?D=-!Q=MO=C=I=K=.,F= $H=P=J=&+E=]=IG=L=M=K!9!U=[=Y=$>V=W=?=X(V.S=>HE X& Y-+1#Z=\= >X=R="H> >WB@> > #>8#+>>> >>> >>>>!>>>>"$>>BX!>&>>>>!>>I&=S,> >T!> >HN$>(>&>">#>'>%>-(->*>)>,>3%.>T"L!/>1>0>T=2>F%3>/S$C=1.EI5>4>8>";>6>:>9>$8T-=>?>>><>7>*A>@>JC>)B>+& %Z-I>XE>J>KH>@&D>G>'0'K>0YN>F>L>/,O>S.P>Q> &S>T>&T$V>X>4-U>W>LR>:2Y>F [>Z>81\>?M>]>?Y&????=#??? ?>B(K+ ? ?5  ? ??1)&'?6& #?FL%++.1* )?"%?3???????''?T?????0 ?H \"?#?!?L'%%? "$?.A&(?*?'?3+)?+?#-/?.?U" &-?,?,,0?MUA1?2?4?"6?5?7?,9?8?;?:?-+I@G-=???@?0?C?MA?('B?]?H?DE?\,-U!G?I?5-6[')&J?L?O?K?N?I,P?OM?;-S?SQ?T?F?R?U?V?],W?X?D?Y?#Z?[?\?@(@@@@@@@2( @@ @ @ @ @@@X@@$2$@X@0,B)@#$,"*"1 #G@@@@@!9@9 ')'-@@;" ' (@ -,@@5' @!@:U&@#@L%"@)@$@%@(@'@(! *@+@,@.@-@56@G'0@2@4@5@3@/@1@!((8@7@9@V$:@*#<@-;@H A@C@D@3"B@?@=@>@@@G@E@F@H@J@K@L@M@I@O@N@P@$-S@Q@R@A]+))U@T@V@W@[@X@Y@Z@\@]@AAA'/$AQ&(AA $#AAA A A A AH' AAHRAAA A5&>*-6AAAO$<A +A%6'AAA;+4+#I AA)AAA\'&%A"A+!A#A$A A&A'A#BD"(A)A,AF#%-A2**A+A0A/A.A2A1A3A5A4A,)5%-6A%7A8AA?A@A+AAO+BA-"I&J"CA/DAEAFA4HA5$5-**&6$;JA*-$'LANAJMAU#PAKAI'K1.OAQA*)8SATARA-ZAYAVA\AWA7'UAXABB@*]AJBB+B" BBBGAIA BBH-1 BB,BB# BB* B B &,(6W$BB(B7. B1V#)BYBBB&BBB82$%CB)"(BJ'$ B!BH& B@"B-;"BW##B& +($B%B4"&-'B&BN)BO,B*B3-+B%QE)-B3*/B0. .B0B1BV2B.4BIE5BT6B[,%?T7BA"J 9B;B8B:BB?B BBUAB@BDB=BEB-FBGBS3IBHBJBKB-LBNO.MBNB6%OB"PB"QB0<"'RBCUBGTBCSB/WBXB $YB=9C([BG!VBZB\BZC ('X$9CC']B="Z$Y$UCC C C C C CCCC.)4CCCCR&+CCCCCC("\'C'@C.'C2):"CCCC#%%$C#C C.)C-C*C&C'C,C!C41(C"C+C1C).C/C0C3C2CU'4C[-L)9C6C5C18C:C7C>C;C-8D! D1D ' D DD/ DDJ DD)L,DJDD\$D DCDDDD0!DM %D!DDDY<D"D&D*5+5#D$DD"D)+D:K'L /-NMD'D]#D(D*DX#-D)D3)**+=,D\-+DNK%.D5D/D6D2DZ&)4D1D7D0D#*+3D?D;D>DE]-AE@E?E#BECEDE.EEFEHEGE'X%.'JE2 (KEIE-3GM' "*NELE-.HG8&>SE"7&:!UEQETEOERE*4\PEWEXE%F&H'%. +VE32YE[EZE\E"&#FF]E4D(FF/2.FF FOFWF F#) ;!FF F F F0FFE(K*(FFF#*FF FFFFF&FF$FF F!F!#F"F%F&F'F"H(F6-  I6")F*F+F,F-F.F/F 90FD1F*2F/3F=); 7P( 4F15F+'CF7F(!T&6F 8FY#:F9FF.@FAFBF(-DFOEFFFGFQHFIFF(&KFJFMF-&#5*<;LFIPQFI-G]AG/G4GM,=G4, -W"JQ(CG%"MG5,BGHGKG +NGGGJG*.RGYGQG"0G-)+XGWGSGTGVGPG4#UG]!")ZGH8']G5(HHX(\G5G[G..%R( HHHHU&HHHHH HQD% HHH H$S+X+QHH-.HT,HHHHH%H,' HRH!HS HH"H( HHH<<$H#HU,A%H&H'H63)H<0T-R*H+HM",HY%B1H2H-H.H!&/H0H:H4H7H3H5H6H78H "5!;H@HH'(9'AH\!KHGHJEH *FHCHDHIHLHJHHHBH7"SH +QHRHMHOHPHNHE.WHXHI ZH]HUHTHI;[HI\HYH#VHG&I,II IIIE,I I IIIII IIIIIII !IIIIIIII!I I9H%I"I#I$I&IK(I'I3=)I0*I16+I4,I@(-II4I1IN"2I/I=.I5I=!;I7I!6I9I0I:II:U-@IAIT -BI,CIDIC)EI-JIKI7IIF,FIHI]GILI)NIMIK *OI[IQIRISITIXIYIWIUIPIVIZIO]I>\IJJJJJJJJ6,J)%& J J   JJ & J/ JJV,J%JJJ0JJJJ0JJJQJJJZ#J65 J%JJV! !J"J8L#J *>UT+) $J&O"9%J(J)J!!'J:(&JK2-J7ML,.,J+J ,".;*J/J0J.J7,N&3J!",6JK2J7JL4J5J1JA(%"<O'"#:J8J+" 19J:)-.;JFJ#EJBJJJCJ?J[#>J-'$K24#K(KX"B+&K'K )KB&>!P'$%K&*K+K.!#$.P*K!;K W%/(.KQ=D& -K,KI( 1$0K1K7/K2K3K5K!4KE7K6K8K:KK1?KU @KAKJ(BK#:CKPU !FKEKDKLKJKGKIKHKKKVOK6PK8MKNK.# QKTKRKSK8,%WKUKVKXKL[K\KZKYK\#LLL]KLL LL7L LL L L LLLLLLLU+LLLLLL'LLLLLLL L5!L "LO%$#L&L%L$L9'L2)L;(L1L+L-LD)*L,L0L.L/L2L9&7-3L,5L4L8L ,7LL6L;L:L9L$LK?L@LAL(BL CLDL1]0ELODFL" &GL4)3#]" W*6=@5)HLJLIL?U%KLV&$LL1NL!+]LPLQL(#?!V %OL4XLULM%?"RL]#2$SLWL?F&+#!VL !!TL.YL@!)[LZLN\L(M:%J8"WM,6)@MMMM%"BMMS! MR+ 9, M $W 6 MMD M C*-MQ'MMMCB3MLMMM,@% *M8MMM$I8.MMMS(3,3$MM M$"M!M2%#M?:&P"QK$M%M<&M'M(MN,*M)M9R-ME,M+MH!N"'.M>1M/M0M3M2MY4M5M6M/'2@7M8M-$M++-9MA:M$=MW*;MMBM>%"FMCMEMAM.NDMJ-9NM$IMLMJMOMPMHMUMSGM 'KM?:'*C%% SMMMRM"+#TMQM XMWMVM*ZYM>)3%(Q"W[M< ZMLMNNZNN2$(A.]MW.NNN\MH%4$6# N""NN  N N@XNX )# NN"# NNNNN $NNNNNNNNN NNNA %N$N"N#N!NW!%N&N(N4'NY+3N)N,N*N+N-N/N0N1N4N2N5N7N6N#F+8N 9N#):N 65;NN?N74='AN@NBN;ENDNCNFNIN&GNKNJNMNLNNN %ONPNRNQNK(SNTNDUNVN(** *!WNL(ZNXN>YN!$)\NO]NO7[8OE&OO##,- %[N-:,X-A!FO N5OOOC<B8- O M O O O OOOK-OO('\F,L:OOROOO I51VO-P% B)L-J,O$$ZOO+OM-OO!O OO"O#OY A$O+%O&O .:'O(O)O-O*O+O,O.O#V+$/OR'0O2R++1O2O3O65O86O7O;O9O:OR8OO?OC@O&COBOAOPJ;)DOEOFOGOHOIO9JOKO&MOPOOO &)#?F;ROQO!,G1';%[--:UOTO** %/VOSO0(I,WOXOZOI!:;YOHI$?-;[O\O]OPPPV(PPPPPP PS'+E P P 1<2'ZS*] P>+ P;,! PMPPPPPPP:PPPPPPPP!PPP P"P!R#P$P@%P.&&P'P9"J%(P\&+!7MNR"-PON,P*P+P)P7P.P/P0P1P3P2P84P6P5PZ 8P,!9P %:P?P=P

P;PAP@PCP"BPDPEPGPFPHPJPIP[KPLPMPNPPOPPPQPRPASPTPUPVPWP'YP(ZPXP\P[P]PQQQQQQQQQ Q Q Q Q Q<QWCQQ+QQQQA*QZ.QQQ )QQQQQQM* Y Q"Q Q#QP!Q$Q%Q&Q*Q C!+Q(Q'Q)Q>/Q.Q-Q9Q5Q6Q2Q8Q4QA+.7Q3Q1Q0Q;Q>Q=QR?R@RARBRCRDRERFRGR$<IR, JRKR(LRMRB9KLONRORQRRRSRO-PRTRURWRVRYRZRXR-[R\R3B]R SORT)*U;B@CV !"#$%&'()*+,-./0123456789-. @ABCDEFGHIJKLMNOPQRSTUVWXY/"0N000% & 0 %"<<"    000 0 0 0 0 00000`"d"e""4"2 3 !+!B&@& ""#""a"R"; &&%%%%%%%%%%%!!!!!0j"k""=""5"+","" """""*")"'"("!!""^.""" !0 %%%%d&`&a&e&g&c&"%%%%%%%%%%%h&&&&& ! !!!!!m&i&j&l&22!3"!33!!   !"#$%&'()*+,-./0123456789:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~11111111111111111p!q!r!s!t!u!v!w!x!y!`!a!b!c!d!e!f!g!h!i!%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%%%%%%%% %%%!%"%&%'%)%*%-%.%1%2%5%6%9%:%=%>%@%A%C%D%E%F%G%H%I%J%333!3333333333333333333333333333333333333333333333333333&!3333333333333333333333&2?ARfJ`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2$$$$$$$$$$$$$$$$$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$S!T![!\!]!^!'138@BSgKI222222222 2 2 2 2 222222222222222$$$$$$$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$t  A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO  $,-/0189<@KMTX\pqtwxzĬȬ̬լ׬  ),-458DEGIMOPTXaclĻȻлӻ $%')-0148@ACDEILMP]ļͼϼмѼռؼܼ $,@HILPXYdhԽսؽܽ DEHLNTUWYZ[`adhjpqstu{|}оѾԾ׾ؾ @ADHPQUſ̿ͿпԿܿ߿DEHLTUWXY`dfhpų̴̵̸̘̙̜̠̩̫̬̭̼ $(,9\`dlmoqx͈͔͕ͤͥͧͩ͘͜Ͱ  !$(0135XY\_`ahikmtux|΄΅·ΉΐΑΔΘΠΡΣΤΥάέ $,-/018TUX\degipqtxπυόϡϨϰ-458aha9eiouvv{˄U[QW|(PSE\]bncdd np[yݍ}E~NNeP]^aWiqTGu+^NPpg@h QRRjwԞR/`HPacdkLp/tt{PŃܕ(.R]`bOIQ!SX^f8mprsP{[fSckVNPJXX*`'abiA[}_NPTU []]*eNe!hKjrvw^}N߆NʐUNEN]NNOwQR@SSSTVuWW[]^abQeggiPkkkBlnxprstwwvz}  ߂b3dҙEם W@\ʃTzو͎XH\cz[_yzz&P8RRwSWbrc km7wSWshvՕ:gjpom̎Kwfxk<S-WNYcisExzz|us5RGWGu`{̃XjKQKRRbhuiPRRae9hi~tK{냲9яI NYdfj4tyy~_ & OS%`qbrl}f}NbQwOOvQQUhV;WWWYGYY[\]]~^_beegg^ghh_j:k#l}llms&t*tttxuuxxAyGyHyzy{}}-OHw!$Qe}vO TbThёU:Q Za bbfVq OczcWS!g`isn"7u#$% }&'rVZ()*+,CN-gQHYg.sYt^dy_l`b{c[[R/tY)_`012Yt345678љ9:;<=>?@ABCoDE`FGfHI?\JKLMNOPQZ%{g}RSTUVWXY<\l?SnY69NNFOUWXV_eejkMnwz|}ˆ2[dozsuTVUMWadfm[nmoouCANJZlSuT{]UXXXb^bdhvu|NWnW'Y \\6^_4bds۞[_`PR0RW5XWX\`\\]^_`ccdChhjm!nnoqvywy;zHSMvܗkpXrrhscwy{~X`feeflqqZmNzNQQR TaqgPhhm|ouwzc\Qe\gguzsZF-o\Ao _]Yjq{vI{'0Ua[iv?\mpsa}=]j^NuSkk>pr-LRP]d,ekoC|~ͅdb؁^gjmrtotސO ]_ QceuNPiQQhj|||oҊϑO7QRBT^na>bejo*y܅#bjΞRfwkp+ybBab#e#oIqt}o&#JQRR mpˆ^eko>|usN6OV_\]`s-{F4HaOoyR`ddj^oprv\2ouxy}Ƀ֊X_'g'pt`|~!Q(pbrxŒڌNP[^eqBvwJ|'XAZb\jmo;v/}7~8KRegiAmnp t`tYu$vkx,^mQ.bxO+P]m}*_DahaRQQ^iz}uO)RSTUe\`Nghlmrrttbul|yψ̑БɛT~oqtWgm3t,xz {|idjtuxxT[U^ oNMS)Z]N_ba=ciffn+ocpw,;E;Ub+gl jzNY__g}T+WYZ['fghkdqu㌁EL@_[lsvv QMQQRhlw w}}bnQ T}Tff'invw„iOQRY=^Uaxdydfg!jkk_rarAt8ww((glgrvfwFzkl"Y&goSXY^c4fsg:n+szׂ(R]aa bbdeYifkk!qs]uF~j'aX؞PR;TOUevl } }^RlirsTZ>\K]L__*ghcieee fginx!}+*2 POcW_bcogCnqv̀ڀ)Mj/OpO^g"h}v~vDa^ jiqqjudA~CܘOO{pQ^h>lNllr{l:tPRXdjtVvx9e^S_%RwINPuQ[\w^f:fghpuuyz' O!X1X[nfekmzn}os+u܈\OPS\S[_ gyy/9;,gvNOIY\\\gchpq+t+~"Ғ NNOPVRoR&TTW+YfZZ[u[[^fvbweenmn6r&{?|6PQ@tܑDٙSR)TtVXTYnY_anbf~lqv||}g[O__b)] gh|xC~lNPS*SQSYbZ^`aIbybegikkkklh5tuxxyy|}>船l^ۘ;V*[l_ejk\mop]rsӌ;a7lXMNNNN:Oy@y`yy{}r} фdž߈P^܌fߙJRigjP*Rq\ceUls#uu{x0wNdk^q NkIghnkco NPPQFUUV@[\\8^^^^`QhajXn=r@rrvey{saތ^XtUlaz"}rrru%um{XX]^^_U`bcMefffhhr^tn{n}}r͞ YmY-^`fsfgPlm_owxƄˑ+NPHQU [[Gb~ee2n}qtDtttlvy}U~z9ux%MhSQ\Til)m+n ;-gaRfk~ ]emqnWY['``bf_f)ssvwl{VreNRrkmz9{0}oS/VQX[\\]@bcd-fhlmnppq&uuuv{{+| }9},m4 a7Ol\_gm|~k[] d\ᘇs[`~gm 7RpQpxpבOSUVWXZ[\\%^a bKbcd6exe9jk4lm1oqrxstt&vawyWzz|}}a~)1ڄꅖ8Bl֖ӚS~XYp[[mZoq!tt]__B`ehoiSjk5mmsvwM{}#@cbĊ bSe]']i]_thob6rNXNPRGSbfi~^OS6VYZ8\N\M\^_C`e/fBfggsw:ÿ́fiUzW[_o`b ik\nq{UXߘ8OOO{T Z[T3TUbXXgYZ[`aVeedfhZlopqRs}{2K\lDss:netviz~ @QXdtupv͖T&ntzzنxIZ[[hicmst,tx}UL.f_egjls-PZjkwYl]]%sOuPQ/X-YYY[]bdddfHjqdtzzG~^~p YR~a2ktm~%OPQRWX[^Baimgnnqbt(u,us8Ʉ ޓNQOvP*QSSS[[$\aae[rs@tvPyyy}Յ^GꑅRg_e1f/h\q6z NRjkoqSK1NqĖCQSTWWWZZ[(`?acl9mrnn0r?sWtтE`bXg^MOIPPqS WYZ \paf-n2rKt}Àf?_[U˗OsNOQjQ/UUz[[|^}^^``a ac8e gggaibil'm8no6s7s\t1uRv}8Ոۊ0BJ>zIɑn XkAQkY9\dosbph}Wi`GakYNTm-pclQaOPQ[aadikuwdcpNN O7YY]_[_!`>rspuuy 3Q 7pvNNRpSTVY[__nnj}5mwNZO~OXen8NXYYA`zOÌeQDSNiRU[N:RTYYP[W[\[c`Hanpnqstux+}(Ʌnj̖\ORVe(f|pp5r}Lrq[hkzov\f[o{*|6ܖNN S4XXXlY\3^^5_cfVgjj k?oFrPstz|x߁灊l#υ݈wQT(W[MbPg=hh=nn}p!~ KN-r{͊GONO2QTY^bugnijlnr*su{5}W[Ζ_R TZ[XduenrvMz{M|>~{+ʌd_iѓCOzOPhQxQMRjRaX|X`Y\U\^`0bhkloNq t0u8uQurvL{{{{~n>I?"+ZkR*bbYmdvz{v}`S\^8op|ޞczdvNNN\PuPHTY[@^^^_`:c?eteevfxfghijck@lmmn^nppss:u[wxy z}z|}Gꊞ-Jؑf̒ V\6RR|U$X^_`chomy,{́Dd=LJOFQQR2V_k_cdeAfffghhionogqq*rt:wVyZyy zz||D}p~T m;Ֆe|ÓX[ \RSbs'P[_`kahm.t.zB}}1~k*5~POPW]^+cj;NOOOZPYĀjThTUOY[]^]f1gg*hl2mJnopsuL|},}}ۆ;p31NRDЙz|OQQW[\Yf=jZmno qouz"!u˖-NNF͑}SjkiAlzXafbpuuR~IKNST0W@W_ccod/eezfggbk`ll,ow%xIyWy}󁝂rvz7zT~wUUuX/c"dIfKfmhik%mnshtt[uuvwwy ~~/:ь뎰2csOSYZ^Nhtuyz̍폟egWWo}/Ɩ_aoNOPSUo]]!kdkx{IʎnIc>d@wz/jdoqttz|~|~ }L9R[d-g.}PSyXXaYaaez P!PuR1UUXY`Sbb6gUi5@ݙ,PSSDU|WXbdkfgoo"t8t8QTVfWH_aNkXpp}jY+cw=TX-di[^oniLQS*Y `Kakpll{΀ԂƍdodeNQTW_avhuR{q}Xi*9xPWYYb*]ayr֕aWFZ]bddwgl>m,r6t4xwۍ$RBWgHrt*kQSLciOU`WelmLrrzm_opaOOPAbGr{}MjWs^g U T[c^^ _e=[HOS SSTTW^`bbUclfmu2xހ/ނa E^ffprO}Rj_SaSgjothyhyǘĘCTzSiJ|_buvB9S<__lsbuuF{ON< NUOSY^0flUtwfPXx[P[h``eWl"oopUPӗrRDQ+TTcUUjm}fwyTTv䆤ԕ\N OYZ]R`bmgAhl/n8* NUPTWZYi[[awiwm#pr犂홸R8hPx^OgGLNTVs WSVX[1aj{sҎGkWUYrkiO\&_a[flpsss)wMwC}b}#~7R IoQ[tz@ZOTS>Y\>cymrϒ0NDQRWb_lnpPppqsitJanQW_`gafYJNNN|TXX}Y\'_6bHb fgfkimmVnnooo]pr%tZttv\y|~ဦkN_twje`bwZZfm>n?tB_`{T_^ll*mp}y ;ST[:jkpuuyyqAt d+exxkz8NUPY[{^`cakefShneqt}i%;mn>sAʕQL^_M``0aLaCfDfil_nnboLqtv{'|RWQÞ/SV^_b``affgjmoppjsj~4ԆČRrs[kjTV][Heefhmm;ruMOPSTa?MfV}Y=4{[^Z%6Z[\ngEattu8S6!`>X:zaA 1 ^2 C/0IXJy2z`f)jLt{g,zORF4s]tǟW/ILT1A6Xrze{FnA]{$ȟ$$$ɟ5@ʟDbnp˟11111 1111111111LܾQ+Mkܿ a##E e=NnNߑ5wdO(OOVQtQQQRR;SNSSSVXYY2Y4Yf[[[\^;`eghehNmp5u~~~~~~7zςoƉfgnt|}Fiz'Rx^ ǞLɝ >Lp 35n>uIlyl*$NNNNNN7OL4OH>PP}444QYQQRNyRR'S5SQ5SS5S#Tm5r56TTTTTTU#U(U5?U55U5}%UB  +QU,9AFMS@zw8,4:G]iMd|  d~ d,VDF MGN,g:?5RԗxD-nC`dTL-+w9ofgydRPC h!L1 H?sX-E`L yU@CJf* yc9u'V|dC> *,99:x5I^ RV1, 4=l;Ntu."[͌z4 h(9)5Q?0G OL H =?&2d39v+~  Q,U,:.2PkҌʌTĂUÞ&^w-@qm\re47_Sw5M 6 V'xxHUyPN-TZWv͂{~Q7RI:wA|XhR6=W{h[H,K'It[=1U5V(NYxQ[NN>5#\Q__8Lb5ezk5l:llp+r,NrHR;y|Sjb4KcfQi]SdxxuΘޘc|Ğok7N7b;Pms=NAwp\ KQY50]"a2qgs2<KxtQ @cj#Bo *zGUMp$S~ v㉧wNOP/NO4T}XX^^_'e3iCjcJ[t\Vz{|l~Ϗ_!?q@BZhkgvB=Wօ{I qLtm{]ko[f[~Wny=DV2'C6E\;x\=Q5x]WqXE@#wLx9J4Al̊O9YlV;_ !mAFy?@7FFl|AsmE8TaEEM{LvME?Ka6DDA>]H]V]=8]] 888B^^%__99?9M9`=a\9aaa9,bbbc9V:ccdZdK:d]!V:e:eSf:f";gB;ghX;Jhhr;q;{; iCi\rdiii;i;ejtjqjj;j;jjjjkkkull<mm&mmWn>qWN6it[IzXٔez}zYzzzzqdAzzzAT\ {U{){S\{o{[l{!{ ]=e\{5|\D||H|}fxE|||t|||g~EDn]}nt}}5q}W@)`}=}}m!aZan~~+Cl'~@AG6ybᙗQcah\Ef7E:d/l;mkk5=U EmӃ~4nWjZ4Bn.X[q=DjJI|; qzÎԒ-eP *Iމ==^b2%#9n7Il{lAnaxSIltdJ 31B6J=EEJupA[ՑWJ[_%P00җlTt3zyJ43Kf;uqQ=0\AWʘȘǘJ'mUx9)JrKW ;X%W6՛L-4P4i8}0P@>EZcKB hԝ#ߡ~4hĝ[! ;394MdC`;9=2O7+K$m9VVEbizrKuIIwqIHCQJsڋy~6iD쒁˓lDr>rwCzpsDC~qp5>/T"796tK_#7[W%J6UIeq1>\U>RpD6&og37<=lX"hW@?7@@A!lTVfV ƓN+Q86DNeKOOQVhZ9 54)Ouڊ NP QOOJ>BO.PlPPOOXPPvn59>>rm>QQDzYRRsRzFqC Ii>ttVtsKJ@S5r@UET W]fWWW>6XZFo,ZY~ZZZFYaB6mCt!Z^Z׋tqrI7\\^^H^|:^O[766*Gr4 __'kZ;D[u`~``(+&_>%%soa>F&aau`,-FMqdeFj+):"+P4x.7c[d1ccIg-b,;dkeri;02I2 U2?f21:AU"U[U%Tx1*42d421Bf$mkfK0fpxcf22frX8:87;73t;g*Fhh;jc87D3jRjjkehLj;zjWk?<ˊ܉gm oI?=n<@=Z nGX$mBx;qCvBpPrrrG%GyQJzt>_6JJI_?>J#5?`>tIH2WBdP!RQxw22ww{wF7^:H8tt>JJ@JaUxxxxsYyAwVAy-j>:zynA2A5yL I=n5kUp56 zYZ&ZZ Z[x*Z[zA]|m|B[^^|I||||j}~}Nab\aH{}^jBuk gN5WdcbI'{,ZC] {^Ecj?49Iee'qlD7Dƀ BgØBjbeQjSmrZA@+[Z=-"tZnEOeMVTwwً>FF7=HM_+Be)qpEm}YwYnC6* L0JBXlo!#Hyon雵6/IqUIKb@';+4Et>HBJC>%2fe>IxJ?tkt>AGhJWh&/c[itc>Jjss>>JJfJ$IHtIpvIs_1ΊU5IkqCI V Uy}PJR.E 7IYtZ6[=6_yZbt< J9Pi=L=uqBnDWmO~gpln oo=Qu64F>qHYn>IAkXW6RpbCqJ/#hgi4{673Lj6l>DD&mQmloo q=:타lSpYZaZqZA-7Y<6qfBnZ+ZB+j>6w[DBqYBተO(m\DM~C jVBp3qC=l%OJe~Y/]=\_]J}&T:3~W?p[p]s|Y Orsz8s9sVAsHs>{lqHs> w>lVttt>>>>t?S?Bumuruu|?uu?Mv?tv?zv\Oq#ViX@Cw9@agE@5wj@o@^\wwXxpx@9xGxQxfxH5U3yh2yA AyyzgAzAzyAzzA!Nb{l{{{||`BzB{||B|B|p }}}}rC %9{.1T=WpC *s`uD9;VYZD:X|%D-DWTDvʂ؂DWiipd`E8R;EopwErEFF$Ggy)8QԌG_XÍGN:UTWqU7HΎ򎷏ʏ̏3ęHI(XkCEIQIS->jITy-I3Ig$J@5J—TVJ`KDXQ7B]bpKřK<ziݛmL o7I:PV{ƞܔzDiÔY@X7vWWsq jT; T ; S e | ` zV o Ui/-s \ ^\Ovg{G6/;dSu6wxNp-j-E*pbqUhE i6|"##*'q(O)g))**+?+GL,,,[----B.t//30f033_Hffyzg55I67FXgi:Wv_>>u HJAB C;@4CCEJQY;<DDWtF9/Gəb7!^NHHJ rJx eYNOyڎ,PR?WqqRTJ?JUFTnTRks4?U2v^UGbUfUW?I]XfP43Y|GHZ[\WQqa|VaObdJd[]kdId?eKef'eWa'ZV!EfjN4IVml6wgnhd^hhB{ &i9iEzi&-j_6id!y4j[k,]5kFl;uemX7%KpqTzf=Uv<5VVYN^XbVmm[>Lc{0e-VJ\TS=}L"VVI^uY@=pNI 6^;vENvwE2TH%V2UbyCVT5VUf-64uUUTrUA ^HQvb,Z}UubmT͌qvccciUC+r.Q4 QMTUUfv-huLjDsG[ h{V&/}As}nrp<frNGO@]e-HG| uH`q~PNNw5 [lgS69}S6FXnK-KTWZy R:e$ts M<0[LOޟ\=rg 7.c%}>,>*:Rt>z6E@vZzx.X@|Vt]Tv4L7a0C]VWcI4Rp5|V|9WlS\dД5cdq( "mJq Q]L{\{hb5c{*~|B||{ >IZsU[OO`R>RgWVPY^ȗ\iT@,S0a,iS ;LAiPFumڙsRY\Qc#mjVzubOsp|!\<Iv*N BJ\izWR]N1l9OTTR55Rk|.zq{kx VJwSԍOb}(uzwJ>zxlgvZ&lևuSx@ rqs-st댻J/_D;n~%`gvךDn,s!5rLQ|JYaYaL}a_Woab9b\:aS3dch5W]‹ڏ9PFy2S8;e@w|_|-zfcM}ut gbt[t$wgSun·ȁIC+wtڄ56im@t=vq`a<w`q-`~K R<<^Vv1UDmp\aw6FhObE[LcPkbGے?LBsQI6BID<i-7{_ R&R8qDmStS~SwSSSSsrWY?sSSIlINWS: S?-Sw Typ+UWf[mmTSkt ]UTTG =M &GUL/TtUU:@RE5Df7Vf2ffMVOVxVSWVVf#6OFWAnlpBW6~lWXTcC&XK\XXa5XX<X[CWPxBӓ5Yh6Yn>$ZSUYN l*mYmqm(YEnZcZ6I7ZetZoT%=27^Rv[e|[z@]H[`a4Y[[M\D\s\(kI\H\\\]7]]F]\]-8II s!68;.^jz^D SNSq ^^^^8^>h _:H::_h#q$c_nnr_@6_]_=PRjph&֑)1`fwc9=96W'qy@>``IISztPZda$BanaQVa[?_(a]a29)(#`\aecbpb .lcI:8dco6.@Wdd{f::dW:Meo(J#Jeme_e~0e@I7Ke@)ee_4f11Df11KfugfQsf=121Sw(gC!J+;i7ggbgAgD"hPn<h3m]ho4i jߊsih5ii2=:<6;gaiJB6ii;cPiY6*!Ej7j;gj <k# `5ktk'n:X@7!TZ;k>k7l$HQkZl&yl=D=A II<6<2 1$7h%mmmm\m|noI@rn3toQ.!/>St?yOnZK0o 7o0>n=@UEDo\oN=top;=oDAo@UA9@???AQVAWA@AaKp~pppppppA=qqwB+qEqZJq\eCOqbB,qZD'J"Jq苽prBrYC$rAV.r@rtIhUrWrU>D0 h=or+s#H+H(s.sss: .jsItA$J#f6IIIsti&J9t>(`tGtsvtlt07tt,jtSIJ_AyJF[tuuَK[MuJugunuO?Mu]tuuv,vQvOvovvvcv7iivvvvobP}Qw&w@wd RXw2wdhwvJhxxx.yUx4yx v+`&yiyWXy9{y y _DR@ N4  @X<\C&v2D`! `!i$D@5C1Qh@d@P`*h5O Ă(u8@qM ^[Cx @ RO|! nwO6 n /`Txh"pV% w[1r[, \΅@T HD@ @;dD+6[ڐۇ %FFɄM   xn_?~=k翺nܧ>wɒץJnMgTboR6)EeB9B`@@ү{R =   LDA@O6Xg@PNAȄZ`+P@n 9 ěl*Fm!ri*{ ,9J @  DE0 00' 0& % PQRTUVW\ 1 3t%4O 56[]78009:00;< 0 0=>0 0?@ 0 0AB00CDYZ[\]^    005 2  ; 0%%%%%&&%%%%%%2!?IJMNKL_`a "f"g"`""R"a"bcdef^)"*"" """33+"."5"4"@&B&""!!!!!!!!%"#"<"h0 ! !ijk333333333YQ[Q^Q]QaQcQUt|%%%%%%%%%%%%%%%<%4%,%$%%%%%% %%%%m%n%p%o%P%^%j%a%%%%%q%r%s%`!a!b!c!d!e!f!g!h!i!!0"0#0$0%0&0'0(0)0ASDSES!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$!$ NYNNNCN]NNNN?QeQkQQRRRSAS\SS N NN N+N8NQENHN_N^NNN@QRRCSSSWXY'YsYP[Q[S[[\"\8\q\]]]]]]r^^ __MbNN N-N0N9NKN9\NNNNNNNNNNNNNNNCQAQgQmQnQlQQQRRRRRRS9SHSGSES^SSSSSX)Y+Y*Y-YT[\$\:\o\]{^^___b6bKbNb/eeeeeefg(g kbkykkkkl4lkp*r6r;rGrYr[rrsNNNNN;NMNONNNNNNNNNNNNNEQDQQQQQQQ RRRSSSSNJSISaS`SoSnSSSSSSSSSSSSSSSSSSSSSVVY.Y1YtYvYU[[<\]]]^^s^|^____ bSbTbRbQbee.g,g*g+g-gckkll8lAl@l>lrssttuu(u)u0u1u2u3uu}vvvvwww:yytzzNNRNSNiNNNNNN OO OO OOOONNNNNNO OIQGQFQHQhQqQQQRRRRRRS!S SpSqS TT T TTT TTT TTTTTTVVV3W0W(W-W,W/W)WYY7Y8YYxYY}YyYYYW[X[[[[[[\y\]^v^t^____b b bbcb[bXb6eeeeeff g=g4g1g5g!kdk{kl]lWlYl_l`lPlUlal[lMlNlpp_r]r~vzs||6 3 nr~k@Lc!2NNMOOOGOWO^O4O[OUO0OPOQO=O:O8OCOTOT&TNT'TFTCT3THTBTT)TJT9T;T8T.T5T6T TWPWOW;WX>YYYYYYYYYYYYY][\[Z[[[[[[,\@\A\?\>\\\\\] ^^^^^__d_b_w_y_________bbbbbbvbbmbb|b~bybsbbobbnbbbbb9e;e8eef_gNgOgPgQg\gVg^gIgFg`gSgWgekkBl^llllllljlzllpllhlll}llrl~ltllvlllllvp|p}pxpbrar`rrrs,u+u7u8uvvwyyyvz|Uo҉7FUdpʎƏŏď]IƑ̑2.1*,&NVNsNNNNNNoOOOsOOlOOOOOpOuOOiO{OO~OOOzOTQRQUQiQwQvQxQQQ;R8R7R:R0R.R6RARRRRSTSSSQSfSwSxSySSSSsTuTTxTTT{TwTTTT|TTqTvTTTbThTT}TTVWwWjWiWaWfWdW|WYIYGYHYDYTYYYYYYYYYYYYYYYYY_[d[c[[[[[[[\H\E\F\\\\\\\\^^^^^^x^^^^^^^&_'_)____|______``/`5``*``!`'`)`+``bb?b>b@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb>eeeeff fffffff ff g gmgggqggsgwggggogpggg~gguggg|gjgrg#kfkgkkllllllllllllllllllllllllllllllllllppppp,r-r8rHrgrirrrrrrsssss=uuuuvvvvww>y@yAyyyzzyzz|T NqRhˎΏԏяǑёw@?;DBR^NNNOOOOOOOOOOOOOOOOOOOOOOWQQQQNRCRJRMRLRKRGRRRRR SWS{SSSTTTTTTTTTTTTTTTTTTTTTTVWWWWWWWWUYQYOYNYPYYYYYYZYYYYZYi[[[[[[\N\O\M\K\\\]^%^^}^^^^_-_e________`` `%``(`M`p`h`b`F`C`l`k`j`d`Abbc cbbcbbcbbbbbbcc?eEeeee%f-f f'f/ff(f1f$ffgggggggggggggggggggggggggjkkkkkkll m2m*mAm%m m1mmm;m=m>m6mml9m'm8m)m.m5mm+mppppppppp0rrrortrrrrsssssssu-uOuLuNuKuuuuuuxvvvvvvvvwvv w wvvwwxx x xFyIyHyGyyyyyyzzzz}|}}} }}}}8 6րڀÀĀ̀ۀ΀ހ݀"ۂ ҂ׂ܂Ԃтނӂ߂Py{zMkԉts͎̎ʐΐÐKJ͑PKLMbi˗ۘߘXNN P P#PO&P%PO)PPPc/cUcBcFcOcIc:cPc=c*c+c(cMcLcHeIeeeeBfIfOfCfRfLfEfAffggg!h8hHhFhSh9hBhTh)hhhLhQh=hgPh@hSSfFUjUfUDU^UaUCUJU1UVUOUUU/UdU8U.U\U,UcU3UAUWUW W WWX XXWWWX5XWW YbY6ZAZIZfZjZ@ZwUUUUUU~UUUU W/X*X4X$X0X1X!XX XXX`YwZZZZZZs[q[[[[[ \ \1\L]P]4]G]]E^=^@^C^~^^^^^<_m____`````a#a`a```ha`a` aaabIbcccccccccccccccvccccRdcc^efebeceeeenfpftfvfoffzf~fwfffgghhhhhihhhhhhhhhh iiihhnih>k:k=kkkkk.l/l,l/n8nTn!n2ngnJn n%n#nn[nXn$nVnnn-n&non4nMn:n,nCnn>nnnnNncnDnrnin_nqq&q0q!q6qnqqLrrr6s%s4s)s:t*t3t"t%t5t6t4t/tt&t(t%u&ukujuuuuuuuu{v|vvvvvOww]xlxox zz zzzzzzzzI{V{F{P{R{T{M{K{O{Q{||^}P}h}U}+}n}r}a}f}b}p}s}U RUTKQN9F>LSt Ń W ̃ʃ8܃ԃ߃[߆نԆۆІކWˆ;`U^a4a'a aa7a!b"bd>dd*d-d=d,dddd d6ddddleeeffffffffgimiZiwi`iTiui0iiJihiki^iSiyii]ici[iGkrkkkkknnnnnnnnnnnnnnnnnnnnnnNqYqiqdqIqgq\qlqfqLqeq^qFqhqVq:rRr7sEs?s>sotZtUt_t^tAt?tYt[t\tvuxuvuvuuuuuuvv[wkwfw^wcwywjwlw\wewhwbwwxxxxxx|xxxxzyyy,yzz zzzzzzw{{`{n{g{|||}y}}}}[}nijrVXqpxenskyzfGw=1ufkIl[<5acimF^\_ Y߈Ԉو܈؈݈ʈՈ҈krsfip|cqmbnly{>hbʌnjȌČ̌Ōߍ捲 KJSBTAljiɑ7W8=@>[KdQ4IME9?Z͖˖ɖʖVtv  霂 PPPPPPPPPPPPbQQRR1SSUVVVUVV V VVUVVVVUWWuX~XXXXyXX}XX%Y"Y$YjYiYZZZZZZZu[[[[[[[[[[ \b\]][^c^U^W^T^^^ _F_p__Ga?aKawabaca_aZaXaua*bdXdTddxd_dzdQdgd4dmd{dreeeefffiiiiiiiiiiiiiiiiiiiIkLk3l3oonon)o>o o,ooo"onno1o8o2o#oo+o/oo*ononnnqq}qqqq>rrrDsPsdtctjtptmtuu'v v v vvvvw}wwawxxxxxxyyy.z1zzzzz{{{u{{{{{{{{|||}}}}}}}}}}}}}}}}}}}p^ZPKɄƄĄ˄ӄфʄ?;"%4U7)jӌьҌk`X\cY^b][uxwtx{|̖Җ| AB󜼞;JQQPPPQQ QQQRRRRRRS.V;V9V2V?V4V)VSVNVWVtV6V/V0VXXXXXXXXmY [Z [Z [[[[[[d\e\]]b^_^a^^^^^^^H_q___vagana]aUaa|apaka~aaaaaaaaaa.bidodyddddddddddddddddddduewexeffff#jjijjji!jj jijjijPkNkkkk?o|ooQofoToomo[oxonoozopodooXonoo`o_oqqqqVrrNsWsittt~ttu v)vv$v&v!v"vvvvwwwwwxxxxxxxx?z~F~7~2~C~+~=~1~E~A~4~9~H~5~?~/~DqrposƁÁɁ q~gч҇Ƈȇˇ;6D8= A?sIKHJD>BE?}9M(uJeK~l[pZTʕ˕̕ȕƕ֖ӗF5;?Ϟޞܞݞ۞>KSVVXX8[]_a3bdddedddef&gjjjjjjjj_kxkk p popoppqqqqwsusttuVvXvRvwwwwyyazbz`zzz+|'|*||#|!||T~U~^~Z~a~R~Y~Hwv́ρ υͅЅɅ(9,+PYcfd_UIMБԕ֕ЕՕܖٖۖޖ$MOLNS>?=.ONMʛɛțQ]`,3QVXXX[^aaaaeeffjjjjpp(pppppr rXrrxszstttuu_vavwyykziz>|?|8|=|7|@|k~m~y~i~j~s~؁݅Յ `_V^A\XIZNOFY |rvlztTNѓߓÓȓܓݓ͓֓ؓדܕ*'aܗ^X[EI ֛ۛarjlRVVVVVX@[C[}[[]aaeeef'gj>p0p2pr{stbvev&y*y,y+yzzL|C|M|||}~|~~Lځf  dplfo_k ˑ0ĘRQ+075 y/_ca7Q8QVVVYl\]aaeeefjkjkLprrttivwP|~~-#"!jltw}_.35:82+892geWEC@>ϚTQ-%\fg×kUUMҚI1>;ӝם4ljV]b#e+e*efktzd|c|e|~~~8?1c`dho\Z[WӚԚњTWV坟VX,e^pqvrvwP69bwjBHDƗp_"X_|}wr^kcpl|n|;rpq^֚#̞dpwwɗbe~ő}~|wxT(rj1r|`$a$b$c$d$e$f$g$h$i$t$u$v$w$x$y$z${$|$}$p!q!r!s!t!u!v!w!x!y!6N?NNNQQQR8SiSS Y[]z^^^P_a_4eeuvv00000000;=='A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO!!!1ZNRDQv12!!!00............................P[TuSKjBN\NQSSN NGNNV n\s_NQN.NNNNNQRlSS WY,Y\]ekkl?r1Ng9g8g;g:g?gOgORO_OAOXO-O3O?OaOQQRR!RRR ScSrSSS0T7T*TTTETTT%TT=TOTAT(T$TGTVVVAWEWLWIWKWRWY@YYYYYYYYYYY[[(\*\\\\\\\\\\\] ^^^^^^^__x_v_______________`_:bbbbbbbqb{bzbpbbbwb}brbtb7eeeeeeEgGgYgUgLgHg]gMgZgKgkllxlglkllllqlolillmllllflslel{lltpzpcrrrrrrrrsssss:u9uuuv=y4xɏ0(/-3NO|OO}OOOvOtOOOwOLOOjOOyOOxOOOOOOOOkOnOQQQ5R2R3RFR1RR S SuuuvvvvvwwwwwwBy?yyxz{zzu||5 ‚ÂpomnVҏˏӏ͏֏Տ׏9=<:COOOOOOOOOOOOOOOOOOODRIRRR=S|SSSSSTTTTTT TTTTTTTpTTTTrTTTWWWWWWWWWWWWWWWX YSYYYYZYYYYYYYYYYYYYYYYY[L\\\\\\\\\\\\\\\\\\\\\]!^"^#^ ^$^^^^^^^_._V__7`9`T`r`^`E`S`G`I`[`L`@`B`_`$`D`X`f`n`BbCbb c cbccbbc cbbcccbcbbAeCeee6f!f2f5ff&f"f3f+f:ff4f9f.fgggggggggggggggggggggggggggggggggggggggggg(kkkkkkk l!l(m4m-mm9/%3-DQ%V?A&"BN*ZMZ9ZLZpZiZGZQZVZBZ\Zr[n[[[Y\] ]]] ] ](] ]&]%]]0]]#]].]>^4^^^^^^6_8____`````````````````````2ceccc}ccccccccocccnccuccmcc|cc;ccxcccccpcSeeefaf[fYf\fbfgyhhhhmhnhhhViohhhhuhthhhwhh|hkhrhhhqh~hhhhhhhxh{hhhh}h6k3k7k8kkkkkk*lmmmmtnmmmmmmnmmmmmmmmmmmmmmmmmmmmmmmmmmmp qpqp qpqpqppqqqpp qqq~r{r|rrsssss ssrssssssttsttsss t tstducuuuuuuuuvvv9w/w-w1w2w4w3w=w%w;w5wHxRxIxMxJxLx&xExPxdygyiyjycykyayyyyyyzzz5{G{4{%{0{"{${3{{*{{1{+{-{/{2{8{{#{||||5}=}8}6}:}E},})}A}G}>}?}J};}(}cGCH%-,!'"83:42tzstu}~vYV†ņȆ̆ÆR։ىՉ0',9;\]}}{y؎ގݎ܎׎$  !ԐVXZSUz|mkqoj嘗PPPPPPPPPPhPPPPP_QQSSSSUUUUwUEVUUUUUUUUU}UUUUUUU W)X7XXX'X#X(XWHX%XXX3X?X6X.X9X8X-X,X;XaYZZZzZZZxZZ|ZZZZZ7ZZZZZZZ{Z}ZZZZZZ[[[[[[[ \0\7]C]k]A]K]?]5]Q]N]U]3]:]R]=]1]Y]B]9]I]8]<]2]6]@]E]D^A^X____``````a` aaa`a````aaaa`a aJbccccccccdcccccccadccccccccccccccc2egejede\eheeeeeeeee|flf{ffqfyfjfrfg ihih*ihhhihhhhhiihhihipihihhihhhhh i iihhhhhhhihhi%ih9k;k?k?efQOPԀCJROG=M:<=?u;σ#ƃȃヿ݃؃˃΃փɃ ރƒՃǃуÃă׃ۃ؆ӆچ݆܆׆цHVU׈Ɉ݉ډۉNM9Y@WXDERHQJLO_؍Ӎ͍Ǎ֍܍ύՍٍȍ׍ō-4/,ad_b` %& '${~–ȖÖlpnNNNPPPPPPPPPPPPPPPPPQzRxR{R|RUUUUUUUUUUUUUUUUUUUUUUUWSXhXdXOXMXIXoXUXNX]XYXeX[X=XcXqXXZZZZZZZZZZZZZZZZZZZZ[[[\3\q]c]J]e]r]l]^]h]g]b]]O^N^J^M^K^^^^^^@___`IaJa+aEa6a2a.aFa/aOa)a@a bh#b%b$bcccdd d d$d3dCdddd9d7d"d#d d&d0d(dAd5d/d dd@d%d'd dcd.d!ddoeeeffffffffxf gfi_i8iNibiqi?iEiji9iBiWiYiziHiIi5ili3i=ieihxi4iii@ioiDiviXiAitiLi;iKi7i\iOiQi2iRi/i{iF 2*-<:15B&'8$0눝艫=hiՌό׌   # "$!zrysvzy}~-X}z~{Η͗ٙǙ>?`a_PQ0QPQQPP Q QP QRRRRHVBVLV5VAVJVIVFVXVZV@V3V=V,V>V8V*V:VWXXXXXXXXXXZZZZZ[Z[Z[[[[g\]]]]]]]]]]]]i^]^`^\^}^^^I__aayaaaaaaaaaaaaaafaa-bndpddddddddddddhdddvezeye{eeefffffffjjjiijii jiiijji'jiijii@jjii jii jjj%jji&jjijQkkkkkllklAo&o~oooooooboOooZoovolooUoroRoPoWooo]ooaoko}ogooSooiooocowojo{oqqqqqqqqqqqqqqqqqrrXsRs^s_s`s]s[sasZsYsbsttttt}ttt|tytuu~u%vvvvv#vv(vvvvvvwwwwxxxxxxxxxxxyyyyyyvk9zzzz{{{{{{{{{||||}}}}}}~}}}}}}}vdgOSRPNQ$;)  '+ *(.1& 0 /bVcdwsXT[RaZQ^mjPN_]olzn\eO{ubgiZ   ϊƊӊъԊՊ׊Ŋ؊Êي>Mߌٌڌ݌猠 #%$.&',$ #spogk/+)*2&.ВÒĒْϒߒؒגݒ̒’ʒȒΒ͒ՒɒޒђӒƒ|ӖZЗϗ&)( 'ܙ͙ϙәԙΙəؙ֙˙י̙FCgtqfvuphdlӞQQQQQQ4SSpV`VnVsVfVcVmVrV^VwVWWXXXXXXXX[[[![[[[[([[ [[[]]]]]]]]]]]]]g^h^f^o^^^^^^K__aaaaaaaaaaaaddddddddddd3ee|eeffffffffff#g4jfjIjgj2jhj>j]jmjvj[jQj(jZj;j?jAjjjdjPjOjTjojij`j[qNnuUg`f]Telcedy&0-.'1")#/,݊ߊȊފln3>8@E6<=A0?6.52974vy{356'z8<#F- ˒%4$)95* ͕Ԗ 5/2$')癹3|~{z}% )"՞֞=&Q%Q"Q$Q Q)QRVVVVVV~VVVVXXXX-[%[2[#[,['[&[/[.[{[[[]l^j^__aaaaaaaaaddddddeeeefjjjjjjjjjjjjjjjjjjjjjjj[kk looooooooooooooqqqqqqqssnsostttttttttuuuuuCvHvIvGvvvwwwwwwwwwxxyxxxyxxyyy\z[zVzXzTzZzzzz||{|{{|{ |{| |||{{|{{| ||-~<~B~3~H8~*~I~@~G~)~L~0~;~6~D~:~E~},ā́ʁŁǁ[Z\{w|zxWyvhŇɇLJ̇ćʇއ53<>AR7B " OprqooNMSPLGC@~8dVG|X\vIPQ`mLjyWUROqw{a^cgNYǕɕÕŕ ՗ԗADJIEC%+,*32/-10H3Ag6./180EBC>7@=-Ȟڞ$#"T1Q-Q.QVVVVVVpY<[i\j\]m^n^aaaaaaaaaadeddeedeefffjjjjjjjjjjj^kk lp p pppppopo&poo prqqrqvsttttttttuu\vdvYvPvSvWvZvvvvwwx yyy yyyyyy_z|)|| ||-||&|(|"|%|0|\~P~V~c~X~b~_~Q~`~W~S~uсҁЁ_^ƅŅDžą˅΅ȅŅ҅$iۇ߇ԇ܇Ӈ؇㇤ׇه݇SKOLFPQI*'#305G/<>1%7&6.$;=:Bu\b`WV^eg[Za]iTFGHK(:;>ҕӕѕזږ]ߖؖݖ#"%חٗ֗ؗPQRA<:  ܚ)5JLKǛƛÛӛě\SOJ[KYVLWRT_XZߞ%+*)(LU4Q5QRRSVVVVVVXXXY=[>[?[]p^_aee e e eeeeefjjjjjjjjjjjjj`kk lp'p pp+p!p"p#p)pp$pp*p r rrrrrrrrrttttu`vwwwwyy!yyyyygzhz3|<|9|,|;|||v~u~x~p~w~o~z~r~t~h~KJxׁՁdacمڅׅ؅߅܅хޅ  bZ[Wa\X]YPHJ@SVTKUQBRWCwv mxsjo{ŽRQOPS@?ޓǓϓ“ړГ̓ٓʓԓՓēΓғ}ڕە)+,(&ݗޗߗ\Y]WHGC%$" '#š  7ޛԛכܛٛ՛ڛwqx}ktupis{oyh-@AMVWX7SVVVXE[]]^^__aeeeeefffjjjjjjjj02.3vtsEdcbU]W^ėŗVY RXPJMKUYLNžО876COqpnoVVN[m\-effk_pap]p`p#rttw8yyyj|~mC875K‘khiFCGǗ^՚Ycgfb^` FtuvV.eekkkkbp&rrww9yi|k||~~~~FGHyz|{nmoqsIr_hnm  Gx{zyWfpo|<Ñtxvu`tsqu hpep|j>=?ɎKst̘adfg$Hbk'rLih.)rKyuvkzipjp~IxψXR`|ZT%f%W%`%l%c%Z%i%]%R%d%U%^%j%a%X%g%[%S%e%V%_%k%b%Y%h%\%Q%P%m%n%p%o%%NNNNNNNN N!N#N&N)N.N/N1N3N5N7NO?O@OAOBODOEOGOHOIOJOKOLOROTOVOaObOfOhOjOkOmOnOqOrOuOwOxOyOzO}OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPP P P PPPPPPPPPPP P"P#P$P'P+P/P0P1P2P3P4P5P6P7P8P9P;P=P?P@PAPBPDPEPFPIPJPKPMPPPQPRPSPTPVPWPXPYP[P]P^P_P`PaPbPcPdPfPgPhPiPjPkPmPnPoPpPqPrPsPtPuPxPyPzP|P}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQ Q Q Q QQQQQQQQQQQQQQQQQQ Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;QQBQGQJQLQNQOQPQRQSQWQXQYQ[Q]Q^Q_Q`QaQcQdQfQgQiQjQoQrQzQ~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRR R R RRRRRRRRR!R"R#R%R&R'R*R,R/R1R2R4R5RRDRERFRGRHRIRKRNRORRRSRURWRXRYRZR[R]R_R`RbRcRdRfRhRkRlRmRnRpRqRsRtRuRvRwRxRyRzR{R|R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSS S S S SSSSSSSSSSS"S$S%S'S(S)S+S,S-S/S0S1S2S3S4S5S6S7S8SV@VAVBVCVDVEVFVGVHVIVJVKVOVPVQVRVSVUVVVZV[V]V^V_V`VaVcVeVfVgVmVnVoVpVrVsVtVuVwVxVyVzV}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWW W W WWWWWWWWWWWWWWWWW W!W"W$W%W&W'W+W1W2W4W5W6W7W8WX?X@XAXBXCXEXFXGXHXIXJXKXNXOXPXRXSXUXVXWXYXZX[X\X]X_X`XaXbXcXdXfXgXhXiXjXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYY Y Y Y YYYYYYYYYYY Y!Y"Y#Y&Y(Y,Y0Y2Y3Y5Y6Y;Y=Y>Y?Y@YCYEYFYJYLYMYPYRYSYYY[Y\Y]Y^Y_YaYcYdYfYgYhYiYjYkYlYmYnYoYpYqYrYuYwYzY{Y|Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZ Z Z ZZZZZZZZZZZZZZ!Z"Z$Z&Z'Z(Z*Z+Z,Z-Z.Z/Z0Z3Z5Z7Z8Z9Z:Z;Z=Z>Z?ZAZBZCZDZEZGZHZKZLZMZNZOZPZQZRZSZTZVZWZXZYZ[Z\Z]Z^Z_Z`ZaZcZdZeZfZhZiZkZlZmZnZoZpZqZrZsZxZyZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[ [ [ [ [[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[3[5[6[8[9[:[;[<[=[>[?[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[R[V[^[`[a[g[h[k[m[n[o[r[t[v[w[x[y[{[|[~[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\ \ \ \\\\\\\\\\ \!\#\&\(\)\*\+\-\.\/\0\2\3\5\6\7\C\D\F\G\L\M\R\S\T\V\W\X\Z\[\\\]\_\b\d\g\h\i\j\k\l\m\p\r\s\t\u\v\w\x\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]] ] ] ] ] ]]]]]]]]]]]]]] ]!]"]#]%](]*]+],]/]0]1]2]3]5]6]7]8]9]:];]<]?]@]A]B]C]D]E]F]H]I]M]N]O]P]Q]R]S]T]U]V]W]Y]Z]\]^]_]`]a]b]c]d]e]f]g]h]j]m]n]p]q]r]s]u]v]w]x]y]z]{]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^ ^ ^ ^ ^^^^^^^ ^!^"^#^$^%^(^)^*^+^,^/^0^2^3^4^5^6^9^:^>^?^@^A^C^F^G^H^I^J^K^M^N^O^P^Q^R^S^V^W^X^Y^Z^\^]^_^`^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^u^w^y^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ _ _ ___________!_"_#_$_(_+_,_._0_2_3_4_5_6_7_8_;_=_>_?_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_Q_T_Y_Z_[_\_^___`_c_e_g_h_k_n_o_r_t_u_v_x_z_}_~________________________________________________________________________`` ` ` `````````"`#`$`,`-`.`0`1`2`3`4`6`7`8`9`:`=`>`@`D`E`F`G`H`I`J`L`N`O`Q`S`T`V`W`X`[`\`^`_```a`e`f`n`q`r`t`u`w`~````````````````````````````````````````````````````````````````````````````aaaaa a a aaaaaaaaaaaaaa!a"a%a(a)a*a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;aa@aAaBaCaDaEaFaGaIaKaMaOaPaRaSaTaVaWaXaYaZa[a\a^a_a`aaacadaeafaiajakalamanaoaqarasatavaxayaza{a|a}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbb bbbbbbb b#b&b'b(b)b+b-b/b0b1b2b5b6b8b9b:b;bc?c@cAcDcGcHcJcQcRcScTcVcWcXcYcZc[c\c]c`cdcecfchcjckclcocpcrcsctcucxcyc|c}c~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddd d d dddddddddddd"d#d$d%d'd(d)d+d.d/d0d1d2d3d5d6d7d8d9d;dd@dBdCdIdKdLdMdNdOdPdQdSdUdVdWdYdZd[d\d]d_d`dadbdcdddedfdhdjdkdldndodpdqdrdsdtdudvdwd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeee e e e eeeeeeeeeeeeeeeee e!e"e#e$e&e'e(e)e*e,e-e0e1e2e3e7e:eg?gAgDgEgGgJgKgMgRgTgUgWgXgYgZg[g]gbgcgdgfgggkglgngqgtgvgxgygzg{g}gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhh hhhhhhhhhhhh h"h#h$h%h&h'h(h+h,h-h.h/h0h1h4h5h6h:h;h?hGhKhMhOhRhVhWhXhYhZh[h\h]h^h_hjhlhmhnhohphqhrhshuhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiii i i iiiiiiiiiiiiiii!i"i#i%i&i'i(i)i*i+i,i.i/i1i2i3i5i6i7i8i:i;ii@iAiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiUiViXiYi[i\i_iaibidieigihiiijilimioipirisitiuivizi{i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjj j j j jjjjjjjjjjjjjjjj j"j#j$j%j&j'j)j+j,j-j.j0j2j3j4j6j7j8j9j:j;jl?lClDlElHlKlLlMlNlOlQlRlSlVlXlYlZlblclelflglklllmlnlolqlslulwlxlzl{l|lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmm m m mmmmmmmmmmmm m!m"m#m$m&m(m)m,m-m/m0m4m6m7m8m:m?m@mBmDmImLmPmUmVmWmXm[m]m_mambmdmemgmhmkmlmmmpmqmrmsmumvmymzm{m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnn n nnnnnnnnnnn"n&n'n(n*n,n.n0n1n3n5n6n7n9n;nn?n@nAnBnEnFnGnHnInJnKnLnOnPnQnRnUnWnYnZn\n]n^n`nanbncndnenfngnhninjnlnmnonpnqnrnsntnunvnwnxnynzn{n|n}nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooo o o o ooooooooooooooo!o"o#o%o&o'o(o,o.o0o2o4o5o7o8o9o:o;op?p@pApBpCpDpEpFpGpHpIpJpKpMpNpPpQpRpSpTpUpVpWpXpYpZp[p\p]p_p`papbpcpdpepfpgphpipjpnpqprpsptpwpypzp{p}ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqq q q qqqqqqqqqqqq q!q"q#q$q%q'q(q)q*q+q,q-q.q2q3q4q5q7q8q9q:q;qq?q@qAqBqCqDqFqGqHqIqKqMqOqPqQqRqSqTqUqVqWqXqYqZq[q]q_q`qaqbqcqeqiqjqkqlqmqoqpqqqtquqvqwqyq{q|q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrr r r r r rrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r)r+r-r.r/r2r3r4r:rr@rArBrCrDrErFrIrJrKrNrOrPrQrSrTrUrWrXrZr\r^r`rcrdrerhrjrkrlrmrprqrsrtrvrwrxr{r|r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr  !"#$%00000 ^ &     000 0 0 0 0 00000006"'"("""*")""7"""%" "#"+"."a"L"H"=""`"n"o"d"e""5"4"B&@&2 3 !0 !&&%%%%%%%%%; !!!!0&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~p!q!r!s!t!u!v!w!x!y!fghijk$$$$$$$$$$$$$$$$$$$$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$`$a$b$c$d$e$f$g$h$i$ m 2!2"2#2$2%2&2'2(2)2no`!a!b!c!d!e!f!g!h!i!j!k!pq  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEA0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000rstuvwxyz{|FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~00000000000000000000000000000000000000000000000000000000000000000000000000000000000000}~569:?@=>ABCD;<78134  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO  % 5 ! !!!!!""#"R"f"g""P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%%%%%%%%%%%%%%%%%%%%%%%%% &"000+MkQDHa1111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1!0"0#0$0%0&0'0(0)02333333333330!!12 00000000IJKLMNOPQRTUVWYZ[\]^_`abcdefhijk>0////////////0%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K% rrrrrrrrrrrrrrrrrsssssss s s s ssssssssss s#s$s&s's(s-s/s0s2s3s5s6s:s;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]rssstsusvswsxsyszs{s|s}sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss^_`abcdefghijklmnopqrstuvwxyz{|}~sssssssstttttt t t ttttttttttttttt t!t#t$t't)t+t-t/t1t2t7t8t9t:t;t=t>t?t@tBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtVtXt]t`tatbtctdtetftgthtitjtktltntotqtrtstttutxtytzt {t|t}tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwtttttttttuuuuuuuu u u u uuuuuuuuuuu u!u"u#u$u&u'u*u.u4u6u9uw?wBwDwEwFwHwIwJwKwLwMwNwOwRwSwTwUwVwWwXwYw\wO!Xq[bbfyrogx`QSS̀ PrY`qTY,g({)]~-ulf<;k{|_xք=kkk^^u]e __X[,AbOS^SMhj_h֜a+R*vl_eon[HduQQgNy|p]w^w_w`wdwgwiwjwmwnwowpwqwrwswtwuwvwwwxwzw{w|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwuv^sdblZSRd”{/O^6$nlsUc\STeW N^ek?|`dsPgMb"lw)Ǒi_܃!Sk``p͂1Nlυd|ifISV{OQKmB\mcS,6gx=d[\]bgzdcI N fswwwwwwwwwwwwwwxxxxxx x xxxxxxxxx x!x"x$x(x*x+x.x/x1x2x3x5x6x=x?xAxBxCxDxFxHxIxJxKxMxOxQxSxTxXxYxZx[x\x^x_x`xaxbxcxdxexfxgxhxixoxpxqxrxsxtxuxvxxxyxzx{x}x~xxxxxx:W\8^PS^eEu1U!Pbg2Vno]5Tpfobdc{_oば\hf_lHldyWYjbHTXN z`oڋbyTucS`lߏ_p;O:\depEQQk][bltu zay{N~wNRQqjSϖndZixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyy y y y y@xPwdYc]z=i O9U2Nuzb^^R9Tpvc$W%f?iUm~"3b~u(x̖Hat͋dk:RP!kjqVSNNQ||O{zgd]Pv|mQgX[[xddc+c-dT{)vSb'YFTykP4b&^kN7_. yyyyyyyyyyyyyyyyy y!y"y#y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y5y6y7y8y9y=y?yByCyDyEyGyJyKyLyMyNyOyPyQyRyTyUyXyYyaycydyfyiyjykylynypyqyrysytyuyvyyy{y|y}y~yyyyyyyyyyyyyyy `=b9NUScƀe.lFO`mދ9_ˆS_!cZQachRccHP\wy[0R;z`Sv__vlop{vI{wQ$XNOnLe{rmZb^0W,{^_cnxpxQ[W5uCO8u^``YmkxSՖQRc T̍9rxv Syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzz z z zzzzzzzzzzzzNvSv-["NNQcaR hOk`Qm\QbeaFucwkrr5XywL\g@^!nYzw;keXQQ[X(TrfeVvAcTY:YW5g5AR`X\EO%Zv`S|bOi` ?Q3\u1mNzz!z"z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z4z5z6z8z:z>z@zAzBzCzDzEzGzHzIzJzKzLzMzNzOzPzRzSzTzUzVzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozqzrzszuz{z|z}z~zzzzzzzzzzzzzzzzzzz0SZO{OONls^ju jwA~QpSԏ)rmlJWe?b2YN~>e^aUޘ*S T^l9Z)TlR~_Wq~l|KYN_$a|0N\g\ Θup"QIYQ[O&T+Yweu[vbbE^l&{OO gzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{ { { {{{{{{{{{{{{!{"{#{'{){-{nmmy_+ubOܑe/Q^PtoRK YPN6ry[DYTvVV9eivnr^uFggzvaybecQR8~\/n`g{vؚ|dP?zJTTLkdb=urRi[|B|i[wm&lN[ca+Tm[QUUdMcea` qWlIl/Ymg*XVjkݐ}YSimuTUwσ8hyTUOTvlmkd:?Vўu_rh`TN*jaR`pTpy?*m[_~UO4ssn;uRS݋i_`mOW"ksSh؏bc`$Uubqm[{^RLaĞxW'|vQ`LqCfL^M`pp%c_b`ԆVk`gaIS`ff?yOpGl~dfZZBQmmA;mOkpb` 'xyQ>WW:gxu=zy{|||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}} } } } }}}}}}}}}}}}}}}}}}}!}#}$}%}&}(})}*},}-}.}0}1}2}3}4}5}6}eo!Y~  TghM|ƖS%`urlsSZ~$cQ ]߄bQc[OmyBR`Nm[[e_EY~~ Vg9YsO[RZ>2uGP}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}h}i}j}k}l}m}o}p}q}r}s}t}u}v}x}y}z}{}|}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}eP0QRonnm^PY\Fm_luhhVY SqMIiy&qNʐGmZVdwOr҉z4~RYeuSzccvyW6*bRThpgwckwzm~YbɅLuPNuJ\]K{eёN%m_'}&N(ۏsKfyяpxm}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}=\RFbQ[wvfN`||~NfofYXle\_uVzzQpzcvz~sENxp]NRSQeeT1\ubruE\yʃ@\Tw>NlZbnc]wQݍ/OS`pgRPcCZ&P7wwS~d+ebcP5rɉQ~GW̃QT\}}}}}~~~~~~~~~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~<~=~>~?~@~B~C~D~E~F~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~OzZmᐏUTaST_cwiQha R*XRNW x w^wa|[bbNpbp`wWۂghxyXTS4nKQ;R[CUWs`QW-TzzP`T[cbScb[gTzw^8YWcWWw{O_[>k!SP{rFhw6weQNv\zuNYAP^~_~`~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79;<=>?@ACFGHIJKLMNORS'andWfFcVbib^WbU!JfUegV݄jZhb{pQo0cȉapntir^ΐgjm^cRbrlOYjpmRPNm~x/}!QWd{|lh^iQShrΞ{ryotNg̑xS)RPOOVY[\]^`cdefgklmopsuvwxz{|}uz|lRtTOTޏp^`m^[e8K`p~|Qh|o$Nϑ~fNdJPuq[foNdc^eRˆpRs3tgx4NޜmQATbsÔ6OQupu\SNn tikxYuR$vAmgmQKT<{z !#$+,-./0249:<>@ADEGHINOPQSUVWY[\]^_`abcdefghklmnoprstuvwxyz{|}WbG|iZd{oKbS^pcdSOx2B^oyU_F.btTݔOee\a\Q/l_sn~\cj[nuSqNceubn&ONl~W;#{=m~YsxlVTWpNVSȏ wnfba+o~ŀǀȀɀʀˀπЀрҀӀԀՀ؀߀  !"#$%&'()*+-.034579:;<=?)+vl_+skwƔoSQ=^8HNsghv dql wZAk'f[YZN jv0sh_[/wa|%_s|yʼnl[B^h w~QMQR)ZbׂcwЅy:n^YmplbvOe`f# T}T,xd@ABCDEGIMNORVWX[\]^_abcdfhjklorsuvwxāŁǁȁɁˁ́΁ρЁсҁӁyd!jxidTb+gX؞l o[L _rgbarNYkXfU^RUa(gvfwgrFzbTPTZ~lCNvYHYWS7uV c|`mbTQZY*Pl<\b`O?S{n+bt^xd{c_Z?\OcB}[nUJMm`grQ[ԁՁցׁ؁فځہ܁݁ށ߁  $%&').2:<=?@ABCEFHJLMNPQRSTUVWY[\]^`abcdefgibl[rmb~SmQ_tYR`sYfPu*ca|T'k%kՅUTvPljU,r^`6tbcLr_Cn>meXovxvTu$RSSN^e*րbT(RpэlxTڀWTjMiOlUv0xbpom_h|x{ gOgcxoWx9ybbR5tkjklmquvwx{|‚ÂłƂɂЂւقڂ݂  !"#$%&)*.027;=dU>uv9SuPA\l{OPGrؘothydwb+TXRNjW s^QtċO\aWlFZ4xD돕|VRQbNa郲W4gWnffm1fpg:khbYNQoglvQhGYgkfu]PeHyAyw\^NO/TQY xhVlď_}llc>?ABDEHJKLMNSUVWXY]bpqrstuvyz~ƒÃăƃȃɃ˃̓΃Ѓу҃ӃՃ׃كڃۃރp`=murfbŔCS~{N&~NԞMR\ocEm4XL] kIkg[TTX7:_bGj9re`ehwTNO]d\OzRN/`zONy4tRdy[lR{"l>PSndtf0l`w^?@ABCDEGHIJKLMNOPRSTUVX]^_`bdefghjnoprtwy{|S6ZSWCglhQubr8RR:p8vtSJinxو6qqQgtXeVvpb~`pXNN_NRY~TbNeb8Ʉcqn[~Qcg9Qz[YsN]leQ%o.J^tm1_dm(nÜ^X[ NS}~„ÄńƄDŽȄ˄̄΄τ҄ԄՄׄ؄لڄۄ܄ބOceQhU'NdkbZ_trmhPx@g9Rl~PeU^q[{RfsIgq\ R}qkUdaUUlGb.X$OFUOLf N\hNc zpR\T~bYJdž fDd\Qam>y7x3u{T8Om Z~^yl[vZuNanXu%urrGS~  "#$%&'()*-./0123456>?@ABDEFGKLMNOPQRSTUWXZ[\]_`abcefgijklmnopqsuvwx|}wviR܀#W^1Yren׋8\qASwbeNߘ[ƋSwON\vY_:yXNgNbR/fUlVNOʑpl^C`[ƉՋ6eKb[[c.US&v}Q,ghkbSmufNNp[qffr͞ ^\/gh_g bzX^pe1o…ÅąŅƅDžȅʅ˅̅ͅ΅х҅ԅօׅ؅مڅۅ݅ޅ߅U`7R Tdp)u^hbS=r4lawz.TwzUxgped6V`ySN{k[UV:O?@ABCDEFGHIJKLRSUVWXY[\]_`acdefghijmscK΀ԂbSl^*Y`plMWJd*+vn[Wjumo-fWkxcSpdlXX*dXhU|Pmpcmn~ChmvWYyr~uhTR"cD|USOfV`mCRI\)YmkX0uul`Fcag:w4^S,Tpmoprstuvwx†ÆņȆ̆͆҆ӆՆֆ׆چ܆݆ @l^\PN^:cGPhnw Tܔd_zvhEcR{~uwPb4YQyzV_m`\WTTQMnVc*To\bXb15@n|-iYb>UcTن\~*gsTOuÀUOMO-n \pakSv)ne~;T3z }UtcmzbegScl]\TLNalK\eh>T4TkfkNBcHS OO^W bdfirRR`fqgRxwpf;V8T!zr‡ÇćŇLJȇɇ͇̇·χЇԇՇևׇ؇هڇ܇݇އ߇  #zo` ^`Y`qpnPlrj-^`NZUm|b~w~#Sf\Or NSYTc(HQN~T$T7m&_Z>fis.sSz[wP~vSv{DXnaNey`TNy]ajPTa']xJRTVm[mSf$%&'()*+,-./01345678:;=>?ABCFGHIJKNOPQRSUVXZ[\]^_`fgjmoqstuvxyz{|\][!hxU{HeTiNGkNOSc:deQhxSall"Q\ #ke__OEfe)s`tQRWb_Lx^Og'`YDQQSylĖqOO=gUy~X bZV{_ĄWSe^\ud`n}Z~~iU[`esÈĈLjȈʈˈ͈̈ψЈшӈֈ׈ڈۈ܈݈ވ  "#$&'(),-./12357 cv)w~tf[tz@Rq_e[o]k[l ŏSb&-@T+NYr]YmŖTN qT pmv%Nx\^plDYcopYvt89:;<=>?@BCEFGHIJKLMNOPQRSTUVWXYZ[\]`abcdeghijklmnopqrstuvwxyz|}~Gd'\ez#YTo0iNV67rΑQ_NucNSfKYmNX;ScO Oc7YWyNul[Y]_iP]YNwNzbfy\Ny_Ɓ8uNԈak_INvn㋮ ы_~5kVk4YTm[n9\_É͉ӉԉՉ׉؉ىۉ݉߉ pS1jtZp^($%gGΏbvq_lx fTbcOÁu^͖ Tlm8l`R(u}^O`_$\1url8nI gSSQOɑS|^mNvi^aYOO>| annN1ZN\y[틽sWTGU\_a2kr !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~tm[Ոkm3 nQCQWScVXTW?sn܏т?a(`bf~Í\|g`NShAQЏt]UfU[S8xBg=hT~p[}Q(WTef^Clm|QgeojV vvpq#bRl<`Xaf`NbU#n-ggŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ(whiTMNpȋXde[z:P[wky|lve-]U\8h`Sbz[n~jzp_3o _cmVgN^&N4vb-f~blugqiFQSnbTُYmsewu'xOguʋ/cG5#cAw_rN`tebck?e  !"#$%'()*+,-./0123456789:;<=>?@ABCDE'^uѐg/e1TwAlKN~Lv ikgb?@BCDEHJKMNOPQRSTVWXY[\]^_`cdefghilmnopqrtuvw{|}~N N@QN^ESNNN2l[iV(Ny?NSGN-Y;rnSlV䀗k~w6NN\NiNN[[lUVNSSSSSe]SS&S.S>S\fScSRRR-R3R?R@RLR^RaR\R}RRRRRQTNNNNNNNNON"OdON%O'O O+O^OgO8eZO]OŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ _OWO2O=OvOtOOOOO~O{OO|OOOOOOOOOOOOO)PLPO,PP.P-POP P%P(P~PCPUPHPNPlP{PPPPPPQPPPPQ QN=lXOeOOFlt|nQ]ɞQYR SSQYUQNVQNnN҈y4[QQQQ QRW_ehijlnoqrxyz{|}~ōǍȍɍʍ͍ЍҍӍԍQQQQ‹Ëˋϋ΋ҋӋԋ֋؋ً܋ߋ  !%'*+./2356iSzS"!1*=?CEFLMNOPSTUVWXZ[\]^_`abcdeghjknqϐŐАĐǐӐܐאې"#1/9CF RBYRRRRTRRRSqw^QQ/S_Zu]LWWW~XXXX)W,W*W3W9W.W/W\W;WBWiWWkWW|W{WhWmWvWsWWWWWWWWWWWWWWWWWWWWWsuwxyz{}~ŽÎĎŎƎǎȎɎʎˎ͎̎ώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎ X XWWXXXDX XeXlXXXXXay}Ȃʂ゘˂̂Ă΂ ܂҂؂ ӂՂQ[\<41^/OGC_@`-:3fe  !"#$%&'()*+,-./0123456789:;<=>?@ABCDhiljmnx|}{؃X ݃փ8ԃ߃Ń&\QZYszx?@ABD7UVUuUvUwU3U0U\UUUUUUUUU~UUU{UUUUUUUUUVUUUUUUUUUUUUUUUUVV VV$V#VUV'V-VXV9VWV,VMVbVYV\VLVTVVdVqVkV{V|VVVVVVVVVVVVW W WW^^^^1^;^<^EGHQSTUVXY[\_`fghkmsz{|‘ÑđőƑȑˑБґӑԑՑ֑בّؑڑۑݑޑߑ7^D^T^[^^^a^\z\\\\\\\\\\\\\\\\\\\\\\\\]]']&].]$]]]]X]>]4]=]l][]o]]]k]K]J]i]t]]]]s]]s_w____________ba_rrrrrrrrrrrrrrrrsrsr  !"#$%&'()*+,-./0123456789:;<=>?@ABCDErss!s ssss"s9s%s,s8s1sPsMsWs`slsos~s%Y$YYcghijkltw}^^^^^^^^^^S^^^^^____`_`___``___`5`&``` `)`+` `?`!`x`y`{`z`B`FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuvwxyz{|}~j`}````````````````` a&aa#a`aa+aJauaaaaaaa_ ,N?rb5lTl\lJllllllhliltlvllllllllllllllllllll’ÒĒŒƒǒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ 9m'm mCmHmmmmm+mMm.m5mmOmRmTm3mmommm^mmm\m`m|mcmnmmmnmmnmmmnm nm+nnnNnknn_nnSnTn2n%nDnnnnn-onnnnnnnnnnnnboFoGo$oon/o6oKoto*o o)ooooxoro|ozoo  !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghikoooooooooop#pp9p5pOp^p[[[[[[/u4d[[0[GӏՏ & !56-/DQRPhXb[ft}P_W_V_X_;\TP\Y\q[c\f\*_)_-_t<_;n\YYYYYYlmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓ˓͓̓YYYYYYYYYYZZYZYYY Z Z2Z4ZZ#ZZ@ZgZJZUZusssssssssssssss| tssssst*t[t&t%t(t0t.t,t/0123456789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{|}~ǔϔӔԔڔ ttAt\tWtUtYtwtmt~ttttttttttttttLgSg^gHgigggjgsgggugggggwg|gg hg hgg hggggghggghgg2h3h`hahNhbhDhdhhhUhfhAhgh@h>hJhIh)hhhthwhhkhhnihi ih'3=CHKUZ`ntuwxyz{|}~•ÕĕŕƕǕȕɕʕ˕$ih iiWihiqi9i`iBi]iikiiixi4iiiiiificiyiiiiiiiiiiiiiii/jijjejiDj>jjPj[j5jjyj=j(jXj|jjjjjj7sRskkkkkkkkkkkkmqrsuvxwyz|~͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ #$%&'()+,-/0789:>ACJNOQRSVWXYZ\]^`cefkmnopqsxyz{|}~Ύ bbbb"b!b%b$b,btttuuu4eeee ffrgfffpff4f1f6f5f_fTfAfOfVfafWfwffffffffff236;=@EFHIGMUYljʉˉ̉ΉωЉщnrr]rfror~rrrrrrrc2cc–ÖȖʖ˖ЖіӖԖ֖זٖؖږۖܖݖޖߖ  ?ddkkkkklll lllll!l)l$l*l2l5eUekeMrRrVr0rbR gۀ€Āـ̀׀g݀ gZ6,2HLStYZq`i|}mgMXZń&gʁ!"#$%&'()+,./134567:;<=?@ABCDEFGHIJKLMNOPQTUWXZ\]_cdfghjklmnopqruwxyz{}~$k7k9kCkFkYkјҘӘ՘٘ژk@_keQeeeeeeeeepppppppppppqqq/q1qsq\qhqEqrqJqxqzqqqqqqqqqqr(rlpqfqq>b=bCbHbIb;y@yFyIy[y\ySyZybyWy`yoygyzyyyyyy__—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ <`]`Z`g`A`Y`c``a a]aaaaabllmwwx xxxxe-xxx9x:x;xx?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnbwewww}wwwwwwwww:u@uNuKuHu[uruyuuXa_Hhtqy~vv2ĔȔɔʔ˔͔̔ΔДєҔՔ֔הٔؔ۔ޔߔopqrst˜ØĘŘƘǘȘɘʘ˘̘͘ϘИԘ֘טۘܘݘ "*+),124678<>?B5DEFILNORSTVWXY[^_]abdefghijkloqrs:wwɖyyyyzG]zzzz  !"#$%&'()*+,-/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSVWXYZ[\]^_`abdfsxy{~9z7zQzϞpzvvvvvtt,u "()*+,216879:>ABDFGHIKLNQUWZ[\^cfghijklqmsuuuuuuuuuuuuuuuuuuuuuuuvuuuvvv vv v%vvvv™ÙęřƙǙșəʙ˙̙͙ΙϙЙљҙәԙՙ֙יؙٙڙۙܙݙޙߙvv3vMv^vTv\vVvkvovzxzyzzzzzzzzzzzdir}ƈɈΈ! 4+6Af{u倲vvw "%&')(1 5CFMRiqx  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYMTlnz|{ĆΆɆφІކ߆؆ц #;%.>H41)7?"}~{`pLnSc|dYe҇Z[\]^_`abcdefghijkrÚĚƚǚȚɚʚ͚ΚϚКҚԚ՚֚ךٚښۚܚݚޚƇ凬ˇӇчʇۇ !9<6BDEzz{{{{ {+{{G{8{*{{.{1{ {%{${3{>{{X{Z{E{u{L{]{`{n{{{b{r{q{{{{{{{{{{{{{{{{{{{{{{ |{{|| |  !"$%&'()*+,-.013456789:=>?@FJKLNPRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|*|&|8|A|@|D!"#-/(+8;34>DIKOZ_h~؈߈^||Ie||||||||||||||||nf|w}}}G~~sgmGIJPNOd|}~›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛כ؛ٛڛۛbapio}~rtyU~Yič֍׍ڍލ΍ύۍƍ ,.#/:@95=1IABQRJpv|otxe։މډ܉ܛݛޛߛ  !"#$%&'()*+,-./0123456789:;>&S*-0> ΖҖwȒ>jʓ>k#zĜŜƜǜʜ˜<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~œȜɜќҜڜ̜ۜ͜ΜϜМӜԜ՜ל؜ٜܜݜߜ|XŚš˚̚њECGIHMQ .UTߚ#;~֓۞ܞݞߞ",/97=>D  !"#$%&'()*+,-./0123456789:;<=>?@AB456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⣝ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝߝ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM $'.04;<@MPRSTVY]_`abenortuvwxyz{|}NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~㫞žÞŞƞǞȞʞ˞̞ОҞӞ՞֞מٞڞޞ !#$%&'()*+-.01 234568:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg  !#$'()..s4G4..566..n99&99s:9+,N;n<<.12.V@_A.7C...;CC.CDaFLFC#G)G|GG.GIzI}IIIIIIIIITULLLLwLLMMMMMMMMdhijklmnopqrstuvwxyz{|}~000 000@>?00000N0000  \0 \& %      00;=[]0 0 0 0 0 00000 "`"f"g""4"B&@&2 3 ! &&%%%%%%%%%%%; 0!!!!0" """""*")"'"("!!"" ""#""a"R"j"k""=""5"+","+!0 o&m&j& ! %!"#$%&'()*+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZA0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%NUZ?Ta(cY"uPz`c%nefh'Weqb[Y{b}}b|[^ cfHhǕOgN OMOOIPV7YYZ \`apafipOupuy}}ÀcUz;SNNWxNXn82z(/AQpSTTVY_m-bp TS[poS\zNx&nVUk;YSfmtBVNKO SU0[q_ ffh8ll)m[tvNz4[`풲muvř`iSQW0XDY[^(`cclopqYqq?s~vт`[iXeZl%uQ.YeY__be*j'kksV,Ğ\l{QK\aƁvharYNOxSi`)nOz NSNUO=OOsORS VYZ[[yfggLklkpsyykSkWl"ooEotuv wz{!|}6f̊Qeӗ(8N+T\]sLvT/Z__`hjZtxw^NɛN|OOPPIQlQRRRSSTTUQWW}YT[][[]]]x^^^^_R`Labbc;efCffmg!hhi_l*mim/nn2uvlx?z|}}^}}T*RLaʐuq?xMؚ;[RRSTXboj_KQ;RJTV@zw`ҞDs opu_`rdkNVdWXZZh`aff9hhmu:}nBNPOSUo]]]glstxP߈PW^+cPPQgT^XY[i_Mbc=hskn}pǑrx&xmye0}܃ dR(WPgjQBW*:XiT]Wx\OJRT>d(fggzV{"}/\h9{SQ7R[bdd-gkіv֛LcvRf NPSq\`dce_hqs#u{~یxefkNN:OO:RSSUVXYYYP[M\^+^_`c/e\[eeegbk{klEsIyy|}+}󁖉^ifnj܌̖okNrtux:y 3ꁔPl_X+z[NSW1YZ[`nouꌟ[{rPga\J~Q\hcfenq>y}ʎndžPR:\Sg|p5rLȑ+[1_`;NS[Kb1gkrs.zkRQSjT[c9j}VShT[1\]Oab2myyB}M~Frt/1KlƖNOOEQAS_bgAl ncs&~͑SY[m]y.~|~XqQSO\%fwzQ_eoikmndov}]uQR@bffn^}rfRSsY^_U`dPQR SGSSTFU1UVhYY~ d_xRbcBdb-z{v} INHQCS`S[\\]&bGbdh4hlEmmg\oNq}qez{}J~z9nΌxwMRU8o6qhQyU~|LVQX\cffZiruuyVyy| }D}4;a PuRSS PUXOY=r[d\S``\cc?ccdef]iioqNuvz|}}aIXlňpmPXaӁ5 OtPGRsSo`Ic_g,nO^\ʌe}RSvQcX[k[ \ dQg\NY*YplQ>UXY`Sbg5Ui@ę(SOX[\/^_ `Ka4bfln΀Ԃ.۞ۛNS'Y,{Ln'pSSDU[Xbbblo"t8o8QSSFOTjY1]zh7rH=j9NXSVfWbceNkm[npwz{}=ƀˆ[VX>_efjk7uNJ$Pw0W_e`zf`luznE{\uzQ{Ąyz6Z@w-NN[_bm6t4xFZuO^bcWeogvLr̀)M PWZhsidqrXjyw)/OeRZSbgl}v{|6f or~Q{rx{H{ja^Qu`ukQbnzvOpbO{zVYX䆼4O$RJSSS^,deg>lNlHrrsTuA~,酩{Ƒiq=cifjuvxC*SQS&TY^|_`Ibybbekluvxy}w^ۘ j8|P>\_gk5t w;gz9Suf_񃘀<__buF{ee gllp2x+~ހ *JҒlONNPVRJWY=^__?bfgghQ!}~2 T,SP\SXd4ggrfwFzRlkXL^TY,gQvidxTWY'fgkTiU^ggR]hNOSb+glďOm~Nban+osT*gE]{\[JnфzY|l wR"Y!q_rw'a iZZQ T}TfvY]rnMQh}}bxd!jY_[ksv}2Q(gٞvbgR$\;b~|OU` }S_NQY:r6Α%_wSy_}3VgS aalRv8/UQO*QRS[}^`ac gggnm6s7s1uPyՈJĖYNYON?P|^Y[^ccdfJii mnq(uzIɄ! e} ~ab2kltmmeg<ma}=jqNuSP]koͅ-)RTe\Nghttuψ̑x_szNceuRAmn tYukx|zOnae\NNP!NQ[ehmsBvwz|oҊ|ϑuR}+PSgmq3t*W`tAXm/}^N6OOQR]`s|}o#,BTojpŒ2RAZ^_g|iijmobrr{~KΐmQy2֊-PTqjkČ`gNNkhi~nxU _NN*N1N6NYzUYPYNYZYXYbY`YgYlYiYxYYY^OOYYYYYYYY%ZZZZ ZZ@ZlZIZ5Z6ZbZjZZZZZZZZZZZZZZ [ [[2[Z*[6[>[C[E[@[Q[U[Z[[[e[i[p[s[u[x[ez[[[[[[[[[[[[[[[[[[[\\\ \\ \"\(\8\9\A\F\N\S\P\O\q[l\n\bNv\y\\\\Y\\\\\\\\\\\\\]\ ]]]\]]]]]"]]]]L]R]N]K]l]s]v]]]]]]]]]]]]]]]]]]]]] ^^^^^6^7^D^C^@^N^W^T^_^b^d^G^u^v^z^^^^^^^^^^^^^^^^^^^^^^^^_ _]_\_ ___)_-_8_A_H_L_N_/_Q_V_W_Y_a_m_s_w_____________________`_!`````)``1```+`&``:`Z`A`j`w`_`J`F`M`c`C`d`B`l`k`Y``````````````````_````Maaa``a``a!a`` aaGa>a(a'aJa?acMcdOcccccvcccccckciccccccccccd4ddd&d6ded(ddgdodvdNd*eddddddddddddddd ddbdd,eddddedeee$e#e+e4e5e7e6e8eKuHeVeUeMeXe^e]erexeeeeeeeeeeeeeeeeeerg ffesg5f6f4ffOfDfIfAf^f]fdfgfhf_fbfpffffffffffffffffff?ffffffggg&g'g8.g?g6gAg8g7gFg^g`gYgcgdggpgg|gjggggggggggggggggggggggjhFh)h@hMh2hNhh+hYhchwhhhhhhhhhjhthhhhih~hihih"i&ih ihhhh6iiihh%ihhh(i*ii#i!ihyiwi\ixikiTi~ini9iti=iYi0iai^i]iijiiiiiiiii[iiiii.jiiiiiiijji kiiijijiji jjj#jjDj jrj6jxjGjbjYjfjHj8j"jjjjjjjjjjjjjjjjjjjjjkjkk1k8k7kv9kGkCkIkPkYkTk[k_kakxkykkkkkkkkkkkkkkkkkkkkkkkkkkllll$l#l^lUlbljllllll~lhlsllllllllllllllllllmM6m+m=m8mm5m3mm mcmmdmZmymYmmmommn nmmmmmmmmmmmmmmmmm-nnn.nnrn_n>n#nkn+nvnMnnCn:nNn$nnn8nnnnnnnnnnnnnnnnnAooLpnnn?on1on2on>oonozoxooooo[oomoo|oXoooofoooooooooooooooo p popppopptoppp0p>p2pQpcppppppppppppp qpqqeqUqqfqbqLqVqlqqqqqqqqqqqqqqqqqqqqq rrr(r-r,r0r2r;rsNsOs؞Wsjshspsxsus{szsssssssssttot%ts2t:tUt?t_tYtAt\titptctjtvt~tttttttsttttttttttuuu uu uuuu&u,uz7zCzWzIzazbzizpzyz}zzzzzzzzzzzzzzzzzzzzzzzzzzz{{ {{3{{{{5{({6{P{z{{M{ {L{E{u{e{t{g{p{q{l{n{{{{{{{{{{]{{{{{{{{{{||{{`||||{{| |{#|'|*||7|+|=|L|C|T|O|@|P|X|_|d|V|e|l|u||||||||||||||||||||||;|||||}}}} }E}K}.}2}?}5}F}s}V}N}r}h}n}O}c}}}[}}}}}}}}}}}}=~}}}}}}}}}}}}}~ ~#~!~~1~~ ~ ~"~F~f~;~5~9~C~7~2~:~g~]~V~^~Y~Z~y~j~i~|~{~~}}~~~~~~~~~~~~~8:ELMNPQUTX_`higxqܘ !(?;JFRXZ_bhsrpvy}Qۀـ݀Āڀր )#/KF>SQqneft_Ɂ́сف؁ȁځ߁ )+83@YX]Z_dbhjk.qwx~߂҂ނ܂ ق5421@9PE/+#|su΃؃  " 8m*(ALONIV[Zk_lot}:A?HLNPUblxz|bȌڌ  N͌gmqsύڍ֍̍ۍˍߍ B504JGILPHYd`*cUvr|ƎŎȎˎێ  &3;9EB>LIFNW\bcdڏ!  '659OPQRI>VX^hovr}Hbې20JVXceisrɑˑБ֑ߑۑ,^WEIdH?KPZϒD."#:5;\`|nV֓דؓÓݓГȓ6+5!:ARD[`b^j)puw}Z|~ʕoÕ͕̕Օԕ֕ܕ!(./BLOKw\^]_frlΖ˖ɖ͖Mܖ Ֆ$*09=>DFHBI\`dfhRkqy|z×Ɨȗ˗ܗOz 8$!7=FOKkopqtsĘØƘ !$ ,.=>BIEPKQRLUߙۙݙؙљ+7EB@C>UM[W_bedikjϚњӚԚޚߚ"#%'()*./2DCOMNQXtʛƛϛћқԛ:   .%$!0G2F>Z`gvx *&#DA?>FH]^dQPYrozĝƝϝٝӝuy}a̞ΞϞОԞܞޞݞv!,>JRTc_`afgljwrv/XiYdtQq      !"#$%&'()*+./01456789:;<=>ABCDEFGHJKLMPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ #z     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\^_ !"#$%&'()*+,-./0123456789:@ABCDEFGHIJKLMNOPQRy~      !"#$%&'()*+,-./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[  @AVW`ajk             ! " & 0 9 :  !"!""")"H"a"d"e"# #!#%% %%%%%$%,%4%<%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%%%%%%%%%%utf8charwchartucs2beucs2leutf16beutf16leucs4beutf32beucs4leutf32leasciiusasciiiso646iso646usutf16ucs4utf32ucs2eucjpshiftjissjiscp932iso2022jpgb18030gbkgb2312big5bigfivecp950big5hkscseuckrksc5601ksx1001cp949iso88591latin1@iso88592(WN)T5UVn"\N_XEVo 6W\I#@d1 %c25C4e5MMYts7J#@t9 s:C<e=NY`iso88593(( )4G.\$,2-DUG/@\# (1$243D#4xd5e6܄7#,9褣:;#<|d=>%`iso88594($RT)T%H["+Sd_X5QH\5P#0cJ %c25 J4LTc5؜6t7#8cJ s:NJDTLc=>x`iso88595(D'tUguevܵҝw߁xWy硗zמ{|W}ᗟ~ןX" 2ؠBRXbrء&b"Hb&b*"iso88596(bihlp)tix|'Z"2ڨB)iso88597(LL($l)*@İ",--9.dQVeafq֙gh@iZjZk[lF[m݆[n[o\p G\q\r-\s=iso88598( (b)r*+",b-r. BIdFdJ.dN> eRNIeV^eZn%40iso885994E#4Tc5d6ܰ47#8c9褣:;#D?iso885910($H()5ATVrUP4QH)-6EdWsE P#0cJ %c25344TcMW؜6t7#8cJ s:;DLiso885911tis620(x):*z***:+z+++ ;,{,*,:,J;-Z{-j-z-;.{.骻..;/iso885913(\,(`l)ؤ*1",b-.9AcD %E RMU4CUc5gW%7AsD VE!ŔMV?iso885915latin9)$R)V*+",rb-s.G!/#0c1$243D#4Tc5d6t7#8c9褣:;#?iso885916(TPN$c\)V*n\Nr]l-s5.G!V\#@d1$243$4eSee6X7#@d9褣:;$<eTf>\?cp1250windows1250 $P1st\Oe%[LLo0lPi5[WNd)2* \Nb-D.7 S\I#@d1 %c25C4e5MMYts7J#@t9 s:C<e=NY`cp1251windows1251 MWqs$wqw NLo0|("t"vh)ѥB*ub.b-,.&V7b߁xWy硗zמ{|W}ᗟ~ןX" 2ؠBRXbrءcp1252windows1252 $P1]s}u\G LLo0ĂlH0W["(b)*+",b-./#0c1$243D#4Tc5d6t7#8c9褣:;#?cp1253windows1253 $P1]st LLo0 ,(b)*Jİ",b-9.dQVeafq֙gh@iZjZk[lF[m݆[n[o\p G\q\r-\s=cp1254windows1254 $P1]s}u\GLLo0ĂlH@["(b)*+",b-./#0c1$243E#4Tc5d6ܰ47#8c9褣:;#D?cp1255windows1255 $P1]s}u LLo0Ă "("b)r*+",b-r.//3X7@:c>d]z%aBIdFdJ.dN> eRNIeV^eZn%40cp1256windows1256 $OZ1]s}u,GQziNLo0ĘlH-̰)(b)*+",b-2. ihlp)tix5{٧ *z9褣:&;.h8=>4pcp1257windows1257 $P1st .LLo0  (`)ؤ*1",b-.9AcD %E RMU4CUc5gW%7AsD VE!ŔMV5?koi8r 3\7㜳;\w`-vc2. ̰r=> A =4E}4I+4M;ttPG-TWmXgu*`8` .`z JX`jhbha}^}7x^z^{|W^xg}g_~koi8u 3\7㜳;\w`-vc2. ̰r=> " MbE}4I4M;ttEmuTWmXu*`8` .`z JX`jhbha}^}7x^z^{|W^xg}g_~cp437 8S9ꬃ;CL1ɘc =ȳO>XÍ(2]3>D.J/.`-6:? 5CGsK+7s3tH }5NuVK=FtX\s\{ֳ}cpWqmm*#w-1|˰|K 26(cp850 8S9ꬃ;CL1ɘc =ȳO>X >`s ]3>D.J/.`-6:# 0DsKR7s3<0H }5N5)@2ȴԌ3\s\|C4TS?hM6t -"/r.rK.26(cp866 ߁xWy硗zמ{|W}ᗟ~ןX" 2ؠ`-6:? 5CGsK+7s3tH }5NuVK=FtX\s\{BRXbrء}Hו݊|K&26(ibm1047cp1047$`4 4D !d #t" (p$"`Db$Tb d&T "93N9# <&:;| *- 13L1Dc %|$243̀@Ѓ؄!dah.O,mqȡ.b )1uqy/l+R-b / *tA5{!DaH$ =3O=}(M8QH>?\3UXqYh! 5H3M50 4` 806d'^[yY]^[nN]yesnoSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberAMPM%a %b %e %T %Y%m/%d/%y%H:%M:%S%I:%M:%S %p%m/%d/%y0123456789%a %b %e %T %Y%H:%M:%SLC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGES    $*2?HTf$TH2Te$ HTd @|$͌?ŌiBD?@!?-Dt>F<`Qx;9@ %z8"6i5DNn)W'4b<ACcQޫa:n$MBI .)>5D.&pA~_֑9S99_(;/ Zmm~6 'FOf?-_'u={9Rk_]0V{Fk 6^ae_@h'sM1Vɨs{`kGg Y*vDW>3~?2O}2&=k^5:|!j$|n0-w;C,MA ]}Fq-ƚ3b|7U>Mvd*p׫c|zWIV;8$#֊wZT# 1fjWaG~"e2`l6 ]?X;ޛ"((XM2}P[.4bH[HJCg_Bja (ә\wƒa<sxZo׽-c&gUE6(aw&FYDMC)Ip>(q>. E {.G{2/ Umrk1˖yJAy߉蔗1k__6HglqrB]2 1%t90 Kh,XGt$}nHrSQ 3K~ch>_@]UR)7dm2H2[LuNqETn *if']P;vIk}'i)̬Tjى,rPw0p'qfId=݃?C 1A9p;7+\ZlK8Yvba˻lj@Iu'" &/dv ;3Q:\&mM-zV? +@m19 [ƭKNʥ76BhcvhR71 dMf)e0WVG:ju(0f"=W6 NB3#Oe ?[x#v{rƦSonJXڷfv-íwH]ƀ/?\m*۶%:SW)-K~v{Y*ܷ-vl>pn(>ag3*Mmng91[H0-C%a5p0˸llZݠ!oGb\paIkVRPU7շ3n_]0.26!i'w @-O͠ /] B}ʢj\.U'U dA*k%{4hjOJ*OZ-ZǕ M :W_?8 q݆޶`MekQUHr;@5{EN)A|ddپ1wXi:<FFUu_ҽn.]D>Bać)"|o5׍nj|]tkn>r{jϩ)sɺQ t$}`t؊ , ~f)zvVE~6ė1'n6بV-oW4,V k^>*_ J;m,Ԅ.5/9a8!D Jj/SNT"*U pid&Z`?R4-4]^`g3aXWQ>qH-!,FYzTOVy"68"gU&8Q 3iHeL6!{J!@GUt:gB^_{gzU+#AUYn!*9GI@VY+ZGņCb!;,ya*L{,C&x<{:&g e+=| Q'ci)h( D Npc~|#2V!*o~MQa6:rm9zk2\F'[4wUYMqe/"+z<\3&:0yE>Hz>ư>h㈵>-C6?MbP?{Gz???$@Y@@@@j@.AcAחAeA _BvH7BmB@0BļB4&k C375'78o: #<=? ABzD@FPG$tIKn:Yau: ?= jIh?a KP&h&\?]ny?t*JUI_?j}{ͷ?*b.Kim?umV#W? ezxʫ)?4Lk^ zo ?fF6XO?&†W2ı.n?bX9v/$?{GzGzG???@@@@8 @@H@-1@@x}@P@* @nt#@ J&@T #*@Ak-@@cR0@?tӰ?lX?Q[?{Q}?Z?G^v?Rݛ?i 7?X?_{3|?ڐ?@En[v?B#Kj?Pο?R B.?8C+eGG@#Kj>Pο.?R B.?(.H ) # jX 5 Ob p N ʊ4 蔍0& Љ -  n ` C Sv ऌpPC  ډ@ lq@Xx` Ӎ( 3 pb  / 7 `0L ʉ_@ 0j0 V pA  0   0 l h8X o JW 78 X ҋ 8p I `*  0Ѝ @  g x  $ X ӋP0 ` x upc fɼg j?NjP'l?,"Q#m?>O~Gz?xE4' |?VW+!l3/~?B8dg`CuB?(I(̔X?LDƗk/z۟W?if 7?6?sMs:?N߬BYfۘr?A{k_+:?8d㘓U(??{n/o?Lj<@d [?lгEG"? %p@q%,? * ")Uؽ?} MѦ ?&*}?Q{n@? ?ݑ #1j?2ٮN %0?oM2+ܫ?XC4ݒ)?b=W HX?bͭǃ+?&< Ȉ?8 -iiS5?Br9E@? ([sH?aˑ/?P)c(c ? /Ub!?Yl#V禇#?b޷*Xc*%?h0(sW'^V&?<\l 8VM(?"P]Q)?$ʏSF +?>s6Ց0@nZ(-?9R]a.?c0FZRqo0?0S2?h aoA&3?;7v4b )Ul5?*EE/PEqss7?0վٰZX]8?nYN}:?(@H:12"A[#B#d=?{A JP??ʺ=[2r`A?(Cm ]C?$ 61ВD? "Y%wF?&/i;<\+jH?or=} 2J?6.z9qbSK?6;ݟ)M? i=ji'O?f`MR/d,mQ?kI<iBS? TCbR ٥LU?dGn}RksV?TCs+R|I-X?QB}Z?~iKpkh\?9 LZv^?fpH*Yom^`?oKXGb?"NLqv1Lc4d?.)}I"R%#f?'rŁ0D]h?+eGg@8CB.v:; ??fz^n?g5RҌ?m{]<lX?<2? n4jf?/*RVQ[?UNP1l?չ#ɑ-?U\Ӏ ?MuM<1 ?LtB<1Lp?J]9ݏ<d?[;_?hPKJ˩:7?-Qfm?6>q4?γ-?mL*H<"4L?i(z`E?[HX*.! ?Ig,|P?`cC<-a`?d; fZ~dxt_u?}JtH?U2gBV? ^˜T'?47;iL?:^#F?nWrPԔD٨?[g?11̐!Ղ_{3|? G;*)F?ӈ:`tF ?3ƿݣ?WĿ09 XJ?$¿"S?ZYb<n?uG_H?[W{хX#?`'"S?GL:w ?@x?ـY?B}8@{>?o;%s?wOz\ Q? Ũ# 0?x)&j!~%? wk~?PS?eD???M?Z:W?@W2?=?Р?8w?@r?CMr ?`P?cuܲ?v?Q?? wC?L O+?@ގ?`l}?j ?3.n6 ?ί ?9P)&p?g y?1'm?h????gI?NF?|p?: -?9 ?P Q?Y?q?m?}?XҿEB*?')ѿ߽"?H+mѿ4G?gAѿ@(C?пȣx>?п%?cRGп4$?E"Ͽ -m?uJGϿT9S?0=DοZD':?D οA ?w)`Ϳ>ڂ?̿W]?V) ̿L ?˿+`?ʿu+$?.@EʿП"?hwɿz[u?0Him ɿ6I]?E qȿ@MyF?0ǿ$\/?pb<<ǿI uw?`7ƿ9>7?T1 ƿAN?0$v}sſѩ ?0{Ŀ*?Q,FĿ z?ÿ0`r?IkÿWW}?@T¿;h?yS?,%`;ɪ>? W@+*?I<2A̖y?KW ?@@7 HMI?@>ieR?Ng|~W#?`/ yܺ&t|?(, ?rFp{?%w?8Et1L5d?m^_'Q?\HL2??jM3r,?`y 1(0? bF4?jlkN?@wJڭΟ*]?켫!,cD?@|?3X6ƃ/?g^q9۝?eI\R?@dI(N/{?r5j?RRU,Y?b=,II?(8? {12ye(?]5Hs'$?x?$y `&?o?ta?=5A܇?.c?ģΓ?ͭ<%???ذ?x?[? t?@\? :?Wj'?V` ?u?w? S?| ?8.?\f\?WY?^,'?j5vڷ?,k>n?`NC?ym?` x?m7m&? 2C?X]X?`q1 ?3&?@+g???G?u?0n&?(J ?PŦ?,>e?3eI*??`?hc_Y?)c%? 0?w?`Cr?%g?m&w?Wy?0O? V?/2?8B.?0gǓW.=`UUUUU?NUY?z)UUUEH[I?&+??ȹ,ֿV7($<?Xտ `?XEwvտmPդb#@?-տg ?xw_Կ>)i?`‹aԿ̄LH/=?0Կ: B<?HiULӿ`QƱ =?GӿMY%=? ҿ+{&=`?Zҿ?϶=`?Zҿ?϶=@?xA)ҿvS($Z ?iѿTh?\gѿ3=?HѿfZĨ&?s$п~k ?д%@п-6?д%@п-6?@^mϿ<*W =`?`˭ο$&+=@?*n'ο?TO/ ?Ok!\Ϳhʻ!=?̿4hOy'=?̿4hOy'=?-t˿1N=?Nʿf?cN<?#ʿFd%?#ʿFd%?PZRɿ*`? eȿ +=@?ǿXJSr+=@?ǿXJSr+= ?ƿfⲣj?p0ſ9PC?p0ſ9PC?&ſ[ ?l+MĿ?`F;? V]2%?ѧ?Nۥ^,=`?MZ?]<i,@? ?2흩<?@Y]^3?G:\#=?`j?h+?@X?ӬZF&=`? 9Ǿ?Eh-@?9? O4%?'?-x!=?#~+?48D,=? a?l=?e?rK#/<@?3=?xTy%= ?'?}i3&=?NW?x.<,=?pu?!%?PD?Cpf`?9믾?,T=@?ZZ?oX(=?nE1cbj2y/proc/se8>ı!>wQlV?RO~>LUUUUU?^ ߿iPB>B:SU?'V?f @@T!?1cba=@T! @1cba=0|@@T!@1cba=m0_?-DT!-DT!?`a=sp.;.;I %{9P!?cbaQ>`!`!?}W>a*?|Z:=+Z>?IUUUUU?IUUUUUſn?wTUU?F;>t*?\3&2?sS`u󾦒7~?h&0?eDC?W?(V"mm?n&?7d?A?z?cUUUUU?b?N]h?3?r8?ZT?4MU? =?uI?;h(?.Ÿ?Yl?UDU?ȊY*@}o?K-':@\3&<9B.?":? v$K{?/lj,DQ=Рf ?R-ޭ?n LE?mt?$I?q#q? UUUUU?똙?-DT! \3&<-DT!IJ`?? $(?QD?a?-DT!@!3|@5WT?? 8aQk?땗Y6*?5c`&?(>=c?\c? Q_?3oJ?ø@?#f>?M?8uYc??bt﮿JHG@\š#,H([@WeRT@pW!z@\g@h(!+@f"(Ld@q ){@ 0O@!jR 5a@&A%@vp3@`s4?5d `4?b-qBp6ct}@?8ܛN8~;@Y.ja@j$h@(u@Q@C]d@ "\t@Z_U 1@Q&V>@ޅp?Jo94?in? aBCо"]!?k"t?hf#w?6UL?OQ*? yw?i}?hn?qy O @9B.@B.?v۪?UZ?? 9DP-@:eSj@\|@""Ef@@Kp@Kq@0@J)?@o,@w'?4>>ž?z]>@kT;1>0,m= (k)AC+ڃ(A?TRfAckNX@f@m>M@%0cm@4[R'@,?9[6xd@ ۾WTz@r#@mY{g@!ڠ;@S@ȝ @鈇 `@=W@Lr?C^T@ٌ)== bO٪@(jl<@cMK@NT-@!|d@^Ye@ݮ-OE@a @B?C"aH@j2>mBP ?]t>ՄT;>?s39P ѱ>WҦ?(?Ȃ?ȳ?i=ŽԫN;WU>\s>;P=k M6?-d>lL?x??ɑp?˙?QN @zk]@ۢm@,R_@tIK@1@dq7|(@@ vB?Պo5@DU|>- zi@,@ŗ @O'M܅@݂'z@2}E@.ey@5z*@leE\@Q^o0@@WD@g6@ ~@IR-@&E[@cn6@C?=cM@}g=S.|mY@1.}֋@#7P|[@_3 u@>GH@7,MV@)ѦHA@^v@{![?4IeA@ݞ!)>k><^~c@)H%@I@ho@Rn96_5Jޣ)Eh3NiH>dx=@&D&i\wW$ArS%A^WAb@jeЦt@$vSмygE0?[ަ,d@.oK6|K@ѺmW@)d @9{1@hOs1itlmfK Y?ZQT@C1 )p`K z@T@|DNh@>1@\_fk_GӇl]qL3pTQ?g#G@Oȏө5~*=,}Ɉ5>?3> Fj>h>d͹V_(?a,G W?S~c ?m0_*w9P=[:>VxNZ>>dw%l*?DHU_?M? e?,)vө?<f?` ?Za??Vcb?RBtp>7X?M,?}P?]?oS?ƶ@?O@~?kحg?bU>?{T"?Ȱ}gij?L?>5?sA?8$4a L?lm4?.ӂb?-V?.n?j쑺?Dpx? f?AՔB?5ߨɠ? ƍ'?8+?PBü? +g?$ N?aWZj?|SU?PDvI?PP?o\G?+%@]@?aץ@E?9hs&^?@>[A}I?a~H?u.t?徜?'?YO?ӓ?x6?tbE?C ZLgK?AˀC?8ϘJ?\.lf?;UUUUU?i}ɐ?6+Y=`PD?DR>?˖dF?x ?Y"$I?xq?UUUUU?? {?խ8=q_@E@E@  /bin:/usr/bin%s*$2a$00$abcdefghijklmnopqrstuu8b 34345_0.../9ZzX7iSJNd21sU_0.../9Zzx22/wK52ZKGAx   test$1$$5$rounds=rounds=%u$$5$%s%.*s$$6$$6$%s%.*s$touppertolower/dev/nullAssertion failed: %s (%s: %s: %d) Dynamic linker failed to allocate memory for error messageUnsupported request %d%s: : /dev/ttyrbe/etc/shellsrbUTF-8%NLSPATHLANG_.@.@n!=1;Plural-Forms:nplurals=plural=utf8Ê̄Ê̌ê̄ê̌ASCIICC.UTF-8LC_ALLPOSIXMUSL_LOCPATH.%*.*fmessagesHALT: ERROR: WARNING: INFO: TO FIX: MSGVERB/dev/console%s%s%s%s%s%s%s%s labelseveritytextactiontagPWD: unrecognized option: : option requires an argument: : option is ambiguous: : option does not take an argument: %*[^ ]%*[ ] %n%*[^ ]%n %n%*[^ ]%n %n%*[^ ]%n %n%*[^ ]%n %d %d%s %s %s %s %d %d /dev/ptmx/dev/pts/%d[]%b %e %T<%d>%s %n%s%s%.0d%s: %.*s2>/dev/nullsheval "printf %s\\\\0 x $1 $2"-c/bin/sh/dev/shm/%.2X:%.2X%d.%d.%d.%d.in-addr.arpaip6.arpa/etc/hosts/etc/services/udp/tcptcpudp%s%s%s %d.%d.%d.%d%x:%x:%x:%x:%x:%x:%x:%x%x:%x:%x:%x:%x:%x:%d.%d.%d.%d:0/etc/resolv.confoptionsndots:attempts:timeout:nameserverdomainsearch127.0.0.1/etc/group/etc/passwd/etc/tcb/%s/shadow/etc/shadowre,%s:%s:%u:%s%s%s:%s:%u:%u:%s:%s:%s %s:%s:%.*ld:%.*ld:%.*ld:%.*ld:%.*ld:%.*ld:%.*lu /usr/local/bin:/bin:/usr/binHOME [[:alnum:]_][^[:alnum:]_][[:space:]][^[:space:]][[:digit:]][^[:digit:]]rwa/tmptempw+/tmp/tmpfile_XXXXXX/tmp/tmpnam_XXXXXX-0X+0X 0X-0x+0x 0xINFNANnaninf-+ 0X0x(null)#+-0%*s%%%s%s%s%s%s*.*%c%c%*%.*s%.0d%s%c%%lln%.*e%.*f000000000000000%.*gXXXXXX/proc/self/task/%d/comm/dev/shm/tmp-%d/etc/localtimeTZUTCGMTTZif%.3s %.3s%3d %.2d:%.2d:%.2d %d __kernel_clock_gettimeLINUX_2.6.39DATEMSK%m/%d/%y%Y-%m-%d%H:%M%H:%M:%S+%lld%+.4ld%lld%*lld%0*lldLOGNAMEError allocating constructor queue: %m State of %s is inconsistent due to multithreaded fork : %.*s/%sreaddir64_r(local)readdir_rError relocating %s: %s: symbol not foundError relocating %s: %s: initial-exec TLS resolves to dynamic definition in %sError relocating %s: cannot allocate TLSDESC for %sError relocating %s: unsupported relocation type %dInvalid library handle %pSymbol not found: %sError relocating %s: RELRO protection failed: %mError preparing lazy relocation for %s: %m/lib:/usr/local/lib:/usr/lib %s => %s (%p) $ORIGIN${ORIGIN}/proc/self/exe%.*s/etc/ld-musl-aarch64.path__libc_start_mainstdinlibc.soError loading dependencies for %sError loading shared library %s: %m (needed by %s)__dls2b__dls3ldd [args]LD_LIBRARY_PATHLD_PRELOAD/proc/listlibrary-pathpreloadargv0musl libc (aarch64) Version %s Dynamic Program Loader Usage: %s [options] [--] pathname%s %s: cannot load %s: %s %s: %s: Not a valid dynamic program %s (%p) linux-gate.so.1%s: Error getting %zu bytes thread-local storage: %m mallocaligned_allocLibrary %s is not already loadedError loading shared library %s: %mCannot dlopen while program is exiting.Error recording dependencies for %sj?$.Dsp"8 1).lN!(Ew8fTl 4)P|ɵՄ? Gy 1Ѭߘr/Ḗ~&jE|,G$l iciNWqX~=t XrX͋qJT{YZ90`*#`(yA8۸y:`l>w'K1/x`\`U%U攫UbHW@cj9U*4\̴ATr|*oc]ũ+1t>\3֯\$lS2zw(H;Kkē!(f a!`|H2]]]u#&܈e>#Ŭom9BD . Ji^Bh!la gӫҠQjh/T(3Ql n;zP;*~ev9>YfCoEå}^;uos D@jVbNw?6r=B$7H ۛIrS{y%P;LylO`@ž\^c$johSl>9oR;Qm,0DE ^J3(fK.WtE9_ ӹyU 2`yr,@%g̣饎"2u<kaP/R=2`#H{1S>W\o.ViB~(2gsUO'[iXʻ]=!lJ[-ySeEIҐK3~ˤAb Lw6~д+MەqՓkю%ǯ/[{AI~-%^q h"W6d$ cUYCxSZ٢[} Źv&ϕbhAJsN-GJ{RQ)S?Wƛv`+t恵oWk *!ec.4dV]-SGjnpzKD). u#&İn}ߧI`fqilRdVឱ¥6)L u@Y>:䚘T?eB[k?ҡ08-M]% L&pc^?kh >\D}W7: P tAu8/;21>8TNmO Bo ,y|$ryVw.?rU$qk.P̈́GXzt}K:zfC cdG27;C$CMQe*P:qUN1w_V5kǣ;< $Y,n<pEㆱo ^*>Zw=Ne)։>%fRxL.jxS<- N=+6&9`y#RnfE{7(2åZl!Xeh;/ۭ}*/n[(!pa)uGa0a4c\s9pL ު˼,b`\ndi#PZe2Zh@*<1! T_~}=b7w-_h)5ǡޖXxWcr"ÃF T0.SHُ(1mX4a(s<|J]d]B> EꫪOlOBBǵj;Oe!AyMjGKPb=bF&[$ti GV[ Htb#*BXU >ap?#r3A~_;"lY7|`t˧@n2w΄PU5ai Z .zD4Egɞs͈Uy_g@Cge48>q(= m!>J=+hZ=@&L4)i Av.khq$j 3ԷCaP.9FE$tO!@MpE/f m1'A9UG%ښ ʫ%xP()Sچ, mbhiHפh'?Oz|Ϊ_7әxB*k@5 ٫9N;VmK1f&tn:2C[Ah xN جV@E'H::SU kKмgUXc)3VJ*%1?~^|1)p/'\,(H"m?H܆AyG@n]Q_2Տd5A4x{%`*`lc´2Of#k>3b $;" r(-Exb}doITH}'>AcG t.no:7`L knU{7,gm;e' )̒9 i{f} ϑ^و/$[Qy{;v.97yY̗&-1.Bh;+jLu.x7BjQ满PcKkؽ%=YBD n *Ngd_ڈ鿾dW{x`M``FѰ8Ew63kBqA_^;Z4ٷ,Q+:Ֆ}}>(-}|%rZLZq)GW;()f(.y_xU`uD^mm%adâW<'*:m?!cf&(3uU4V<wQ( gQ̫_QM08bX7 z{>d!Q2Ow~㶨F=)iSHd$m-if! FEdlX [@X̻k~jEY:D 5>ʹrdfGof,ҏ"W##v215VbuZ6ns҈bIPLVq z2E{Sb%ҽ5iq"|˶+v>S@`8G% 8vFšw``u N˅؍芰z~L\HjiԐ\-% ?2aN[wߏWr:    $1$abcd0123$V9k5q1.2.5  %s/%.*s%.*s/%s/%s.mo.|&====|&=!><+-*%/ -DT! @-DT! -DT!!3|@!3|I@Iya?ު{տ=Jq?mҿ9?g:Qп?$1˿d  ?Xw OWƿ {"^?+?4JJ?^vNX#?aZ<A?? 8R?G`?Y]?j?.6S^?jW6 ? w&?-c?pG" ?Ax?~ȋ?bHSg? W0?9B.?4Hпj [W?#A ߿/dev/log  2 #   (x   @ /var/run/nscd/socket@UTC {FF{FFpF\KK^qJ6#W6i@@@@@:m!A````GwcGppp]S>ow $```` 0@P``````pK__KKK___________"____________K_zKKK_z___8gR_____ #  ```` 0@P``````p>#Z4_cw4 T04kq{W$$$$$$$$$$$$$$$$$$$$$$$$$$$AO$$$W\$$$k$$$$$$$$$$$$%CC$$$a$$fq$x$$q$$ =EJY 11 OT_f_w_[[_ ~; @"$@,(9H`Cx`DE G@P^`_`` aa( b@`ch d`ef jn@zRx $4,P!L$D#AB A l+T H E,P8 A  A Z A A]EBTLEDPlE@E A@COA A eQAI A EAA{CAVC AA ABZBBSA AA AAM<m E[nE$\A DO A $,p]A DO A T^xlp^d$^<A DO A _`0A Ja0u F<bpA D` A Y A q A ` A <DfA Da A V A t A }ip0 pgC.UTF-8 X P 0 P ` H 8 @ # # 0# # % t n( r( f0 a8 e@ wH WX sh Sx d D %   `& & & ; 8 o+(] (;   42h o$4#0%444444h . -QXόF)1[p0] xY)PhHVl͈?w+pAoz/-t ^v,p@,oWAtߠXdJ~ disabledinterrupt-controller@ff131000 arm,gic-400@ @ `    syscon@ff140000$rockchip,px30-grfsysconsimple-mfd+ *io-domains rockchip,px30-io-voltage-domainokay??@@@@lvdsrockchip,px30-lvds Adphy^*lvds disabledports+port@0+endpoint@0(B port@1serial@ff158000$rockchip,px30-uartsnps,dw-apb-uart Ibaudclkapb_pclk &&%txrx/9Fdefault TCDE disabledserial@ff160000$rockchip,px30-uartsnps,dw-apb-uart Jbaudclkapb_pclk &&%txrx/9FdefaultTFokayserial@ff168000$rockchip,px30-uartsnps,dw-apb-uart Kbaudclkapb_pclk &&%txrx/9Fdefault TGHI disabledserial@ff170000$rockchip,px30-uartsnps,dw-apb-uart Lbaudclkapb_pclk && %txrx/9Fdefault TJKL disabledserial@ff178000$rockchip,px30-uartsnps,dw-apb-uart Mbaudclkapb_pclk & & %txrx/9Fdefault TMNO disabledi2c@ff180000&rockchip,px30-i2crockchip,rk3399-i2cN i2cpclk FdefaultTP+okay8Ppmic@20rockchip,rk817 mclkrk808-clkout1xin32k Q TRSFdefault~guTTTTTTTT regulatorsDCDC_REG10~ +vdd_logic:q regulator-state-memOg~DCDC_REG2p~+vdd_arm:q regulator-state-memg~DCDC_REG3+vcc_ddrregulator-state-memODCDC_REG42Z2Z+vcc_3v3 @regulator-state-memg2ZLDO_REG2w@w@+vcc_1v8 kregulator-state-memOgw@LDO_REG3B@B@+vdd_1v0regulator-state-memOgB@LDO_REG42Z2Z +vcc3v3_pmu $regulator-state-memOg2ZLDO_REG5w@w@ +vccio_sd ?regulator-state-memOg2ZLDO_REG6-w@+vcc_sd wregulator-state-memOg2ZLDO_REG72Z2Z+vcc_bl regulator-state-memg2ZLDO_REG8**+vcc_lcd regulator-state-memg*LDO_REG92Z2Z +vcc_wifiregulator-state-memg2ZBOOSTReLK@ +usb_miducodeci2c@ff190000&rockchip,px30-i2crockchip,rk3399-i2cO i2cpclk FdefaultTU+ disabledi2c@ff1a0000&rockchip,px30-i2crockchip,rk3399-i2cP i2cpclk  FdefaultTV+ disabledi2c@ff1b0000&rockchip,px30-i2crockchip,rk3399-i2c Q i2cpclk  FdefaultTW+ disabledspi@ff1d0000&rockchip,px30-spirockchip,rk3066-spi $Uspiclkapb_pclk & & %txrxFdefaultTXYZ[+ disabledspi@ff1d8000&rockchip,px30-spirockchip,rk3066-spi %Vspiclkapb_pclk &&%txrxFdefaultT\]^_`+ disabledwatchdog@ff1e0000rockchip,px30-wdtsnps,dw-wdt[ % disabledpwm@ff200000&rockchip,px30-pwmrockchip,rk3328-pwm "S pwmpclkFdefaultTaokay pwm@ff200010&rockchip,px30-pwmrockchip,rk3328-pwm "S pwmpclkFdefaultTbokay pwm@ff200020&rockchip,px30-pwmrockchip,rk3328-pwm "S pwmpclkFdefaultTc disabledpwm@ff200030&rockchip,px30-pwmrockchip,rk3328-pwm 0"S pwmpclkFdefaultTd disabledpwm@ff208000&rockchip,px30-pwmrockchip,rk3328-pwm #T pwmpclkFdefaultTe disabledpwm@ff208010&rockchip,px30-pwmrockchip,rk3328-pwm #T pwmpclkFdefaultTf disabledpwm@ff208020&rockchip,px30-pwmrockchip,rk3328-pwm #T pwmpclkFdefaultTg disabledpwm@ff208030&rockchip,px30-pwmrockchip,rk3328-pwm 0#T pwmpclkFdefaultTh disabledtimer@ff210000*rockchip,px30-timerrockchip,rk3288-timer! Y& pclktimerdma-controller@ff240000arm,pl330arm,primecell$@ apb_pclk &tsadc@ff280000rockchip,px30-tsadc( $,P,Xtsadcapb_pclkk rtsadc-apb^*FinitdefaultsleepTi)j3i=okay saradc@ff288000,rockchip,px30-saradcrockchip,rk3399-saradc( TS-Wsaradcapb_pclkk rsaradc-apbokayeknvmem@ff290000rockchip,px30-otp)@/Zaotpapb_pclkphykrphy+id@7cpu-leakage@17performance@1eqclock-controller@ff2b0000rockchip,px30-cru+ l% xin24mgpll^*v8@IFq рр  clock-controller@ff2bc000rockchip,px30-pmucru+lxin24m^*v%%% G %syscon@ff2c0000,rockchip,px30-usb2phy-grfsysconsimple-mfd,+usb2phy@100rockchip,px30-usb2phy % phyclkm usb480m_phyokay mhost-port D linestateokay potg-port$BA@otg-bvalidotg-idlinestate disabled ophy@ff2e0000rockchip,px30-dsi-dphy.% E refpclkk>rapbn okay Aphy@ff2f0000rockchip,px30-csi-dphy/@Fpclkn k/rapb^* disabled usb@ff3000000rockchip,px30-usbrockchip,rk3066-usbsnps,dwc20 >otgotg@  o usb2-phynokayusb@ff340000 generic-ehci4 < pusbn disabledusb@ff350000 generic-ohci5 = pusbn disabledethernet@ff360000rockchip,px30-gmac6 +macirq@>??@ACL[stmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macclk_mac_speed^*rmiiFdefaultTqrn k^ rstmmaceth disabledmmc@ff370000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc7@ 6 ;CDbiuciuciu-driveciu-sampleрFdefaultTstuvnokay'8 JQS`mzw?mmc@ff380000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc8@ 7 8EFbiuciuciu-driveciu-sampleрFdefault Txyzn  disabledmmc@ff390000.rockchip,px30-dw-mshcrockchip,rk3288-dw-mshc9@ 5 9GHbiuciuciu-driveciu-sampleрFdefault T{|}n  disabledspi@ff3a0000 rockchip,sfc:@ 8:clk_sfchclk_sfc T~Fdefaultn okay+flash@0jedec,spi-noronand-controller@ff3b0000rockchip,px30-nfc;@ 97ahbnfc7рFdefault Tn  disabledopp-table-1operating-points-v2 opp-200000000 ~opp-300000000opp-400000000ׄopp-4800000008*gpu@ff400000$rockchip,px30-maliarm,mali-bifrost@@$/.- jobmmugpuInokay video-codec@ff442000rockchip,px30-vpuD PO vepuvdpu aclkhclkn iommu@ff442800rockchip,iommuD( Q aclkifacen  dsi@ff450000(rockchip,px30-mipi-dsisnps,dw-mipi-dsiE KDpclk Adphyn k=rapb^*+okayports+port@0+endpoint@0( port@1endpoint( panel@0 (anbernic,rg351v-panelnewvision,nv3051d portendpoint( vop@ff460000rockchip,px30-vop-bigF Maclk_vopdclk_vophclk_vopk345 raxiahbdclkn okayport+ endpoint@0( endpoint@1( Biommu@ff460f00rockchip,iommuF M aclkifacen okay isp@ff4a0000rockchip,px30-cif-ispJ$FIJ ispmimipi 3_ispaclkhclkpclk dphyn  disabledports+port@0+iommu@ff4a8000rockchip,iommuJ F aclkifacen  qos@ff518000rockchip,px30-qossysconQ  qos@ff520000rockchip,px30-qossysconR  #qos@ff52c000rockchip,px30-qossysconR  qos@ff538000rockchip,px30-qossysconS  qos@ff538080rockchip,px30-qossysconS  qos@ff538100rockchip,px30-qossysconS  qos@ff538180rockchip,px30-qossysconS  qos@ff540000rockchip,px30-qossysconT  qos@ff540080rockchip,px30-qossysconT  qos@ff548000rockchip,px30-qossysconT  qos@ff548080rockchip,px30-qossysconT  qos@ff548100rockchip,px30-qossysconT  qos@ff548180rockchip,px30-qossysconT  !qos@ff548200rockchip,px30-qossysconT  "qos@ff550000rockchip,px30-qossysconU  qos@ff550080rockchip,px30-qossysconU  qos@ff550100rockchip,px30-qossysconU  qos@ff550180rockchip,px30-qossysconU  qos@ff558000rockchip,px30-qossysconU  qos@ff558080rockchip,px30-qossysconU  pinctrlrockchip,px30-pinctrl^*1+>gpio@ff040000rockchip,gpio-bank %EU Qgpio@ff250000rockchip,gpio-bank% \EUgpio@ff260000rockchip,gpio-bank& ]EU gpio@ff270000rockchip,gpio-bank' ^EU pcfg-pull-upa pcfg-pull-downn pcfg-pull-none} pcfg-pull-none-2ma}pcfg-pull-up-2maapcfg-pull-up-4maa pcfg-pull-none-4ma}pcfg-pull-down-4manpcfg-pull-none-8ma} pcfg-pull-up-8maa pcfg-pull-none-12ma}  pcfg-pull-up-12maa  pcfg-pull-none-smt} pcfg-output-highpcfg-output-low pcfg-input-higha pcfg-inputi2c0i2c0-xfer   Pi2c1i2c1-xfer  Ui2c2i2c2-xfer  Vi2c3i2c3-xfer    Wtsadctsadc-otp-pin itsadc-otp-out juart0uart0-xfer    'uart0-cts  (uart0-rts  )uart1uart1-xfer  Cuart1-cts Duart1-rts Euart2-m0uart2m0-xfer uart2-m1uart2m1-xfer   Fuart3-m0uart3m0-xfer uart3m0-ctsuart3m0-rtsuart3-m1uart3m1-xfer  Guart3m1-cts  Huart3m1-rts  Iuart4uart4-xfer  Juart4-cts Kuart4-rts Luart5uart5-xfer  Muart5-cts Nuart5-rts Ospi0spi0-clk Xspi0-csn Yspi0-miso  Zspi0-mosi  [spi0-clk-hsspi0-miso-hs spi0-mosi-hs spi1spi1-clk \spi1-csn0  ]spi1-csn1  ^spi1-miso _spi1-mosi  `spi1-clk-hsspi1-miso-hsspi1-mosi-hs pdmpdm-clk0m0pdm-clk0m1pdm-clk1pdm-sdi0m0pdm-sdi0m1pdm-sdi1pdm-sdi2pdm-sdi3pdm-clk0m0-sleeppdm-clk0m1-sleeppdm-clk1-sleeppdm-sdi0m0-sleeppdm-sdi0m1-sleeppdm-sdi1-sleeppdm-sdi2-sleeppdm-sdi3-sleepi2s0i2s0-8ch-mclki2s0-8ch-sclktx +i2s0-8ch-sclkrx  ,i2s0-8ch-lrcktx -i2s0-8ch-lrckrx  .i2s0-8ch-sdo0 /i2s0-8ch-sdo1 1i2s0-8ch-sdo2 3i2s0-8ch-sdo3 5i2s0-8ch-sdi0 0i2s0-8ch-sdi1  2i2s0-8ch-sdi2  4i2s0-8ch-sdi3 6i2s1i2s1-2ch-mclk Si2s1-2ch-sclk 7i2s1-2ch-lrck 8i2s1-2ch-sdi 9i2s1-2ch-sdo :i2s2i2s2-2ch-mclki2s2-2ch-sclk ;i2s2-2ch-lrck <i2s2-2ch-sdi =i2s2-2ch-sdo >sdmmcsdmmc-clk ssdmmc-cmd tsdmmc-det usdmmc-bus1sdmmc-bus4@ vsdiosdio-clk zsdio-cmd ysdio-bus4@ xemmcemmc-clk  {emmc-cmd  |emmc-rstnout emmc-bus1emmc-bus4@emmc-bus8 }flashflash-cs0 flash-rdy  flash-dqs  flash-ale  flash-cle  flash-wrn  flash-cslflash-rdn flash-bus8 sfcsfc-bus4@sfc-bus2  sfc-cs0 sfc-clk  ~lcdclcdc-rgb-dclk-pinlcdc-rgb-m0-hsync-pinlcdc-rgb-m0-vsync-pinlcdc-rgb-m0-den-pinlcdc-rgb888-m0-data-pins     lcdc-rgb666-m0-data-pins      lcdc-rgb565-m0-data-pins     lcdc-rgb888-m1-data-pins   lcdc-rgb666-m1-data-pins   lcdc-rgb565-m1-data-pins   pwm0pwm0-pin apwm1pwm1-pin bpwm2pwm2-pin  cpwm3pwm3-pin dpwm4pwm4-pin epwm5pwm5-pin fpwm6pwm6-pin gpwm7pwm7-pin hgmacrmii-pins  qmac-refclk-12ma  rmac-refclk cif-m0cif-clkout-m0 dvp-d2d9-m0   dvp-d0d1-m0  d10-d11-m0 cif-m1cif-clkout-m1dvp-d2d9-m1  dvp-d0d1-m1 d10-d11-m1 ispisp-prelightheadphonehp-detledsled-pin  pmicdc-det pmic-int  Rsoc_slppin_gpiosoc_slppin_rstsoc_slppin_slpchosenserial2:115200n8backlightpwm-backlighta gpio-leds gpio-ledsFdefaultTled-0 M  chargingrk817-soundsimple-audio-card rk817_int $i2s = [9 uMicrophoneMic JackHeadphoneHeadphonesSpeakerSpeaker; MICLMic JackHeadphonesHPOLHeadphonesHPORSpeakerSPKOsimple-audio-card,codec simple-audio-card,cpu vccsysregulator-fixed +vcc3v8_sys99 Tvibrator pwm-vibratorB@ enablegpio-keys-vol gpio-keys button-vol-down M VOLUMEDOWN rbutton-vol-up M VOLUMEUP s compatibleinterrupt-parent#address-cells#size-cellsmodeli2c0i2c1i2c2i2c3serial0serial1serial2serial3serial4serial5spi0spi1mmc0device_typeregenable-methodclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientoperating-points-v2cpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-usopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendinterruptsinterrupt-affinityportsstatusclock-frequencyclock-output-names#clock-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontribution#power-domain-cellspm_qospmuio1-supplypmuio2-supplyoffsetmode-bootloadermode-fastbootmode-loadermode-normalmode-recoveryclock-namesdmasdma-namesreg-shiftreg-io-widthpinctrl-namespinctrl-0rockchip,grfresetsreset-names#sound-dai-cells#interrupt-cellsinterrupt-controllervccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplyphysphy-namesrockchip,outputremote-endpointi2c-scl-falling-time-nsi2c-scl-rising-time-nswakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyvcc7-supplyvcc8-supplyregulator-always-onregulator-boot-onregulator-max-microvoltregulator-min-microvoltregulator-nameregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvoltregulator-off-in-suspendrockchip,mic-in-differentialnum-cs#pwm-cellsarm,pl330-periph-burst#dma-cellsassigned-clocksassigned-clock-ratesrockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cells#io-channel-cellsvref-supplybits#reset-cellsassigned-clock-parents#phy-cellsinterrupt-namespower-domainsdr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy-modebus-widthfifo-depthmax-frequencycap-sd-highspeedcard-detect-delaycd-gpiossd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyspi-max-frequencyspi-rx-bus-widthspi-tx-bus-widthmali-supplyiommus#iommu-cellsbacklightreset-gpiosvdd-supplyrockchip,disable-mmu-resetrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthinput-schmitt-enableoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathpower-supplypwmscolorfunctionsimple-audio-card,namesimple-audio-card,formatsimple-audio-card,hp-det-gpiosimple-audio-card,mclk-fssimple-audio-card,widgetssimple-audio-card,routingsound-daipwm-namesautorepeatlabellinux,code nK8g(gt)tronsmart,orion-r68-metarockchip,rk3368 +7Rockchip Orion R68aliases=/pinctrl/gpio@ff750000C/pinctrl/gpio@ff780000I/pinctrl/gpio@ff790000O/pinctrl/gpio@ff7a0000U/i2c@ff650000Z/i2c@ff660000_/i2c@ff140000d/i2c@ff150000i/i2c@ff160000n/i2c@ff170000s/serial@ff180000{/serial@ff190000/serial@ff690000/serial@ff1b0000/serial@ff1c0000/spi@ff110000/spi@ff120000/spi@ff130000/ethernet@ff290000/mmc@ff0c0000/mmc@ff0f0000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1core2core3 cpu@0cpuarm,cortex-a53pscicpu@1cpuarm,cortex-a53pscicpu@2cpuarm,cortex-a53pscicpu@3cpuarm,cortex-a53psci cpu@100cpuarm,cortex-a53pscicpu@101cpuarm,cortex-a53pscicpu@102cpuarm,cortex-a53pscicpu@103cpuarm,cortex-a53psciarm-pmuarm,cortex-a53-pmu`pqrstuvw  psci arm,psci-0.2smctimerarm,armv8-timer0   oscillator fixed-clockn6%xin24m8Fmmc@ff0c00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @E S  D r vZbiuciuciu-driveciu-samplef q xresetokaydefault mmc@ff0d00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @Eр S  E s wZbiuciuciu-driveciu-samplef !q xreset disabledmmc@ff0f00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc@Eр S  G u yZbiuciuciu-driveciu-samplef #q xresetokay$default saradc@ff100000rockchip,saradc $2S I [Zsaradcapb_pclkq W xsaradc-apbokayDspi@ff110000(rockchip,rk3368-spirockchip,rk3066-spiS A RZspiclkapb_pclk ,default+ disabledspi@ff120000(rockchip,rk3368-spirockchip,rk3066-spiS B SZspiclkapb_pclk -default+ disabledspi@ff130000(rockchip,rk3368-spirockchip,rk3066-spiS C TZspiclkapb_pclk )default !+ disabledi2c@ff140000(rockchip,rk3368-i2crockchip,rk3288-i2c >+Zi2cS Ndefault" disabledi2c@ff150000(rockchip,rk3368-i2crockchip,rk3288-i2c ?+Zi2cS Odefault# disabledi2c@ff160000(rockchip,rk3368-i2crockchip,rk3288-i2c @+Zi2cS Pdefault$ disabledi2c@ff170000(rockchip,rk3368-i2crockchip,rk3288-i2c A+Zi2cS Qdefault% disabledserial@ff180000&rockchip,rk3368-uartsnps,dw-apb-uartn6S M UZbaudclkapb_pclk 7PZ disabledserial@ff190000&rockchip,rk3368-uartsnps,dw-apb-uartn6S N VZbaudclkapb_pclk 8PZ disabledserial@ff1b0000&rockchip,rk3368-uartsnps,dw-apb-uartn6S P XZbaudclkapb_pclk :PZ disabledserial@ff1c0000&rockchip,rk3368-uartsnps,dw-apb-uartn6S Q YZbaudclkapb_pclk ;PZokaydefault&dma-controller@ff250000arm,pl330arm,primecell%@grS  Zapb_pclkthermal-zonescpu-thermald'tripscpu_alert0$passive(cpu_alert18passive)cpu_crits criticalcooling-mapsmap0(0map1)0 gpu-thermald'tripsgpu_alert08passive*gpu_crit8 criticalcooling-mapsmap0*0tsadc@ff280000rockchip,rk3368-tsadc( %S H ZZtsadcapb_pclkq  xtsadc-apbinitdefaultsleep+, +-s disabled'ethernet@ff290000rockchip,rk3368-gmac) DmacirqT-8S  f g c ]MZstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macokaya q.input/rgmiidefault0 1  'B@0usb@ff500000 generic-ehciP S okayusb@ff5800002rockchip,rk3368-usbrockchip,rk3066-usbsnps,dwc2X S Zotgotg@@ okaydma-controller@ff600000arm,pl330arm,primecell`@grS  Zapb_pclkGi2c@ff650000(rockchip,rk3368-i2crockchip,rk3288-i2ceS LZi2c <default2+okaysyr827@40silergy,syr827@.Kvdd_cpuZ,v 4`@3rtc@51haoyu,hym8563Q8%xin32ki2c@ff660000(rockchip,rk3368-i2crockchip,rk3288-i2cf =+Zi2cS Mdefault4 disabledpwm@ff680000(rockchip,rk3368-pwmrockchip,rk3288-pwmhdefault5S _ disabledpwm@ff680010(rockchip,rk3368-pwmrockchip,rk3288-pwmhdefault6S _ disabledpwm@ff680020(rockchip,rk3368-pwmrockchip,rk3288-pwmh S _ disabledpwm@ff680030(rockchip,rk3368-pwmrockchip,rk3288-pwmh0default7S _ disabledserial@ff690000&rockchip,rk3368-uartsnps,dw-apb-uartiS O WZbaudclkapb_pclk 9default8PZokaymbox@ff6b0000rockchip,rk3368-mailboxk0S E Zpclk_mailbox disabledpower-management@ff730000&rockchip,rk3368-pmusysconsimple-mfdspower-controller!rockchip,rk3368-power-controller+Jpower-domain@12 S       c h g n o r s f d d h i l k j n m$9:;<=>?@Apower-domain@14 S  o p BCDpower-domain@16S @Esyscon@ff738000)rockchip,rk3368-pmugrfsysconsimple-mfdsKio-domains&rockchip,rk3368-pmu-io-voltage-domain disabledreboot-modesyscon-reboot-mode%RB1RB?RB ORBclock-controller@ff760000rockchip,rk3368-cruvSFZxin24mT-8[ syscon@ff770000&rockchip,rk3368-grfsysconsimple-mfdw-io-domains"rockchip,rk3368-io-voltage-domain disabledwatchdog@ff800000 rockchip,rk3368-wdtsnps,dw-wdtS p Ookaytimer@ff810000,rockchip,rk3368-timerrockchip,rk3288-timer  BS a U Zpclktimerspdif@ff880000rockchip,rk3368-spdif 6S S  ZmclkhclkhGmtxdefaultHw disabledi2s-2ch@ff890000(rockchip,rk3368-i2srockchip,rk3066-i2s (Zi2s_clki2s_hclkS T hGGmtxrxw disabledi2s-8ch@ff898000(rockchip,rk3368-i2srockchip,rk3066-i2s 5Zi2s_clki2s_hclkS R hGGmtxrxdefaultIw disablediommu@ff900800rockchip,iommu S  ZaclkifaceJ  disablediommu@ff914000rockchip,iommu @P S  ZaclkifaceJ  disablediommu@ff930300rockchip,iommu S  ZaclkifaceJ  disablediommu@ff9a0440rockchip,iommu @@@ S  Zaclkiface disablediommu@ff9a0800rockchip,iommu  S  Zaclkiface disabledqos@ffad0000rockchip,rk3368-qossyscon 9qos@ffad0080rockchip,rk3368-qossyscon :qos@ffad0100rockchip,rk3368-qossyscon ;qos@ffad0180rockchip,rk3368-qossyscon <qos@ffad0200rockchip,rk3368-qossyscon =qos@ffad0280rockchip,rk3368-qossyscon >qos@ffad0300rockchip,rk3368-qossyscon ?qos@ffad0380rockchip,rk3368-qossyscon @qos@ffad0400rockchip,rk3368-qossyscon Aqos@ffae0000rockchip,rk3368-qossyscon Bqos@ffae0100rockchip,rk3368-qossyscon Cqos@ffae0180rockchip,rk3368-qossyscon Dqos@ffaf0000rockchip,rk3368-qossyscon Eefuse@ffb00000rockchip,rk3368-efuse +S q Zpclk_efusecpu-leakage@17temp-adjust@1finterrupt-controller@ffb71000 arm,gic-400@ @ `   pinctrlrockchip,rk3368-pinctrlT-K+gpio@ff750000rockchip,gpio-bankuS @ QUgpio@ff780000rockchip,gpio-bankxS A Rgpio@ff790000rockchip,gpio-bankyS B SSgpio@ff7a0000rockchip,gpio-bankzS C T1pcfg-pull-upNpcfg-pull-down!Qpcfg-pull-none0Opcfg-pull-none-12ma0= Pemmcemmc-clkLLemmc-cmdLMemmc-pwrLNemmc-bus1LNemmc-bus4@LNNNNemmc-bus8LMMMMMMMMemmc-resetLORgmacrgmii-pinsLOOOP P PPP POOOOOO0rmii-pinsLOOOP P POOOOi2c0i2c0-xfer LOO2i2c1i2c1-xfer LOO4i2c2i2c2-xfer L OO"i2c3i2c3-xfer LOO#i2c4i2c4-xfer LOO$i2c5i2c5-xfer LOO%i2si2s-8ch-busL O OOOOOOOOIpwm0pwm0-pinLO5pwm1pwm1-pinLO6pwm3pwm3-pinLO7sdio0sdio0-bus1LNsdio0-bus4@LNNNNsdio0-cmdLNsdio0-clkLOsdio0-cdLNsdio0-wpLNsdio0-pwrLNsdio0-bkpwrLNsdio0-intLNsdmmcsdmmc-clkL L sdmmc-cmdL M sdmmc-cdL M sdmmc-bus1LMsdmmc-bus4@LMMMMspdifspdif-txLOHspi0spi0-clkLNspi0-cs0LNspi0-cs1LNspi0-txLNspi0-rxLNspi1spi1-clkLNspi1-cs0LNspi1-cs1LNspi1-rxLNspi1-txLNspi2spi2-clkL Nspi2-cs0L N!spi2-rxL N spi2-txL Ntsadcotp-pinLO+otp-outLO,uart0uart0-xfer LNOuart0-ctsLOuart0-rtsLOuart1uart1-xfer LNOuart1-ctsLOuart1-rtsLOuart2uart2-xfer LNO8uart3uart3-xfer LNOuart3-ctsLOuart3-rtsLOuart4uart4-xfer LNO&uart4-ctsLOuart4-rtsLOpcfg-pull-none-drv-8ma0=Lpcfg-pull-up-drv-8ma=Mkeyspwr-keyLQTledsstby-pwrenL OWled-ctlLOVusbhost-vbus-drvLOXchosenZserial2:115200n8memory@0memoryemmc-pwrseqmmc-pwrseq-emmcRdefault fSexternal-gmac-clock fixed-clock8sY@ %ext_gmac.gpio-keys gpio-keysdefaultTkey-powerr lU GPIO Powertgpio-leds gpio-ledsled-0 l1orion:red:leddefaultVonled-1 lU orion:blue:leddefaultWoffvcc18-regulatorregulator-fixedKvcc_18vw@w@3vcc-host-regulatorregulator-fixed UdefaultX Kvcc_host3vcc-io-regulatorregulator-fixedKvcc_iov2Z2Z3Yvcc-lan-regulatorregulator-fixedKvcc_lanv2Z2ZY/vcc-sd-regulatorregulator-fixedKvcc_sd 1 vw@2ZYvcc-sys-regulatorregulator-fixedKvcc_sysvLK@LK@3vcc-io-sd-regulatorregulator-fixed Kvccio_sdvw@2ZYvccio-wl-regulatorregulator-fixed Kvccio_wlv2Z2ZYvdd-10-regulatorregulator-fixedKvdd_10vB@B@3 compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3i2c0i2c1i2c2i2c3i2c4i2c5serial0serial1serial2serial3serial4spi0spi1spi2ethernet0mmc0mmc1cpudevice_typeregenable-method#cooling-cellsphandleinterruptsinterrupt-affinityclock-frequencyclock-output-names#clock-cellsmax-frequencyclocksclock-namesfifo-depthresetsreset-namesstatusbus-widthcap-sd-highspeedcard-detect-delaypinctrl-namespinctrl-0vmmc-supplyvqmmc-supplycap-mmc-highspeedmmc-pwrseqmmc-hs200-1_2vmmc-hs200-1_8vnon-removable#io-channel-cellsvref-supplyreg-shiftreg-io-width#dma-cellsarm,pl330-broken-no-flushparm,pl330-periph-burstpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicepinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-tempinterrupt-namesrockchip,grfassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaydr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizefcs,suspend-voltage-selectorregulator-nameregulator-enable-ramp-delayregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onvin-supply#pwm-cells#mbox-cells#power-domain-cellspm_qosoffsetmode-normalmode-recoverymode-bootloadermode-loader#reset-cellsdmasdma-names#sound-dai-cellspower-domains#iommu-cellsrockchip,disable-mmu-resetinterrupt-controller#interrupt-cellsrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthrockchip,pinsstdout-pathreset-gpioswakeup-sourcelabellinux,codedefault-state9 .8 ..;snd-mpu401.ko.gz:\snd-mpu401-uart.ko.gz Oc .~.. rV .S.. $H< .8 ..>snd-opl3-synth.ko.gz=\snd-opl3-lib.ko.gz root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin adm:x:4:root,daemon tty:x:5: disk:x:6:root lp:x:7:lp kmem:x:9: wheel:x:10:root floppy:x:11:root mail:x:12:mail news:x:13:news uucp:x:14:uucp cron:x:16:cron audio:x:18: cdrom:x:19: dialout:x:20:root ftp:x:21: sshd:x:22: input:x:23: tape:x:26:root video:x:27:root netdev:x:28: kvm:x:34:kvm games:x:35: shadow:x:42: www-data:x:82: users:x:100:games ntp:x:123: abuild:x:300: utmp:x:406: ping:x:999: nogroup:x:65533: nobody:x:65534: klogd:x:101:klogd chrony:x:102:chrony dhcpcd:x:103: root:x:0:0:root:/root:/bin/sh bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/mail:/sbin/nologin news:x:9:13:news:/usr/lib/news:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin cron:x:16:16:cron:/var/spool/cron:/sbin/nologin ftp:x:21:21::/var/lib/ftp:/sbin/nologin sshd:x:22:22:sshd:/dev/null:/sbin/nologin games:x:35:35:games:/usr/games:/sbin/nologin ntp:x:123:123:NTP:/var/empty:/sbin/nologin guest:x:405:100:guest:/dev/null:/sbin/nologin nobody:x:65534:65534:nobody:/:/sbin/nologin klogd:x:100:101:klogd:/dev/null:/sbin/nologin chrony:x:101:102:chrony:/var/log/chrony:/sbin/nologin dhcpcd:x:102:103:dhcpcd:/var/lib/dhcpcd:/sbin/nologin root:::0::::: bin:!::0::::: daemon:!::0::::: lp:!::0::::: sync:!::0::::: shutdown:!::0::::: halt:!::0::::: mail:!::0::::: news:!::0::::: uucp:!::0::::: cron:!::0::::: ftp:!::0::::: sshd:!::0::::: games:!::0::::: ntp:!::0::::: guest:!::0::::: nobody:!::0::::: klogd:!:20064:0:99999:7::: chrony:!:20064:0:99999:7::: dhcpcd:!:20064:0:99999:7::: root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin adm:x:4:root,daemon tty:x:5: disk:x:6:root lp:x:7:lp kmem:x:9: wheel:x:10:root floppy:x:11:root mail:x:12:mail news:x:13:news uucp:x:14:uucp cron:x:16:cron audio:x:18: cdrom:x:19: dialout:x:20:root ftp:x:21: sshd:x:22: input:x:23: tape:x:26:root video:x:27:root netdev:x:28: kvm:x:34:kvm games:x:35: shadow:x:42: www-data:x:82: users:x:100:games ntp:x:123: abuild:x:300: utmp:x:406: ping:x:999: nogroup:x:65533: nobody:x:65534: klogd:x:101:klogd chrony:x:102:chrony dhcpcd:x:103:dhcpcd https://dl-cdn.alpinelinux.org/alpine/v3.21/main https://dl-cdn.alpinelinux.org/alpine/v3.21/community #https://dl-cdn.alpinelinux.org/alpine/v3.21/testing -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0 64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+ xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL VQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3v8/ye/V/t5xf4JiXLXa hWFRozsnmn3hobON20GdmkrzKzO/eUqPOKTpg2GtvBhK30fu5oY5uN2ORiv2Y2ht eLiZ9HVz3XP8Fm9frha60B7KNu66FO5P2o3i+E+DWTPqqPcCG6t4Znk2BypILcit wiPKTsgbBQR2qo/cO01eLLdt6oOzAaF94NH0656kvRewdo6HG4urbO46tCAizvCR CA7KGFMyad8WdKkTjxh8YLDLoOCtoZmXmQAiwfRe9pKXRH/XXGop8SYptLqyVVQ+ tegOD9wRs2tOlgcLx4F/uMzHN7uoho6okBPiifRX+Pf38Vx+ozXh056tjmdZkCaV aQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnC+bR4bHf/L6QdU4puhQ gl1MHePszRC38bzvVFDUJsmCaMCL2suCs2A2yxAgGb9pu9AJYLAmxQC4mM3jNqhg /E7yuaBbek3O02zN/ctvflJ250wZCy+z0ZGIp1ak6pu1j14IwHokl9j36zNfGtfv ADVOcdpWITFFlPqwq1qt/H3UsKVmtiF3BNWWTeUEQwKvlU8ymxgS99yn0+4OPyNT L3EUeS+NQJtDS01unau0t7LnjUXn+XIneWny8bIYOQCuVR6s/gpIGuhBaUqwaJOw 7jkJZYF2Ij7uPb4b5/R3vX2FfxxqEHqssFSg8FFUNTZz3qNZs0CRVyfA972g9WkJ hPfn31pQYil4QGRibCMIeU27YAEjXoqfJKEPh4UWMQsQLrEfdGfb8VgwrPbniGfU L3jKJR3VAafL9330iawzVQDlIlwGl6u77gEXMl9K0pfazunYhAp+BMP+9ot5ckK+ osmrqj11qMESsAj083GeFdfV3pXEIwUytaB0AKEht9DbqUfiE/oeZ/LAXgySMtVC sbC4ESmgVeY2xSBIJdDyUap7FR49GGrw0W49NUv9gRgQtGGaNVQQO9oGL2PBC41P iWF9GLoX30HIz1P8PF/cZvicSSPkQf2Z6TV+t0ebdGNS5DjapdnCrq8m9Z0pyKsQ uxAL2a7zX8l5i1CZh1ycUGsCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU pNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X 0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6 ADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ raQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy KLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj /QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H Kuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs mFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1 /J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq XIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4 VORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0 XkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ piM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46 xLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP ODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM EyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr DzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+ f53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF HwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk Ok9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6 9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT JZDr++FjKrnnijbyNF8b98UCAwEAAQ== -----END PUBLIC KEY----- aarch64 /dev/cdrom /media/cdrom iso9660 noauto,ro 0 0 /dev/usbdisk /media/usb vfat noauto,ro 0 0 localhost 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain # /etc/inittab ::sysinit:/sbin/openrc sysinit ::sysinit:/sbin/openrc boot ::wait:/sbin/openrc default # Set up a couple of getty's tty1::respawn:/sbin/getty 38400 tty1 tty2::respawn:/sbin/getty 38400 tty2 tty3::respawn:/sbin/getty 38400 tty3 tty4::respawn:/sbin/getty 38400 tty4 tty5::respawn:/sbin/getty 38400 tty5 tty6::respawn:/sbin/getty 38400 tty6 # Put a getty on the serial port #ttyS0::respawn:/sbin/getty -L 115200 ttyS0 vt100 # Stuff to do for the 3-finger salute ::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting ::shutdown:/sbin/openrc shutdown af_packet ipv6 # musl itself does not support NSS, however some third-party DNS # implementations use the nsswitch.conf file to determine what # policy to follow. # Editing this file is not recommended. hosts: files dns export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export PAGER=less umask 022 # use nicer PS1 for bash and busybox ash if [ -n "$BASH_VERSION" -o "$BB_ASH_VERSION" ]; then PS1='\h:\w\$ ' # use nicer PS1 for zsh elif [ -n "$ZSH_VERSION" ]; then PS1='%m:%~%# ' # set up fallback default PS1 else : "${HOSTNAME:=$(hostname)}" PS1='${HOSTNAME%%.*}:$PWD' [ "$(id -u)" -eq 0 ] && PS1="${PS1}# " || PS1="${PS1}\$ " fi for script in /etc/profile.d/*.sh ; do if [ -r "$script" ] ; then . "$script" fi done unset script # Internet (IP) protocols # # Updated from http://www.iana.org/assignments/protocol-numbers and other # sources. # New protocols will be added on request if they have been officially # assigned by IANA and are not historical. # If you need a huge list of used numbers please install the nmap package. ip 0 IP # internet protocol, pseudo protocol number hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol igp 9 IGP # any private interior gateway (Cisco) pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340] xtp 36 XTP # Xpress Transfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport ipv6 41 IPv6 # Internet Protocol, version 6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 idrp 45 IDRP # Inter-Domain Routing Protocol rsvp 46 RSVP # Reservation Protocol gre 47 GRE # General Routing Encapsulation esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] ah 51 IPSEC-AH # Authentication Header [RFC2402] skip 57 SKIP # SKIP ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) vmtp 81 VMTP # Versatile Message Transport eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) ospf 89 OSPFIGP # Open Shortest Path First IGP ax.25 93 AX.25 # AX.25 frames ipip 94 IPIP # IP-within-IP Encapsulation Protocol etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] # 99 # any private encryption scheme pim 103 PIM # Protocol Independent Multicast ipcomp 108 IPCOMP # IP Payload Compression Protocol vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] isis 124 ISIS # IS-IS over IPv4 sctp 132 SCTP # Stream Control Transmission Protocol fc 133 FC # Fibre Channel mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775] udplite 136 UDPLite # UDP-Lite [RFC3828] mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] manet 138 # MANET Protocols [RFC5498] hip 139 HIP # Host Identity Protocol shim6 140 Shim6 # Shim6 Protocol [RFC5533] wesp 141 WESP # Wrapped Encapsulating Security Payload rohc 142 ROHC # Robust Header Compression ethernet 143 Ethernet # Ethernet encapsulation for SRv6 [RFC8986] # The following entries have not been assigned by IANA but are used # internally by the Linux kernel. mptcp 262 MPTCP # Multipath TCP connection # Network services, Internet style # # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml . # # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of used numbers please install the nmap package. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver whois 43/tcp nicname tacacs 49/tcp # Login Host Protocol (TACACS) tacacs 49/udp domain 53/tcp # Domain Name Server domain 53/udp bootps 67/udp bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher finger 79/tcp http 80/tcp www # WorldWideWeb HTTP kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5 kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5 iso-tsap 102/tcp tsap # part of ISODE acr-nema 104/tcp dicom # Digital Imag. & Comm. 300 pop3 110/tcp pop-3 # POP version 3 sunrpc 111/tcp portmapper # RPC 4.0 portmapper sunrpc 111/udp portmapper auth 113/tcp authentication tap ident nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/udp # Network Time Protocol epmap 135/tcp loc-srv # DCE endpoint resolution netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS session service imap2 143/tcp imap # Interim Mail Access P 2 and 4 snmp 161/tcp # Simple Net Mgmt Protocol snmp 161/udp snmp-trap 162/tcp snmptrap # Traps for SNMP snmp-trap 162/udp snmptrap cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp mailq 174/tcp # Mailer transport queue for Zmailer xdmcp 177/udp # X Display Manager Control Protocol bgp 179/tcp # Border Gateway Protocol smux 199/tcp # SNMP Unix Multiplexer qmtp 209/tcp # Quick Mail Transfer Protocol z3950 210/tcp wais # NISO Z39.50 database ipx 213/udp # IPX [RFC1234] ptp-event 319/udp ptp-general 320/udp pawserv 345/tcp # Perf Analysis Workbench zserv 346/tcp # Zebra server rpc2portmap 369/tcp rpc2portmap 369/udp # Coda portmapper codaauth2 370/tcp codaauth2 370/udp # Coda authentication server clearcase 371/udp Clearcase ldap 389/tcp # Lightweight Directory Access Protocol ldap 389/udp svrloc 427/tcp # Server Location svrloc 427/udp https 443/tcp # http protocol over TLS/SSL https 443/udp # HTTP/3 snpp 444/tcp # Simple Network Paging Protocol microsoft-ds 445/tcp # Microsoft Naked CIFS kpasswd 464/tcp kpasswd 464/udp submissions 465/tcp ssmtp smtps urd # Submission over TLS [RFC8314] saft 487/tcp # Simple Asynchronous File Transfer isakmp 500/udp # IPSEC key management rtsp 554/tcp # Real Time Stream Control Protocol rtsp 554/udp nqs 607/tcp # Network Queuing system asf-rmcp 623/udp # ASF Remote Management and Control Protocol qmqp 628/tcp ipp 631/tcp # Internet Printing Protocol ldp 646/tcp # Label Distribution Protocol ldp 646/udp # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd syslog # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP gdomap 538/tcp # GNUstep distributed objects gdomap 538/udp uucp 540/tcp uucpd # uucp daemon klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) dhcpv6-client 546/udp dhcpv6-server 547/udp afpovertcp 548/tcp # AFP over TCP nntps 563/tcp snntp # NNTP over SSL submission 587/tcp # Submission [RFC4409] ldaps 636/tcp # LDAP over SSL ldaps 636/udp tinc 655/tcp # tinc control port tinc 655/udp silc 706/tcp kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # domain-s 853/tcp # DNS over TLS [RFC7858] domain-s 853/udp # DNS over DTLS [RFC8094] rsync 873/tcp ftps-data 989/tcp # FTP over SSL (data) ftps 990/tcp telnets 992/tcp # Telnet over SSL imaps 993/tcp # IMAP over SSL pop3s 995/tcp # POP-3 over SSL # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # socks 1080/tcp # socks proxy server proofd 1093/tcp rootd 1094/tcp openvpn 1194/tcp openvpn 1194/udp rmiregistry 1099/tcp # Java RMI Registry lotusnote 1352/tcp lotusnotes # Lotus Note ms-sql-s 1433/tcp # Microsoft SQL Server ms-sql-m 1434/udp # Microsoft SQL Monitor ingreslock 1524/tcp datametrics 1645/tcp old-radius datametrics 1645/udp old-radius sa-msg-port 1646/tcp old-radacct sa-msg-port 1646/udp old-radacct kermit 1649/tcp groupwise 1677/tcp l2f 1701/udp l2tp radius 1812/tcp radius 1812/udp radius-acct 1813/tcp radacct # Radius Accounting radius-acct 1813/udp radacct cisco-sccp 2000/tcp # Cisco SCCP nfs 2049/tcp # Network File System nfs 2049/udp # Network File System gnunet 2086/tcp gnunet 2086/udp rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99 rtcm-sc104 2101/udp gsigatekeeper 2119/tcp gris 2135/tcp # Grid Resource Information Server cvspserver 2401/tcp # CVS client/server operations venus 2430/tcp # codacon port venus 2430/udp # Venus callback/wbc interface venus-se 2431/tcp # tcp side effects venus-se 2431/udp # udp sftp side effect codasrv 2432/tcp # not used codasrv 2432/udp # server port codasrv-se 2433/tcp # tcp side effects codasrv-se 2433/udp # udp sftp side effect mon 2583/tcp # MON traps mon 2583/udp dict 2628/tcp # Dictionary server f5-globalsite 2792/tcp gsiftp 2811/tcp gpsd 2947/tcp gds-db 3050/tcp gds_db # InterBase server icpv2 3130/udp icp # Internet Cache Protocol isns 3205/tcp # iSNS Server Port isns 3205/udp # iSNS Server Port iscsi-target 3260/tcp mysql 3306/tcp ms-wbt-server 3389/tcp nut 3493/tcp # Network UPS Tools nut 3493/udp distcc 3632/tcp # distributed compiler daap 3689/tcp # Digital Audio Access Protocol svn 3690/tcp subversion # Subversion protocol suucp 4031/tcp # UUCP over SSL sysrqd 4094/tcp # sysrq daemon sieve 4190/tcp # ManageSieve Protocol epmd 4369/tcp # Erlang Port Mapper Daemon remctl 4373/tcp # Remote Authenticated Command Service f5-iquery 4353/tcp # F5 iQuery ntske 4460/tcp # Network Time Security Key Establishment ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947] iax 4569/udp # Inter-Asterisk eXchange mtn 4691/tcp # monotone Netsync Protocol radmin-port 4899/tcp # RAdmin Port sip 5060/tcp # Session Initiation Protocol sip 5060/udp sip-tls 5061/tcp sip-tls 5061/udp xmpp-client 5222/tcp jabber-client # Jabber Client Connection xmpp-server 5269/tcp jabber-server # Jabber Server Connection cfengine 5308/tcp mdns 5353/udp # Multicast DNS postgresql 5432/tcp postgres # PostgreSQL Database freeciv 5556/tcp rptp # Freeciv gameplay amqps 5671/tcp # AMQP protocol over TLS/SSL amqp 5672/tcp amqp 5672/sctp x11 6000/tcp x11-0 # X Window System x11-1 6001/tcp x11-2 6002/tcp x11-3 6003/tcp x11-4 6004/tcp x11-5 6005/tcp x11-6 6006/tcp x11-7 6007/tcp gnutella-svc 6346/tcp # gnutella gnutella-svc 6346/udp gnutella-rtr 6347/tcp # gnutella gnutella-rtr 6347/udp redis 6379/tcp sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service sge-execd 6445/tcp sge_execd # Grid Engine Execution Service mysql-proxy 6446/tcp # MySQL Proxy babel 6696/udp # Babel Routing Protocol ircs-u 6697/tcp # Internet Relay Chat via TLS/SSL bbs 7000/tcp afs3-fileserver 7000/udp afs3-callback 7001/udp # callbacks to cache managers afs3-prserver 7002/udp # users & groups database afs3-vlserver 7003/udp # volume location database afs3-kaserver 7004/udp # AFS/Kerberos authentication afs3-volser 7005/udp # volume managment server afs3-bos 7007/udp # basic overseer process afs3-update 7008/udp # server-to-server updater afs3-rmtsys 7009/udp # remote cache manager service font-service 7100/tcp xfs # X Font Service http-alt 8080/tcp webcache # WWW caching service puppet 8140/tcp # The Puppet master service bacula-dir 9101/tcp # Bacula Director bacula-fd 9102/tcp # Bacula File Daemon bacula-sd 9103/tcp # Bacula Storage Daemon xmms2 9667/tcp # Cross-platform Music Multiplexing System nbd 10809/tcp # Linux Network Block Device zabbix-agent 10050/tcp # Zabbix Agent zabbix-trapper 10051/tcp # Zabbix Trapper amanda 10080/tcp # amanda backup services dicom 11112/tcp hkp 11371/tcp # OpenPGP HTTP Keyserver db-lsp 17500/tcp # Dropbox LanSync Protocol dcap 22125/tcp # dCache Access Protocol gsidcap 22128/tcp # GSI dCache Access Protocol wnn6 22273/tcp # wnn6 # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol #========================================================================= # The remaining port numbers are not as allocated by IANA. #========================================================================= # Kerberos (Project Athena/MIT) services kerberos4 750/udp kerberos-iv kdc # Kerberos (server) kerberos4 750/tcp kerberos-iv kdc kerberos-master 751/udp kerberos_master # Kerberos authentication kerberos-master 751/tcp passwd-server 752/udp passwd_server # Kerberos passwd server krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager iprop 2121/tcp # incremental propagation supfilesrv 871/tcp # Software Upgrade Protocol server supfiledbg 1127/tcp # Software Upgrade Protocol debugging # # Services added for the Debian GNU/Linux distribution # poppassd 106/tcp # Eudora moira-db 775/tcp moira_db # Moira database moira-update 777/tcp moira_update # Moira update protocol moira-ureg 779/udp moira_ureg # Moira user registration spamd 783/tcp # spamassassin daemon skkserv 1178/tcp # skk jisho server port predict 1210/udp # predict -- satellite tracking rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel xtelw 1314/tcp # french minitel zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # ripd vty (zebra) ripngd 2603/tcp # ripngd vty (zebra) ospfd 2604/tcp # ospfd vty (zebra) bgpd 2605/tcp # bgpd vty (zebra) ospf6d 2606/tcp # ospf6d vty (zebra) ospfapi 2607/tcp # OSPF-API isisd 2608/tcp # ISISd vty (zebra) fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) munin 4949/tcp lrrd # Munin rplay 5555/udp # RPlay audio service nrpe 5666/tcp # Nagios Remote Plugin Executor nsca 5667/tcp # Nagios Agent - NSCA canna 5680/tcp # cannaserver syslog-tls 6514/tcp # Syslog over TLS [RFC5425] sane-port 6566/tcp sane saned # SANE network scanner daemon ircd 6667/tcp # Internet Relay Chat zope-ftp 8021/tcp # zope management by ftp tproxy 8081/tcp # Transparent Proxy omniorb 8088/tcp # OmniORB clc-build-daemon 8990/tcp # Common lisp build daemon xinetd 9098/tcp git 9418/tcp # Git Version Control System zope 9673/tcp # zope server webmin 10000/tcp kamanda 10081/tcp # amanda backup services (Kerberos) amandaidx 10082/tcp # amanda backup services amidxtape 10083/tcp # amanda backup services sgi-cmsd 17001/udp # Cluster membership services daemon sgi-crsd 17002/udp sgi-gcd 17003/udp # SGI Group membership daemon sgi-cad 17004/tcp # Cluster Admin daemon binkp 24554/tcp # binkp fidonet protocol asp 27374/tcp # Address Search Protocol asp 27374/udp csync2 30865/tcp # cluster synchronization tool dircproxy 57000/tcp # Detachable IRC Proxy tfido 60177/tcp # fidonet EMSI over telnet fido 60179/tcp # fidonet EMSI over TCP # Local services # valid login shells /bin/sh /bin/ash # content of this file will override /etc/sysctl.d/* usr/bin/[ usr/bin/[[ sbin/acpid usr/sbin/add-shell usr/sbin/addgroup usr/sbin/adduser sbin/adjtimex bin/arch sbin/arp usr/sbin/arping bin/ash usr/bin/awk bin/base64 usr/bin/basename bin/bbconfig usr/bin/bc usr/bin/beep usr/bin/blkdiscard sbin/blkid sbin/blockdev usr/sbin/brctl usr/bin/bunzip2 usr/bin/bzcat usr/bin/bzip2 usr/bin/cal bin/cat bin/chattr bin/chgrp bin/chmod bin/chown usr/sbin/chpasswd usr/sbin/chroot usr/bin/chvt usr/bin/cksum usr/bin/clear usr/bin/cmp usr/bin/comm bin/cp usr/bin/cpio usr/sbin/crond usr/bin/crontab usr/bin/cryptpw usr/bin/cut bin/date usr/bin/dc bin/dd usr/bin/deallocvt usr/sbin/delgroup usr/sbin/deluser sbin/depmod bin/df usr/bin/diff usr/bin/dirname bin/dmesg bin/dnsdomainname usr/bin/dos2unix usr/bin/du bin/dumpkmap bin/echo bin/egrep usr/bin/eject usr/bin/env usr/sbin/ether-wake usr/bin/expand usr/bin/expr usr/bin/factor usr/bin/fallocate bin/false bin/fatattr usr/sbin/fbset sbin/fbsplash bin/fdflush sbin/fdisk bin/fgrep usr/bin/find sbin/findfs usr/bin/flock usr/bin/fold usr/bin/free sbin/fsck sbin/fstrim bin/fsync usr/bin/fuser bin/getopt sbin/getty bin/grep usr/bin/groups bin/gunzip bin/gzip sbin/halt usr/bin/hd usr/bin/head usr/bin/hexdump usr/bin/hostid bin/hostname sbin/hwclock usr/bin/id sbin/ifconfig sbin/ifdown sbin/ifenslave sbin/ifup sbin/init sbin/inotifyd sbin/insmod usr/bin/install bin/ionice bin/iostat sbin/ip sbin/ipaddr bin/ipcalc usr/bin/ipcrm usr/bin/ipcs sbin/iplink sbin/ipneigh sbin/iproute sbin/iprule sbin/iptunnel bin/kbd_mode bin/kill usr/bin/killall usr/sbin/killall5 sbin/klogd usr/bin/last usr/bin/less bin/link bin/linux32 bin/linux64 bin/ln usr/sbin/loadfont sbin/loadkmap usr/bin/logger bin/login sbin/logread sbin/losetup bin/ls bin/lsattr sbin/lsmod usr/bin/lsof usr/bin/lsusb usr/bin/lzcat usr/bin/lzma bin/lzop usr/bin/lzopcat bin/makemime usr/bin/md5sum sbin/mdev usr/bin/mesg usr/bin/microcom bin/mkdir sbin/mkdosfs usr/bin/mkfifo sbin/mkfs.vfat bin/mknod usr/bin/mkpasswd sbin/mkswap bin/mktemp sbin/modinfo sbin/modprobe bin/more bin/mount bin/mountpoint bin/mpstat bin/mv sbin/nameif usr/sbin/nanddump usr/sbin/nandwrite usr/sbin/nbd-client usr/bin/nc bin/netstat bin/nice usr/bin/nl usr/bin/nmeter usr/bin/nohup sbin/nologin usr/bin/nproc usr/bin/nsenter usr/bin/nslookup usr/sbin/ntpd usr/bin/od usr/bin/openvt usr/sbin/partprobe usr/bin/passwd usr/bin/paste usr/bin/pgrep bin/pidof bin/ping bin/ping6 bin/pipe_progress sbin/pivot_root usr/bin/pkill usr/bin/pmap sbin/poweroff bin/printenv usr/bin/printf bin/ps usr/bin/pscan usr/bin/pstree bin/pwd usr/bin/pwdx sbin/raidautorun usr/sbin/rdate usr/sbin/rdev usr/sbin/readahead usr/bin/readlink usr/bin/realpath sbin/reboot bin/reformime usr/sbin/remove-shell usr/bin/renice usr/bin/reset usr/bin/resize bin/rev usr/sbin/rfkill bin/rm bin/rmdir sbin/rmmod sbin/route bin/run-parts bin/sed usr/sbin/sendmail usr/bin/seq sbin/setconsole usr/sbin/setfont usr/bin/setkeycodes usr/sbin/setlogcons bin/setpriv bin/setserial usr/bin/setsid bin/sh usr/bin/sha1sum usr/bin/sha256sum usr/bin/sha3sum usr/bin/sha512sum usr/bin/showkey usr/bin/shred usr/bin/shuf sbin/slattach bin/sleep usr/bin/sort usr/bin/split bin/stat usr/bin/strings bin/stty bin/su usr/bin/sum sbin/swapoff sbin/swapon sbin/switch_root bin/sync sbin/sysctl sbin/syslogd usr/bin/tac usr/bin/tail bin/tar usr/bin/tee usr/bin/test usr/bin/time usr/bin/timeout usr/bin/top bin/touch usr/bin/tr usr/bin/traceroute usr/bin/traceroute6 usr/bin/tree bin/true usr/bin/truncate usr/bin/tty usr/bin/ttysize sbin/tunctl sbin/udhcpc usr/bin/udhcpc6 bin/umount bin/uname usr/bin/unexpand usr/bin/uniq usr/bin/unix2dos usr/bin/unlink usr/bin/unlzma usr/bin/unlzop usr/bin/unshare usr/bin/unxz usr/bin/unzip usr/bin/uptime bin/usleep usr/bin/uudecode usr/bin/uuencode sbin/vconfig usr/bin/vi usr/bin/vlock usr/bin/volname bin/watch sbin/watchdog usr/bin/wc usr/bin/wget usr/bin/which usr/bin/who usr/bin/whoami usr/bin/whois usr/bin/xargs usr/bin/xxd usr/bin/xzcat usr/bin/yes bin/zcat sbin/zcip /var/log/acpid.log { missingok notifempty sharedscripts postrotate /etc/init.d/acpid --quiet --ifstarted restart || true endscript } #!/bin/sh # Block ifup until DAD completion # Copyright (c) 2016-2018 Kaarle Ritvanen has_flag() { ip address show dev $IFACE up | grep -q " $1 " } counter=100 while [ "$counter" -gt 0 ] && has_flag tentative && ! has_flag dadfailed; do sleep 0.2 counter=$((counter - 1)) done console tty0 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 hvc0 ttyS0 ttyS1 ttyS2 ttyGS0 ttyAMA0 ttyAMA1 ttyTCU0 ttyTHS0 ttyTHS1 ttymxc0 ttymxc2 # Do not overwrite /etc/resolv.conf #RESOLV_CONF="no" # Use alternative path for resolv.conf #RESOLV_CONF="/tmp/resolv.conf" # Prevent overwriting of resolv.conf on a per-interface basis #NO_DNS="eth1 wlan1" # List of interfaces where DHCP routes are ignored #NO_GATEWAY="eth1 wlan1" #!/bin/sh # script for udhcpc # Copyright (c) 2008 Natanael Copa UDHCPC="/etc/udhcpc" UDHCPC_CONF="$UDHCPC/udhcpc.conf" RESOLV_CONF="/etc/resolv.conf" [ -f $UDHCPC_CONF ] && . $UDHCPC_CONF export broadcast export dns export domain export interface export ip export mask export metric export staticroutes export router export subnet export PATH=/usr/bin:/bin:/usr/sbin:/sbin run_scripts() { local dir=$1 if [ -d $dir ]; then for i in $dir/*; do [ -f $i ] && $i done fi } deconfig() { ip -4 addr flush dev $interface } is_wifi() { test -e /sys/class/net/$interface/phy80211 } if_index() { if [ -e /sys/class/net/$interface/ifindex ]; then cat /sys/class/net/$interface/ifindex else ip -4 link show dev $interface | head -n1 | cut -d: -f1 fi } calc_metric() { local base= if is_wifi; then base=300 else base=200 fi echo $(( $base + $(if_index) )) } route_add() { local to=$1 gw=$2 num=$3 # special case for /32 subnets: # /32 instructs kernel to always use routing for all outgoing packets # (they can never be sent to local subnet - there is no local subnet for /32). # Used in datacenters, avoids the need for private ip-addresses between two hops. if [ "$subnet" = "255.255.255.255" ]; then ip -4 route add $gw dev $interface fi ip -4 route add $to via $gw dev $interface \ metric $(( $num + ${IF_METRIC:-$(calc_metric)} )) } routes() { [ -z "$router" ] && [ -z "$staticroutes" ] && return for i in $NO_GATEWAY; do [ "$i" = "$interface" ] && return done while ip -4 route del default via dev $interface 2>/dev/null; do : done local num=0 # RFC3442: # If the DHCP server returns both a Classless Static Routes option # and a Router option, the DHCP client MUST ignore the Router option. if [ -n "$staticroutes" ]; then # static routes format: dest1/mask gw1 ... destn/mask gwn set -- $staticroutes while [ -n "$1" ] && [ -n "$2" ]; do local dest="$1" gw="$2" if [ "$gw" != "0.0.0.0" ]; then route_add $dest $gw $num && num=$(( $num + 1)) fi shift 2 done else local gw= for gw in $router; do route_add 0.0.0.0/0 $gw $num && num=$(( $num + 1 )) done fi } resolvconf() { local i [ -n "$IF_PEER_DNS" ] && [ "$IF_PEER_DNS" != "yes" ] && return if [ "$RESOLV_CONF" = "no" ] || [ "$RESOLV_CONF" = "NO" ] \ || [ -z "$RESOLV_CONF" ] || [ -z "$dns" ]; then return fi for i in $NO_DNS; do [ "$i" = "$interface" ] && return done echo -n > "$RESOLV_CONF.$$" if [ -n "$search" ]; then echo "search $search" >> "$RESOLV_CONF.$$" elif [ -n "$domain" ]; then echo "search $domain" >> "$RESOLV_CONF.$$" fi for i in $dns; do echo "nameserver $i" >> "$RESOLV_CONF.$$" done chmod a+r "$RESOLV_CONF.$$" mv -f "$RESOLV_CONF.$$" "$RESOLV_CONF" } bound() { ip -4 addr add $ip/$mask ${broadcast:+broadcast $broadcast} dev $interface ip -4 link set dev $interface up routes resolvconf } renew() { if ! ip -4 addr show dev $interface | grep $ip/$mask; then ip -4 addr flush dev $interface ip -4 addr add $ip/$mask ${broadcast:+broadcast $broadcast} dev $interface fi local i for i in $router; do if ! ip -4 route show | grep ^default | grep $i; then routes break fi done if ! grep "^search $domain"; then resolvconf return fi for i in $dns; do if ! grep "^nameserver $i"; then resolvconf return fi done } case "$1" in deconfig|renew|bound) run_scripts $UDHCPC/pre-$1 $1 run_scripts $UDHCPC/post-$1 ;; leasefail) echo "udhcpc failed to get a DHCP lease" >&2 ;; nak) echo "udhcpc received DHCP NAK" >&2 ;; *) echo "Error: this script should be called from udhcpc" >&2 exit 1 ;; esac exit 0 # do daily/weekly/monthly maintenance # min hour day month weekday command */15 * * * * run-parts /etc/periodic/15min 0 * * * * run-parts /etc/periodic/hourly 0 2 * * * run-parts /etc/periodic/daily 0 3 * * 6 run-parts /etc/periodic/weekly 0 5 1 * * run-parts /etc/periodic/monthly # Aliases to tell insmod/modprobe which modules to use # Uncomment the network protocols you don't want loaded: # alias net-pf-1 off # Unix # alias net-pf-2 off # IPv4 # alias net-pf-3 off # Amateur Radio AX.25 # alias net-pf-4 off # IPX # alias net-pf-5 off # DDP / appletalk # alias net-pf-6 off # Amateur Radio NET/ROM # alias net-pf-9 off # X.25 # alias net-pf-10 off # IPv6 # alias net-pf-11 off # ROSE / Amateur Radio X.25 PLP # alias net-pf-19 off # Acorn Econet alias char-major-10-175 agpgart alias char-major-10-200 tun alias char-major-81 bttv alias char-major-108 ppp_generic alias /dev/ppp ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldisc-14 ppp_synctty alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate # Crypto modules (see http://www.kerneli.org/) alias loop-xfer-gen-0 loop_gen alias loop-xfer-3 loop_fish2 alias loop-xfer-gen-10 loop_gen alias cipher-2 des alias cipher-3 fish2 alias cipher-4 blowfish alias cipher-6 idea alias cipher-7 serp6f alias cipher-8 mars6 alias cipher-11 rc62 alias cipher-15 dfc2 alias cipher-16 rijndael alias cipher-17 rc5 # Support for i2c and lm_sensors alias char-major-89 i2c-dev # xfrm alias xfrm-type-2-4 xfrm4_tunnel alias xfrm-type-2-50 esp4 alias xfrm-type-2-51 ah4 alias xfrm-type-2-108 ipcomp alias xfrm-type-10-41 xfrm6_tunnel alias xfrm-type-10-50 esp6 alias xfrm-type-10-51 ah6 alias xfrm-type-10-108 ipcomp6 alias sha1 sha1-generic # change to aes-i586 to boost performance alias aes aes-generic # # Listing a module here prevents the hotplug scripts from loading it. # Usually that'd be so that some other driver will bind it instead, # no matter which driver happens to get probed first. Sometimes user # mode tools can also control driver binding. # tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices blacklist de4x5 # At least 2.4.3 and later xircom_tulip doesn't have that conflict # xircom_tulip_cb blacklist dmfe #evbug is a debug tool and should be loaded explicitly blacklist evbug # Alternate 8139 driver. Some 8139 cards need this specific driver, # though... # blacklist 8139cp # Ethernet over IEEE1394 module. In too many cases this will load # when there's no eth1394 device present (just an IEEE1394 port) blacklist eth1394 # This module causes many Intel motherboards to crash and reboot. blacklist i8xx-tco # The kernel lists this as "experimental", but for now it's "broken" blacklist via-ircc # ALSA modules to support sound modems. These should be loaded manually # if needed. For most people they just break sound support... blacklist snd-atiixp-modem blacklist snd-intel8x0m blacklist snd-via82xx-modem # we don't want use the pc speaker blacklist snd-pcsp # Alternative module to Orinoco Wireless Cards. blacklist hostap blacklist hostap_cs # framebuffer drivers blacklist aty128fb blacklist atyfb blacklist radeonfb blacklist i810fb blacklist cirrusfb blacklist intelfb blacklist kyrofb blacklist i2c-matroxfb blacklist hgafb blacklist nvidiafb blacklist rivafb blacklist savagefb blacklist sstfb blacklist neofb blacklist tridentfb blacklist tdfxfb blacklist viafb blacklist virgefb blacklist vga16fb blacklist matroxfb_base blacklist vt8623fb # blacklist 1394 drivers blacklist ohci1394 blacklist video1394 blacklist dv1394 # blacklist mISDN dirver by default as we prefer dahdi drivers blacklist hfcmulti blacklist hfcpci blacklist hfcsusb # blacklist C7 cpu freq. use acpi-cpufreq instead blacklist e_powersaver blacklist microcode # needs init config, not compatible with acpid # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12999 blacklist tiny_power_button alias parport_lowlevel parport_pc alias char-major-10-144 nvram alias binfmt-0064 binfmt_aout alias char-major-10-135 rtc # enable modeset options radeon modeset=1 options i915 modeset=1 options nouveau modeset=1 Welcome to Alpine! The Alpine Wiki contains a large amount of how-to guides and general information about administrating Alpine systems. See . You can setup the system with the command: setup-alpine You may change this message by editing /etc/motd. export CHARSET=${CHARSET:-UTF-8} export LANG=${LANG:-C.UTF-8} export LC_COLLATE=${LC_COLLATE:-C} This directory should contain shell scripts configuring system-wide environment on users' shells. Files with the .sh extension found in this directory are evaluated by Bourne-compatible shells (like ash, bash or zsh) when started as a login shell. # Setup a red prompt for root and a green one for users. # Symlink this file to color_prompt.sh to actually enable it. _normal=$'\e[0m' if [ "$USER" = root ]; then _color=$'\e[1;31m' _symbol='#' else _color=$'\e[1;32m' _symbol='$' fi if [ -n "$ZSH_VERSION" ]; then PS1="%{$_color%}%m [%{$_normal%}%~%{$_color%}]$_symbol %{$_normal%}" else PS1="\[$_color\]\h [\[$_normal\]\w\[$_color\]]$_symbol \[$_normal\]" fi unset _normal _color _symbol # Prevents SYN DOS attacks. Applies to ipv6 as well, despite name. net.ipv4.tcp_syncookies = 1 # Prevents ip spoofing. net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 # Only groups within this id range can use ping. net.ipv4.ping_group_range=999 59999 # Redirects can potentially be used to maliciously alter hosts # routing tables. net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 1 net.ipv6.conf.all.accept_redirects = 0 # The source routing feature includes some known vulnerabilities. net.ipv4.conf.all.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 # See RFC 1337 net.ipv4.tcp_rfc1337 = 1 ## Enable IPv6 Privacy Extensions (see RFC4941 and RFC3041) net.ipv6.conf.default.use_tempaddr = 2 net.ipv6.conf.all.use_tempaddr = 2 # Restarts computer after 120 seconds after kernel panic kernel.panic = 120 # Users should not be able to create soft or hard links to files # which they do not own. This mitigates several privilege # escalation vulnerabilities. fs.protected_hardlinks = 1 fs.protected_symlinks = 1 # Disable unprivileged use of the bpf(2) syscall. # Allowing unprivileged use of the bpf(2) syscall may allow a # malicious user to compromise the machine. kernel.unprivileged_bpf_disabled = 1 #!/bin/sh [ -z "$IF_BOND_MEMBERS" ] && IF_BOND_MEMBERS="$IF_BOND_SLAVES" case "$PHASE" in depend) echo "$IF_BOND_MEMBERS" ;; esac #!/bin/sh case "$PHASE" in depend) if [ "$IF_BRIDGE_PORTS" != "none" ]; then echo "$IF_BRIDGE_PORTS" fi ;; esac #!/bin/sh # some users provide a shell fragment for the hostname property. [ -n "$IF_DHCP_HOSTNAME" ] && IF_DHCP_HOSTNAME=$(eval echo $IF_DHCP_HOSTNAME) determine_implementation() { [ -n "$IF_DHCP_PROGRAM" ] && echo "$IF_DHCP_PROGRAM" && return [ -x /sbin/dhcpcd ] && echo "dhcpcd" && return [ -x /usr/sbin/dhclient ] && echo "dhclient" && return [ -x /sbin/udhcpc ] && echo "udhcpc" && return echo "could not find a supported DHCP implementation" exit 1 } start() { case "$1" in dhcpcd) [ -n "$IF_DHCP_HOSTNAME" ] && optargs="$optargs -h $IF_DHCP_HOSTNAME" [ -n "$IF_DHCP_VENDOR" ] && optargs="$optargs -i $IF_DHCP_VENDOR" [ -n "$IF_DHCP_CLIENT_ID" ] && optargs="$optargs -i $IF_DHCP_CLIENT_ID" [ -n "$IF_DHCP_LEASETIME" ] && optargs="$optargs -l $IF_DHCP_LEASETIME" ${MOCK} /sbin/dhcpcd $optargs $IFACE ;; dhclient) # Specific config file given? if [ -n "$IF_DHCP_CONFIG" ]; then optargs="$optargs -cf $IF_DHCP_CONFIG" fi ${MOCK} /usr/sbin/dhclient -pf /var/run/dhclient.$IFACE.pid $optargs $IFACE ;; udhcpc) optargs=$(eval echo $IF_UDHCPC_OPTS) [ -n "$IF_DHCP_HOSTNAME" ] && optargs="$optargs -x hostname:$IF_DHCP_HOSTNAME" [ -n "$IF_DHCP_CLIENT_ID" ] && optargs="$optargs -c $IF_DHCP_CLIENT_ID" [ -n "$IF_DHCP_SCRIPT" ] && optargs="$optargs -s $IF_DHCP_SCRIPT" ${MOCK} /sbin/udhcpc -b -R -p /var/run/udhcpc.$IFACE.pid -i $IFACE $optargs ;; *) ;; esac } stop() { case "$1" in dhcpcd) ${MOCK} /sbin/dhcpcd -k $IFACE ;; dhclient) ${MOCK} kill -9 $(cat /var/run/dhclient.$IFACE.pid) 2>/dev/null ;; udhcpc) ${MOCK} kill $(cat /var/run/udhcpc.$IFACE.pid) ;; *) ;; esac } impl=$(determine_implementation) [ -z "$VERBOSE" ] || set -x case "$PHASE" in up) start $impl ;; down) stop $impl || true ;; *) ;; esac #!/bin/sh yesno() { case "$1" in yes|1) echo 1 ;; *) echo 0 ;; esac } [ "$PHASE" != "up" ] && exit 0 [ -z "$VERBOSE" ] || set -x [ -n "$IF_FORWARD_IPV4" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV4) > /proc/sys/net/ipv4/conf/$IFACE/forwarding" [ -n "$IF_FORWARD_IPV6" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV6) > /proc/sys/net/ipv6/conf/$IFACE/forwarding" [ -n "$IF_FORWARD_IPV4_MC" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV4_MC) > /proc/sys/net/ipv4/conf/$IFACE/mc_forwarding" [ -n "$IF_FORWARD_IPV6_MC" ] && ${MOCK} /bin/sh -c "echo $(yesno $IF_FORWARD_IPV6_MC) > /proc/sys/net/ipv6/conf/$IFACE/mc_forwarding" exit 0 #!/bin/sh start() { ${MOCK} /bin/sh -c "echo 1 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra" } stop() { ${MOCK} /bin/sh -c "echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra" } [ -z "$VERBOSE" ] || set -x case "$PHASE" in up) start $impl ;; down) stop $impl ;; *) ;; esac #!/bin/sh [ -n "$VERBOSE" ] && set -x is_vlan() { case "$IFACE" in *#*) return 1 ;; *:*) return 1 ;; vlan*.*) return 1 ;; vlan*) IF_VLAN_ID="${IFACE#vlan}" [ -n "${IF_VLAN_RAW_DEVICE:-}" ] && return 0 return 1 ;; *.*) IF_VLAN_RAW_DEVICE="${IFACE%.*}" IF_VLAN_ID="${IFACE##*.}" return 0 ;; *) [ -z "${IF_VLAN_ID:-}" ] && return 1 [ -z "${IF_VLAN_RAW_DEVICE:-}" ] && return 1 return 0 ;; esac } case "$PHASE" in depend) # vlan-raw-device if is_vlan; then echo "$IF_VLAN_RAW_DEVICE" # veth-peer-name elif [ "${IF_LINK_TYPE}" = "veth" -a "${IF_VETH_PEER_NAME}" ]; then echo "${IF_VETH_PEER_NAME}" fi ;; create) if [ "${IF_LINK_TYPE}" = "dummy" ]; then if [ -d "/sys/class/net/${IFACE}" ]; then iface_type=$(ip -d link show dev "${IFACE}" | head -n3 | tail -n1 | awk '{ print $1 }') if [ "${iface_type}" != 'dummy' ]; then echo "Interface ${IFACE} exists but is of type ${iface_type} instead of dummy" exit 1 fi exit 0 fi ${MOCK} ip link add "${IFACE}" type dummy elif [ "${IF_LINK_TYPE}" = "veth" ]; then if [ ! -d "/sys/class/net/${IFACE}" ]; then ARGS="" if [ "${IF_VETH_PEER_NAME}" ]; then ARGS="peer ${IF_VETH_PEER_NAME}" fi ${MOCK} ip link add "${IFACE}" type veth ${ARGS} fi elif is_vlan; then if [ -d "/sys/class/net/${IFACE}" ]; then exit 0 fi if [ -z "${MOCK}" ]; then if [ ! -d "/sys/class/net/${IF_VLAN_RAW_DEVICE}" ]; then echo "Underlay device ${IF_VLAN_RAW_DEVICE} for ${IFACE} does not exist" exit 1 fi if ! [ -d /proc/net/vlan ]; then echo "Loading 8021q kernel module for VLAN support" ${MOCK} modprobe 8021q fi fi ${MOCK} ip link add link "${IF_VLAN_RAW_DEVICE}" name "${IFACE}" type vlan id "${IF_VLAN_ID}" fi ;; up) IF_LINK_OPTIONS="$IF_LINK_OPTIONS" [ -n "$IF_MTU" ] && IF_LINK_OPTIONS="$IF_LINK_OPTIONS mtu $IF_MTU" [ -n "$IF_HWADDRESS" ] && IF_LINK_OPTIONS="$IF_LINK_OPTIONS address $IF_HWADDRESS" ${MOCK} ip link set up dev "${IFACE}" ${IF_LINK_OPTIONS} # Set alias is configured if [ "${IF_ALIAS}" ]; then ${MOCK} ip link set alias "${IF_ALIAS}" dev "${IFACE}" fi ;; down) # Don't complain about a vanished interface when downing it if [ -z "${MOCK}" -a ! -d "/sys/class/net/${IFACE}" ]; then exit 0 fi ${MOCK} ip link set down dev "${IFACE}" ;; destroy) if [ "${IF_LINK_TYPE}" = "dummy" ] || [ "${IF_LINK_TYPE}" = "veth" ] || is_vlan; then if [ -z "${MOCK}" -a ! -d "/sys/class/net/${IFACE}" ]; then exit 0 fi ${MOCK} ip link del "${IFACE}" fi ;; esac #!/bin/sh [ -z "${VERBOSE}" ] || set -x [ -z "${IF_METRIC}" ] && IF_METRIC="1" [ -n "${IF_VRF_TABLE}" ] && VRF_TABLE="table ${IF_VRF_TABLE}" [ -n "${IF_VRF_MEMBER}" ] && VRF_TABLE="vrf ${IF_VRF_MEMBER}" [ -n "${IF_METRIC}" ] && METRIC="metric ${IF_METRIC}" addr_family() { if [ "$1" != "${1#*[0-9].[0-9]}" ]; then echo "-4" elif [ "$1" != "${1#*:[0-9a-fA-F]}" ]; then echo "-6" else exit 1 fi } configure_addresses() { for addr in ${IF_ADDRESSES}; do addrfam=$(addr_family ${addr}) if [ "${IF_POINT_TO_POINT}" -a "${addrfam}" = "-4" ]; then PEER="peer ${IF_POINT_TO_POINT}" else PEER="" fi ${MOCK} ip "${addrfam}" addr add "${addr}" ${PEER} dev "${IFACE}" done } configure_gateways() { for gw in ${IF_GATEWAYS}; do addrfam=$(addr_family ${gw}) ${MOCK} ip "${addrfam}" route add default via "${gw}" ${VRF_TABLE} ${METRIC} dev "${IFACE}" onlink done } flush() { cmd="addr" arg="dev ${IFACE}" ${MOCK} ip ${cmd} flush ${arg} } case "$PHASE" in up) configure_addresses add configure_gateways add ;; down) flush ;; *) exit 0 ;; esac # List of /tmp directories we should clean up clean_tmp_dirs="/tmp" # Should we wipe the tmp paths completely or just selectively remove known # locks / files / etc... ? wipe_tmp="NO" # Write the initial dmesg log into /var/log/dmesg after boot # This may be useful if you need the kernel boot log afterwards log_dmesg="YES" # Save the previous dmesg log to dmesg.old # This may be useful if you need to compare the current boot to the # previous one. #previous_dmesg=no # The consolefont service is not activated by default. If you need to # use it, you should run "rc-update add consolefont boot" as root. # # consolefont specifies the default font that you'd like Linux to use on the # console. You can find a good selection of fonts in /usr/share/consolefonts; consolefont="default8x16.psf.gz" # consoletranslation is the charset map file to use. Leave commented to use # the default one. Have a look in /usr/share/consoletrans for a selection of # map files you can use. #consoletranslation="8859-1_to_uni.trans" # OpenRC will attempt each of the following in succession to mount /dev. # # 1. If there is an entry for /dev in fstab, it will be used. # 2. If devtmpfs is defined in the kernel, it will be used. # 3. If tmpfs is defined in the kernel, it will be used. # # Set this to yes if you do not want OpenRC to attempt to mount /dev. # skip_mount_dev="NO" # Sets the level at which logging of messages is done to the # console. See dmesg(1) for more info. dmesg_level="1" # Pass any arguments to fsck. # By default we preen. # Linux systems also force -C0 and -T. # If fsck_args is not specified then Linux systems also use -A # (and -R if / is rw) #fsck_args="-p" # We can also specify the passno in /etc/fstab to check # If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can # do an fsck outside of the normal scope, say for /home. # Here are some examples:- #fsck_passno="=1 =2" #fsck_passno=">1" #fsck_passno="<2" # If passno is not enough granularity, you can also specify mountpoints to # check. This should NOT be used for the default non-multiplexed fsck, or your # system might not be checked. Additionally, it is mutually exclusive with # the fsck_passno setting. #fsck_mnt="" #fsck_mnt="/home" # Most modern fs's don't require a full fsck on boot, but for those that do # it may be advisable to skip this when running on battery. # WARNING: Do not turn this off if you have any JFS partitions. fsck_on_battery="YES" # fsck_shutdown causes fsck to trigger during shutdown as well as startup. # The end result of this is that if any periodic non-root filesystem checks are # scheduled, under normal circumstances the actual check will happen during # shutdown rather than at next boot. # This is useful when periodic filesystem checks are causing undesirable # delays at startup, but such delays at shutdown are acceptable. fsck_shutdown="NO" # fsck_abort_on_errors can be set to no to cause fsck to not abort on # errors. # This is useful when periodic filesystem checks are causing undesirable # aborts. fsck_abort_on_errors="YES" # Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as # Greenwich Mean Time). If that clock is set to the local time, then # set CLOCK to "local". Note that if you dual boot with Windows, then # you should set it to "local". clock="UTC" # If you want the hwclock script to set the system time (software clock) # to match the current hardware clock during bootup, leave this # commented out. # However, you can set this to "NO" if you are running a modern kernel # and using NTP to synchronize your system clock. #clock_hctosys="YES" # If you do not want to set the hardware clock to the current system # time (software clock) during shutdown, set this to no. #clock_systohc="YES" # If you wish to pass any other arguments to hwclock during bootup, # you may do so here. Alpha users may wish to use --arc or --srm here. clock_args="" # If you wish to pass any options to kill_all during shutdown, # you should do so here. # # The setting is called killall5_opts because the options here are meant # to be identical to those you could pass to killall5. killall5_opts="" # If you need to delay after each kill attempt during shutdown, set the amount # of time you need to delay here. This gets passed directly to sleep in # the shell. # kill_delay=0 # Stop the unmounting of certain points. # This could be useful for some NFS related work. #no_umounts="/dir1:/var/dir2" # # Mark certain mount points as critical. # This contains a space separated list of mount points which should be # considered critical. If one of these mount points cannot be mounted, # localmount will fail. # By default, this is empty. #critical_mounts="/home /var" # Enable loadable module support when running from RAM # when OverlayFS support is available in the kernel. # 0 means default tmpfs size (50% of physical RAM). # for more information please see kernel documention at: # https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt overlay_size=0 # Linux users can define a list of modules for a specific kernel version, # a released kernel version, a main kernel version or all kernel versions. # The most specific versioned variable will take precedence. # FreeBSD users can only use the modules="foo bar" setting. #modules_2_6_23_gentoo_r5="ieee1394 ohci1394" #modules_2_6_23="tun ieee1394" #modules_2_6="tun" #modules_2="ipv6" #modules="ohci1394" # Linux users can give the modules some arguments if needed, per version # if necessary. # Again, the most specific versioned variable will take precedence. # This is not supported on FreeBSD. #module_ieee1394_args="debug" #module_ieee1394_args_2_6_23_gentoo_r5="debug2" #module_ieee1394_args_2_6_23="debug3" #module_ieee1394_args_2_6="debug4" #module_ieee1394_args_2="debug5" # You should consult your kernel documentation and configuration # for a list of modules and their options. # As far as we are aware, there are no modern linux tools or use cases # which require /etc/mtab to be a separate file from /proc/self/mounts, # so this setting should be commented out. # If it is set to yes, please comment it out and run this command: # # rc-service mtab restart # In the future, the mtab service will be removed since we are not aware # of any need to manipulate /etc/mtab as a separate file from # /proc/self/mounts. # If you have a technical reason we should keep this support, please # open an issue at https://github.com/openrc/openrc/issues and let us # know about your situation. # This setting controls whether /etc/mtab is a file or symbolic link. # mtab_is_file=no # The interfaces setting controls which interfaces the net-online # service considers in deciding whether the network is active. The # default is all interfaces that support ethernet. #interfaces="" # This setting controls whether a ping test is included in the test for # network connectivity after all interfaces are active. #include_ping_test=no # This setting is the host to attempt to ping if the above is yes. # The default is google.com. #ping_test_host=some.host.name # The timeout setting controls how long the net-online service waits # for the network to be configured. # The default is 120 seconds. # if this is set to 0, the wait is infinite. #timeout=120 # You will need to set the dependencies in the netmount script to match # the network configuration tools you are using. This should be done in # this file by following the examples below, and not by changing the # service script itself. # # Each of these examples is meant to be used separately. So, for # example, do not set rc_need to something like "net.eth0 dhcpcd". # # If you are using newnet and configuring your interfaces with static # addresses with the network script, you should use this setting. # #rc_need="network" # # If you are using oldnet, you must list the specific net.* services you # need. # # This example assumes all of your netmounts can be reached on # eth0. # #rc_need="net.eth0" # # This example assumes some of your netmounts are on eth1 and some # are on eth2. # #rc_need="net.eth1 net.eth2" # # If you are using a dynamic network management tool like # NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to # manage the network interfaces with the routes to your netmounts, you # should list that tool. # #rc_need="NetworkManager" #rc_need="dhcpcd" #rc_need="wicd" # # The default setting is designed to be backward compatible with our # current setup, but you are highly discouraged from using this. In # other words, please change it to be more suited to your system. # rc_need="net" # # Mark certain mount points as critical. # This contains aspace separated list of mount points which should be # considered critical. If one of these mount points cannot be mounted, # netmount will fail. # By default, this is empty. #critical_mounts="/home /var" # The convention in this file is to show the default settings commented out. # # Sometimes you want to have urandom start before "localmount" (say for crypt # swap), so you will need to customize this behavior. If you have /var on a # separate partition, make sure paths under /var are adjusted to point to # locations on your root device. # # Set skip_credit to yes or true if you do not want seed files to actually # credit the random number generator. For example, you should set this if you # plan to replicate the file system image without removing the contents of # ${seed_dir}. # # seed_dir=/var/lib/seedrng # skip_credit=no # Do not use this file to define the default route. # In all settings, multiple routes should be separated using ; or new lines. # Define static routes on Linux using iproute2. See ip(8) for syntax. #staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1" # Or define static routes on Linux using route (legacy). See route(8) for syntax. #staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1 #net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1" # If you are only using local swap partitions, you should not change # this file. Otherwise, you need to uncomment the below rc_before line # followed by the appropriate rc_need line. #rc_before="!localmount" # # If you are using swap files stored on local file systems, uncomment # this line. #rc_need="localmount" # # If you are using swap files stored on network file systems or swap # partitions stored on network block devices such as iSCSI, uncomment # this line. #rc_need="netmount" # This is the location of the reference file swclock uses to set the # system date and time. # This is the default path. If you are using it, you do not need to # uncomment it. If you are using the default and have /var on its own # file system, you need to add the appropriate rc_after setting. # swclock_file=/var/lib/misc/openrc-shutdowntime #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Register misc binary format handlers" depend() { after clock procfs use modules devfs keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { ebegin "Loading custom binary format handlers" "$RC_LIBEXECDIR"/sh/binfmt.sh eend $? return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. depend() { need localmount before logger after clock root sysctl keyword -prefix -timeout } : ${wipe_tmp:=${WIPE_TMP:-no}} : ${log_dmesg:=${LOG_DMESG:-yes}} cleanup_tmp_dir() { local dir="$1" if ! [ -d "$dir" ]; then mkdir -p "$dir" || return $? fi checkpath -W "$dir" || return 1 chmod a+rwt "$dir" 2> /dev/null cd "$dir" || return 1 if yesno $wipe_tmp; then ebegin "Wiping $dir directory" # Faster than raw find if ! rm -rf -- [!ajlq\.]* 2>/dev/null ; then # Blah, too many files find . -maxdepth 1 -name '[!ajlq\.]*' -exec rm -rf -- {} + fi # pam_mktemp creates a .private directory within which # each user gets a private directory with immutable # bit set; remove the immutable bit before trying to # remove it. [ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null # Prune the paths that are left find . -maxdepth 1 \ ! -name . \ ! -name lost+found \ ! -name quota.user \ ! -name aquota.user \ ! -name quota.group \ ! -name aquota.group \ ! -name journal \ -exec rm -rf -- {} + eend 0 else ebegin "Cleaning $dir directory" rm -rf -- .X*-lock esrv* kio* \ jpsock.* .fam* .esd* \ orbit-* ssh-* ksocket-* \ .*-unix eend 0 fi } cleanup_var_run_dir() { ebegin "Cleaning /var/run" for x in $(find /var/run ! -type d ! -name utmp \ ! -name random-seed ! -name dev.db \ ! -name ld-elf.so.hints ! -name ld-elf32.so.hints \ ! -name ld.so.hints); do # Clean stale sockets if [ -S "$x" ]; then if command -v fuser >/dev/null 2>&1; then fuser "$x" >/dev/null 2>&1 || rm -- "$x" else rm -- "$x" fi fi [ ! -f "$x" ] && continue # Do not remove pidfiles of already running daemons case "$x" in *.pid) start-stop-daemon --test --quiet \ --stop --pidfile "$x" && continue ;; esac rm -f -- "$x" done eend 0 } mkutmp() { : >"$1" # Not all systems have the utmp group chgrp utmp "$1" 2>/dev/null chmod 0664 "$1" } migrate_to_run() { src="$1" dst="$2" if [ -L $src -a "$(readlink -f $src)" != $dst ]; then ewarn "$src does not point to $dst." ewarn "Setting $src to point to $dst." rm $src elif [ ! -L $src -a -d $src ]; then ebegin "Migrating $src to $dst" if ! rmdir $src 2>/dev/null; then cp -a $src/* $dst/ rm -rf $src fi eend $? fi # If $src doesn't exist at all, just run this if [ ! -e $src ]; then ln -s $dst $src fi } clean_run() { [ "$RC_SYS" = VSERVER -o "$RC_SYS" = LXC ] && return 0 local dir # If / is still read-only due to a problem, this will fail! if ! checkpath -W /; then ewarn "/ is not writable; unable to clean up underlying /run" return 1 fi if ! checkpath -W /tmp; then ewarn "/tmp is not writable; unable to clean up underlying /run" return 1 fi # Now we know that we can modify /tmp and / # if mktemp -d fails, it returns an EMPTY string # STDERR: mktemp: failed to create directory via template ‘/tmp/tmp.XXXXXXXXXX’: Read-only file system # STDOUT: '' rc=0 dir=$(mktemp -d) if [ -n "$dir" -a -d $dir -a -w $dir ]; then mount --bind / $dir && rm -rf $dir/run/* || rc=1 umount $dir && rmdir $dir else rc=1 fi if [ $rc -ne 0 ]; then ewarn "Could not clean up underlying /run on /" return 1 fi } start() { # Remove any added console dirs if checkpath -W "$RC_LIBEXECDIR"; then rm -rf "$RC_LIBEXECDIR"/console/* fi local logw=false runw=false extra= # Ensure that our basic dirs exist if [ "$RC_UNAME" = Linux ]; then # Satisfy Linux FHS extra=/var/lib/misc if [ ! -d /run ]; then extra="/var/run $extra" fi else extra=/var/run fi for x in /var/log /tmp $extra; do if ! [ -d $x ]; then if ! mkdir -p $x; then eend 1 "failed to create needed directory $x" return 1 fi fi done if [ "$RC_UNAME" = Linux -a -d /run ]; then migrate_to_run /var/lock /run/lock migrate_to_run /var/run /run clean_run fi if checkpath -W /var/run; then ebegin "Creating user login records" local xtra= [ "$RC_UNAME" = NetBSD ] && xtra=x for x in "" $xtra; do mkutmp /var/run/utmp$x done [ -e /var/log/wtmp ] || mkutmp /var/log/wtmp eend 0 mountinfo -q -f tmpfs /var/run || cleanup_var_run_dir fi # Clean up /tmp directories local tmp= for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do mountinfo -q -f tmpfs "$tmp" || cleanup_tmp_dir "$tmp" done if checkpath -W /tmp; then # Make sure our X11 stuff have the correct permissions # Omit the chown as bootmisc is run before network is up # and users may be using lame LDAP auth #139411 rm -rf /tmp/.ICE-unix /tmp/.X11-unix mkdir -p /tmp/.ICE-unix /tmp/.X11-unix chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix if [ -x /sbin/restorecon ]; then restorecon /tmp/.ICE-unix /tmp/.X11-unix fi fi if yesno $log_dmesg; then if $logw || checkpath -W /var/log; then # Create an 'after-boot' dmesg log case "$RC_SYS" in VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; *) if yesno ${previous_dmesg:-no} && [ -e /var/log/dmesg ]; then mv /var/log/dmesg /var/log/dmesg.old fi dmesg > /var/log/dmesg chmod 640 /var/log/dmesg ;; esac fi fi return 0 } stop() { # Write a halt record if we're shutting down if [ "$RC_RUNLEVEL" = shutdown ]; then if [ "$RC_UNAME" = Linux ]; then if [ -x /sbin/halt ]; then halt -w else openrc-shutdown -w fi fi if [ "$RC_SYS" = OPENVZ ]; then yesno $RC_REBOOT && printf "" >/reboot fi fi return 0 } # vim: ft=sh #!/sbin/openrc-run # Copyright (c) 2017 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the control groups." : "${cgroup_opts:="nodev,noexec,nosuid"}" depend() { keyword -docker -podman -prefix -systemd-nspawn -vserver after sysfs } cgroup1_base() { grep -qw cgroup /proc/filesystems || return 0 if ! mountinfo -q /sys/fs/cgroup; then ebegin "Mounting cgroup filesystem" local opts="${cgroup_opts},mode=755,size=${rc_cgroupsize:-10m}" mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup eend $? fi if ! mountinfo -q /sys/fs/cgroup/openrc; then local agent="${RC_LIBEXECDIR}/sh/cgroup-release-agent.sh" mkdir /sys/fs/cgroup/openrc mount -n -t cgroup \ -o none,${cgroup_opts},name=openrc,release_agent="$agent" \ openrc /sys/fs/cgroup/openrc printf 1 > /sys/fs/cgroup/openrc/notify_on_release fi return 0 } cgroup1_controllers() { yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ] && grep -qw cgroup /proc/filesystems || return 0 while read -r name _ _ enabled _; do case "${enabled}" in 1) mountinfo -q "/sys/fs/cgroup/${name}" && continue local x for x in $rc_cgroup_controllers; do [ "${name}" = "blkio" ] && [ "${x}" = "io" ] && continue 2 [ "${name}" = "${x}" ] && continue 2 done mkdir "/sys/fs/cgroup/${name}" mount -n -t cgroup -o "${cgroup_opts},${name}" \ "${name}" "/sys/fs/cgroup/${name}" yesno "${rc_cgroup_memory_use_hierarchy:-no}" && [ "${name}" = memory ] && echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy ;; esac done < /proc/cgroups return 0 } cgroup2_base() { grep -qw cgroup2 /proc/filesystems || return 0 local base base="$(cgroup2_find_path)" mkdir -p "${base}" mount -t cgroup2 none -o "${cgroup_opts},nsdelegate" "${base}" 2> /dev/null || mount -t cgroup2 none -o "${cgroup_opts}" "${base}" return 0 } cgroup2_controllers() { grep -qw cgroup2 /proc/filesystems || return 0 local active cgroup_path x y cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 [ ! -e "${cgroup_path}/cgroup.controllers" ] && return 0 [ ! -e "${cgroup_path}/cgroup.subtree_control" ]&& return 0 read -r active < "${cgroup_path}/cgroup.controllers" for x in ${active}; do case "${rc_cgroup_mode:-unified}" in unified) echo "+${x}" > "${cgroup_path}/cgroup.subtree_control" ;; hybrid) for y in ${rc_cgroup_controllers}; do if [ "$x" = "$y" ]; then echo "+${x}" > "${cgroup_path}/cgroup.subtree_control" fi done ;; esac done return 0 } cgroups_hybrid() { cgroup1_base cgroup2_base cgroup2_controllers cgroup1_controllers return 0 } cgroups_legacy() { cgroup1_base cgroup1_controllers return 0 } cgroups_unified() { cgroup2_base cgroup2_controllers return 0 } mount_cgroups() { case "${rc_cgroup_mode:-unified}" in hybrid) cgroups_hybrid ;; legacy) cgroups_legacy ;; unified) cgroups_unified ;; esac return 0 } restorecon_cgroups() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /sys/fs/cgroup" restorecon -rF /sys/fs/cgroup >/dev/null 2>&1 eend $? fi return 0 } start() { # set up kernel support for cgroups if [ -d /sys/fs/cgroup ]; then mount_cgroups restorecon_cgroups fi return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Sets a font for the consoles." depend() { need termencoding after hotplug bootmisc modules keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } start() { ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} consolefont=${consolefont:-${CONSOLEFONT}} consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}} if [ -z "$consolefont" ]; then ebegin "Using the default console font" eend 0 return 0 fi if [ "$ttyn" = 0 ]; then ebegin "Skipping font setup (rc_tty_number == 0)" eend 0 return 0 fi local x= param= sf_param= retval=0 ttydev=/dev/tty # Get additional parameters if [ -n "$consoletranslation" ]; then param="$param -m $consoletranslation" fi # Set the console font ebegin "Setting console font [$consolefont]" [ -d /dev/vc ] && ttydev=/dev/vc/ x=1 while [ $x -le $ttyn ]; do if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then retval=1 break fi : $(( x += 1 )) done eend $retval # Store the font so we can use it ASAP on boot if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console zcat "/usr/share/consolefonts/$consolefont" \ > "$RC_LIBEXECDIR"/console/font fi return $retval } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Set up the /dev directory" depend() { provide dev-mount before dev keyword -docker -podman -prefix -systemd-nspawn -vserver } mount_dev() { local action conf_d_dir devfstype msg mountopts action=--mount conf_d_dir="${RC_SERVICE%/*/*}/conf.d" msg=Mounting # Some devices require exec, https://bugs.gentoo.org/92921 # Users with such requirements can use an fstab entry for /dev mountopts="noexec,nosuid,mode=0755" if yesno ${skip_mount_dev:-no} ; then einfo "/dev will not be mounted due to user request" return 0 fi if mountinfo -q /dev; then action=--remount mountopts="remount,$mountopts" msg=Remounting fi if fstabinfo -q /dev; then ebegin "$msg /dev according to fstab" fstabinfo -q $action /dev eend $? return 0 fi if grep -q devtmpfs /proc/filesystems; then devfstype=devtmpfs mountopts="$mountopts,size=10M" elif grep -q tmpfs /proc/filesystems; then devfstype=tmpfs mountopts="$mountopts,size=10M" fi if [ -n "$devfstype" ]; then ebegin "$msg $devfstype on /dev" mount -n -t $devfstype -o $mountopts dev /dev eend $? else ewarn "This kernel does not have devtmpfs or tmpfs support, and there" ewarn "is no entry for /dev in fstab." ewarn "This means /dev will not be mounted." ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y" ewarn "in your kernel configuration or see ${conf_d_dir}/${RC_SVCNAME}" fi return 0 } seed_dev() { # Seed /dev with some things that we know we need if [ "${RC_SYS}" != LXC ]; then # creating /dev/console, /dev/tty and /dev/tty1 to be able to write # to $CONSOLE with/without bootsplash before udevd creates it [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1 [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1 [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0 # udevd will dup its stdin/stdout/stderr to /dev/null # and we do not want a file which gets buffered in ram [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3 # so udev can add its start-message to dmesg [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 fi # extra symbolic links not provided by default [ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd [ -e /dev/stdin ] || ln -snf /proc/self/fd/0 /dev/stdin [ -e /dev/stdout ] || ln -snf /proc/self/fd/1 /dev/stdout [ -e /dev/stderr ] || ln -snf /proc/self/fd/2 /dev/stderr [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core # Mount required directories as user may not have them in /etc/fstab for x in \ "mqueue /dev/mqueue 1777 ,nodev mqueue" \ "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \ "tmpfs /dev/shm 1777 ,nodev,mode=1777 shm" \ ; do set -- $x grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue mountinfo -q $2 && continue if [ ! -d $2 ]; then mkdir -m $3 -p $2 >/dev/null 2>&1 || \ ewarn "Could not create $2!" fi if [ -d $2 ]; then ebegin "Mounting $2" if ! fstabinfo --mount $2; then mount -n -t $1 -o noexec,nosuid$4 $5 $2 fi eend $? fi done } restorecon_dev() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /dev" restorecon -rF /dev >/dev/null 2>&1 eend $? fi return 0 } start() { mount_dev seed_dev restorecon_dev return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Set the dmesg level for a cleaner boot" depend() { before dev modules keyword -docker -podman -lxc -prefix -systemd-nspawn -vserver } start() { if [ -n "$dmesg_level" ]; then dmesg -n$dmesg_level fi } #!/sbin/openrc-run # The first boot init service # read kernel options init_KOPT() { eval "set -- $(cat /proc/cmdline 2>/dev/null)" for opt; do case "$opt" in ssh_*=*) eval "KOPT_${opt%%=*}='${opt#*=}'" ;; esac done } start() { rm -f /etc/runlevels/*/$RC_SVCNAME init_KOPT local rc=0 ebegin "Starting ${RC_SVCNAME}" if [ -n "$KOPT_ssh_key" ] && [ ! -f "/root/.ssh/authorized_keys" ]; then einfo "Fetching ssh keys" mkdir -pm 700 /root/.ssh checkpath -fm 0600 /root/.ssh/authorized_keys case "$KOPT_ssh_key" in https://*|ftps://*|http://*) wget -q "$KOPT_ssh_key" -O /root/.ssh/authorized_keys rc=$?;; *) echo "$KOPT_ssh_key" > /root/.ssh/authorized_keys;; esac fi eend $rc } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Check and repair filesystems according to /etc/fstab" _IFS=" " depend() { after clock use dev clock modules keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -timeout -vserver -uml } _abort() { yesno ${fsck_abort_on_errors:-yes} && rc-abort return 1 } # We should only reboot when first booting _reboot() { if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then reboot "$@" _abort || return 1 fi } _forcefsck() { [ -e /forcefsck ] || get_bootparam forcefsck } start() { local fsck_opts= p= check_extra= if [ -e /fastboot ]; then ewarn "Skipping fsck due to /fastboot" return 0 fi if _forcefsck; then fsck_opts="$fsck_opts -f" check_extra="(check forced)" elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then ewarn "Skipping fsck due to not being on AC power" return 0 fi if [ -n "$fsck_passno" ]; then check_extra="[passno $fsck_passno] $check_extra" if [ -n "$fsck_mnt" ]; then eerror "Only 1 of fsck_passno and fsck_mnt must be set!" return 1 fi fi ebegin "Checking local filesystems $check_extra" # Append passno mounts for p in $fsck_passno; do local IFS="$_IFS" case "$p" in [0-9]*) p="=$p";; esac set -- "$@" $(fstabinfo --passno "$p") unset IFS done # Append custom mounts for m in $fsck_mnt ; do local IFS="$_IFS" set -- "$@" "$m" unset IFS done if [ "$RC_UNAME" = Linux ]; then local skiptypes skiptypes=$(printf 'no%s,' ${net_fs_list} ${extra_net_fs_list}) [ "${skiptypes}" = "no," ] && skiptypes="" fsck_opts="$fsck_opts -T -t ${skiptypes}noopts=_netdev" if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then fsck_args=${fsck_args:--A -p} if echo 2>/dev/null >/.test.$$; then rm -f /.test.$$ fsck_opts="$fsck_opts -R" fi fi if [ "$(readlink -f $(which fsck))" != "/bin/busybox" ]; then fsck_opts="$fsck_opts -C0" fi fi trap : INT QUIT fsck ${fsck_args:--p} $fsck_opts "$@" case $? in 0) eend 0; return 0;; 1) ewend 1 "Filesystems repaired"; return 0;; 2|3) if [ "$RC_UNAME" = Linux ]; then ewend 1 "Filesystems repaired, but reboot needed" _reboot -f else ewend 1 "Filesystems still have errors;" \ "manual fsck required" _abort fi;; 4) if [ "$RC_UNAME" = Linux ]; then ewend 1 "Filesystem errors left uncorrected, aborting" _abort else ewend 1 "Filesystems repaired, but reboot needed" _reboot fi;; 8) ewend 1 "Operational error"; return 0;; 12) ewend 1 "fsck interrupted";; *) eend 2 "Filesystems couldn't be fixed";; esac _abort || return 1 } stop() { # Fake function so we always shutdown correctly. _abort() { return 0; } _reboot() { return 0; } _forcefsck() { return 1; } yesno $fsck_shutdown && start return 0 } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Sets the hostname of the machine." depend() { keyword -prefix -lxc -docker } start() { if [ -s /etc/hostname ] ; then opts="-F /etc/hostname" else opts="${hostname:-localhost}" fi ebegin "Setting hostname" hostname $opts eend $? } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_commands="save show" description="Sets the local clock to UTC or Local Time." description_save="Saves the current time in the BIOS." description_show="Displays the current time in the BIOS." : ${clock_adjfile:=${CLOCK_ADJFILE}} : ${clock_args:=${CLOCK_OPTS}} : ${clock_systohc:=${CLOCK_SYSTOHC}} : ${clock:=${CLOCK:-UTC}} if [ "$clock" = "UTC" ]; then utc="UTC" utc_cmd="--utc" else utc="Local Time" utc_cmd="--localtime" fi depend() { provide clock want modules if yesno $clock_adjfile; then use root fi keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } setupopts() { case "$(uname -m)" in s390*) utc="s390" ;; *) if [ -e /proc/devices ] && \ grep -q " cobd$" /proc/devices then utc="coLinux" fi ;; esac case "$utc" in UTC|Local" "Time);; *) unset utc_cmd;; esac } # hwclock doesn't always return non zero on error _hwclock() { local err="$(hwclock "$@" 2>&1 >/dev/null)" [ -z "$err" ] && return 0 echo "${err}" >&2 return 1 } get_noadjfile() { if ! yesno $clock_adjfile; then # Some implementations don't handle adjustments if LC_ALL=C hwclock --help 2>&1 | grep -q -e "--noadjfile"; then echo --noadjfile fi fi } rtc_exists() { local rtc= for rtc in /dev/rtc /dev/rtc[0-9]*; do [ -e "$rtc" ] && break done [ -e "$rtc" ] } start() { local retval=0 errstr="" modname setupopts if [ -z "$utc_cmd" ]; then ewarn "Not setting clock for $utc system" return 0 fi ebegin "Setting system clock using the hardware clock [$utc]" if [ -e /proc/modules ]; then if ! rtc_exists; then for x in rtc-cmos rtc genrtc; do modprobe -q $x && rtc_exists && modname="$x" && break done [ -n "$modname" ] && ewarn "The $modname module needs to be configured in" \ "${RC_SERVICE%/*/*}/conf.d/modules or built in." fi fi # Always set the kernel's time zone. _hwclock --systz $utc_cmd $(get_noadjfile) $clock_args : $(( retval += $? )) if [ -e /etc/adjtime ] && yesno $clock_adjfile; then _hwclock --adjust $utc_cmd $(get_noadjfile) : $(( retval += $? )) fi if yesno ${clock_hctosys:-YES}; then _hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args : $(( retval += $? )) fi eend $retval "Failed to set the system clock" return 0 } stop() { # Don't tweak the hardware clock on LiveCD halt. [ -n "$CDBOOT" ] && return 0 yesno ${clock_systohc:-YES} || return 0 local retval=0 errstr="" setupopts [ -z "$utc_cmd" ] && return 0 ebegin "Setting hardware clock using the system clock" "[$utc]" _hwclock --systohc $utc_cmd $(get_noadjfile) $clock_args retval=$? eend $retval "Failed to sync clocks" } save() { clock_systohc=yes stop } show() { setupopts hwclock --show "$utc_cmd" $(get_noadjfile) $clock_args } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause depend() { need sysfs dev before checkfs fsck after modloop keyword -vserver -lxc } # Load hardware drivers start() { # check for boot option "nocoldplug" if get_bootparam noautodetect; then ewarn "Autodetection of hardware disabled from boot cmdline" return 0 fi ebegin "Loading hardware drivers" find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \ | xargs modprobe -b -a 2> /dev/null # we run it twice so we detect all devices find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \ | xargs modprobe -b -a 2> /dev/null # check if framebuffer drivers got pulled in if [ -e /dev/fb0 ] && ! [ -e /sys/module/fbcon ]; then modprobe -b -q fbcon fi eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Kill all processes so we can unmount disks cleanly." depend() { keyword -prefix } start() { ebegin "Terminating remaining processes" kill_all 15 ${killall5_opts} sleep ${kill_delay:-0} eend 0 ebegin "Killing remaining processes" sleep ${kill_delay:-0} kill_all 9 ${killall5_opts} eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. conf_d_dir="${RC_SERVICE%/*/*}/conf.d" local_d_dir="${RC_SERVICE%/*/*}/local.d" description="Executes user programs in ${local_d_dir}" depend() { after * keyword -timeout } start() { local file has_errors redirect retval has_errors=0 yesno $rc_verbose || redirect='> /dev/null 2>&1' ebegin "Starting local" eindent for file in "${local_d_dir}"/*.start; do if [ -x "${file}" ]; then vebegin "Executing \"${file}\"" eval "${file}" $redirect retval=$? if [ ${retval} -ne 0 ]; then has_errors=1 fi veend ${retval} "Execution of \"${file}\" failed." fi done eoutdent if command -v local_start >/dev/null 2>&1; then ewarn "\"${conf_d_dir}/local\" should be removed." ewarn "Please move the code from the local_start function" ewarn "to executable scripts with an .start extension" ewarn "in \"${local_d_dir}\"" local_start fi eend ${has_errors} # We have to end with a zero exit code, because a failed execution # of an executable ${local_d_dir}/*.start file shouldn't result in # marking the local service as failed. Otherwise we are unable to # execute any executable ${local_d_dir}/*.stop file, because a failed # marked service cannot be stopped (and the stop function would # actually call the executable ${local_d_dir}/*.stop file(s)). return 0 } stop() { local file has_errors redirect retval has_errors=0 yesno $rc_verbose || redirect='> /dev/null 2>&1' ebegin "Stopping local" eindent for file in "${local_d_dir}"/*.stop; do if [ -x "${file}" ]; then vebegin "Executing \"${file}\"" eval "${file}" $redirect retval=$? if [ ${retval} -ne 0 ]; then has_errors=1 fi veend ${retval} "Execution of \"${file}\" failed." fi done eoutdent if command -v local_stop >/dev/null 2>&1; then ewarn "\"${conf_d_dir}/local\" should be removed." ewarn "Please move the code from the local_stop function" ewarn "to executable scripts with an .stop extension" ewarn "in \"${local_d_dir}\"" local_stop fi eend ${has_errors} # An executable ${local_d_dir}/*.stop file which failed with a # non-zero exit status is not a reason to mark this service # as failed, therefore we have to end with a zero exit code. return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts disks and swap according to /etc/fstab." depend() { need fsck root use lvm modules after clock lvm modules keyword -docker -podman -jail -lxc -prefix -systemd-nspawn -vserver } start() { [ -x /sbin/mkmntdirs ] && mkmntdirs # Mount local filesystems in /etc/fstab. # The types variable must start with no, and must be a type local critical= types="noproc" x= no_netdev= rc= for x in $net_fs_list $extra_net_fs_list; do types="${types},${x}" done if [ "$RC_UNAME" = Linux ]; then no_netdev="-O no_netdev" if mountinfo -q /usr; then touch "$RC_SVCDIR"/usr_premounted fi fi ebegin "Mounting local filesystems" mount -at "$types" $no_netdev eend $? "Some local filesystem failed to mount" rc=$? if [ -z "$critical_mounts" ]; then rc=0 else for x in ${critical_mounts}; do fstabinfo -q $x || continue if ! mountinfo -q $x; then critical=x eerror "Failed to mount $x" fi done [ -z "$critical" ] && rc=0 fi return $rc } stop() { yesno $RC_GOINGDOWN || return 0 # We never unmount / or /dev or $RC_SVCDIR # Bug 381783 local rc_svcdir=$(printf '%s\n' "$RC_SVCDIR" | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g') local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}" no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec" # RC_NO_UMOUNTS is an env var that can be set by plugins local IFS="$IFS:" for x in $no_umounts $RC_NO_UMOUNTS; do no_umounts_r="$no_umounts_r|$x" done if [ "$RC_UNAME" = Linux ]; then no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*" if [ -e "$rc_svcdir"/usr_premounted ]; then no_umounts_r="$no_umounts_r|/usr" fi fi no_umounts_r="^($no_umounts_r)$" # Flush all pending disk writes now sync . "$RC_LIBEXECDIR"/sh/rc-mount.sh if [ "$RC_UNAME" = Linux ] && [ -d /sys/fs/aufs ] ; then #if / is aufs we remount it noxino during shutdown if mountinfo -q -f '^aufs$' / ; then mount -o remount,noxino,rw / sync fi local aufs_branch aufs_mount_point aufs_si_id aufs_br_id branches for aufs_si_dir in /sys/fs/aufs/si*; do [ -d "${aufs_si_dir}" ] || continue aufs_si_id="si=${aufs_si_dir#/sys/fs/aufs/si_}" aufs_mount_point="$(mountinfo -o ${aufs_si_id})" branches="$aufs_si_dir/br[0-9] $aufs_si_dir/br[0-9][0-9] $aufs_si_dir/br[0-9][0-9][0-9]" for x in $branches; do [ -e "${x}" ] || continue aufs_branch=$(sed 's/=.*//g' $x) eindent if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then ewarn "Failed to remove branch $aufs_branch from aufs" \ "$aufs_mount_point" fi eoutdent sync done done fi # Umount loop devices einfo "Unmounting loop devices" eindent do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \ --node-regex "^/dev/loop" eoutdent # Now everything else, except network filesystems as the # network should be down by this point. einfo "Unmounting filesystems" eindent local fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount umount --skip-point-regex "$no_umounts_r" \ "${fs:+--skip-fstype-regex}" $fs --nonetdev eoutdent return 0 } #!/sbin/openrc-run # Copyright (c) 2013-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures the loopback interface." depend() { after clock keyword -jail -prefix -systemd-nspawn -vserver } start() { if [ "$RC_UNAME" = Linux ]; then ebegin "Bringing up network interface lo" if command -v ip > /dev/null 2>&1; then ip addr add 127.0.0.1/8 dev lo brd + ip link set lo up else ifconfig lo 127.0.0.1 netmask 255.0.0.0 fi else ebegin "Bringing up network interface lo0" ifconfig lo0 127.0.0.1 netmask 255.0.0.0 fi eend $? } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Generate machine-id if needed" depend() { need root dev } start() { if [ -s /etc/machine-id ] ; then return 0 fi ebegin "Generating machine-id" dd if=/dev/urandom status=none bs=16 count=1 \ | md5sum | cut -d' ' -f1 > /etc/machine-id eend $? } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause # script that will mount image with modules depend() { after dev-mount before checkfs fsck hwdrivers modules hwclock dev sysfs keyword -vserver -lxc } # read kernel options init_KOPT() { for opt in $(cat /proc/cmdline 2>/dev/null); do case "$opt" in modloop=*|modloop_verify=*) eval "KOPT_${opt%%=*}='${opt#*=}'" ;; esac done } mountdirs() { awk '$2 !~ /^\/(sys|proc|dev|run)/ && $2 != "/" {print $2}' /proc/mounts } find_modloop() { local dir="$1" local kver=$(uname -r) local oifs="$IFS" IFS=$'\n' set -- $(blkid "$dir"/boot/* "$dir"/*) IFS="$oifs" for line; do img=${line%%:*} verify_modloop "$img" || eerror "Failed to verify signature of $img!" mount "$img" -o loop,ro /.modloop || continue if [ -d /.modloop/modules/$kver ]; then return 0 fi umount /.modloop done return 1 } verify_modloop() { local modloop=$1 key= if ! yesno "${KOPT_modloop_verify:=yes}"; then return 0 fi for key in /etc/apk/keys/*.pub; do local sig=/var/cache/misc/${modloop##*/}.SIGN.RSA.${key##*/} if [ -f "$sig" ]; then if ! command -v openssl > /dev/null; then ewarn "Missing openssl. Modloop verification disabled!" return 0 fi einfo "Verifying modloop" openssl dgst -sha1 -verify "$key" -signature "$sig" "$modloop" \ >/dev/null 2>&1 || return 1 fi done } find_backing_file() { local dir="$1" local dev=$(df -P "$dir" | tail -1 | awk '{print $1}') cat /sys/block/${dev#/dev/}/loop/backing_file 2>/dev/null } start() { local modloop= mount_opts= modloop_dldir="/lib" init_KOPT case "$KOPT_modloop" in none) return 0;; http://*|https://*|ftp://*) modloop=$modloop_dldir/${KOPT_modloop##*/} if [ ! -f "$modloop" ]; then mkdir -p "$modloop_dldir" wget -P "$modloop_dldir" "$KOPT_modloop" || eend 1 fi ;; *) for dir in $(mountdirs); do if [ -f "$dir"/$KOPT_modloop ]; then modloop="$dir/${KOPT_modloop##/}" alpine_mnt="$dir" break fi done ;; esac ebegin "Mounting modloop $modloop" mkdir -p /.modloop if [ -n "$modloop" ]; then verify_modloop "$modloop" || eerror "Failed to verify signature of $img!" mount -o loop,ro $modloop /.modloop eend $? || return 1 else for dir in $(mountdirs); do if find_modloop "$dir"; then alpine_mnt="$dir" break fi done if [ -d /.modloop/modules/$(uname -r) ]; then eend 0 else eend 1 || return 1 fi fi #use overlayfs if available and configured if grep -q -w "overlay$" /proc/filesystems && [ ! -z ${unionfs_size+x} ]; then ewarn "Use of unionfs_size is deprecated use overlay_size instead" overlay_size="$unionfs_size" fi if grep -q -w "overlay$" /proc/filesystems && [ -n "$overlay_size" ]; then ebegin "OverlayFS detected, mounting modloop rw" [ "$overlay_size" != 0 ] && mount_ops="-o size=$overlay_size" mkdir -p /.modoverlayfs /lib/modules mount -t tmpfs $mount_ops tmpfs /.modoverlayfs mkdir -p /.modoverlayfs/modules /.modoverlayfs/work mount -t overlay -o upperdir=/.modoverlayfs/modules,lowerdir=/lib/modules:/.modloop/modules,workdir=/.modoverlayfs/work overlay /lib/modules depmod -A eend $? || return 1 else rm -rf /lib/modules && ln -sf /.modloop/modules /lib/ fi # copy firmware if there are any if [ -d $alpine_mnt/firmware ]; then ebegin "Copying firmware from $alpine_mnt/firmware" cp -R -a $alpine_mnt/firmware /lib/ eend $? elif [ -d /lib/modules/firmware ]; then rmdir /lib/firmware 2>/dev/null \ && ln -s /lib/modules/firmware /lib/ fi return 0 } stop() { local ret=0 local mnt; for mnt in /lib/modules /.modoverlayfs /.modloop; do if mountinfo --quiet "$mnt"; then ebegin "Unmounting $mnt" umount -d "$mnt" || ret=1 fi done eend $ret || return 1 } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause description="Loads a user defined list of kernel modules." depend() { before hwclock hwdrivers keyword -openvz -prefix -vserver -lxc } start() { yesno $rc_verbose && verbose=yes ebegin "Loading modules" eindent for f in /lib/modules-load.d/*.conf \ /usr/lib/modules-load.d/*.conf; do if ! [ -f "$f" ]; then continue fi if [ -f /etc/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /etc/modules-load.d/${f##*/}" continue fi if [ -f /run/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}" continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done if [ -f /etc/modules ]; then veinfo "Processing /etc/modules" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < /etc/modules \ | while read module args; do modprobe -q $module $args done fi for f in /etc/modules-load.d/*.conf; do if [ ! -f "$f" ]; then continue fi if [ -f /run/modules-load.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}" continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done for f in /run/modules-load.d/*.conf; do if [ ! -f "$f" ]; then continue fi veinfo "Processing $f" sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \ | while read module args; do modprobe -q $module $args done done eoutdent eend $? } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Re-mount filesystems read-only for a clean reboot." depend() { after killprocs savecache keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { local ret=0 # Flush all pending disk writes now sync ebegin "Remounting remaining filesystems read-only" # We need the do_unmount function . "$RC_LIBEXECDIR"/sh/rc-mount.sh eindent # Bug 381783 local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g') local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs= m="$m|/bin|/sbin|/lib(32|64)?|/libexec" if [ -e "$rc_svcdir"/usr_premounted ]; then m="$m|/usr" fi # RC_NO_UMOUNTS is an env var that can be set by plugins local IFS="$IFS:" for x in $no_umounts $RC_NO_UMOUNTS; do m="$m|$x" done m="^($m)$" fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount "umount -r" \ --skip-point-regex "$m" \ "${fs:+--skip-fstype-regex}" $fs --nonetdev ret=$? eoutdent eend $ret } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Update /etc/mtab to match what the kernel knows about" depend() { after clock before localmount need root keyword -prefix -systemd-nspawn } start() { local rc=0 ebegin "Updating /etc/mtab" if ! checkpath -W /etc; then rc=1 elif ! yesno ${mtab_is_file:-no}; then [ ! -L /etc/mtab ] && [ -f /etc/mtab ] && ewarn "Removing /etc/mtab file" einfo "Creating mtab symbolic link" ln -snf /proc/self/mounts /etc/mtab else ewarn "The ${RC_SVCNAME} service will be removed in the future." ewarn "Please change the mtab_is_file setting to no and run" ewarn "# rc-service mtab restart" ewarn "to create the mtab symbolic link." [ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link" rm -f /etc/mtab einfo "Creating mtab file" # With / as tmpfs we cannot umount -at tmpfs in localmount as that # makes / readonly and dismounts all tmpfs even if in use which is # not good. Luckily, umount uses /etc/mtab instead of /proc/mounts # which allows this hack to work. grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab # Remove stale backups rm -f /etc/mtab~ /etc/mtab~~ fi eend $rc "/etc is not writable; unable to create /etc/mtab" return 0 } #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Delays until the network is online or a specific timeout" depend() { after modules net need sysfs provide network-online keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver } get_interfaces() { local ifname iftype for ifname in /sys/class/net/*; do [ -h "${ifname}" ] || continue read iftype < ${ifname}/type [ "$iftype" = "1" ] && printf "%s " ${ifname##*/} done } start () { local carriers configured dev gateway ifcount infinite local carrier operstate rc ebegin "Checking to see if the network is online" rc=0 interfaces=${interfaces:-$(get_interfaces)} timeout=${timeout:-120} [ $timeout -eq 0 ] && infinite=true || infinite=false while $infinite || [ $timeout -gt 0 ]; do carriers=0 configured=0 ifcount=0 for dev in ${interfaces}; do : $((ifcount += 1)) read carrier < /sys/class/net/$dev/carrier 2> /dev/null || carrier= [ "$carrier" = 1 ] && : $((carriers += 1)) read operstate < /sys/class/net/$dev/operstate 2> /dev/null || operstate= [ "$operstate" = up ] && : $((configured += 1)) done [ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break sleep 1 : $((timeout -= 1)) done ! $infinite && [ $timeout -eq 0 ] && rc=1 include_ping_test=${include_ping_test:-${ping_default_gateway}} if [ -n "${ping_default_gateway}" ]; then ewarn "ping_default_gateway is deprecated, please use include_ping_test" fi if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then ping_test_host="${ping_test_host:-google.com}" if [ -n "$ping_test_host" ]; then while $infinite || [ $timeout -gt 0 ]; do ping -c 1 $ping_test_host > /dev/null 2>&1 rc=$? [ $rc -eq 0 ] && break sleep 1 : $((timeout -= 1)) done fi fi eend $rc "The network is offline" } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts network shares according to /etc/fstab." depend() { local opts mywant="" for opts in $(fstabinfo -o -t nfs,nfs4); do case $opts in noauto) ;; *) mywant="$mywant nfsclient"; break ;; esac done after root config /etc/fstab want $mywant use afc-client amd openvpn use dns use root keyword -docker -podman -jail -lxc -prefix -systemd-nspawn -vserver } start() { local x= fs= rc= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+,}$x" done ebegin "Mounting network filesystems" mount -at $fs rc=$? if [ "$RC_UNAME" = Linux ] && [ $rc = 0 ]; then mount -a -O _netdev rc=$? fi ewend $rc "Could not mount all network filesystems" if [ -z "$critical_mounts" ]; then rc=0 else for x in ${critical_mounts}; do fstabinfo -q $x || continue if ! mountinfo -q $x; then critical=x eerror "Failed to mount $x" fi done [ -z "$critical" ] && rc=0 fi return $rc } stop() { local x= fs= ebegin "Unmounting network filesystems" . "$RC_LIBEXECDIR"/sh/rc-mount.sh for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+,}$x" done if [ -n "$fs" ]; then umount -at $fs || eerror "Failed to simply unmount filesystems" fi eindent fs= for x in $net_fs_list $extra_net_fs_list; do fs="$fs${fs:+|}$x" done [ -n "$fs" ] && fs="^($fs)$" do_unmount umount ${fs:+--fstype-regex} $fs --netdev retval=$? eoutdent if [ "$RC_UNAME" = Linux ] && [ $retval = 0 ]; then umount -a -O _netdev retval=$? fi eend $retval "Failed to unmount network filesystems" } #!/sbin/openrc-run # Copyright (c) Natanael Copa # This code is licensed under BSD-2-Clause # # note that the spoofprotect, syncoockies and ip_forward options are set in # /etc/sysctl.conf : ${cfgfile:="/etc/network/interfaces"} : ${ifquery:="ifquery"} : ${ifstate:="/run/ifstate"} single_iface="${RC_SVCNAME#*.}" if [ "$single_iface" = "$RC_SVCNAME" ]; then single_iface= fi depend() { need localmount hostname want dev-settle after bootmisc hwdrivers modules provide net keyword -jail -prefix -vserver -docker } # find interfaces we want to start find_ifaces() { if [ -n "$single_iface" ]; then echo $single_iface return 0 fi if command -v "$ifquery" >/dev/null; then $ifquery -i "$cfgfile" --list -a return fi # fallback in case ifquery does not exist awk '$1 == "auto" {for (i = 2; i <= NF; i = i + 1) printf("%s ", $i)}' "$cfgfile" } # return the list of interfaces we should try stop find_running_ifaces() { if [ -n "$single_iface" ]; then echo $single_iface return 0 fi if command -v "$ifquery" >/dev/null; then $ifquery --state-file $ifstate -i "$cfgfile" --running return fi # fallback awk -F= '{print $2}' $ifstate } start() { local iface= ret=1 ebegin "Starting networking" eindent for iface in $(find_ifaces); do local r=0 ebegin "$iface" if ! ifup -i "$cfgfile" $iface >/dev/null; then ifdown -i "$cfgfile" $iface >/dev/null 2>&1 r=1 fi # atleast one interface needs to be started for action # to be success eend $r && ret=0 done eoutdent return $ret } stop() { local iface= # Don't stop the network at shutdown. yesno ${keep_network:-YES} && yesno $RC_GOINGDOWN && return 0 ebegin "Stopping networking" eindent for iface in $(find_running_ifaces); do ebegin "$iface" ifdown -i "$cfgfile" -f $iface >/dev/null eend $? done eoutdent return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Turns numlock on for the consoles." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } _setleds() { [ -z "$1" ] && return 1 local dev=/dev/tty t= i=1 retval=0 [ -d /dev/vc ] && dev=/dev/vc/ while [ $i -le $ttyn ]; do setleds -D "$1"num < $dev$i || retval=1 : $(( i += 1 )) done return $retval } start() { ebegin "Enabling numlock on ttys" _setleds + eend $? "Failed to enable numlock" } stop() { yesno $RC_GOINGDOWN && return 0 ebegin "Disabling numlock on ttys" _setleds - eend $? "Failed to disable numlock" } #!/sbin/openrc-run # Copyright (c) 2014-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Can be used on OSs that take care of the clock. description="Provides clock" depend() { provide clock } start() { # This stub function is required to avoid OpenRC warning at boot: # # * The command variable is undefined. # * There is nothing for osclock to start. # * If this is what you intend, please write a start function. # * This will become a failure in a future release. # return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mounts misc filesystems in /proc." depend() { after clock use devfs want modules keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -vserver } start() { # Setup Kernel Support for miscellaneous Binary Formats if [ -d /proc/sys/fs/binfmt_misc ] && [ ! -e /proc/sys/fs/binfmt_misc/register ]; then if ! grep -qs binfmt_misc /proc/filesystems && modprobe -q binfmt-misc; then ewarn "The binfmt-misc module needs to be loaded by" \ "the modules service or built in." fi if grep -qs binfmt_misc /proc/filesystems; then ebegin "Mounting misc binary format filesystem" mount -t binfmt_misc -o nodev,noexec,nosuid \ binfmt_misc /proc/sys/fs/binfmt_misc eend $? fi fi return 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the root fs read/write" depend() { after clock need fsck keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -vserver } start() { local root_opts=",$(fstabinfo -o /)," case "$root_opts" in *,ro,*) ;; *) # Check if the rootfs isn't already writable. if checkpath -W /; then rm -f /fastboot /forcefsck else ebegin "Remounting root filesystem read/write" case "$RC_UNAME" in Linux) mount -n -o remount,rw / ;; *) mount -u -o rw / ;; esac eend $? "Root filesystem could not be mounted read/write" if [ $? -eq 0 ]; then rm -f /fastboot /forcefsck fi fi ;; esac case "$root_opts" in *,shared,*|*,rshared,*) ebegin "Making root filesystem shared" case "$RC_UNAME" in Linux) mount --make-rshared / ;; *) ewarn "Ignoring 'shared' option for / on non-linux" ;; esac eend $? "Root filesystem could not be made shared" ;; esac ebegin "Remounting filesystems" local mountpoint for mountpoint in $(fstabinfo); do case "${mountpoint}" in /*) # Don't remount swap etc. mountinfo -q "${mountpoint}" && \ fstabinfo --remount "${mountpoint}" ;; esac done eend 0 } #!/sbin/openrc-run # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. supervisor=supervise-daemon command=/usr/bin/runsvdir pidfile="/var/run/${RC_SVCNAME}.pid" command_args="-P $RC_SVCDIR/sv 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'" start_pre() { checkpath -m 0755 -o root:root -d ${RC_SVCDIR}/sv } #!/sbin/openrc-run # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. command=/bin/s6-svscan command_args="${RC_SVCDIR}"/s6-scan command_background=yes pidfile=/var/run/s6-svscan.pid depend() { need localmount } start_pre() { if [ ! -e "$command" ]; then eerror "$command is missing (please install s6)" else einfo "Creating s6 scan directory" checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan fi return } stop_post() { ebegin "Stopping any remaining s6 services" s6-svc -dx "${RC_SVCDIR}"/s6-scan/* 2>/dev/null || true eend $? ebegin "Stopping any remaining s6 service loggers" s6-svc -dx "${RC_SVCDIR}"/s6-scan/*/log 2>/dev/null || true eend $? } #!/sbin/openrc-run # Copyright (c) 2018 Sony Interactive Entertainment, Inc. # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Save the keymap for use as early as possible" depend() { need termencoding after bootmisc clock keymaps keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } start() { # Save the keymapping for use immediately at boot ebegin "Saving key mapping" if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console dumpkeys >"$RC_LIBEXECDIR"/console/keymap fi eend $? "Unable to save keymapping" } #!/sbin/openrc-run # Copyright (c) 2018 Sony Interactive Entertainment, Inc. # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures terminal encoding." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} : ${unicode:=${UNICODE}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu use root after bootmisc clock termencoding } start() { ebegin "Saving terminal encoding" # Save the encoding for use immediately at boot if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console if yesno ${unicode:-yes}; then echo "" > "$RC_LIBEXECDIR"/console/unicode else rm -f "$RC_LIBEXECDIR"/console/unicode fi fi eend 0 } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Saves the caches OpenRC uses to non volatile storage" start() { if [ -e "$RC_SVCDIR"/clock-skewed ]; then ewarn "Clock skew detected!" if ! yesno "${RC_GOINGDOWN}"; then eerror "Not saving deptree cache" return 1 fi fi if [ ! -d "$RC_LIBEXECDIR"/cache ]; then if ! checkpath -W "$RC_LIBEXECDIR"; then eerror "${RC_LIBEXECDIR} is not writable!" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi rm -rf "$RC_LIBEXECDIR"/cache if ! mkdir -p "$RC_LIBEXECDIR"/cache; then eerror "Unable to create $RC_LIBEXECDIR/cache" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi fi if ! checkpath -W "$RC_LIBEXECDIR"/cache; then eerror "${RC_LIBEXECDIR}/cache is not writable!" eerror "Unable to save dependency cache" if yesno "${RC_GOINGDOWN}"; then return 0 fi return 1 fi ebegin "Saving dependency cache" local rc=0 save= for x in depconfig deptree rc.log shutdowntime softlevel; do [ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x" done if [ -n "$save" ]; then cp -p $save "$RC_LIBEXECDIR"/cache rc=$? fi if yesno "${RC_GOINGDOWN}"; then if [ $rc -ne 0 ]; then eerror "Unable to save dependency cache" fi eend 0 fi eend $rc "Unable to save dependency cache" } #!/sbin/openrc-run # Copyright (c) 2007-2022 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Initializes the random number generator." depend() { after clock need localmount keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn provide urandom } seedrng_with_options() { set -- [ -n "${seed_dir}" ] && set -- "$@" --seed-dir "${seed_dir}" yesno "${skip_credit}" && set -- "$@" --skip-credit seedrng "$@" } start() { ebegin "Seeding random number generator" seedrng_with_options eend $? "Error seeding random number generator" return 0 } stop() { ebegin "Saving random number generator seed" seedrng_with_options eend $? "Error saving random number generator seed" return 0 } #!/sbin/openrc-run # Copyright (c) 2009-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # This script was inspired by the equivalent rc.d staticroute from NetBSD. description="Configures static routes." __nl=" " depend() { after clock provide net use network keyword -jail -prefix -vserver } pre_flight_checks() { route=route [ -s /etc/route.conf ] && return 0 if [ -n "$staticiproute" ]; then route="ip route" staticroute="$staticiproute" fi } dump_args() { # Route configuration file, as used by the NetBSD RC system if [ -s /etc/route.conf ]; then cat /etc/route.conf return $? fi case "$staticroute" in *"$__nl"*) echo "$staticroute" ;; *) ( set -o noglob IFS=';'; set -- $staticroute IFS="$__nl"; echo "$*" ) ;; esac } do_routes() { local xtra= family= [ "$RC_UNAME" != Linux ] && xtra=-q ebegin "$1 static routes" eindent pre_flight_checks dump_args | while read args; do [ -z "$args" ] && continue case "$args" in "#"*) ;; "+"*) [ $2 = "add" ] && eval ${args#*+} ;; "-"*) [ $2 = "del" -o $2 = "delete" ] && eval ${args#*-} ;; *) veinfo "$args" case "$route" in "ip route") ip route $2 $args ;; *) # Linux route does cannot work it out ... if [ "$RC_UNAME" = Linux ]; then case "$args" in *:*) family="-A inet6";; *) family=;; esac fi route $family $xtra $2 -$args ;; esac veend $? esac done eoutdent eend 0 } start() { do_routes "Adding" "add" } stop() { local cmd="delete" [ "$RC_UNAME" = Linux ] && cmd="del" do_routes "Deleting" "$cmd" } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. depend() { after clock root before localmount keyword -docker -podman -jail -lxc -openvz -prefix -systemd-nspawn -vserver } start() { ebegin "Activating swap devices" case "$RC_UNAME" in NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; *) swapon -a >/dev/null;; esac eend 0 # If swapon has nothing todo it errors, so always return 0 } stop() { ebegin "Deactivating swap devices" case "$RC_UNAME" in NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;; *) swapoff -a >/dev/null;; esac eend 0 } #!/sbin/openrc-run # Copyright (c) 2009-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Sets the local clock to the mtime of a given file." swclock_file="${swclock_file:-/var/lib/misc/openrc-shutdowntime}" depend() { provide clock keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu } # swclock is an OpenRC built in start() { ebegin "Setting the local clock based on last shutdown time" if ! swclock "${swclock_file}" 2> /dev/null; then swclock --warn /sbin/openrc-run fi eend $? } stop() { ebegin "Saving the shutdown time" swclock --save "${swclock_file}" eend $? } #!/sbin/openrc-run depend() { after clock before bootmisc logger keyword -prefix -systemd-nspawn -vserver } start() { local quiet retval=0 status ebegin "Configuring kernel parameters" yesno $rc_verbose || quiet=-q eindent for f in /lib/sysctl.d/*.conf \ /usr/lib/sysctl.d/*.conf; do if [ -f /etc/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /etc/sysctl.d/${f##*/}" continue fi if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then # Don't change retval= since we expect some package/distro provided # sysctl configurations to break, so just warn when the user wants # verbose messages vewarn "Unable to configure kernel parameters from $f" fi fi done for f in /etc/sysctl.d/*.conf; do if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from $f" fi fi done if [ -f /etc/sysctl.conf ]; then vebegin "applying /etc/sysctl.conf" sysctl $quiet -p /etc/sysctl.conf status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from /etc/sysctl.conf" fi fi for f in /run/sysctl.d/*.conf; do if [ -f "$f" ]; then vebegin "applying $f" sysctl $quiet -p "$f" status=$? if [ $status -gt 0 ]; then retval=$(( $retval + $status )) eerror "Unable to configure kernel parameters from $f" fi fi done eoutdent eend $retval } #!/sbin/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Mount the sys filesystem." sysfs_opts=nodev,noexec,nosuid depend() { keyword -docker -podman -lxc -prefix -systemd-nspawn -vserver } mount_sys() { grep -Eq "[[:space:]]+sysfs$" /proc/filesystems || return 1 mountinfo -q /sys && return 0 if [ ! -d /sys ]; then if ! mkdir -m 0755 /sys; then ewarn "Could not create /sys!" return 1 fi fi ebegin "Mounting /sys" if ! fstabinfo --mount /sys; then mount -n -t sysfs -o ${sysfs_opts} sysfs /sys fi eend $? } mount_misc() { # Setup Kernel Support for securityfs if [ -d /sys/kernel/security ] && \ ! mountinfo -q /sys/kernel/security; then if grep -qs securityfs /proc/filesystems; then ebegin "Mounting security filesystem" mount -n -t securityfs -o ${sysfs_opts} \ securityfs /sys/kernel/security eend $? fi fi # Setup Kernel Support for debugfs if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then if grep -qs debugfs /proc/filesystems; then ebegin "Mounting debug filesystem" mount -n -t debugfs -o ${sysfs_opts} debugfs /sys/kernel/debug eend $? fi fi # Setup Kernel Support for configfs if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then if grep -qs configfs /proc/filesystems; then ebegin "Mounting config filesystem" mount -n -t configfs -o ${sysfs_opts} configfs /sys/kernel/config eend $? fi fi # set up kernel support for fusectl if [ -d /sys/fs/fuse/connections ] \ && ! mountinfo -q /sys/fs/fuse/connections; then if grep -qs fusectl /proc/filesystems; then ebegin "Mounting fuse control filesystem" mount -n -t fusectl -o ${sysfs_opts} \ fusectl /sys/fs/fuse/connections eend $? fi fi # Setup Kernel Support for SELinux if [ -d /sys/fs/selinux ] && ! mountinfo -q /sys/fs/selinux; then if grep -qs selinuxfs /proc/filesystems; then ebegin "Mounting SELinux filesystem" mount -t selinuxfs selinuxfs /sys/fs/selinux eend $? fi fi # Setup Kernel Support for persistent storage if [ -d /sys/fs/pstore ] && ! mountinfo -q /sys/fs/pstore; then if grep -qs 'pstore$' /proc/filesystems; then ebegin "Mounting persistent storage (pstore) filesystem" mount -t pstore pstore -o ${sysfs_opts} /sys/fs/pstore eend $? fi fi # set up kernel support for efivarfs if [ -d /sys/firmware/efi/efivars ] && ! mountinfo -q /sys/firmware/efi/efivars; then ebegin "Mounting efivarfs filesystem" mount -n -t efivarfs -o ${sysfs_opts} \ efivarfs /sys/firmware/efi/efivars 2> /dev/null eend 0 fi } restorecon_sys() { if [ -x /sbin/restorecon ]; then ebegin "Restoring SELinux contexts in /sys" restorecon -F /sys/devices/system/cpu/online >/dev/null 2>&1 eend $? fi } start() { mount_sys mount_misc restorecon_sys return 0 } #!/sbin/openrc-run description="Set sysfs variables from /etc/sysfs.conf and /etc/sysfs.d/*.conf" conffile=/etc/sysfs.conf confdir=/etc/sysfs.d depend() { need sysfs } setval() { local value="$1" attrib="$2" # Some fields need a terminating newline, others # need the terminating newline to be absent :-( echo -n "$value" > "$attrib" 2>/dev/null \ || echo "$value" > "$attrib" } load_conffile() { local file="$1" while read line; do local line=${line%%#*} local cmd= attrib= value= set -- $line if [ $# -eq 0 ]; then continue fi case "$1$3" in mode=) cmd=chmod attrib="$2" value="$4" ;; owner=) cmd=chown attrib="$2" value="$4" ;; *) if [ "$2" = "=" ]; then cmd=setval attrib="$1" value="$3" fi ;; esac if ! [ -e "/sys/$attrib" ]; then eerror "$attrib: unknown attribute" continue fi if [ -z "$attrib" ] || [ -z "$value" ]; then eerror "syntax error in $file: '$line'" continue fi $cmd "$value" "/sys/$attrib" done < "$file" } start() { [ -r "$conffile" -o -d "$confdir" ] || return 0 ebegin "Setting sysfs variables" for file in $confdir/*.conf $conffile; do [ -r "$file" ] || continue load_conffile "$file" || return 1 done eend 0 } #!/sbin/openrc-run # Copyright (c) 2008-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. description="Configures terminal encoding." ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} : ${unicode:=${UNICODE}} depend() { keyword -docker -podman -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu after devfs } start() { local ttydev=/dev/tty n= [ -d /dev/vc ] && ttydev=/dev/vc/ # Set terminal encoding to either ASCII or UNICODE. # See utf-8(7) for more information. local termencoding="%@" termmsg="ASCII" if yesno ${unicode:-yes}; then termencoding="%G" termmsg="UTF-8" fi ebegin "Setting terminal encoding [$termmsg]" n=1 while [ ${n} -le "$ttyn" ]; do printf "\033%s" "$termencoding" >$ttydev$n : $(( n += 1 )) done # Save the encoding for use immediately at boot if checkpath -W "$RC_LIBEXECDIR"; then mkdir -p "$RC_LIBEXECDIR"/console if yesno ${unicode:-yes}; then echo "" > "$RC_LIBEXECDIR"/console/unicode else rm -f "$RC_LIBEXECDIR"/console/unicode fi fi eend 0 } This directory should contain programs or scripts which are to be run when the local service is started or stopped. If a file in this directory is executable and it has a .start extension, it will be run when the local service is started. If a file is executable and it has a .stop extension, it will be run when the local service is stopped. All files are processed in lexical order. Keep in mind that files in this directory are processed sequentially, and the local service is not considered started or stopped until everything is processed, so if you have a process which takes a long time to run, it can delay your boot or shutdown processing. /var/log/rc.log { missingok notifempty } # Global OpenRC configuration settings # Set to "YES" if you want the rc system to try and start services # in parallel for a slight speed improvement. When running in parallel we # prefix the service output with its name as the output will get # jumbled up. # WARNING: whilst we have improved parallel, it can still potentially lock # the boot process. Don't file bugs about this unless you can supply # patches that fix it without breaking other things! #rc_parallel="NO" # Set rc_interactive to "YES" and you'll be able to press the I key during # boot so you can choose to start specific services. Set to "NO" to disable # this feature. This feature is automatically disabled if rc_parallel is # set to YES. #rc_interactive="YES" # If we need to drop to a shell, you can specify it here. # If not specified we use $SHELL, otherwise the one specified in /etc/passwd, # otherwise /bin/sh # Linux users could specify /sbin/sulogin #rc_shell=/bin/sh # Do we allow any started service in the runlevel to satisfy the dependency # or do we want all of them regardless of state? For example, if net.eth0 # and net.eth1 are in the default runlevel then with rc_depend_strict="NO" # both will be started, but services that depend on 'net' will work if either # one comes up. With rc_depend_strict="YES" we would require them both to # come up. #rc_depend_strict="YES" # rc_hotplug controls which services we allow to be hotplugged. # A hotplugged service is one started by a dynamic dev manager when a matching # hardware device is found. # Hotplugged services appear in the "hotplugged" runlevel. # If rc_hotplug is set to any value, we compare the name of this service # to every pattern in the value, from left to right, and we allow the # service to be hotplugged if it matches a pattern, or if it matches no # patterns. Patterns can include shell wildcards. # To disable services from being hotplugged, prefix patterns with "!". #If rc_hotplug is not set or is empty, all hotplugging is disabled. # Example - rc_hotplug="net.wlan !net.*" # This allows net.wlan and any service not matching net.* to be hotplugged. # Example - rc_hotplug="!net.*" # This allows services that do not match "net.*" to be hotplugged. # rc_logger launches a logging daemon to log the entire rc process to # /var/log/rc.log # NOTE: Linux systems require the devfs service to be started before # logging can take place and as such cannot log the sysinit runlevel. #rc_logger="NO" # Through rc_log_path you can specify a custom log file. # The default value is: /var/log/rc.log #rc_log_path="/var/log/rc.log" # If you want verbose output for OpenRC, set this to yes. If you want # verbose output for service foo only, set it to yes in /etc/conf.d/foo. #rc_verbose=no # By default we filter the environment for our running scripts. To allow other # variables through, add them here. Use a * to allow all variables through. #rc_env_allow="VAR1 VAR2" # By default we assume that all daemons will start correctly. # However, some do not - a classic example is that they fork and return 0 AND # then child barfs on a configuration error. Or the daemon has a bug and the # child crashes. You can set the number of milliseconds start-stop-daemon # waits to check that the daemon is still running after starting here. # The default is 0 - no checking. #rc_start_wait=100 # rc_nostop is a list of services which will not stop when changing runlevels. # This still allows the service itself to be stopped when called directly. #rc_nostop="" # rc will attempt to start crashed services by default. # However, it will not stop them by default as that could bring down other # critical services. #rc_crashed_stop=NO #rc_crashed_start=YES # Set rc_nocolor to yes if you do not want colors displayed in OpenRC # output. #rc_nocolor=NO ############################################################################## # MISC CONFIGURATION VARIABLES # There variables are shared between many init scripts # Set unicode to NO to turn off unicode support for keyboards and screens. #unicode="YES" # This is how long fuser should wait for a remote server to respond. The # default is 60 seconds, but it can be adjusted here. #rc_fuser_timeout=60 # Below is the default list of network fstypes. # # afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre # ncpfs nfs nfs4 ocfs2 shfs smbfs # # If you would like to add to this list, you can do so by adding your # own fstypes to the following variable. #extra_net_fs_list="" ############################################################################## # SERVICE CONFIGURATION VARIABLES # These variables are documented here, but should be configured in # /etc/conf.d/foo for service foo and NOT enabled here unless you # really want them to work on a global basis. # If your service has characters in its name which are not legal in # shell variable names and you configure the variables for it in this # file, those characters should be replaced with underscores in the # variable names as shown below. # Some daemons are started and stopped via start-stop-daemon. # We can set some things on a per service basis, like the nicelevel. # These need to be exported #export SSD_NICELEVEL="0" # Or the ionice level. The format is class[:data] , just like the # --ionice start-stop-daemon parameter. #export SSD_IONICELEVEL="0:0" # Or the OOM score adjustment. #export SSD_OOM_SCORE_ADJ="0" # Pass ulimit parameters # If you are using bash in POSIX mode for your shell, note that the # ulimit command uses a block size of 512 bytes for the -c and -f # options #rc_ulimit="-u 30" # It's possible to define extra dependencies for services like so #rc_config="/etc/foo" #rc_need="openvpn" #rc_use="net.eth0" #rc_after="clock" #rc_before="local" #rc_provide="!net" # You can also enable the above commands here for each service. Below is an # example for service foo. #rc_foo_config="/etc/foo" #rc_foo_need="openvpn" #rc_foo_after="clock" # Below is an example for service foo-bar. Note that the '-' is illegal # in a shell variable name, so we convert it to an underscore. # example for service foo-bar. #rc_foo_bar_config="/etc/foo-bar" #rc_foo_bar_need="openvpn" #rc_foo_bar_after="clock" # You can also remove dependencies. # This is mainly used for saying which services do NOT provide net. #rc_net_tap0_provide="!net" # This is the subsystem type. # It is used to match against keywords set by the keyword call in the # depend function of service scripts. # # It should be set to the value representing the environment this file is # PRESENTLY in, not the virtualization the environment is capable of. # If it is commented out, automatic detection will be used. # # The list below shows all possible settings as well as the host # operating systems where they can be used and autodetected. # # "" - nothing special # "docker" - Docker container manager (Linux) # "podman" - Podman container manager (Linux) # "jail" - Jail (DragonflyBSD or FreeBSD) # "lxc" - Linux Containers # "openvz" - Linux OpenVZ # "prefix" - Prefix # "rkt" - CoreOS container management system (Linux) # "subhurd" - Hurd subhurds (to be checked) # "systemd-nspawn" - Container created by systemd-nspawn (Linux) # "uml" - Usermode Linux # "vserver" - Linux vserver # "xen0" - Xen0 Domain (Linux and NetBSD) # "xenU" - XenU Domain (Linux and NetBSD) #rc_sys="" # if you use openrc-init, which is currently only available on Linux, # this is the default runlevel to activate after "sysinit" and "boot" # when booting. #rc_default_runlevel="default" # on Linux and Hurd, this is the number of ttys allocated for logins # It is used in the consolefont, keymaps, numlock and termencoding # service scripts. rc_tty_number=12 ############################################################################## # LINUX CGROUPS RESOURCE MANAGEMENT # This sets the mode used to mount cgroups. # "hybrid" mounts cgroups version 2 on /sys/fs/cgroup/unified and # cgroups version 1 on /sys/fs/cgroup. # "legacy" mounts cgroups version 1 on /sys/fs/cgroup # "unified" mounts cgroups version 2 on /sys/fs/cgroup #rc_cgroup_mode="unified" # This is a list of controllers which should be enabled for cgroups version 2 # when hybrid mode is being used. # Controllers listed here will not be available for cgroups version 1. #rc_cgroup_controllers="" # This variable contains the cgroups version 2 settings for your services. # If this is set in this file, the settings will apply to all services. # If you want different settings for each service, place the settings in # /etc/conf.d/foo for service foo. # The format is to specify the setting and value followed by a newline. # Multiple settings and values can be specified. # For example, you would use this to set the maximum memory and maximum # number of pids for a service. #rc_cgroup_settings=" #memory.max 10485760 #pids.max max #" # # For more information about the adjustments that can be made with # cgroups version 2, see Documentation/cgroups-v2.txt in the linux kernel # source tree. #rc_cgroup_settings="" # This switch controls whether or not cgroups version 1 controllers are # individually mounted under # /sys/fs/cgroup in hybrid or legacy mode. #rc_controller_cgroups="YES" # The following setting turns on the memory.use_hierarchy setting in the # root memory cgroup for cgroups v1. # It must be set to yes in this file if you want this functionality. #rc_cgroup_memory_use_hierarchy="NO" # The following settings allow you to set up values for the cgroups version 1 # controllers for your services. # They can be set in this file;, however, if you do this, the settings # will apply to all of your services. # If you want different settings for each service, place the settings in # /etc/conf.d/foo for service foo. # The format is to specify the names of the settings followed by their # values. Each variable can hold multiple settings. # For example, you would use this to set the cpu.shares setting in the # cpu controller to 512 for your service. # rc_cgroup_cpu=" # cpu.shares 512 # " # # For more information about the adjustments that can be made with # cgroups version 1, see Documentation/cgroups-v1/* in the linux kernel # source tree. # Set the blkio controller settings for this service. #rc_cgroup_blkio="" # Set the cpu controller settings for this service. #rc_cgroup_cpu="" # Add this service to the cpuacct controller (any value means yes). #rc_cgroup_cpuacct="" # Set the cpuset controller settings for this service. #rc_cgroup_cpuset="" # Set the devices controller settings for this service. #rc_cgroup_devices="" # Set the hugetlb controller settings for this service. #rc_cgroup_hugetlb="" # Set the memory controller settings for this service. #rc_cgroup_memory="" # Set the net_cls controller settings for this service. #rc_cgroup_net_cls="" # Set the net_prio controller settings for this service. #rc_cgroup_net_prio="" # Set the pids controller settings for this service. #rc_cgroup_pids="" # Set this to YES if you want all of the processes in a service's cgroup # killed when the service is stopped or restarted. # Be aware that setting this to yes means all of a service's # child processes will be killed. Keep this in mind if you set this to # yes here instead of for the individual services in # /etc/conf.d/. # To perform this cleanup manually for a stopped service, you can # execute cgroup_cleanup with /etc/init.d/ cgroup_cleanup or # rc-service cgroup_cleanup. # If the kernel includes support for cgroup2's cgroup.kill, this is used # to reliably teardown the cgroup. # If this fails, the process followed in this cleanup is the following: # 1. send stopsig (sigterm if it isn't set) to all processes left in the # cgroup immediately followed by sigcont. # 2. Send sighup to all processes in the cgroup if rc_send_sighup is # yes. # 3. delay for rc_timeout_stopsec seconds. # 4. send sigkill to all processes in the cgroup unless disabled by # setting rc_send_sigkill to no. # rc_cgroup_cleanup="NO" # If this is yes, we will send sighup to the processes in the cgroup # immediately after stopsig and sigcont. #rc_send_sighup="NO" # This is the amount of time in seconds that we delay after sending sigcont # and optionally sighup, before we optionally send sigkill to all # processes in the # cgroup. # The default is 90 seconds. #rc_timeout_stopsec="90" # If this is set to no, we do not send sigkill to all processes in the # cgroup. #rc_send_sigkill="YES" ############################################################################## # SUPERVISE DAEMON CONFIGURATION VARIABLES # These variables sets more reasonable defaults for supervise-daemon(8). # They may be overriden on a per service basis. # Wait this number of seconds before restarting a daemon after it crashes. respawn_delay=2 # Sets the maximum number of times a daemon will be respawned during a respawn # period. If a daemon dies more than this number of times during a respawn # period, supervise-daemon(8) will give up trying to respawn it and exit. # 0 means unlimited. respawn_max=5 # Sets the length in seconds of a respawn period. respawn_period=1800 Kernel system variables configuration files Files found under the /etc/sysctl.d directory that end with .conf are parsed within sysctl(8) at boot time. If you want to set kernel variables you can either edit /etc/sysctl.conf or make a new file. The filename isn't important, but don't make it a package name as it may clash with something the package builder needs later. The file name must end with .conf, or it will not be read. The recommended location for local system settings is /etc/sysctl.d/local.conf but as long as you follow the rules for the name of the file, anything will work. see the sysctl.conf(5) man page for details of the format. This manpage can be found in the `procps-doc` package. #!/bin/sh # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Define variables scandir="/run/openrc/s6-scan" statfile=/dev/shm/s6-svstat.${USER} color_red='\E[01;31m' color_green='\E[32m' color_yellow='\E[01;33m' # Time Modules uptimeModules() { # Given a single integer argument representing seconds of uptime... # convert uptime to a friendly human readable string: '2d 16h 58m 46s' # define a variable to keep track of the longest length uptime string uSec=${1:-0} uDay=$(( $uSec / 86400 )) uSec=$(( $uSec % 86400 )) uHour=$(( $uSec / 3600 )) uSec=$(( $uSec % 3600 )) uMin=$(( $uSec / 60 )) uSec=$(( $uSec % 60 )) [ $uDay -ne 0 ] && pDay="${uDay}d " || pDay="" [ $uHour -ne 0 ] && pHour="${uHour}h " || pHour="" [ $uMin -ne 0 ] && pMin="${uMin}m " || pMin="" [ $uSec -ne 0 ] && pSec="${uSec}s " || pSec="" parsedUptime="$( echo ${pDay}${pHour}${pMin}${pSec} | sed 's#[ \t]*$##' )" uCharCount=${#parsedUptime} } # Make sure we are running as root if [ $(id -u) != 0 ]; then printf "This command must be run as root\n" exit 1 fi # Make sure scandir exists if [ ! -d $scandir ]; then printf "%s\n" "$scandir does not exist" exit 1 fi # Make sure s6-svscan is running if ! pgrep s6-svscan >/dev/null ; then printf "s6-svscan is not running\n" exit 1 fi # If TERM is undefined (launching sstat through an ssh command) then make it vt100 if [ -z $TERM -o $TERM = "dumb" ]; then export TERM=vt100 fi # Gather list of candidate services s6-supervise may be supervising # filter for folders and symlinks at /run/openrc/s6-scan/* omitting output starting with '.' services="$(find $scandir -maxdepth 1 -mindepth 1 \( -type d -or -type l \) | awk -F'/' '{ if ( $NF !~ "^\\." ) print $NF}')" if [ -z "$services" ]; then printf "s6 found no services configured for supervision\n" exit 1 fi # Gather status for each service from s6-svstat # write to tmp file in memory for non I/O bound repetitive access rm -f $statfile 2>/dev/null for service in $services ; do echo "$service $(s6-svstat ${scandir}/${service})" >> $statfile done # Define longest string from parsed uptime (default to 7 to match string length of 'Up Time') timeStringLength=7 for uptime in $(awk '$2 == "up" {print $5}' $statfile | sort -run) do uptimeModules $uptime [ ${uCharCount} -gt $timeStringLength ] && timeStringLength=$uCharCount done # Print the status header like so... # Service Name State PID Up Time Start Time #---------------------------- ----- ----- -------------- ------------------- printf "\n" printf "%28s %5s %5s %${timeStringLength}s %19s\n" "Service Name" "State" "PID" "Up Time" "Start Time" for dashes in 28 5 5 $timeStringLength 19 ; do printf "%0.s-" $(seq 1 $dashes) ; echo -n ' ' done && printf "\n" # sshd up (pid 26300) 80373 seconds cat $statfile | \ while read line do set $line service=$1 state=$2 pid=${4/)/} time=$5 # call function to convert time in seconds and define additional variables uptimeModules $time if [ "$state" = up ]; then if [ $time -lt 30 ]; then # uptime < 30 seconds, color the whole line yellow echo -en "$color_yellow" # 1st 4 columns are printed with printf for space padding printf "%28s %5s %5s %${timeStringLength}s" $service $state $pid "$parsedUptime" # 4th column is output from date -d echo -e " $(date -d "${time} seconds ago" "+%F %T")" # reset terminal colors tput sgr0 else printf "%28s" $service # uptime > 30 seconds, color just the "state" value green echo -en "$color_green" printf " %5s" $state # reset terminal colors tput sgr0 printf " %5s" $pid printf " %${timeStringLength}s" "$parsedUptime" echo -e " $(date -d "${time} seconds ago" "+%F %T")" fi else printf "%28s" $service echo -en "$color_red" printf " %5s" $state tput sgr0 echo "" fi done # Cleanup rm -f $statfile 2>/dev/null printf "\n\n" rc-status #!/bin/sh # Detect AC power or not in a portable way # Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. if [ -f /proc/acpi/ac_adapter/*/state ]; then cat /proc/acpi/ac_adapter/*/state | while read line; do case "$line" in "state:"*"off-line") exit 128;; esac done elif [ -d /sys/class/power_supply ]; then for dir in /sys/class/power_supply/*/; do [ "$(cat "${dir}/type")" != "Mains" ] && continue [ "$(cat "${dir}/online")" = 0 ] && exit 128 done elif [ -f /proc/pmu/info ]; then cat /proc/pmu/info | while read line; do case "$line" in "AC Power"*": 0") exit 128;; esac done elif command -v envstat >/dev/null 2>&1; then # NetBSD has envstat envstat -d acpiacad0 2>/dev/null | while read line; do case "$line" in "connected:"*"OFF") exit 128;; esac done elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then case $(sysctl -n hw.acpi.acline) in 0) exit 1;; *) exit 0;; esac else exit 255 fi [ $? != 128 ] #!/bin/sh # This is a reimplementation of the systemd binfmt.d code to register # misc binary formats with the kernel. # # See the binfmt.d manpage as well: # http://0pointer.de/public/systemd-man/binfmt.d.html # This script should match the manpage as of 2015/03/31 # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. apply_file() { [ $# -lt 1 ] && return 0 FILE="$1" LINENUM=0 ### FILE FORMAT ### # See https://www.kernel.org/doc/Documentation/binfmt_misc.txt while read -r line; do LINENUM=$(( LINENUM+1 )) case $line in \#*) continue ;; \;*) continue ;; '') continue ;; esac local reg=${line#*:} [ -e /proc/sys/fs/binfmt_misc/${reg%%:*} ] && echo -1 > /proc/sys/fs/binfmt_misc/${reg%%:*} echo "${line}" > /proc/sys/fs/binfmt_misc/register rc=$? if [ $rc -ne 0 ]; then printf "binfmt: invalid entry on line %d of \`%s'\n" \ "$LINENUM" "$FILE" >&2 error=1 fi done <$FILE return $rc } [ -e /proc/sys/fs/binfmt_misc/register ] || exit 0 error=0 if [ $# -gt 0 ]; then while [ $# -gt 0 ]; do apply_file "$1" shift done else # The hardcoding of these paths is intentional; we are following the # systemd spec. binfmt_dirs='/usr/lib/binfmt.d/ /run/binfmt.d/ /etc/binfmt.d/' binfmt_basenames='' binfmt_d='' # Build a list of sorted unique basenames # directories declared later in the binfmt_d list will override earlier # directories, on a per file basename basis. # `/run/binfmt.d/foo.conf' supersedes `/usr/lib/binfmt.d/foo.conf'. # `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf' for d in ${binfmt_dirs} ; do [ -d $d ] && for f in ${d}/*.conf ; do case "${f##*/}" in systemd.conf|systemd-*.conf) continue;; esac [ -e $f ] && binfmt_basenames="${binfmt_basenames}\n${f##*/}" done # for f in ${d} done # for d in ${binfmt_dirs} binfmt_basenames="$(printf "${binfmt_basenames}\n" | sort -u )" for b in $binfmt_basenames ; do real_f='' for d in $binfmt_dirs ; do f=${d}/${b} [ -e "${f}" ] && real_f=$f done [ -e "${real_f}" ] && binfmt_d="${binfmt_d} ${real_f}" done # loop through the gathered fragments, sorted globally by filename. # `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf' for FILE in $binfmt_d ; do apply_file "$FILE" done fi exit $error # vim: set ts=2 sw=2 sts=2 noet ft=sh: #!/bin/sh # This is run by the kernel after the last task is removed from a # control group in the openrc hierarchy. # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. cgroup=/sys/fs/cgroup/openrc PATH=/bin:/usr/bin:/sbin:/usr/sbin if [ -d ${cgroup}/"$1" ]; then rmdir ${cgroup}/"$1" fi # Allow any sh script to work with einfo functions and friends # We also provide a few helpful functions for other programs to use # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. RC_GOT_FUNCTIONS="yes" eindent() { : $(( EINFO_INDENT = ${EINFO_INDENT:-0} + 2 )) [ "$EINFO_INDENT" -gt 40 ] && EINFO_INDENT=40 export EINFO_INDENT } eoutdent() { : $(( EINFO_INDENT = ${EINFO_INDENT:-0} - 2 )) [ "$EINFO_INDENT" -lt 0 ] && EINFO_INDENT=0 return 0 } yesno() { [ -z "$1" ] && return 1 # Check the value directly so people can do: # yesno ${VAR} case "$1" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;; [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;; esac # Check the value of the var so people can do: # yesno VAR # Note: this breaks when the var contains a double quote. local value= eval value=\"\$$1\" case "$value" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;; [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;; *) vewarn "\$$1 is not set properly"; return 2;; esac } rc_runlevel() { rc-status --runlevel } _sanitize_path() { local IFS=":" p= path= for p in $PATH; do case "$p" in /usr/libexec/rc/bin|/usr/libexec/rc/sbin);; /bin|/sbin|/usr/bin|/usr/sbin);; /usr/bin|/usr/sbin);; /usr/local/bin|/usr/local/sbin);; *) path="$path${path:+:}$p";; esac done echo "$path" } # Allow our scripts to support zsh if [ -n "$ZSH_VERSION" ]; then emulate sh NULLCMD=: alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi # Make a sane PATH _PREFIX= _PKG_PREFIX=/usr _LOCAL_PREFIX=/usr/local _LOCAL_PREFIX=${_LOCAL_PREFIX:-/usr/local} _PATH=/usr/libexec/rc/bin case "$_PREFIX" in "$_PKG_PREFIX"|"$_LOCAL_PREFIX") ;; *) _PATH="$_PATH:$_PREFIX/bin:$_PREFIX/sbin";; esac _PATH="$_PATH":/bin:/sbin:/usr/bin:/usr/sbin if [ -n "$_PKG_PREFIX" ]; then _PATH="$_PATH:$_PKG_PREFIX/bin:$_PKG_PREFIX/sbin" fi if [ -n "$_LOCAL_PREFIX" ]; then _PATH="$_PATH:$_LOCAL_PREFIX/bin:$_LOCAL_PREFIX/sbin" fi _path="$(_sanitize_path "$PATH")" PATH="$_PATH${_path:+:}$_path" ; export PATH unset _sanitize_path _PREFIX _PKG_PREFIX _LOCAL_PREFIX _PATH _path for arg; do case "$arg" in --nocolor|--nocolour|-C) EINFO_COLOR="NO" ; export EINFO_COLOR ;; esac done if [ -t 1 ] && yesno "${EINFO_COLOR:-YES}"; then if [ -z "$GOOD" ]; then eval $(eval_ecolors) fi else # We need to have shell stub functions so our init scripts can remember # the last ecmd for _e in ebegin eend error errorn einfo einfon ewarn ewarnn ewend \ vebegin veend veinfo vewarn vewend; do eval "$_e() { local _r; command $_e \"\$@\"; _r=\$?; \ EINFO_LASTCMD=$_e; export EINFO_LASTCMD ; return \$_r; }" done unset _e fi #!/bin/sh # Shell wrapper to list our dependencies # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. . /usr/libexec/rc/sh/functions.sh . /usr/libexec/rc/sh/rc-functions.sh config() { [ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3 } need() { [ -n "$*" ] && echo "$RC_SVCNAME ineed $*" >&3 } use() { [ -n "$*" ] && echo "$RC_SVCNAME iuse $*" >&3 } want() { [ -n "$*" ] && echo "$RC_SVCNAME iwant $*" >&3 } before() { [ -n "$*" ] && echo "$RC_SVCNAME ibefore $*" >&3 } after() { [ -n "$*" ] && echo "$RC_SVCNAME iafter $*" >&3 } provide() { [ -n "$*" ] && echo "$RC_SVCNAME iprovide $*" >&3 } keyword() { local c x set -- $* while [ -n "$*" ]; do case "$1" in -containers) x="$(_get_containers)" ;; !-containers) x="$(_get_containers_remove)" ;; *) x=$1 ;; esac c="${c}${x} " shift done [ -n "$c" ] && echo "$RC_SVCNAME keyword $c" >&3 } depend() { : } _done_dirs= for _dir in \ /etc/init.d \ /usr/etc/init.d \ /usr/local/etc/init.d do [ -d "$_dir" ] || continue # Don't do the same dir twice for _d in $_done_dirs; do [ "$_d" = "$_dir" ] && continue 2 done unset _d _done_dirs="$_done_dirs $_dir" cd "$_dir" for RC_SERVICE in *; do [ -x "$RC_SERVICE" -a -f "$RC_SERVICE" ] || continue # Only generate dependencies for OpenRC scripts read one two three <"$RC_SERVICE" case "$one" in \#*/openrc-run) ;; \#*/runscript) ;; \#!) case "$two" in */openrc-run) ;; */runscript) ;; *) continue ;; esac ;; *) continue ;; esac unset one two three RC_SVCNAME=${RC_SERVICE##*/} ; export RC_SVCNAME # Compat SVCNAME=$RC_SVCNAME ; export SVCNAME ( # Save stdout in fd3, then remap it to stderr exec 3>&1 1>&2 _rc_c=${RC_SVCNAME%%.*} if [ -n "$_rc_c" -a "$_rc_c" != "$RC_SVCNAME" ]; then if [ -e "$_dir/../conf.d/$_rc_c" ]; then . "$_dir/../conf.d/$_rc_c" fi fi unset _rc_c if [ -e "$_dir/../conf.d/$RC_SVCNAME" ]; then . "$_dir/../conf.d/$RC_SVCNAME" fi [ -e /etc/rc.conf ] && . /etc/rc.conf if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do [ -e "$_f" ] && . "$_f" done fi if . "$_dir/$RC_SVCNAME"; then echo "$RC_SVCNAME" >&3 _depend fi ) done done #!/bin/sh # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. : ${CONSOLE:=/dev/console} : ${RC_LIBEXECDIR:=/usr/libexec/rc} service_present() { local p="/etc/runlevels/$1/$2" # fail if the file doesn't exist [ ! -e "$p" ] && return 1 # succeed if $RC_SYS empty, can't check further, assume script will run [ -z "$RC_SYS" ] && return 0 # fail if file contains "-$RC_SYS", because then it won't run grep -Eqi "^[[:space:]]*keyword[[:space:]].*-$RC_SYS([[:space:]]|$)" "$p" && return 1 # succeed otherwise return 0 } if [ -e "$RC_LIBEXECDIR"/console/unicode ]; then termencoding="%G" kmode="-u" else termencoding="(K" kmode="-a" fi # Set the SELinux label on console before everything so we dont lose output [ -x /sbin/restorecon ] && /sbin/restorecon -F /dev/console # Try and set a font and as early as we can if service_present "$RC_DEFAULTLEVEL" consolefont || service_present "$RC_BOOTLEVEL" consolefont; then printf "\033%s" "$termencoding" >"$CONSOLE" 2>/dev/null if [ -r "$RC_LIBEXECDIR"/console/font ] && \ command -v setfont > /dev/null 2>&1; then [ -c "$CONSOLE" ] && cons="-C $CONSOLE" setfont $cons "$RC_LIBEXECDIR"/console/font 2>/dev/null fi fi # Try and set a keyboard map as early as possible if service_present "$RC_DEFAULTLEVEL" loadkeys || service_present "$RC_BOOTLEVEL" loadkeys; then kbd_mode $kmode -C "$CONSOLE" 2>/dev/null if [ -r "$RC_LIBEXECDIR"/console/keymap ]; then loadkeys -q "$RC_LIBEXECDIR"/console/keymap 2>/dev/null fi fi # Ensure we exit 0 so the boot continues exit 0 #!/bin/sh # Copyright (c) 1999-2007 Gentoo Foundation # Copyright (c) 2007-2009 Roy Marples # Released under the 2-clause BSD license. . "$RC_LIBEXECDIR"/sh/functions.sh [ -r "/etc/rc.conf" ] && . "/etc/rc.conf" if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do [ -e "$_f" ] && . "$_f" done fi # check for md5sum, and probably /usr too if command -v md5sum >/dev/null; then got_md5sum=true else eerror "md5sum is missing, which suggests /usr is not mounted" eerror "If you have separate /usr, it must be mounted by initramfs" eerror "If not, you should check coreutils is installed correctly" got_md5sum=false fi # By default VServer already has /proc mounted, but OpenVZ does not! # However, some of our users have an old proc image in /proc # NFC how they managed that, but the end result means we have to test if # /proc actually works or not. We do this by comparing two reads of # /proc/self/environ for which we have set the variable VAR to two # different values. If the comparison comes back equal, we know that # /proc is not working. mountproc=true f=/proc/self/environ if [ -e $f ]; then if $got_md5sum && [ "$(VAR=a md5sum $f)" = "$(VAR=b md5sum $f)" ]; then eerror "You have cruft in /proc that should be deleted" else # If they don't have md5sum, this will fail in pretty ways if # /proc isn't really mounted. Oh well, their system is busted # anyway, and they get to keep the pieces. einfo "/proc is already mounted" mountproc=false fi fi unset f if $mountproc; then ebegin "Mounting /proc" if ! fstabinfo --mount /proc; then mount -n -t proc -o noexec,nosuid,nodev proc /proc fi eend $? fi # /run is a new directory for storing volatile runtime data. # Read more about /run at https://lwn.net/Articles/436012 sys="$(openrc --sys)" if [ ! -d /run ]; then if [ "$sys" = VSERVER ]; then if [ -e /run ]; then rm -rf /run fi mkdir /run else eerror "The /run directory does not exist. Unable to continue." return 1 fi fi if [ "$sys" = VSERVER ]; then rm -rf /run/* elif ! mountinfo -q /run; then ebegin "Mounting /run" run_mount_opts="mode=0755,nosuid,nodev,nr_inodes=800k,size=20%,strictatime" if ! fstabinfo --mount /run; then if ! mount -t tmpfs -o ${run_mount_opts} tmpfs /run; then eerror "Unable to mount tmpfs on /run." eerror "Can't continue." exit 1 fi fi eend fi checkpath -d "$RC_SVCDIR" checkpath -d -m 0775 -o root:uucp /run/lock # Try to mount xenfs as early as possible, otherwise rc_sys() will always # return RC_SYS_XENU and will think that we are in a domU while it's not. if grep -Eq "[[:space:]]+xenfs$" /proc/filesystems; then ebegin "Mounting xenfs" if ! fstabinfo --mount /proc/xen; then mount -n -t xenfs xenfs /proc/xen -o nosuid,nodev,noexec fi eend $? fi if [ -e "$RC_LIBEXECDIR"/cache/softlevel ]; then cp -p "$RC_LIBEXECDIR"/cache/* "$RC_SVCDIR" 2>/dev/null fi echo sysinit >"$RC_SVCDIR"/softlevel [ -x /sbin/restorecon ] && /sbin/restorecon -rF /run exit 0 #!/bin/sh # Shell wrapper for openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. verify_boot() { if [ ! -e ${RC_SVCDIR}/softlevel ]; then eerror "You are attempting to run an openrc service on a" eerror "system which openrc did not boot." eerror "You may be inside a chroot or you may have used" eerror "another initialization system to boot this system." eerror "In this situation, you will get unpredictable results!" eerror eerror "If you really want to do this, issue the following command:" eerror "touch ${RC_SVCDIR}/softlevel" exit 1 fi return 0 } sourcex() { if [ "$1" = "-e" ]; then shift [ -e "$1" ] || return 1 fi if ! . "$1"; then eerror "$RC_SVCNAME: error loading $1" exit 1 fi } sourcex "/usr/libexec/rc/sh/functions.sh" sourcex "/usr/libexec/rc/sh/rc-functions.sh" case $RC_SYS in PREFIX|SYSTEMD-NSPAWN) ;; *) sourcex -e "/usr/libexec/rc/sh/rc-cgroup.sh";; esac # Support LiveCD foo if sourcex -e "/sbin/livecd-functions.sh"; then livecd_read_commandline fi if [ -z "$1" -o -z "$2" ]; then eerror "$RC_SVCNAME: not enough arguments" exit 1 fi # So daemons know where to recall us if needed RC_SERVICE="$1" ; export RC_SERVICE shift # Compat SVCNAME=$RC_SVCNAME ; export SVCNAME # Dependency function config() { [ -n "$*" ] && echo "config $*" } need() { [ -n "$*" ] && echo "need $*" } use() { [ -n "$*" ] && echo "use $*" } want() { [ -n "$*" ] && echo "want $*" } before() { [ -n "$*" ] && echo "before $*" } after() { [ -n "$*" ] && echo "after $*" } provide() { [ -n "$*" ] && echo "provide $*" } keyword() { local c x set -- $* while [ -n "$*" ]; do case "$1" in -containers) x="$(_get_containers)" ;; !-containers) x="$(_get_containers_remove)" ;; *) x=$1 ;; esac c="${c}${x} " shift done [ -n "$c" ] && echo "keyword $c" } # Describe the init script to the user describe() { if [ -n "$description" ]; then einfo "$description" else ewarn "No description for $RC_SVCNAME" fi local svc= desc= for svc in ${extra_commands:-$opts} $extra_started_commands \ $extra_stopped_commands; do eval desc=\$description_$svc if [ -n "$desc" ]; then einfo "$HILITE$svc$NORMAL: $desc" else ewarn "$HILITE$svc$NORMAL: no description" fi done } # Report status _status() { if service_stopping; then ewarn "status: stopping" return 4 elif service_starting; then ewarn "status: starting" return 8 elif service_inactive; then ewarn "status: inactive" return 16 elif service_crashed; then eerror "status: crashed" return 32 elif service_started; then einfo "status: started" return 0 else einfo "status: stopped" return 3 fi } # These functions select the appropriate function to call from the # supervisor modules default_start() { local func=ssd_start case "$supervisor" in runit) func=runit_start ;; s6) func=s6_start ;; supervise-daemon) func=supervise_start ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } default_stop() { local func=ssd_stop case "$supervisor" in runit) func=runit_stop ;; s6) func=s6_stop ;; supervise-daemon) func=supervise_stop ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } default_status() { local func=ssd_status case "$supervisor" in runit) func=runit_status ;; s6) func=s6_status ;; supervise-daemon) func=supervise_status ;; ?*) ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" ;; esac $func } # Template start / stop / status functions # package init scripts may override these, but the bodies are as minimal as # possible, so that the init scripts can creatively wrap default_* # functions. start() { default_start } stop() { default_stop } status() { default_status } # Start debug output yesno $RC_DEBUG && set -x # Load configuration settings. First the global ones, then any # service-specific settings. sourcex -e "/etc/rc.conf" if [ -d "/etc/rc.conf.d" ]; then for _f in "/etc"/rc.conf.d/*.conf; do sourcex -e "$_f" done fi _conf_d=${RC_SERVICE%/*}/../conf.d # If we're net.eth0 or openvpn.work then load net or openvpn config _c=${RC_SVCNAME%%.*} if [ -n "$_c" -a "$_c" != "$RC_SVCNAME" ]; then if ! sourcex -e "$_conf_d/$_c.$RC_RUNLEVEL"; then sourcex -e "$_conf_d/$_c" fi fi unset _c # Overlay with our specific config if ! sourcex -e "$_conf_d/$RC_SVCNAME.$RC_RUNLEVEL"; then sourcex -e "$_conf_d/$RC_SVCNAME" fi unset _conf_d # If we are configured to run in a VRF, provide a hint for that RC_VRF_EXEC="" if [ -n "$vrf" ]; then RC_VRF_EXEC="/sbin/ip vrf exec $vrf" fi # Add ip netns if configured to run in a netns (netns+vrf may stack) if [ -n "$netns" ]; then RC_VRF_EXEC="/sbin/ip netns exec $netns $RC_VRF_EXEC" fi # load service supervisor functions sourcex "/usr/libexec/rc/sh/runit.sh" sourcex "/usr/libexec/rc/sh/s6.sh" sourcex "/usr/libexec/rc/sh/start-stop-daemon.sh" sourcex "/usr/libexec/rc/sh/supervise-daemon.sh" # Load our script sourcex "$RC_SERVICE" # Set verbose mode if yesno "${rc_verbose:-$RC_VERBOSE}"; then EINFO_VERBOSE=yes export EINFO_VERBOSE fi for _cmd; do if [ "$_cmd" != status -a "$_cmd" != describe ]; then # Apply any ulimit defined if [ -n "${rc_ulimit:-$RC_ULIMIT}" ]; then if ! ulimit ${rc_ulimit:-$RC_ULIMIT}; then eerror "${RC_SVCNAME}: unable to apply RC_ULIMIT settings" fi fi # Apply cgroups settings if defined if [ "$(command -v cgroup_add_service)" = "cgroup_add_service" ] then if grep -qs /sys/fs/cgroup /proc/1/mountinfo then if [ -d /sys/fs/cgroup -a ! -w /sys/fs/cgroup ]; then eerror "No permission to apply cgroup settings" break fi fi cgroup_add_service fi [ "$(command -v cgroup_set_limits)" = "cgroup_set_limits" ] && cgroup_set_limits [ "$(command -v cgroup2_set_limits)" = "cgroup2_set_limits" ] && [ "$_cmd" = start ] && cgroup2_set_limits break fi done eval "printf '%s\n' $required_dirs" | while read _d; do if [ -n "$_d" ] && [ ! -d "$_d" ]; then eerror "$RC_SVCNAME: \`$_d' is not a directory" exit 1 fi done [ $? -ne 0 ] && exit 1 unset _d eval "printf '%s\n' $required_files" | while read _f; do if [ -n "$_f" ] && [ ! -r "$_f" ]; then eerror "$RC_SVCNAME: \`$_f' is not readable" exit 1 fi done [ $? -ne 0 ] && exit 1 unset _f if [ -n "$opts" ]; then ewarn "Use of the opts variable is deprecated and will be" ewarn "removed in the future." ewarn "Please use extra_commands, extra_started_commands or extra_stopped_commands." fi while [ -n "$1" ]; do # Special case depend if [ "$1" = depend ]; then shift # Enter the dir of the init script to fix the globbing # bug 412677 cd ${RC_SERVICE%/*} _depend cd / continue fi # See if we have the required function and run it for _cmd in describe start stop status ${extra_commands:-$opts} \ $extra_started_commands $extra_stopped_commands do if [ "$_cmd" = "$1" ]; then if [ "$(command -v "$1")" = "$1" ]; then # If we're in the background, we may wish to # fake some commands. We do this so we can # "start" ourselves from inactive which then # triggers other services to start which # depend on us. # A good example of this is openvpn. if yesno $IN_BACKGROUND; then for _cmd in $in_background_fake; do if [ "$_cmd" = "$1" ]; then shift continue 3 fi done fi # Check to see if we need to be started before # we can run this command for _cmd in $extra_started_commands; do if [ "$_cmd" = "$1" ]; then if verify_boot && ! service_started; then eerror "$RC_SVCNAME: cannot \`$1' as it has not been started" exit 1 fi fi done # Check to see if we need to be stopped before # we can run this command for _cmd in $extra_stopped_commands; do if [ "$_cmd" = "$1" ]; then if verify_boot && ! service_stopped; then eerror "$RC_SVCNAME: cannot \`$1' as it has not been stopped" exit 1 fi fi done unset _cmd case $1 in start|stop|status) verify_boot;; esac if [ "$(command -v "$1_pre")" = "$1_pre" ] then "$1"_pre || exit $? fi "$1" || exit $? if [ "$(command -v "$1_post")" = "$1_post" ] then "$1"_post || exit $? fi [ "$(command -v cgroup_cleanup)" = "cgroup_cleanup" ] && [ "$1" = "stop" ] && yesno "${rc_cgroup_cleanup}" && \ cgroup_cleanup if [ "$(command -v cgroup2_remove)" = "cgroup2_remove" ]; then [ "$1" = stop ] || [ -z "${command}" ] && cgroup2_remove fi shift continue 2 else if [ "$_cmd" = "start" -o "$_cmd" = "stop" ] then shift continue 2 else eerror "$RC_SVCNAME: function \`$1' defined but does not exist" exit 1 fi fi fi done eerror "$RC_SVCNAME: unknown function \`$1'" exit 1 done exit 0 # Copyright (c) 2012-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_stopped_commands="${extra_stopped_commands} cgroup_cleanup" description_cgroup_cleanup="Kill all processes in the cgroup" cgroup_find_path() { local OIFS name dir result [ -n "$1" ] || return 0 OIFS="$IFS" IFS=":" while read -r _ name dir; do [ "$name" = "$1" ] && result="$dir" done < /proc/1/cgroup IFS="$OIFS" printf "%s" "${result}" } # This extracts all pids in a cgroup and puts them in the cgroup_pids # variable. # It is done this way to avoid subshells so we don't have to worry about # locating the pid of the subshell in the cgroup. # https://github.com/openrc/openrc/issues/396 cgroup_get_pids() { local cgroup_procs p cgroup_pids= cgroup_procs="$(cgroup2_find_path)" if [ -n "${cgroup_procs}" ]; then cgroup_procs="${cgroup_procs}/openrc.${RC_SVCNAME}/cgroup.procs" else cgroup_procs="/sys/fs/cgroup/openrc/${RC_SVCNAME}/tasks" fi [ -f "${cgroup_procs}" ] || return 0 while read -r p; do [ "$p" -eq $$ ] && continue cgroup_pids="${cgroup_pids} ${p}" done < "${cgroup_procs}" return 0 } cgroup_running() { [ -d "/sys/fs/cgroup/unified/${RC_SVCNAME}" ] || [ -d "/sys/fs/cgroup/${RC_SVCNAME}" ] || [ -d "/sys/fs/cgroup/openrc/${RC_SVCNAME}" ] } cgroup_set_values() { [ -n "$1" ] && [ -n "$2" ] && [ -d "/sys/fs/cgroup/$1" ] || return 0 local controller h controller="$1" h=$(cgroup_find_path "$1") cgroup="/sys/fs/cgroup/${1}${h}openrc_${RC_SVCNAME}" [ -d "$cgroup" ] || mkdir -p "$cgroup" set -- $2 local name val while [ -n "$1" ] && [ "$controller" != "cpuacct" ]; do case "$1" in $controller.*) if [ -n "${name}" ] && [ -w "${cgroup}/${name}" ] && [ -n "${val}" ]; then veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val" printf "%s" "$val" > "$cgroup/$name" fi name=$1 val= ;; *) [ -n "$val" ] && val="$val $1" || val="$1" ;; esac shift done if [ -n "${name}" ] && [ -w "${cgroup}/${name}" ] && [ -n "${val}" ]; then veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val" printf "%s" "$val" > "$cgroup/$name" fi if [ -w "$cgroup/tasks" ]; then veinfo "$RC_SVCNAME: adding to $cgroup/tasks" printf "%d" 0 > "$cgroup/tasks" fi return 0 } cgroup_add_service() { # relocate starting process to the top of the cgroup # it prevents from unwanted inheriting of the user # cgroups. But may lead to a problems where that inheriting # is needed. for d in /sys/fs/cgroup/* ; do [ -w "${d}"/tasks ] && printf "%d" 0 > "${d}"/tasks done openrc_cgroup=/sys/fs/cgroup/openrc if [ -d "$openrc_cgroup" ]; then cgroup="$openrc_cgroup/$RC_SVCNAME" mkdir -p "$cgroup" [ -w "$cgroup/tasks" ] && printf "%d" 0 > "$cgroup/tasks" fi } cgroup_set_limits() { local blkio="${rc_cgroup_blkio:-$RC_CGROUP_BLKIO}" [ -n "$blkio" ] && cgroup_set_values blkio "$blkio" local cpu="${rc_cgroup_cpu:-$RC_CGROUP_CPU}" [ -n "$cpu" ] && cgroup_set_values cpu "$cpu" local cpuacct="${rc_cgroup_cpuacct:-$RC_CGROUP_CPUACCT}" [ -n "$cpuacct" ] && cgroup_set_values cpuacct "$cpuacct" local cpuset="${rc_cgroup_cpuset:-$RC_CGROUP_cpuset}" [ -n "$cpuset" ] && cgroup_set_values cpuset "$cpuset" local devices="${rc_cgroup_devices:-$RC_CGROUP_DEVICES}" [ -n "$devices" ] && cgroup_set_values devices "$devices" local hugetlb="${rc_cgroup_hugetlb:-$RC_CGROUP_HUGETLB}" [ -n "$hugetlb" ] && cgroup_set_values hugetlb "$hugetlb" local memory="${rc_cgroup_memory:-$RC_CGROUP_MEMORY}" [ -n "$memory" ] && cgroup_set_values memory "$memory" local net_cls="${rc_cgroup_net_cls:-$RC_CGROUP_NET_CLS}" [ -n "$net_cls" ] && cgroup_set_values net_cls "$net_cls" local net_prio="${rc_cgroup_net_prio:-$RC_CGROUP_NET_PRIO}" [ -n "$net_prio" ] && cgroup_set_values net_prio "$net_prio" local pids="${rc_cgroup_pids:-$RC_CGROUP_PIDS}" [ -n "$pids" ] && cgroup_set_values pids "$pids" return 0 } cgroup2_find_path() { if grep -qw cgroup2 /proc/filesystems; then case "${rc_cgroup_mode:-unified}" in hybrid) printf "/sys/fs/cgroup/unified" ;; unified) printf "/sys/fs/cgroup" ;; esac fi return 0 } cgroup2_remove() { local cgroup_path rc_cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" [ ! -d "${rc_cgroup_path}" ] || [ ! -e "${rc_cgroup_path}"/cgroup.events ] && return 0 grep -qx "$$" "${rc_cgroup_path}/cgroup.procs" && printf "%d" 0 > "${cgroup_path}/cgroup.procs" local key populated vvalue while read -r key value; do case "${key}" in populated) populated=${value} ;; *) ;; esac done < "${rc_cgroup_path}/cgroup.events" [ "${populated}" = 1 ] && return 0 rmdir "${rc_cgroup_path}" return 0 } cgroup2_set_limits() { local cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 0 mountinfo -q "${cgroup_path}"|| return 0 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" [ ! -d "${rc_cgroup_path}" ] && mkdir "${rc_cgroup_path}" [ -f "${rc_cgroup_path}"/cgroup.procs ] && printf 0 > "${rc_cgroup_path}"/cgroup.procs [ -z "${rc_cgroup_settings}" ] && return 0 echo "${rc_cgroup_settings}" | while read -r key value; do [ -z "${key}" ] && continue [ -z "${value}" ] && continue [ ! -f "${rc_cgroup_path}/${key}" ] && continue veinfo "${RC_SVCNAME}: cgroups: setting ${key} to ${value}" printf "%s" "${value}" > "${rc_cgroup_path}/${key}" done return 0 } cgroup2_kill_cgroup() { local cgroup_path cgroup_path="$(cgroup2_find_path)" [ -z "${cgroup_path}" ] && return 1 rc_cgroup_path="${cgroup_path}/openrc.${RC_SVCNAME}" if [ -f "${rc_cgroup_path}"/cgroup.kill ]; then printf "%d" 1 > "${rc_cgroup_path}"/cgroup.kill fi return } cgroup_fallback_cleanup() { ebegin "Starting fallback cgroups cleanup" local loops=0 cgroup_get_pids if [ -n "${cgroup_pids}" ]; then kill -s CONT ${cgroup_pids} 2> /dev/null kill -s "${stopsig:-TERM}" ${cgroup_pids} 2> /dev/null yesno "${rc_send_sighup:-no}" && kill -s HUP ${cgroup_pids} 2> /dev/null kill -s "${stopsig:-TERM}" ${cgroup_pids} 2> /dev/null cgroup_get_pids while [ -n "${cgroup_pids}" ] && [ "${loops}" -lt "${rc_timeout_stopsec:-90}" ]; do loops=$((loops+1)) sleep 1 cgroup_get_pids done if [ -n "${cgroup_pids}" ] && yesno "${rc_send_sigkill:-yes}"; then kill -s KILL ${cgroup_pids} 2> /dev/null fi fi eend $? } cgroup_cleanup() { cgroup_running || return 0 ebegin "Starting cgroups cleanup" cgroup2_kill_cgroup || cgroup_fallback_cleanup cgroup2_remove cgroup_get_pids [ -z "${cgroup_pids}" ] eend $? "Unable to stop all processes" return 0 } # Copyright (c) 2007 Gentoo Foundation # Copyright (c) 2007-2009 Roy Marples # Released under the 2-clause BSD license. net_fs_list=" afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre ncpfs nfs nfs4 ocfs2 shfs smbfs " is_net_fs() { [ -z "$1" ] && return 1 # Check OS specific flags to see if we're local or net mounted mountinfo --quiet --netdev "$1" && return 0 mountinfo --quiet --nonetdev "$1" && return 1 # Fall back on fs types local t=$(mountinfo --fstype "$1") for x in $net_fs_list $extra_net_fs_list; do [ "$x" = "$t" ] && return 0 done return 1 } is_union_fs() { [ ! -x /sbin/unionctl ] && return 1 unionctl "$1" --list >/dev/null 2>&1 } get_bootparam() { local match="$1" [ -z "$match" -o ! -r /proc/cmdline ] && return 1 set -- $(cat /proc/cmdline) while [ -n "$1" ]; do [ "$1" = "$match" ] && return 0 case "$1" in gentoo=*) local params="${1##*=}" local IFS=, x= for x in $params; do [ "$x" = "$match" ] && return 0 done ;; esac shift done return 1 } get_bootparam_value() { local match="$1" which_value="$2" sep="$3" result value if [ -n "$match" -a -r /proc/cmdline ]; then set -- $(cat /proc/cmdline) while [ -n "$1" ]; do case "$1" in $match=*) value="${1##*=}" case "$which_value" in all) [ -z "$sep" ] && sep=' ' if [ -z "$result" ]; then result="$value" else result="${result}${sep}${value}" fi ;; last) result="$value" ;; *) result="$value" break ;; esac ;; esac shift done fi echo $result } need_if_exists() { for x; do rc-service --exists "${x}" && need "${x}" done } # Called from openrc-run.sh or gendepends.sh _get_containers() { local c case "${RC_UNAME}" in FreeBSD) c="-jail" ;; Linux) c="-docker -podman -lxc -openvz -rkt -systemd-nspawn -uml -vserver" ;; esac echo $c } _get_containers_remove() { local c for x in $(_get_containers); do c="${c}!${x} " done echo $c } _depend() { depend local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends= # Add any user defined depends for _deptype in config:CONFIG need:NEED use:USE want:WANT \ after:AFTER before:BEFORE \ provide:PROVIDE keyword:KEYWORD; do IFS=: set -- $_deptype unset IFS eval _depends=\$rc_${_rc_svcname}_$1 [ -z "$_depends" ] && eval _depends=\$rc_$1 [ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2 [ -z "$_depends" ] && eval _depends=\$RC_$2 $1 $_depends done } # Add our sbin to $PATH case "$PATH" in "$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);; *) PATH="$RC_LIBEXECDIR/sbin:$PATH" ; export PATH ;; esac # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Declare this here so that no formatting doesn't affect the embedded newline __IFS=" " # Handy function to handle all our unmounting needs # mountinfo is a C program to actually find our mounts on our supported OS's # We rely on fuser being present, so if it's not then don't unmount anything. # This isn't a real issue for the BSD's, but it is for Linux. do_unmount() { local cmd="$1" retval=0 retry= pids=- local f_opts="-m -c" f_kill="-s " mnt= if [ "$RC_UNAME" = "Linux" ]; then f_opts="-m" f_kill="-" fi shift local IFS="$__IFS" set -- $(mountinfo "$@") unset IFS for mnt; do # Unmounting a shared mount can unmount other mounts, so # we need to check the mount is still valid mountinfo --quiet "$mnt" || continue # Ensure we interpret all characters properly. mnt=$(printf "$mnt") case "$cmd" in umount) ebegin "Unmounting $mnt" ;; *) ebegin "Remounting $mnt read only" ;; esac retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1 while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do if command -v fuser >/dev/null 2>&1; then pids="$(timeout -s KILL "${rc_fuser_timeout:-60}" \ fuser $f_opts "$mnt" 2>/dev/null)" fi case " $pids " in *" $$ "*) eend 1 "failed because we are using" \ "$mnt" retry=0;; " - ") eend 1 retry=0;; " ") eend 1 "in use but fuser finds nothing" retry=0;; *) if [ $retry -le 0 ]; then eend 1 else local sig="TERM" : $(( retry -= 1 )) [ $retry = 1 ] && sig="KILL" fuser $f_kill$sig -k $f_opts \ "$mnt" >/dev/null 2>&1 sleep 1 fi ;; esac [ $retry -le 0 ] && break done if [ $retry -le 0 ]; then retval=1 else eend 0 fi done return $retval } # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. # Released under the 2-clause BSD license. runit_start() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" ebegin "Starting ${name:-$RC_SVCNAME}" ln -snf "${service_path}" "${service_link}" local i=0 retval=1 # it can take upto 5 seconds for runsv to start while [ $i -lt 6 ] ; do if ${RC_VRF_EXEC} sv start "${service_link}" > /dev/null 2>&1; then retval=0 break fi sleep 1 && i=$(expr $i + 1) done if [ $retval -eq 1 ]; then # clean up the link else sv will keep on trying rm "${service_link}" fi eend $retval "Failed to start ${name:-$RC_SVCNAME}" } runit_stop() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" ebegin "Stopping ${name:-$RC_SVCNAME}" sv stop "${service_link}" > /dev/null 2>&1 && rm "${service_link}" eend $? "Failed to stop ${name:-$RC_SVCNAME}" } runit_status() { local service_path service_link service_path="${runit_service:-/etc/sv/${RC_SVCNAME}}" if [ ! -d "${service_path}" ]; then eerror "Runit service ${service_path} not found" return 1 fi service_link="${RC_SVCDIR}/sv/${service_path##*/}" sv status "${service_link}" } # Start / stop / status functions for s6 support # Copyright (c) 2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. [ -z "${s6_service_path}" ] && s6_service_path="/var/svc.d/${RC_SVCNAME}" _s6_force_kill() { local pid s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" pid="${3%)}" [ -z "${pid}" ] && return 0 if kill -0 "${pid}" 2> /dev/null; then ewarn "Sending DOWN & KILL for ${RC_SVCNAME}" s6-svc -dk "${s6_service_link}" sleep 1 kill -0 "${pid}" 2>/dev/null && return 1 fi return 0 } s6_start() { if [ ! -d "${s6_service_path}" ]; then eerror "${s6_service_path} does not exist." return 1 fi s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" ebegin "Starting ${name:-$RC_SVCNAME}" ln -sf "${s6_service_path}" "${s6_service_link}" s6-svscanctl -na "${RC_SVCDIR}"/s6-scan sleep 1.5 ${RC_VRF_EXEC} s6-svc -u "${s6_service_link}" if [ -n "$s6_svwait_options_start" ]; then s6-svwait ${s6_svwait_options_start} "${s6_service_link}" fi sleep 1.5 set -- $(s6-svstat "${s6_service_link}") [ "$1" = "up" ] eend $? "Failed to start ${name:-$RC_SVCNAME}" } s6_stop() { if [ ! -d "${s6_service_path}" ]; then eerror "${s6_service_path} does not exist." return 1 fi s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" ebegin "Stopping ${name:-$RC_SVCNAME}" s6-svc -d -wD -T ${s6_service_timeout_stop:-60000} "${s6_service_link}" set -- $(s6-svstat "${s6_service_link}") [ "$1" = "up" ] && yesno "${s6_force_kill:-yes}" && _s6_force_kill "$@" set -- $(s6-svstat "${s6_service_link}") [ "$1" = "down" ] eend $? "Failed to stop ${name:-$RC_SVCNAME}" } s6_status() { s6_service_link="${RC_SVCDIR}/s6-scan/${s6_service_path##*/}" if [ -L "${s6_service_link}" ]; then s6-svstat "${s6_service_link}" else _status fi } # start / stop / status functions for start-stop-daemon # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. ssd_start() { if [ -z "$command" ]; then ewarn "The command variable is undefined." ewarn "There is nothing for ${name:-$RC_SVCNAME} to start." ewarn "If this is what you intend, please write a start function." ewarn "This will become a failure in a future release." return 0 fi local _background= ebegin "Starting ${name:-$RC_SVCNAME}" if yesno "${command_background}"; then if [ -z "${pidfile}" ]; then eend 1 "command_background option used but no pidfile specified" return 1 fi if [ -n "${command_args_background}" ]; then eend 1 "command_background used with command_args_background" return 1 fi _background="--background --make-pidfile" fi if yesno "$start_inactive"; then local _inactive=false service_inactive && _inactive=true mark_service_inactive fi #the eval call is necessary for cases like: # command_args="this \"is a\" test" # to work properly. eval ${RC_VRF_EXEC} start-stop-daemon --start \ --exec $command \ ${chroot:+--chroot} $chroot \ ${directory:+--chdir} $directory \ ${output_log+--stdout} $output_log \ ${error_log+--stderr} $error_log \ ${output_logger:+--stdout-logger \"$output_logger\"} \ ${error_logger:+--stderr-logger \"$error_logger\"} \ ${capabilities+--capabilities} "$capabilities" \ ${secbits:+--secbits} "$secbits" \ ${no_new_privs:+--no-new-privs} \ ${procname:+--name} $procname \ ${pidfile:+--pidfile} $pidfile \ ${command_user+--user} $command_user \ ${umask+--umask} $umask \ $_background $start_stop_daemon_args \ -- $command_args $command_args_background if eend $? "Failed to start ${name:-$RC_SVCNAME}"; then service_set_value "command" "${command}" [ -n "${chroot}" ] && service_set_value "chroot" "${chroot}" [ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}" [ -n "${procname}" ] && service_set_value "procname" "${procname}" return 0 fi if yesno "$start_inactive"; then if ! $_inactive; then mark_service_stopped fi fi return 1 } ssd_stop() { local _progress= local startcommand="$(service_get_value "command")" local startchroot="$(service_get_value "chroot")" local startpidfile="$(service_get_value "pidfile")" local startprocname="$(service_get_value "procname")" command="${startcommand:-$command}" chroot="${startchroot:-$chroot}" pidfile="${startpidfile:-$pidfile}" procname="${startprocname:-$procname}" [ -n "$command" -o -n "$procname" -o -n "$pidfile" ] || return 0 yesno "${command_progress}" && _progress=--progress ebegin "Stopping ${name:-$RC_SVCNAME}" start-stop-daemon --stop \ ${retry:+--retry} $retry \ ${command:+--exec} $command \ ${procname:+--name} $procname \ ${pidfile:+--pidfile} $chroot$pidfile \ ${stopsig:+--signal} $stopsig \ ${_progress} eend $? "Failed to stop ${name:-$RC_SVCNAME}" } ssd_status() { _status } # start / stop / status functions for supervise-daemon # Copyright (c) 2016 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. extra_commands="healthcheck unhealthy ${extra_commands}" supervise_start() { if [ -z "$command" ]; then ewarn "The command variable is undefined." ewarn "There is nothing for ${name:-$RC_SVCNAME} to start." return 1 fi ebegin "Starting ${name:-$RC_SVCNAME}" # The eval call is necessary for cases like: # command_args="this \"is a\" test" # to work properly. eval ${RC_VRF_EXEC} supervise-daemon "${RC_SVCNAME}" --start \ ${retry:+--retry} $retry \ ${directory:+--chdir} $directory \ ${chroot:+--chroot} $chroot \ ${output_log+--stdout} ${output_log} \ ${error_log+--stderr} $error_log \ ${output_logger:+--stdout-logger \"$output_logger\"} \ ${error_logger:+--stderr-logger \"$error_logger\"} \ ${pidfile:+--pidfile} $pidfile \ ${respawn_delay:+--respawn-delay} $respawn_delay \ ${respawn_max:+--respawn-max} $respawn_max \ ${respawn_period:+--respawn-period} $respawn_period \ ${healthcheck_delay:+--healthcheck-delay} $healthcheck_delay \ ${healthcheck_timer:+--healthcheck-timer} $healthcheck_timer \ ${capabilities+--capabilities} "$capabilities" \ ${secbits:+--secbits} "$secbits" \ ${no_new_privs:+--no-new-privs} \ ${command_user+--user} $command_user \ ${umask+--umask} $umask \ ${supervise_daemon_args-${start_stop_daemon_args}} \ $command \ -- $command_args $command_args_foreground rc=$? if [ $rc = 0 ]; then [ -n "${chroot}" ] && service_set_value "chroot" "${chroot}" [ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}" fi eend $rc "failed to start ${name:-$RC_SVCNAME}" } supervise_stop() { local startchroot="$(service_get_value "chroot")" local startpidfile="$(service_get_value "pidfile")" chroot="${startchroot:-$chroot}" pidfile="${startpidfile:-$pidfile}" ebegin "Stopping ${name:-$RC_SVCNAME}" supervise-daemon "${RC_SVCNAME}" --stop \ ${pidfile:+--pidfile} $chroot$pidfile eend $? "Failed to stop ${name:-$RC_SVCNAME}" } _check_supervised() { local child_pid start_time child_pid="$(service_get_value "child_pid")" start_time="$(service_get_value "start_time")" if [ -n "${child_pid}" ] && [ -n "${start_time}" ]; then return 1 fi return 0 } supervise_status() { if service_stopping; then ewarn "status: stopping" return 4 elif service_starting; then ewarn "status: starting" return 8 elif service_inactive; then ewarn "status: inactive" return 16 elif service_started; then if service_crashed; then if ! _check_supervised; then eerror "status: unsupervised" return 64 fi eerror "status: crashed" return 32 fi einfo "status: started" return 0 else einfo "status: stopped" return 3 fi } healthcheck() { return 0 } unhealthy() { return 0 } 0.55.1 # # This is a sample mdev.conf. # # Devices: # Syntax: %s %d:%d %s # devices user:group mode $MODALIAS=.* root:root 0660 @modprobe -q -b "$MODALIAS" # null does already exist; therefore ownership has to be changed with command null root:root 0666 @chmod 666 $MDEV zero root:root 0666 full root:root 0666 random root:root 0666 urandom root:root 0444 hwrandom root:root 0660 console root:tty 0600 # load frambuffer console when first frambuffer is found fb0 root:video 0660 @modprobe -q -b fbcon fd0 root:floppy 0660 kmem root:kmem 0640 mem root:kmem 0640 port root:kmem 0640 ptmx root:tty 0666 # Kernel-based Virtual Machine. kvm root:kvm 660 # ram.* ram([0-9]*) root:disk 0660 >rd/%1 loop([0-9]+) root:disk 0660 >loop/%1 # persistent storage dasd.* root:disk 0660 */lib/mdev/persistent-storage mmcblk.* root:disk 0660 */lib/mdev/persistent-storage nbd.* root:disk 0660 */lib/mdev/persistent-storage nvme.* root:disk 0660 */lib/mdev/persistent-storage sd[a-z].* root:disk 0660 */lib/mdev/persistent-storage sr[0-9]+ root:cdrom 0660 */lib/mdev/persistent-storage vd[a-z].* root:disk 0660 */lib/mdev/persistent-storage xvd[a-z].* root:disk 0660 */lib/mdev/persistent-storage md[0-9] root:disk 0660 tty root:tty 0666 tty[0-9] root:root 0600 tty[0-9][0-9] root:tty 0660 ttyS[0-9]* root:dialout 0660 ttyGS[0-9] root:root 0660 pty.* root:tty 0660 vcs[0-9]* root:tty 0660 vcsa[0-9]* root:tty 0660 # rpi bluetooth #ttyAMA0 root:tty 660 @btattach -B /dev/$MDEV -P bcm -S 115200 -N & ttyACM[0-9] root:dialout 0660 @ln -sf $MDEV modem ttyUSB[0-9] root:dialout 0660 @ln -sf $MDEV modem ttyLTM[0-9] root:dialout 0660 @ln -sf $MDEV modem ttySHSF[0-9] root:dialout 0660 @ln -sf $MDEV modem slamr root:dialout 0660 @ln -sf $MDEV slamr0 slusb root:dialout 0660 @ln -sf $MDEV slusb0 fuse root:root 0666 # mobile broadband modems cdc-wdm[0-9]+ root:dialout 0660 # dri device dri/.* root:video 0660 card[0-9] root:video 0660 =dri/ # alsa sound devices and audio stuff pcm.* root:audio 0660 =snd/ control.* root:audio 0660 =snd/ midi.* root:audio 0660 =snd/ seq root:audio 0660 =snd/ timer root:audio 0660 =snd/ adsp root:audio 0660 >sound/ audio root:audio 0660 >sound/ dsp root:audio 0660 >sound/ mixer root:audio 0660 >sound/ sequencer.* root:audio 0660 >sound/ SUBSYSTEM=sound;.* root:audio 0660 # PTP devices ptp[0-9] root:root 0660 */lib/mdev/ptpdev # virtio-ports SUBSYSTEM=virtio-ports;vport.* root:root 0600 @mkdir -p virtio-ports; ln -sf ../$MDEV virtio-ports/$(cat /sys/class/virtio-ports/$MDEV/name) # misc stuff agpgart root:root 0660 >misc/ psaux root:root 0660 >misc/ rtc root:root 0664 >misc/ # input stuff SUBSYSTEM=input;.* root:input 0660 # v4l stuff vbi[0-9] root:video 0660 >v4l/ video[0-9]+ root:video 0660 >v4l/ # dvb stuff dvb.* root:video 0660 */lib/mdev/dvbdev # VideoCore VC4 BCM GPU specific (as in Pi devices) vchiq root:video 0660 vcio root:video 0660 vcsm-cma root:video 0660 vc-mem root:video 0660 # load drivers for usb devices usb[0-9]+ root:root 0660 */lib/mdev/usbdev # net devices # 666 is fine: https://www.kernel.org/doc/Documentation/networking/tuntap.txt net/tun[0-9]* root:netdev 0666 net/tap[0-9]* root:netdev 0666 # zaptel devices zap(.*) root:dialout 0660 =zap/%1 dahdi!(.*) root:dialout 0660 =dahdi/%1 dahdi/(.*) root:dialout 0660 =dahdi/%1 # raid controllers cciss!(.*) root:disk 0660 =cciss/%1 cciss/(.*) root:disk 0660 =cciss/%1 ida!(.*) root:disk 0660 =ida/%1 ida/(.*) root:disk 0660 =ida/%1 rd!(.*) root:disk 0660 =rd/%1 rd/(.*) root:disk 0660 =rd/%1 # tape devices nst[0-9]+.* root:tape 0660 st[0-9]+.* root:tape 0660 # VirtualBox devices vboxguest root:root 0600 vboxuser root:root 0666 vboxdrv root:root 0600 vboxdrvu root:root 0666 vboxnetctl root:root 0600 # fallback for any!device -> any/device (.*)!(.*) root:root 0660 =%1/%2 #!/bin/sh # MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0 ADAPTER=${MDEV%.*} N=${ADAPTER#dvb} # MDEV=dvb0.demux1 -> DEVB_DEV=demux1 DVB_DEV=${MDEV#*.} case "$ACTION" in add|"") mkdir -p dvb/adapter${N} mv ${MDEV} dvb/adapter${N}/${DVB_DEV} ;; remove) rm -f dvb/adapter${N}/${DVB_DEV} rmdir dvb/adapter${N} 2>/dev/null rmdir dvb/ 2>/dev/null esac #!/bin/sh symlink_action() { case "$ACTION" in add) ln -sf "$1" "$2";; remove) rm -f "$2";; esac } sanitise_file() { sed -E -e 's/^\s+//' -e 's/\s+$//' -e 's/ /_/g' "$@" 2>/dev/null } sanitise_string() { echo "$@" | sanitise_file } blkid_encode_string() { # Rewrites string similar to libblk's blkid_encode_string # function which is used by udev/eudev. echo "$@" | sed -e 's| |\\x20|g' } : ${SYSFS:=/sys} # cdrom symlink case "$MDEV" in sr*|xvd*) caps="$(cat $SYSFS/block/$MDEV/capability 2>/dev/null)" if [ $(( 0x${caps:-0} & 8 )) -gt 0 ] || [ "$(cat $SYSFS/block/$MDEV/removable 2>/dev/null)" = "1" ]; then symlink_action $MDEV cdrom fi esac # /dev/block symlinks mkdir -p block if [ -f "$SYSFS/class/block/$MDEV/dev" ]; then maj_min=$(sanitise_file "$SYSFS/class/block/$MDEV/dev") symlink_action ../$MDEV block/${maj_min} fi # by-id symlinks mkdir -p disk/by-id if [ -f "$SYSFS/class/block/$MDEV/partition" ]; then # This is a partition of a device, find out its parent device _parent_dev="$(basename $(${SBINDIR:-/usr/bin}/readlink -f "$SYSFS/class/block/$MDEV/.."))" partition=$(cat $SYSFS/class/block/$MDEV/partition 2>/dev/null) case "$partition" in [0-9]*) partsuffix="-part$partition";; esac # Get name, model, serial, wwid from parent device of the partition _check_dev="$_parent_dev" else _check_dev="$MDEV" fi model=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/model") name=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/name") serial=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/serial") # Special case where block devices have serials attached to the block itself, like virtio-blk : ${serial:=$(sanitise_file "$SYSFS/class/block/$_check_dev/serial")} wwid=$(sanitise_file "$SYSFS/class/block/$_check_dev/wwid") : ${wwid:=$(sanitise_file "$SYSFS/class/block/$_check_dev/device/wwid")} # Sets variables LABEL, PARTLABEL, PARTUUID, TYPE, UUID depending on # blkid output (busybox blkid will not provide PARTLABEL or PARTUUID) eval $(blkid /dev/$MDEV | cut -d: -f2-) if [ -n "$wwid" ]; then case "$MDEV" in nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${wwid}${partsuffix};; esac case "$wwid" in naa.*) symlink_action ../../$MDEV disk/by-id/wwn-0x${wwid#naa.}${partsuffix};; esac fi if [ -n "$serial" ]; then if [ -n "$model" ]; then case "$MDEV" in nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${model}_${serial}${partsuffix};; sd*) symlink_action ../../$MDEV disk/by-id/ata-${model}_${serial}${partsuffix};; esac fi if [ -n "$name" ]; then case "$MDEV" in mmcblk*) symlink_action ../../$MDEV disk/by-id/mmc-${name}_${serial}${partsuffix};; esac fi # virtio-blk case "$MDEV" in vd*) symlink_action ../../$MDEV disk/by-id/virtio-${serial}${partsuffix};; esac fi # by-label, by-partlabel, by-partuuid, by-uuid symlinks if [ -n "$LABEL" ]; then mkdir -p disk/by-label symlink_action ../../$MDEV disk/by-label/"$(blkid_encode_string "$LABEL")" fi if [ -n "$PARTLABEL" ]; then mkdir -p disk/by-partlabel symlink_action ../../$MDEV disk/by-partlabel/"$(blkid_encode_string "$PARTLABEL")" fi if [ -n "$PARTUUID" ]; then mkdir -p disk/by-partuuid symlink_action ../../$MDEV disk/by-partuuid/"$PARTUUID" fi if [ -n "$UUID" ]; then mkdir -p disk/by-uuid symlink_action ../../$MDEV disk/by-uuid/"$UUID" fi # nvme EBS storage symlinks if [ "${MDEV#nvme}" != "$MDEV" ] && [ "$model" = "Amazon_Elastic_Block_Store" ] && command -v nvme >/dev/null; then n=30 while [ $n -gt 0 ]; do ebs_alias=$(nvme id-ctrl -b /dev/$_check_dev \ | dd bs=32 skip=96 count=1 2>/dev/null \ | sed -nre '/^(\/dev\/)?(s|xv)d[a-z]{1,2} /p' \ | tr -d ' ') if [ -n "$ebs_alias" ]; then symlink_action "$MDEV" ${ebs_alias#/dev/}$partition break fi n=$((n - 1)) sleep 0.1 done fi # backwards compatibility with /dev/usbdisk for /dev/sd* if [ "${MDEV#sd}" != "$MDEV" ]; then sysdev=$(readlink $SYSFS/class/block/$MDEV) case "$sysdev" in *usb[0-9]*) # require vfat for devices without partition if ! [ -e $SYSFS/block/$MDEV ] || [ TYPE="vfat" ]; then symlink_action $MDEV usbdisk fi ;; esac fi #!/bin/sh symlink_action() { case "$ACTION" in add) ln -sf "$1" "$2";; remove) rm -f "$2";; esac } clock_name=$(cat ${SYSFS:-/sys}/class/ptp/$MDEV/clock_name 2>/dev/null | sed -e 's/ /_/g') case "$clock_name" in KVM_virtual_PTP) symlink_action $MDEV ptp_kvm ;; ptp_vmw) symlink_action $MDEV ptp_vmw ;; hyperv) symlink_action $MDEV ptp_hyperv ;; esac #!/bin/sh # mdev -s will not set SUBSYSTEM or DEVNAME so we trigger a hotplug event if [ "$SUBSYSTEM" != "usb" ] || [ "$DEVTYPE" != "usb_device" ]; then uev=/sys/bus/usb/devices/$MDEV/uevent [ -e "$uev" ] && echo "add" > "$uev" exit fi [ -n "$DEVNAME" ] || exit case "$ACTION" in add) mkdir -p "${DEVNAME%/*}" mv $MDEV $DEVNAME # autoload driver for i in /sys/$DEVPATH/*/modalias; do [ -e "$i" ] && echo $i done | xargs sort -u | xargs modprobe -a 2>/dev/null ;; remove) rm $DEVNAME ;; esac #!/sbin/openrc-run description="the mdev device manager" depend() { provide dev need sysfs dev-mount before checkfs fsck keyword -containers -vserver -lxc } _start_service () { ebegin "Starting busybox mdev" mkdir -p /dev echo "/sbin/mdev" > /proc/sys/kernel/hotplug eend $? } _start_coldplug () { ebegin "Scanning hardware for mdev" # mdev -s will not create /dev/usb[1-9] devices with recent kernels # so we manually trigger events for usb for i in $(find /sys/devices -name 'usb[0-9]*'); do [ -e $i/uevent ] && echo add > $i/uevent done # trigger the rest of the coldplug mdev -s eend $? } start() { _start_service _start_coldplug } stop() { ebegin "Stopping busybox mdev" echo > /proc/sys/kernel/hotplug eend } # what cipher to use with -e option DEFAULT_CIPHER=aes-256-cbc # Uncomment the row below to encrypt config by default # ENCRYPTION=$DEFAULT_CIPHER # Uncomment below to avoid option to 'lbu commit' # Can also be set to 'floppy' # LBU_MEDIA=usb # Set the LBU_BACKUPDIR variable in case you prefer to save the apkovls # in a normal directory instead of mounting an external media. # LBU_BACKUPDIR=/root/config-backups # Uncomment below to let lbu make up to 3 backups # BACKUP_LIMIT=3 eckd_dasd= fba_dasd= _dasdfmt() { local block="$(ls "${ROOT}sys/bus/ccw/devices/$1/block" 2>/dev/null)" local dev="${ROOT}dev/$block" if ! [ -b "$dev" ]; then echo "$dev ($1) is not a block device" >&2 else if ask_yesno "WARNING: Erase ECKD DASD $1? (y/n)" "n"; then dasdfmt -b 4096 -d cdl -yp "$dev" fi fi } eckdselect_help() { cat <<-__EOF__ Enter each available DASD's address (e.g. 0.0.02d0) to format that DASD. Enter multiple addresses separated by a space to format multiple DASDs. Enter 'all' to format all available DASDs. WARNING: Data will be lost after formatted! Enter 'done' or 'none' to finish formatting. Enter 'abort' to quit the installer. __EOF__ } show_dasd_info() { local busid= vendor= block= devtype= cutype= for busid in $@; do vendor=$(cat "${ROOT}sys/bus/ccw/devices/$busid/vendor" 2>/dev/null) devtype=$(cat "${ROOT}/sys/bus/ccw/devices/$busid/devtype" 2>/dev/null) cutype=$(cat "${ROOT}/sys/bus/ccw/devices/$busid/cutype" 2>/dev/null) block="$(ls "${ROOT}/sys/bus/ccw/devices/$busid/block" 2>/dev/null)" echo " $busid ($devtype $cutype $vendor)" done } ask_eckd(){ local prompt="$1" local help_func="$2" shift 2 local default_dasd="all" apk add --quiet s390-tools resp= while ! all_in_list "$resp" $@ "$default_dasd" "abort" "done" "none"; do echo "Available ECKD DASD(s) are:" show_dasd_info "$@" ask "$prompt" "$default_dasd" case "$resp" in 'abort') exit 0;; 'done'|'none') return 0;; '?') $help_func;; 'all') for busid in $@; do _dasdfmt $busid; done;; *) for busid in $resp; do _dasdfmt $busid; done;; esac done } check_dasd() { eckd_dasd= fba_dasd= local dasd="$(get_bootopt dasd)" for _dasd in $( echo $dasd | tr ',' ' '); do [ -e "${ROOT}/sys/bus/ccw/drivers/dasd-eckd/$_dasd" ] && eckd_dasd="$eckd_dasd $_dasd" [ -e "${ROOT}/sys/bus/ccw/drivers/dasd-fba/$_dasd" ] && fba_dasd="$fba_dasd $_dasd" done if [ -n "$eckd_dasd" ]; then ask_eckd \ "Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter '?' for help)" \ eckdselect_help "$eckd_dasd" fi } is_dasd() { local disk="${1#*\/dev\/}" dasd_type="$2" for _dasd in $(eval "echo \$${dasd_type}_dasd"); do [ -e "${ROOT}sys/bus/ccw/drivers/dasd-$dasd_type/$_dasd/block/$disk" ] && return 0 done return 1 } setup_zipl() { local mnt="$1" root="$2" modules="$3" kernel_opts="$4" local parameters="root=$root modules=$modules $kernel_opts" local dasd="$(echo $eckd_dasd $fba_dasd | tr ' ' ',')" local s390x_net="$(get_bootopt s390x_net)" [ -n "$dasd" ] && parameters="$parameters dasd=$dasd" [ -n "$s390x_net" ] && parameters="$parameters s390x_net=$s390x_net" cat > "$mnt"/etc/zipl.conf <<- EOF [defaultboot] defaultauto prompt=1 timeout=5 default=linux target=/boot [linux] image=/boot/vmlinuz-$KERNEL_FLAVOR ramdisk=/boot/initramfs-$KERNEL_FLAVOR parameters="$parameters" EOF } setup_partitions_eckd() { local blocks_per_track=12 tracks_per_cylinder=15 boot_track= swap_track= local diskdev="$1" boot_size="$2" swap_size="$3" sys_type="$4" boot_track=$(($boot_size * 1024 / 4 / blocks_per_track)) [ "$swap_size" != 0 ] && swap_track=$(($swap_size * 1024 / 4 / blocks_per_track + boot_track + 1)) local conf="$(mktemp)" if [ -n "$swap_track" ]; then cat > "$conf" <<- EOF [first,$boot_track,native] [$((boot_track + 1)),$swap_track,swap] [$((swap_track + 1)),last,$sys_type] EOF else cat > "$conf" <<- EOF [first,$boot_track,native] [$((boot_track + 1)),last,$sys_type] EOF fi fdasd -s -c "$conf" $diskdev rm $conf } PREFIX=/usr PROGRAM=$(basename $0) : ${ROOT:=/} [ "${ROOT}" = "${ROOT%/}" ] && ROOT="${ROOT}/" [ "${ROOT}" = "${ROOT#/}" ] && ROOT="${PWD}/${ROOT}" # echo if in verbose mode vecho() { if [ -n "$VERBOSE" ]; then echo "$@" fi } # echo unless quiet mode qecho() { if [ -z "$QUIET" ]; then echo "$@" fi } # echo to stderr eecho() { echo "$@" >&2 } # echo to stderr and exit with error die() { eecho "$@" exit 1 } init_tmpdir() { local omask="$(umask)" local __tmpd="/tmp/$PROGRAM-${$}-$(date +%s)-$RANDOM" umask 077 || die "umask" mkdir -p "$__tmpd" || exit 1 trap "rc=\$?; rm -fr \"$__tmpd\"; exit \$rc" 0 umask $omask eval "$1=\"$__tmpd\"" } default_read() { local n read n [ -z "$n" ] && n="$2" eval "$1=\"$n\"" } cfg_add() { $MOCK lbu_add "$@" } # return true if given value is Y, y, Yes, yes YES etc yesno() { case $1 in [Yy]|[Yy][Ee][Ss]) return 0;; esac return 1 } # Detect if we are running Xen is_xen() { test -d /proc/xen } # Detect if we are running Xen Dom0 is_xen_dom0() { is_xen && \ grep -q "control_d" /proc/xen/capabilities 2>/dev/null } # list of all network interfaces, sorted by ifindex sorted_ifaces() { for i in "$ROOT"/sys/class/net/*; do local iface="${i##*/}" if [ -e "$i"/ifindex ]; then printf "%s\t%s\n" "$(cat $i/ifindex)" "$iface" fi done | sort -n | awk '{print $2}' } # list of available network interfaces that aren't part of any bridge or bond available_ifaces() { local iflist= ifpath= iface= if ! [ -d "$ROOT"/sys/class/net ]; then ip link | awk -F: '$1 ~ /^[0-9]+$/ {printf "%s",$2}' return fi for iface in $(sorted_ifaces); do # skip interfaces that are part of a bond or bridge ifpath="$ROOT/sys/class/net/$iface" if [ -d "$ifpath"/master/bonding ] || [ -d "$ifpath"/brport ] || [ "$iface" = "lo" ]; then continue fi iflist="${iflist}${iflist:+ }$iface" done echo $iflist } # from OpenBSD installer # Ask for a password, saving the input in $resp. # Display $1 as the prompt. # *Don't* allow the '!' options that ask does. # *Don't* echo input. # *Don't* interpret "\" as escape character. askpass() { printf %s "$1 " set -o noglob $MOCK stty -echo read -r resp $MOCK stty echo set +o noglob echo } # Ask for a password twice, saving the input in $_password askpassword() { local _oifs="$IFS" IFS= while :; do askpass "Password for $1 account? (will not echo)" _password=$resp askpass "Password for $1 account? (again)" # N.B.: Need quotes around $resp and $_password to preserve leading # or trailing spaces. [ "$resp" = "$_password" ] && break echo "Passwords do not match, try again." done IFS=$_oifs } # test the first argument against the remaining ones, return success on a match isin() { local _a="$1" _b shift for _b; do [ "$_a" = "$_b" ] && return 0 done return 1 } # remove all occurrences of first argument from list formed by # the remaining arguments rmel() { local _a="$1" _b shift for _b; do [ "$_a" != "$_b" ] && printf %s "$_b " done } # Issue a read into the global variable $resp. _ask() { local _redo=0 read resp case "$resp" in !) echo "Type 'exit' to return to setup." sh _redo=1 ;; !*) eval "${resp#?}" _redo=1 ;; esac return $_redo } # Ask for user input. # # $1 = the question to ask the user # $2 = the default answer # # Save the user input (or the default) in $resp. # # Allow the user to escape to shells ('!') or execute commands # ('!foo') before entering the input. ask() { local _question="$1" _default="$2" while :; do printf %s "$_question " [ -z "$_default" ] || printf "[%s] " "$_default" _ask && : ${resp:=$_default} && break done } # Ask for user input until a non-empty reply is entered. # # $1 = the question to ask the user # $2 = the default answer # # Save the user input (or the default) in $resp. ask_until() { resp= while [ -z "$resp" ] ; do ask "$1" "$2" done } # Ask for user for y/n until y, yes, n or no is responded # # $1 = the question to ask the user # $2 = the default answer # # Returns true/sucess if y/yes was responded. false othewise ask_yesno() { while true; do ask "$1" "$2" case "$resp" in y|yes|n|no) break;; esac done yesno "$resp" } # Ask for the user to select one value from a list, or 'done'. # # $1 = name of the list items (disk, cd, etc.) # $2 = question to ask # $3 = list of valid choices # $4 = default choice, if it is not specified use the first item in $3 # # N.B.! $3 and $4 will be "expanded" using eval, so be sure to escape them # if they contain spooky stuff # # At exit $resp holds selected item, or 'done' ask_which() { local _name="$1" _query="$2" _list="$3" _def="$4" _dynlist _dyndef while :; do # Put both lines in ask prompt, rather than use a # separate 'echo' to ensure the entire question is # re-ask'ed after a '!' or '!foo' shell escape. eval "_dynlist=\"$_list\"" eval "_dyndef=\"$_def\"" # Clean away whitespace and determine the default set -o noglob set -- $_dyndef; _dyndef="$1" set -- $_dynlist; _dynlist="$*" set +o noglob [ $# -lt 1 ] && resp=done && return : ${_dyndef:=$1} echo "Available ${_name}s are: $_dynlist." printf "Which one %s? (or 'done') " "$_query" [ -n "$_dyndef" ] && printf "[%s] " "$_dyndef" _ask || continue [ -z "$resp" ] && resp="$_dyndef" # Quote $resp to prevent user from confusing isin() by # entering something like 'a a'. isin "$resp" $_dynlist done && break echo "'$resp' is not a valid choice." done } find_modloop_media() { devnum=$(mountpoint -d /.modloop) || return test -n "$devnum" || return modloop_file=$(cat /sys/dev/block/$devnum/loop/backing_file) || return test -n "$modloop_file" || return # assume that device name and mount point don't contain spaces modloop_media=$(df "$modloop_file" | awk 'NR==2{print $6}') || return test -n "$modloop_media" || return echo "$modloop_media" } # Extract fully qualified domain name from current hostname. If none is # currently set, use the provided fallback. get_fqdn() { local _dn _dn=$(hostname -f 2>/dev/null) _dn=${_dn#$(hostname -s 2>/dev/null)} _dn=${_dn#.} echo "${_dn:=$1}" } #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: copy-modloop Copy kernel modules from modloop and unmount loopback device options: -h Show this help __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) set -e if ! rc-service -q modloop status; then echo "modloop is not started" exit 1 fi if [ -n "$DO_UMOUNT" ] && [ -z "$modloop_media" ]; then modloop_media=$(find_modloop_media) fi modulesdir=/lib/modules if [ -L "$modulesdir" ]; then modulesdir=$(readlink "$modulesdir") fi cp -a "$modulesdir" /lib/modules.tmp rc-service modloop stop rm -r /lib/modules mv /lib/modules.tmp /lib/modules if [ -n "$DO_UMOUNT" ]; then umount "$modloop_media" fi #!/bin/sh PROGRAM=setup-acf VERSION=3.19.0-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { echo "usage: $PROGRAM [-ahn] [-e email] [-l address] [PACKAGE...]" exit $1 } pkgs="acf-core acf-alpine-baselayout acf-apk-tools openssl" while getopts "ae:hl:n" opt ; do case $opt in a) pkgs=$(apk search --quiet --exact 'acf-*');; e) EMAIL="$OPTARG";; h) usage 0;; l) address="$OPTARG";; n) create_passwd=no;; '?') usage "1" >&2;; esac done shift $(expr $OPTIND - 1) while [ $# -gt 0 ]; do pkgs="$pkgs acf-$1" shift done # install packages apk add mini_httpd $pkgs || exit 1 if [ "$create_passwd" != "no" ]; then mkdir -p /etc/acf if [ -f /etc/acf/passwd ]; then mv /etc/acf/passwd /etc/acf/passwd.backup fi echo "root:x:Admin account:ADMIN" >/etc/acf/passwd chmod 600 /etc/acf/passwd acfpasswd -s root fi # setup mini_httpd and start it if [ -d /var/www/localhost/htdocs ]; then mv /var/www/localhost/htdocs /var/www/localhost/htdocs.old fi mkdir -p /var/www/localhost/ ln -s /usr/share/acf/www/ /var/www/localhost/htdocs lbu add /var/www/localhost/htdocs SSLDIR=/etc/ssl/mini_httpd SSLCNF=$SSLDIR/mini_httpd.cnf KEYFILE=$SSLDIR/server.key CRTFILE=$SSLDIR/server.crt PEMFILE=$SSLDIR/server.pem if [ -f $PEMFILE ]; then echo "$PEMFILE already exist." else mkdir -p $SSLDIR cat >$SSLCNF <<-__EOF__ [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] OU=HTTPS server CN=$(hostname -f || hostname) emailAddress=${EMAIL:-postmaster@example.com} [ cert_type ] nsCertType = server __EOF__ echo "Generating certificates for HTTPS..." openssl genrsa 2048 > $KEYFILE openssl req -new -x509 -nodes -sha1 -days 3650 -key $KEYFILE \ -config $SSLCNF > $CRTFILE cat $KEYFILE >> $CRTFILE rm $KEYFILE mv $CRTFILE $PEMFILE fi cat >/etc/mini_httpd/mini_httpd.conf <<-__EOF__ nochroot dir=/var/www/localhost/htdocs user=nobody cgipat=cgi-bin** certfile=$PEMFILE port=443 ssl __EOF__ if [ -n "$address" ]; then echo "host=$address" >> /etc/mini_httpd/mini_httpd.conf fi rc-update -q add mini_httpd default rc-service mini_httpd restart # force update of dependency cache rc-update -q --update #!/bin/sh PROGRAM=setup-alpine VERSION=3.19.0-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" if [ -t 1 ]; then COLCYAN="\e[36m" COLWHITE="\e[97m" COLRESET="\e[0m" else COLCYAN="" COLWHITE="" COLRESET="" fi print_heading1() { printf "${COLCYAN}%s${COLRESET}\n" "$1" } print_heading2() { printf "${COLWHITE}%s${COLRESET}\n" "$1" } is_kvm_clock() { grep -q "kvm-clock" "$ROOT"sys/devices/system/clocksource/clocksource0/current_clocksource 2>/dev/null } is_virtual_console() { case "$(readlink "$ROOT"/proc/self/fd/0)" in /dev/tty[0-9]*) return 0;; esac return 1 } usage() { cat <<-__EOF__ usage: setup-alpine [-ahq] [-c FILE | -f FILE] Setup Alpine Linux options: -a Create Alpine Linux overlay file -c Create answer file (do not install anything) -e Empty root password -f Answer file to use installation -h Show this help -q Quick mode. Ask fewer questions. __EOF__ exit $1 } while getopts "aef:c:hq" opt ; do case $opt in a) ARCHIVE=yes;; f) USEANSWERFILE="$OPTARG";; c) CREATEANSWERFILE="$OPTARG";; e) empty_root_password=1;; h) usage 0;; q) empty_root_password=1; quick=1; APKREPOSOPTS="-1"; HOSTNAMEOPTS="alpine";; '?') usage "1" >&2;; esac done shift $(expr $OPTIND - 1) rc_sys=$(openrc --sys) # mount xenfs so we can detect xen dom0 if [ "$rc_sys" = "XENU" ] && ! grep -q '^xenfs' /proc/mounts; then modprobe xenfs mount -t xenfs xenfs /proc/xen fi case "$USEANSWERFILE" in http*://*|ftp://*) # dynamically download answer file from URL (supports HTTP(S) and FTP) # ensure the network is up, otherwise setup a temporary interface config if ! rc-service networking --quiet status; then setup-interfaces -ar fi temp="$(mktemp)" wget -qO "$temp" "$USEANSWERFILE" || die "Failed to download '$USEANSWERFILE'" USEANSWERFILE="$temp" ;; *) [ -n "$USEANSWERFILE" ] && USEANSWERFILE=$(realpath "$USEANSWERFILE") ;; esac if [ -n "$USEANSWERFILE" ] && [ -e "$USEANSWERFILE" ]; then . "$USEANSWERFILE" fi if [ -n "$CREATEANSWERFILE" ]; then touch "$CREATEANSWERFILE" || echo "Cannot touch file $CREATEANSWERFILE" cat > "$CREATEANSWERFILE" <<-__EOF__ # Example answer file for setup-alpine script # If you don't want to use a certain option, then comment it out # Use US layout with US variant # KEYMAPOPTS="us us" KEYMAPOPTS=none # Set hostname to 'alpine' HOSTNAMEOPTS=alpine # Set device manager to mdev DEVDOPTS=mdev # Contents of /etc/network/interfaces INTERFACESOPTS="auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp hostname alpine-test " # Search domain of example.com, Google public nameserver # DNSOPTS="-d example.com 8.8.8.8" # Set timezone to UTC #TIMEZONEOPTS="UTC" TIMEZONEOPTS=none # set http/ftp proxy #PROXYOPTS="http://webproxy:8080" PROXYOPTS=none # Add first mirror (CDN) APKREPOSOPTS="-1" # Create admin user USEROPTS="-a -u -g audio,video,netdev juser" #USERSSHKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 juser@example.com" #USERSSHKEY="https://example.com/juser.keys" # Install Openssh SSHDOPTS=openssh #ROOTSSHKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 juser@example.com" #ROOTSSHKEY="https://example.com/juser.keys" # Use openntpd # NTPOPTS="openntpd" NTPOPTS=none # Use /dev/sda as a sys disk # DISKOPTS="-m sys /dev/sda" DISKOPTS=none # Setup storage with label APKOVL for config storage #LBUOPTS="LABEL=APKOVL" LBUOPTS=none #APKCACHEOPTS="/media/LABEL=APKOVL/cache" APKCACHEOPTS=none __EOF__ echo "Answer file $CREATEANSWERFILE has been created. Please add or remove options as desired in that file" exit 0 fi printf "\n\n" print_heading1 " ALPINE LINUX INSTALL" print_heading1 "----------------------" if [ "$ARCHIVE" ] ; then echo "Creating an Alpine overlay" init_tmpdir ROOT else PKGADD="apk add" fi # set keymap if [ "$rc_sys" != LXC ]; then if is_virtual_console || [ -n "$KEYMAPOPTS" ]; then echo print_heading2 " Keymap" print_heading2 "--------" setup-keymap ${KEYMAPOPTS} fi # set hostname echo print_heading2 " Hostname" print_heading2 "----------" setup-hostname ${HOSTNAMEOPTS} && [ -z "$SSH_CONNECTION" ] && rc-service hostname --quiet restart setup-devd -C mdev # just to bootstrap fi # set Interface [ -z "$SSH_CONNECTION" ] && rst_if=1 if [ -n "$INTERFACESOPTS" ]; then if [ "$INTERFACESOPTS" != none ]; then printf "$INTERFACESOPTS" | setup-interfaces -i ${rst_if:+-r} fi else echo print_heading2 " Interface" print_heading2 "-----------" setup-interfaces ${quick:+-a} ${rst_if:+-r} fi # setup up dns if no dhcp was configured if [ -f "$ROOT"/etc/network/interfaces ] && ! grep -q '^iface.*dhcp' "$ROOT"/etc/network/interfaces; then setup-dns ${DNSOPTS} fi # set root password if [ -z "$empty_root_password" ]; then echo print_heading2 " Root Password" print_heading2 "---------------" while ! $MOCK passwd ; do echo "Please retry." done fi # pick timezone if [ -z "$quick" ]; then echo print_heading2 " Timezone" print_heading2 "----------" setup-timezone ${TIMEZONEOPTS} fi echo rc-update --quiet add networking boot rc-update --quiet add seedrng boot || rc-update --quiet add urandom boot svc_list="cron crond" if [ -e /dev/input/event0 ]; then # Only enable acpid for systems with input events entries # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12290 svc_list="$svc_list acpid" fi for svc in $svc_list; do if rc-service --exists $svc; then rc-update --quiet add $svc fi done # start up the services $MOCK openrc ${SSH_CONNECTION:+-n} boot $MOCK openrc ${SSH_CONNECTION:+-n} default # update /etc/hosts - after we have got dhcp address # Get default fully qualified domain name from *first* domain # given on *last* search or domain statement. _dn=$(sed -n \ -e '/^domain[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ -e '/^search[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ -e '${g;p;}' "$ROOT"/etc/resolv.conf 2>/dev/null) _hn=$(hostname) _hn=${_hn%%.*} sed -i -e "s/^127\.0\.0\.1.*/127.0.0.1\t${_hn}.${_dn:-$(get_fqdn my.domain)} ${_hn} localhost.localdomain localhost/" \ "$ROOT"/etc/hosts 2>/dev/null if [ -z "$quick" ]; then echo print_heading2 " Proxy" print_heading2 "-------" setup-proxy -q ${PROXYOPTS} fi # activate the proxy if configured if [ -r "$ROOT/etc/profile" ]; then . "$ROOT/etc/profile" fi if ! is_kvm_clock && [ "$rc_sys" != "LXC" ] && [ "$quick" != 1 ]; then echo print_heading2 " Network Time Protocol" print_heading2 "-----------------------" setup-ntp ${NTPOPTS} fi echo print_heading2 " APK Mirror" print_heading2 "------------" setup-apkrepos ${APKREPOSOPTS} # Now that network and apk are operational we can install another device manager if [ "$rc_sys" != LXC ] && [ -n "$DEVDOPTS" -a "$DEVDOPTS" != mdev ]; then setup-devd ${DEVDOPTS} fi # lets stop here if in "quick mode" if [ "$quick" = 1 ]; then exit 0 fi echo print_heading2 " User" print_heading2 "------" setup-user ${USERSSHKEY+-k "$USERSSHKEY"} ${USEROPTS:--a -g 'audio video netdev'} for i in "$ROOT"home/*; do if [ -d "$i" ]; then lbu add $i fi done setup-sshd ${ROOTSSHKEY+-k "$ROOTSSHKEY"} ${SSHDOPTS} root_keys="$ROOT"/root/.ssh/authorized_keys if [ -f "$root_keys" ]; then lbu add "$ROOT"/root fi if is_xen_dom0; then echo print_heading2 " Xen" print_heading2 "-----" setup-xen-dom0 ${XENDOM0OPTS} fi if [ "$rc_sys" = "LXC" ]; then exit 0 fi echo print_heading2 " Disk & Install" print_heading2 "----------------" DEFAULT_DISK=none \ setup-disk -w /tmp/alpine-install-diskmode.out -q ${DISKOPTS} || exit diskmode=$(cat /tmp/alpine-install-diskmode.out 2>/dev/null) # setup lbu and apk cache unless installed sys on disk if [ "$diskmode" != "sys" ]; then setup-lbu ${LBUOPTS} setup-apkcache ${APKCACHEOPTS} if [ -L "$ROOT"/etc/apk/cache ]; then apk cache sync fi fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-apkcache [-h] [DIR] Setup apk caching. If DIR is not specified user will be asked for location. options: -h Show this help __EOF__ exit $1 } is_mounted() { awk '{print $2}' /proc/mounts | grep -q "^$1$" } find_fstab_mount_point() { local dir="$1" local res= if ! [ -r "${ROOT}"etc/fstab ]; then return fi while [ -n "$dir" ]; do res=$(awk "\$2 == \"$dir\" {print \$2}" "${ROOT}"etc/fstab) if [ -n "$res" ]; then echo $res return fi dir=${dir%/*} done } # figure out mount point find_mount_point() { local dir="$(find_fstab_mount_point "$1")" if [ -d "$dir" ] && [ "$dir" != "/" ]; then echo $dir return fi local dir="$1" while [ -n "$dir" ] && ! [ -d "$dir" ]; do dir=${dir%/*} done local fs_id="$(stat -f -c %i "${dir:-/}")" local parent="${dir%/*}" while [ -n "$dir" ] && [ "$(stat -f -c %i "$parent/")" = "$fs_id" ]; do dir=$parent parent=${parent%/*} done [ -z "$dir" ] && dir=/ echo $dir } # get device for a given mount point get_dev_from_mountpoint() { local mnt="$1" local fstab="$2" awk "\$2 == \"$mnt\" {print \$1}" "$fstab" } get_mount_opts_from_mountpoint() { local mnt="$1" local fstab="$2" awk "\$2 == \"$mnt\" {gsub(/,/, \" \", \$4); print \$4}" "$fstab" } has_mount_opt() { local searchfor="$1" local mnt="$2" local fstab="$3" local opts="$(get_mount_opts_from_mountpoint "$mnt" "$fstab")" local opt= for opt in $opts; do if [ "$opt" = "$searchfor" ]; then return 0 fi done return 1 } is_mounted_ro() { has_mount_opt ro "$1" /proc/mounts } # get the fstype of the given mount point mount_fstype() { # we only want the last mount in case there are several awk -v mnt="$1" '$2 == "/" {fstype = mnt} END {print fstype}' \ /proc/mounts } apk_cache_help() { cat <<-__EOF__ Packages installed from network can be cached locally to be available during boot, before the network is started. Specifying a directory here will make apk cache the packages locally in this directory. Enter 'none' if you do not want to cache packages from network. __EOF__ } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( OPTIND - 1 )) # try auto detetect what we suggest suggestion= if [ -L "${ROOT}"etc/apk/cache ]; then suggestion=$(readlink "${ROOT}"etc/apk/cache) fi if [ -z "$suggestion" ] && [ -f "$ROOT"etc/lbu/lbu.conf ]; then . "$ROOT"etc/lbu/lbu.conf if [ -n "$LBU_MEDIA" ]; then suggestion=/media/$LBU_MEDIA/cache fi fi if [ -z "$suggestion" ] && [ -L /dev/usbdisk ]; then suggestion=/media/usb/cache fi if [ -z "$suggestion" ] && [ "$(mount_fstype /)" != "tmpfs" ]; then suggestion=/var/cache/apk fi if [ -z "$suggestion" ]; then suggestion=none fi cachedir="$1" resp= while [ $# -eq 0 ] && [ -z "$cachedir" ]; do ask "Enter apk cache directory (or '?' or 'none')" "$suggestion" cachedir="$resp" if [ "$cachedir" = "?" ]; then apk_cache_help cachedir= fi done if [ "$cachedir" = "none" ]; then exit 0 fi case "$cachedir" in /*) ;; *) cachedir="${PWD#${ROOT%/}}/$cachedir";; esac mount=$(find_mount_point "$cachedir") cleanup= if ! is_mounted "$mount"; then # remove noauto that setup-lbu might have added if has_mount_opt noauto "$mount" /etc/fstab; then fstabtmp=$(mktemp) awk -v mnt="$mount" \ '$2 != mnt {print $0} $2 == mnt { sub(/noauto,|,noauto/, "", $4); sub(/^noauto$/, "defaults", $4); print $0 }' /etc/fstab > "$fstabtmp" mv "$fstabtmp" /etc/fstab fi mount "$mount" || exit 1 elif is_mounted_ro "$mount"; then mount -o remount,rw "$mount" || exit 1 cleanup="remount" fi mkdir -p "$ROOT$cachedir" if [ -L "$ROOT"etc/apk/cache ]; then rm -f "$ROOT"etc/apk/cache fi mkdir -p "$ROOT"etc/apk ln -s "$cachedir" "$ROOT"etc/apk/cache case "$cleanup" in umount) umount "$mount";; remount) mount -o remount,ro "$mount";; esac #!/bin/sh PROGRAM=setup-apkrepos PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" : ${MIRRORS_URL:=https://mirrors.alpinelinux.org/mirrors.txt} if [ "$ROOT" != "/" ]; then apk_root_opt="--root $ROOT" fi get_hostname_from_url() { local n="${1#*://}" echo ${n%%/*} } get_mirror_count() { set -- $MIRRORS echo $# } ask_setup_method() { local cstate="enable" if [ -z "$community_prefix" ]; then cstate="disable" fi cat <<-__EOF__ (f) Find and use fastest mirror (s) Show mirrorlist (r) Use random mirror (e) Edit ${ROOT}etc/apk/repositories with text editor (c) Community repo $cstate (skip) Skip setting up apk repositories __EOF__ ask "Enter mirror number or URL:" $1 printf "\n" } add_random_mirror() { local i=0 local count=$(get_mirror_count) if [ ${count:-0} -eq 0 ]; then echo "Warning! no mirror found" >&2 return 1 fi local random_mirror_index="$(awk -v count=$count 'BEGIN {srand(); printf("%.0f", rand() * count)}')" printf %s "Picking random mirror..." for mirror in $MIRRORS; do if [ $i -eq $random_mirror_index ]; then break fi i=$(( $i + 1 )) done add_mirror $mirror } time_cmd() { local start="$(cut -d ' ' -f1 /proc/uptime)" $@ >&2 || return awk -v start=$start -v end=$(cut -d ' ' -f1 /proc/uptime) \ 'BEGIN {print end - start; exit}' } find_fastest_mirror() { local url= local arch="$(apk --print-arch)" for url in $MIRRORS; do # warm up the dns cache $MOCK nslookup $(get_hostname_from_url $url) >/dev/null 2>&1 local time="$(time_cmd wget --spider -q -T 5 -t 1 \ ${url%/}/edge/main/$arch/APKINDEX.tar.gz)" if [ -n "$time" ]; then echo "$time $url" fi done | tee /dev/stderr | sort -nk1,1 | head -n1 | cut -d' ' -f2 } add_fastest_mirror() { echo "Finding fastest mirror... " local fastest="$(find_fastest_mirror)" if [ -z "$fastest" ]; then echo "Warning! No mirror found" >&2 return 1 fi add_mirror "$fastest" } # For every main/ repo, enable corresponding community/ repo add_community_mirrors() { for repo in $(grep '^[^#].*/main$' "$APKREPOS_PATH" 2>/dev/null); do crepo="${repo%%/main}/community" if ! grep -qx -- "$crepo" "$APKREPOS_PATH"; then echo ">>> Enabling repository $crepo" echo "$crepo" >> "$APKREPOS_PATH" fi done } # show mirrors show_mirror_list() { local mirror i=0 [ -z "$MIRRORS" ] && return echo "" echo "Available mirrors:" for mirror in $MIRRORS; do i=$(($i + 1)) echo "$i) $(get_hostname_from_url $mirror)" done echo "" } add_from_list() { local mirror_index="$1" if [ $mirror_index -lt 1 ] || [ $mirror_index -gt $(get_mirror_count) ]; then return 1 fi set $MIRRORS eval "mirror=\${$mirror_index}" add_mirror "$mirror" } get_alpine_release() { # use the main version already configured, or get the version from /etc/alpine-release local version="$(grep -Eom1 '[^/]+/main/?$' "${ROOT}"etc/apk/repositories 2>/dev/null | grep -Eo '^[^/]+' \ || cat "${ROOT}"etc/alpine-release 2>/dev/null)" case "$version" in *_git*|*_alpha*) release="edge";; [0-9]*.[0-9]*.[0-9]*) # release in x.y.z format, cut last digit release=v${version%.[0-9]*};; v[0-9]*.[0-9]*) # release in vx.y format, keep as is release="${version}";; *) # fallback to edge release="edge";; esac } add_mirror() { local mirror="$1" mkdir -p "${APKREPOS_PATH%/*}" echo "${mirror%/}/${release}/main" >> $APKREPOS_PATH echo "${community_prefix}${mirror%/}/${release}/community" >> $APKREPOS_PATH echo "Added mirror $(get_hostname_from_url $mirror)" } add_from_url() { mkdir -p "${APKREPOS_PATH%/*}" echo "$1" >> $APKREPOS_PATH echo "" >> $APKREPOS_PATH } edit_repositories() { local md5="$(md5sum $APKREPOS_PATH 2>/dev/null)" mkdir -p "${APKREPOS_PATH%/*}" ${EDITOR:-vi} "$APKREPOS_PATH" # return true if file changed test "$(md5sum $APKREPOS_PATH 2>/dev/null)" != "$md5" } usage() { cat <<-__EOF__ usage: setup-apkrepos [-ch] [-f|-r|-1|REPO...] setup-apkrepos -o Setup apk repositories options: -c Enable the community repo -f Detect and add fastest mirror -h Show this help -o Only enable a community repo for every defined repo -r Add a random mirror and do not prompt -1 Add first mirror on the list (normally a CDN) Option -o cannot be used with options -c, -f, -r or -1. __EOF__ exit $1 } community_prefix="#" add_fastest=false add_first=false add_random=false add_community_repos=false while getopts "c1fhor" opt; do case $opt in c) community_prefix="" if $add_community_repos; then usage "1" >&2 fi ;; f) add_fastest=true if $add_first || $add_random || $add_community_repos; then usage "1" >&2 fi ;; 1) add_first=true if $add_fastest || $add_random || $add_community_repos; then usage "1" >&2 fi ;; h) usage 0;; o) add_community_repos=true if $add_first || $add_fastest || $add_random \ || [ $community_prefix != "#" ]; then usage "1" >&2 fi ;; r) add_random=true if $add_first || $add_fastest || $add_community_repos; then usage "1" >&2 fi ;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ -z "$MIRRORS" ]; then MIRRORS=$(wget -qO- $MIRRORS_URL) fi APKREPOS_PATH="${ROOT}"etc/apk/repositories if [ -r "$APKREPOS_PATH" ]; then APKREPOS=$(cat "$APKREPOS_PATH") fi get_alpine_release changed=false if [ $# -gt 0 ] && ! $add_community_repos; then # replace the apk repos with the specified ones rm -f "$APKREPOS_PATH" mkdir -p "${APKREPOS_PATH%/*}" for i; do echo "$i" >> "$APKREPOS_PATH" && changed=true done fi if $add_first; then set -- $MIRRORS if [ $# -eq 0 ]; then echo "Warning! No mirror found" >&2 exit 1 fi add_mirror "$1" || exit changed=true fi if $add_random; then add_random_mirror || exit changed=true fi if $add_fastest; then add_fastest_mirror || exit changed=true fi if $add_community_repos; then add_community_mirrors || exit changed=true fi if $add_first || $add_random || $add_fastest || $add_community_repos; then interactive=false else interactive=true fi while $interactive && ! $changed; do if [ -z "$MIRRORS" ]; then MIRRORS=$(wget -qO- $MIRRORS_URL) fi ask_setup_method ${APKREPO_DEFAULT_ANSWER:-1} case "$resp" in skip) break;; [0-9]*) add_from_list $resp && changed=true;; /*|http://*|ftp://*|https://*) add_from_url "$resp" \ && changed=true;; s) show_mirror_list | more;; r|"r c") add_random_mirror && changed=true;; f|"f c") add_fastest_mirror && changed=true;; e) edit_repositories && changed=true;; c) case "$community_prefix" in "#") community_prefix=""; cstate="enabled";; "") community_prefix="#"; cstate="disabled";; esac printf "Community repository %s\n\n" "$cstate" ;; esac case "$resp" in *c) community_prefix=""; printf "Community repository enabled\n";; esac done if $changed; then printf %s "Updating repository indexes... " apk update --quiet $apk_root_opt && echo "done." fi #!/bin/sh prog=${0##*/} version=3.19.0-r0 files_to_move="boot efi apks syslinux.cfg .alpine-release" read_only_mounts= umounts= uninstalls= destdir= cleanup_tmpdata() { if [ -d "$destdir" -a -d "$destdir/.new" ]; then rm -rf "$destdir"/.new fi } cleanup_mounts() { local i= cd / sync sleep 1 for i in $read_only_mounts; do mount -o remount,ro "$i" || echo "Warning: Failed to remount as read-only. Is modloop mounted?" done read_only_mounts="" if [ -n "$umounts" ]; then umount $umounts umounts="" fi } cleanup_installs() { if [ -n "$uninstalls" ]; then apk del --quiet $uninstalls uninstalls="" fi } cleanup() { cleanup_tmpdata cleanup_mounts cleanup_installs } trap cleanup EXIT trap "exit 2" INT TERM QUIT die() { echo "$@" >&2 exit 1 } # find device for mountpoint find_dev() { local mnt="${1%/}" # strip trailing / awk "\$2 == \"$mnt\" {print \$1}" /proc/mounts } # check if given device is on usb bus on_usb_bus() { local dev="$1" [ -e /sys/block/$dev ] || return 1 local sysdev="$(readlink -f /sys/block/$dev/device)" test "${sysdev##*/usb[0-9]}" != "$sysdev" } vecho() { [ -z "$verbose" ] && return 0 echo "$@" } # check if given dir is read-only is_read_only() { local tmpfile="$(mktemp -p "$1" 2>/dev/null)" [ -z "$tmpfile" ] && return 0 rm -f "$tmpfile" return 1 } # find what disk this partition belongs to find_disk_dev() { local i= sysfsname="${1#/dev/}" sysfsname=${sysfsname//\/!} # cciss/c0d0 -> cciss!c0d0 if [ -e /sys/block/$sysfsname ]; then echo "/dev/${sysfsname//!/'/'}" return 0 fi for i in /sys/block/*/$sysfsname; do [ -e "$i" ] || continue echo "$i" | cut -d/ -f4 | sed -e 's:!:/:g' -e 's:^:/dev/:' return 0 done return 1 } find_syslinux_cfg() { # find where new syslinux.cfg is for i in boot/syslinux/syslinux.cfg syslinux.cfg; do if [ -e "$1"/$i ]; then syslinux_cfg=$i vecho "Found $syslinux_cfg" break fi done } fix_syslinux_kernel() { echo "Fixing $syslinux_cfg: kernel $1 -> $2" sed -i -e "/^\s*[Kk][Ee][Rr][Nn][Ee][Ll]\s/s|$1|$2|" \ "$destdir/$syslinux_cfg" } fix_syslinux_initrd() { echo "Fixing $syslinux_cfg: initrd $1 -> $2" sed -i -e "/^\s*[Ii][Nn][Ii][Tt][Rr][Dd]\s/s|$1|$2|" \ -e "/^\s*[Aa][Pp][Pp][Ee][Nn][Dd]\s/s|initrd=$1|initrd=$2|" \ "$destdir/$syslinux_cfg" } check_syslinux() { if [ -z "$syslinux_cfg" ]; then find_syslinux_cfg "$destdir" fi if [ -z "$syslinux_cfg" ]; then die "Could not find any syslinux.cfg. Aborting" fi # kernels for i in $(awk 'tolower($1) == "kernel" {print $2}' "$destdir"/$syslinux_cfg); do k="${destdir%/}/${i#/}" f=${k##*/} if [ -e "$k" ] && [ "${f#vmlinuz}" != "$f" ]; then continue fi if [ -e "${k%/*}"/vmlinuz-$f ] && [ -n "$fix_syslinux_cfg" ]; then fix_syslinux_kernel "$i" "${i%/*}"/vmlinuz-$f elif ! [ -e "$k" ]; then echo "Warning: $syslinux_cfg: kernel $k was not found" echo " Run $0 -f -c "$destdir" to fix" fi done #initramfs initrds=$(awk 'tolower($1) == "initrd" {gsub(",", " "); for (i=2; i<=NF; i++) print $i}' \ "$destdir"/$syslinux_cfg) for i in $(awk 'tolower($1) == "append" {print $0}' \ "$destdir"/$syslinux_cfg); do case $i in initrd=*) initrds=${i#initrd=};; esac done for i in $initrds; do if [ -e "$destdir"/$i ]; then continue fi fname=${i##*/} flavor=${fname%.gz} new=${i%/*}/initramfs-$flavor if [ -e "$destdir"/$new ] && [ -n "$fix_syslinux_cfg" ]; then fix_syslinux_initrd "$i" "$new" else echo "Warning: initrd $i was not found. System will likely not boot" echo " Run $0 -f -c "$destdir" to fix" fi done } version_check() { local new_dir="$1" old_dir="$2" # check if its same version local to_version="$(cat "$new_dir"/.alpine-release)" if [ -n "$upgrade" ] && [ -e "$old_dir"/.alpine-release ]; then local from_version="$(cat "$old_dir"/.alpine-release)" if [ -z "$force" ] && [ -n "$to_version" ] && [ "$from_version" = "$to_version" ]; then die "Source and target seems to have same version ($from_version). Aborting." fi echo "Upgrading $dest from $from_version to $to_version" else echo "Installing $dest to $to_version" fi } usage() { cat <<-__EOF__ $prog $version usage: $prog [-fhUusv] SOURCE [DEST] $prog -c DIR Copy the contents of SOURCE to DEST and make DEST bootable. SOURCE can be a directory or a ISO image. DEST can be a mounted directory or a device. If DEST is ommitted /media/usb will be used. Options: -f Force overwrite existing files. Will overwrite syslinux.cfg if upgrade. -h Show this help. -k fix kernel and initrd name in syslinux.cfg if needed. -U Replace current alpine_dev in syslinux.cfg with UUID if UUID found. -u Upgrade mode. Keep existing syslinux.cfg and don't run syslinux. -s Force run syslinux, even if upgrade mode. -v Verbose mode. Display whats going on. -c Check syslinux.cfg in destination DIR. Use with -f to fix. __EOF__ exit 1 } while getopts "c:fhkUusv" opt; do case "$opt" in c) check_syslinux="$OPTARG";; f) force=1; fix_syslinux_cfg=1;; h) usage;; k) fix_syslinux_cfg=1;; U) replace_alpine_dev=1;; u) upgrade=1;; s) syslinux=1;; v) verbose=1;; esac done shift $(($OPTIND - 1)) src=${1} dest=${2:-/media/usb} if [ -n "$check_syslinux" ]; then destdir="$check_syslinux" check_syslinux exit 0 fi [ -z "$src" ] && usage # find target device if [ -d "$dest" ]; then dest=${dest%/} # strip trailing / if ! awk '{print $2}' /proc/mounts | grep -q "^$dest\$"; then mount "$dest" || die "Failed to mount $dest" umounts="$umounts $dest" elif [ -n "$syslinux" ]; then die "Cannot run syslinux on mounted device" else nosyslinux=1 fi destdir="$dest" dest=$(find_dev "$destdir") elif [ -b "$dest" ]; then destdir="/media/${dest##*/}" mkdir -p "$destdir" mount "$dest" "$destdir" || die "Failed to mount $dest on $destdir" umounts="$umounts $destdir" fi # remount as rw if needed if is_read_only "$destdir"; then vecho "Remounting $destdir as read/write" mount -o remount,rw "$dest" || die "Failed to remount $destdir as rw" read_only_mounts="$read_only_mounts $destdir" fi # fish out label, uuid and type eval $(blkid $dest | cut -d: -f2-) vecho "Using $dest as target (mounted on $destdir)" # find parent device (i.e sda) dev="$dest" while [ -L "$dev" ]; do dev=$(readlink -f $dev) done parent_dev=$(find_disk_dev $dev) # check if this files exist and not in upgrade mode if [ -z "$upgrade" ] && [ -z "$force" ]; then for i in $files_to_move; do [ -e "$destdir"/$i ] && die "$destdir/$i already exists. Use -u to upgrade." done fi # remove partial upgrades if any rm -rf "$destdir"/.new "$destdir"/.old mkdir -p "$destdir"/.new || die "Failed to create $destdir/.new" # copy data from source to .new if [ -f "$src"/.alpine-release ]; then srcdir="$(echo $src | sed -r 's,/$,,')" version_check "$srcdir" "$destdir" for i in $files_to_move; do if [ -e "$srcdir"/$i ]; then vecho "Copying $srcdir/$i to $destdir/.new/" cp -dR "$srcdir"/$i "$destdir"/.new/ fi done else vecho "Extracting $src to $destdir/.new/" case "$src" in https://*|http://*|ftp://*) ${WGET:-wget} -O - "$src" | (cd "$destdir"/.new; exec ${UNISO:-uniso}) \ || die "Failed to download or extract $src" echo "" ;; *) (cd "$destdir"/.new; exec ${UNISO:-uniso}) < "$src" \ || die "Failed to download or extract $src" ;; esac version_check "$destdir/.new" "$destdir" fi # find where new syslinux.cfg is find_syslinux_cfg "$destdir"/.new # abort early in case unexpected trouble if [ -z "$syslinux_cfg" ]; then die "Could not find any syslinux.cfg on new iso?" fi # make sure files are really there before we replace existing vecho "Flushing cache..." sync vecho "Replacing existing files..." mkdir -p "$destdir"/.old || die "Failed to create $destdir/.old" # move current files to .old for i in $files_to_move; do if [ -e "$destdir"/$i ]; then mv "$destdir"/$i "$destdir"/.old/ || die "Failed to move $destdir/$i to $destdir/.old/" fi done # keep any existing syslinux.cfg if [ -e "$destdir"/.old/$syslinux_cfg ]; then mv "$destdir"/.old/$syslinux_cfg "$destdir"/.new/$syslinux_cfg elif [ -e "$destdir"/.old/syslinux.cfg ] \ && [ -e "$destdir"/.new/boot/syslinux/syslinux.cfg ]; then echo "Warning: moving syslinux.cfg to boot/syslinux/syslinux.cfg" >&2 mv "$destdir"/.old/syslinux.cfg "$destdir"/.new/boot/syslinux if [ -z "$syslinux" ]; then echo " You might need run: syslinux $dest" >&2 fi fi # move .new to current for i in $files_to_move; do if [ -e "$destdir"/.new/$i ]; then mv "$destdir"/.new/$i "$destdir"/ \ || die "Failed to move $destdir/.new/ to $destdir" fi done if [ -n "$replace_alpine_dev" -o -z "$upgrade" ] && [ -n "$UUID" ]; then sed -E -i -e "s/alpine_dev=[^ \t:]+/alpine_dev=UUID=$UUID/" \ "$destdir"/$syslinux_cfg fi # verify syslinux.cfg check_syslinux # cleanup [ -z "$keep_old" ] && rm -rf "$destdir"/.old "$destdir"/.new # If we only copy then we are done. if [ -n "$upgrade" ] && [ -z "$syslinux" ]; then exit 0 fi # prevent running syslinux on mounted device if [ -n "$nosyslinux" ]; then echo "Warning: Can not run syslinux on a mounted device" echo " You might need run syslinux manually and install MBR manually" exit 0 fi echo "Making $dest bootable..." if ! [ -x "$(which syslinux)" ]; then apk add --quiet syslinux || die "Failed to install syslinux" uninstalls="syslinux" fi # we need to unmount the device before we can run syslinux cleanup_mounts fsync $dest syslinux $dest if [ -b $parent_dev ]; then dd if=/usr/share/syslinux/mbr.bin of=$parent_dev status=none else echo "Warning: Could not find the parent device for $dest" fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-desktop [-h] [gnome|plasma|xfce|mate|sway|lxqt] Install a standard desktop options: -h Show this help __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ $# -gt 1 ]; then usage "1" >&2 fi if [ $# -eq 0 ]; then users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' "$ROOT"/etc/passwd 2>/dev/null) if [ -z "$users" ]; then setup-user -g "audio,video,netdev" fi fi de="$1" valid_desktops="xfce gnome plasma mate sway lxqt none" if [ $# -eq 1 ] && ! isin "$de" $valid_desktops; then echo "$de is not a valid desktop" >&2 usage "1" >&2 fi shift while ! isin "$de" $valid_desktops; do ask "Which desktop environment? ('gnome', 'plasma', 'xfce', 'mate', 'sway', 'lxqt' or 'none')" none de="$resp" done case "$de" in none) exit 0 ;; mate) setup-xorg-base mate-desktop-environment ${BROWSER:-firefox} \ gvfs \ lightdm \ lightdm-gtk-greeter \ polkit \ dbus \ dbus-x11 \ font-dejavu \ "$@" rc-update add dbus rc-update add lightdm ;; xfce) setup-xorg-base xfce4 ${BROWSER:-firefox} \ gvfs \ lightdm \ lightdm-gtk-greeter \ polkit \ xfce4-terminal \ "$@" rc-update add lightdm ;; lxqt) setup-xorg-base ${BROWSER:-firefox} \ lxqt-desktop \ lximage-qt \ obconf-qt \ pavucontrol-qt \ arandr \ sddm \ font-dejavu \ dbus \ dbus-x11 \ openbox \ elogind \ polkit-elogind \ gvfs \ udisks2 \ adwaita-qt \ oxygen \ "$@" rc-update add dbus rc-update add sddm rc-update add elogind ;; gnome) setup-wayland-base ${BROWSER:-firefox} "$@" # apk info needs community repos which are enabled with setup-wayland-base apk add $(apk info --quiet --depends gnome gnome-apps-core) rc-update add gdm ;; plasma) setup-xorg-base ${BROWSER:-firefox} \ ark \ bluedevil \ breeze \ breeze-gtk \ dbus \ discover \ drkonqi \ font-noto \ gwenview \ kate \ kde-cli-tools \ kde-gtk-config \ kde-icons \ kdeplasma-addons \ kgamma \ kinfocenter \ kio-fuse \ kmenuedit \ konsole \ kscreen \ ksshaskpass \ kwallet-pam \ kwayland-integration \ pinentry-qt \ pipewire-alsa \ pipewire-pulse \ plasma-browser-integration \ plasma-desktop \ plasma-disks \ plasma-nm \ plasma-pa \ plasma-systemmonitor \ plasma-vault \ plasma-welcome \ plasma-workspace-wallpapers \ polkit-elogind \ polkit-kde-agent-1 \ powerdevil \ print-manager \ sddm-breeze \ sddm-kcm \ spectacle \ systemsettings \ udisks2 \ xdg-desktop-portal-kde \ xdg-user-dirs \ "$@" rc-update add dbus rc-update add sddm ;; sway) setup-wayland-base ${BROWSER:-firefox} \ font-dejavu \ foot \ grim \ i3status \ sway \ swayidle \ swaylockd \ util-linux-login \ wl-clipboard \ wmenu \ xwayland \ "$@" ;; *) usage "1" >&2 ;; esac users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' "$ROOT"/etc/passwd 2>/dev/null) if [ -z "$users" ]; then echo "WARNING: You need to create a user account. Please run: setup-user" >&2 echo "" >&2 fi #!/bin/sh -e PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" prog="${0##*/}" usage () { cat </dev/null || : rc-update delete --quiet --quiet mdevd sysinit 2>/dev/null || : fi } enable_mdevd () { apk add --quiet mdevd mdevd-openrc rc-update add --quiet mdevd sysinit rc-update add --quiet mdevd-init sysinit rc-update add --quiet hwdrivers sysinit rc-service --ifstopped mdevd start if "$1" ; then rc-service mdevd-init start rc-service hwdrivers --ifstopped start fi } disable_udev () { if rc-service --exists udev ; then rc-service --ifstopped --quiet udev-postmount stop rc-service --ifstarted --quiet udev stop rc-update delete --quiet --quiet udev-postmount default 2>/dev/null || : rc-update delete --quiet --quiet udev-settle sysinit 2>/dev/null || : rc-update delete --quiet --quiet udev-trigger sysinit 2>/dev/null || : rc-update delete --quiet --quiet udev sysinit 2>/dev/null || : fi } enable_udev () { apk add --quiet eudev udev-init-scripts udev-init-scripts-openrc rc-update add --quiet udev sysinit rc-update add --quiet udev-trigger sysinit rc-update add --quiet udev-settle sysinit rc-update add --quiet udev-postmount default rc-service --ifstopped udev start rc-service --ifstopped udev-trigger start rc-service --ifstopped udev-settle start rc-service --ifstopped udev-postmount start } coldplug=false while getopts "hC" opt ; do case $opt in h) usage 0;; C) coldplug=true ;; '?') usage 1 >&2;; esac done shift $((OPTIND - 1)) devd="$1" if test -n "$devd" ; then interactive=false else interactive=true fi until isin "$devd" mdev mdevd udev ; do ask "What program should manage /dev? [mdev|mdevd|udev]" mdev devd="$resp" done if "$interactive" ; then if ask_yesno "Scan the hardware to populate /dev? [y|n] (Say yes if you're running this script for the first time.)" n ; then coldplug=true else coldplug=false fi fi case "$devd" in mdev) disable_mdevd ; disable_udev ; enable_mdev $coldplug ;; mdevd) disable_mdev ; disable_udev ; enable_mdevd $coldplug ;; udev) disable_mdev ; disable_mdevd ; enable_udev $coldplug ;; esac #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-dns [-h] [-d DOMAINNAME] [IPADDR...] Setup ${ROOT}etc/resolv.conf DNS settings options: -h Show this help -d specify search domain name The optional IPADDR are a list of DNS servers to use. __EOF__ exit $1 } while getopts "d:n:h" opt; do case $opt in d) DOMAINNAME="$OPTARG";; h) usage 0;; n) NAMESERVERS="$OPTARG";; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) conf="${ROOT}etc/resolv.conf" if [ -f "$conf" ] ; then domain=$(awk '/^domain/ {print $2}' $conf) dns=$(awk '/^nameserver/ {printf "%s ",$2}' $conf) elif fqdn="$(get_fqdn)" && [ -n "$fqdn" ]; then domain="$fqdn" fi if [ -n "$DOMAINNAME" ]; then domain="$DOMAINNAME" elif [ $# -eq 0 ]; then ask "DNS domain name? (e.g 'bar.com')" "$domain" domain="$resp" fi if [ -n "$NAMESERVERS" ] || [ $# -gt 0 ];then dns="$NAMESERVERS" else ask "DNS nameserver(s)?" "${dns% }" dns="$(echo $resp | tr ',' ' ')" fi if [ -n "$domain" ]; then mkdir -p "${conf%/*}" echo "search $domain" > $conf fi if [ -n "$dns" ] || [ $# -gt 0 ] && [ -f "$conf" ]; then sed -i -e '/^nameserver/d' $conf fi for i in $dns $@; do mkdir -p "${conf%/*}" echo "nameserver $i" >> $conf done #!/bin/sh PROGRAM=setup-hostname PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-hostname [-h] [HOSTNAME] Sets the system hostname. options: -h Show this help Sets hostname to HOSTNAME or prompt if unspecified. __EOF__ exit $1 } # http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names valid_hostname() { # check length if [ $(echo "$1" | wc -c) -gt 255 ]; then echo "Hostname '$1' is too long." >&2 return 1 fi # check that it only contains valid chars if ! [ -z "$(echo $1 | sed 's/[0-9a-z.-]//g')" ]; then echo "Hostname must only contain letters (a-z), digits (0-9), '.' or '-'" >&2 return 1 fi # must not start with - or . case "$1" in -*) echo "Hostname must not start with a '-'" >&2; return 1;; .*) echo "Hostname must not start with a '.'" >&2; return 1;; esac return 0 } while getopts "hn:" opt; do case $opt in h) usage 0;; n) name="$OPTARG";; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) if [ -z "$name" ] && [ $# -eq 1 ]; then name="$1" fi # if name is set, then we run non-interactively if [ -n "$name" ] && ! valid_hostname "$name"; then exit 1 fi HOST="$name" while [ -z "$name" ]; do HOST=$(hostname) ask "Enter system hostname (fully qualified form, e.g. 'foo.example.org')" "$HOST" if valid_hostname "$resp"; then HOST="$resp" break fi done mkdir -p "$ROOT/etc" echo "$HOST" > "$ROOT/etc/hostname" #!/bin/sh PROGRAM=setup-interfaces PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" PKGS= unconfigured_add() { touch $1.noconf } unconfigured_detect() { local i= for i in ${INTERFACES:-$(available_ifaces)}; do case "$i" in lo|docker0) continue;; esac unconfigured_add "$i" done } unconfigured_get_first() { ls *.noconf 2>/dev/null | head -n 1 | sed 's/.noconf//' } unconfigured_del() { rm -f $1.noconf } unconfigured_all_done() { local i= for i in *.noconf; do [ -e $i ] && return 1 done return 0 } unconfigured_list() { local list= i= for i in *.noconf; do [ -e "$i" ] || continue list="${list} ${i%.noconf}" done echo $list } unconfigured_isin() { [ -f $1.noconf ] } iface_exists() { test -e "$ROOT"/sys/class/net/$1 } get_default_addr() { # check if dhcpcd is running if pidof dhcpcd > /dev/null && [ -f "$ROOT/var/lib/dhcpc/dhcpcd-$1.info" ]; then echo dhcp elif iface_exists $1; then $MOCK ip addr show $1 | awk '/inet / {print $2}' | head -n 1 | sed 's:/.*::' fi } get_default_mask() { if [ "$1" ] ; then ipcalc -m $1 | sed 's/.*=//' else echo "255.255.255.0" fi } get_default_gateway() { if iface_exists $1; then $MOCK ip route show dev $1 | awk '/^default/ {print $3}' fi } ipaddr_help() { cat <<-__EOF__ Select the ip address for this interface. dhcp Dynamic/automatic ip via DHCP none Do not add any address n.n.n.n (ex: 192.168.0.1) Static ip n.n.n.n/m (ex: 192.168.0.1/24) Static ip with mask br[0-9]+ (ex: br0) Add this interface to a bridge bridge[0-9] (ex: bridge0) Add this interface to a bridge You will be prompted for netmask if not specified with the address. __EOF__ } bridge_add_port() { local bridge="$1" iface= shift for iface; do echo $iface >> $bridge.bridge_ports unconfigured_add $bridge unconfigured_del $iface done } bridge_list_ports() { if [ -r $1.bridge_ports ]; then echo $(cat $1.bridge_ports) fi } is_bridge() { test -r $1.bridge_ports } is_wifi() { test -d "$ROOT"/sys/class/net/$1/phy80211 } find_essids() { local iface="$1" export essids_list=wlans # Supports only open or PSK $MOCK ip link set dev "$iface" up (iw dev "$iface" scan; echo BSS) | awk -F": " ' /^BSS/ { if (ssid) { print ssid "/" auth }; ssid=""; auth="" } $1 ~ /^[[:blank:]]*SSID$/ { ssid=$2 } $1 ~ /Authentication suites/ { auth=$2 }' \ | grep -E -v '(802.1x|\\x00)' | sort -u >"$essids_list" if [ -s "$essids_list" ]; then # we use / as separator since it is an illegal char in ssids awk -F/ '{print NR ") " $1}' "$essids_list" else return 1 fi } config_wpa_supp() { local iface="$1" essid="$2" auth_type="$3" psk="$4" local conffile="$ROOT"/etc/wpa_supplicant/wpa_supplicant.conf mkdir -p "${conffile%/*}" if [ "$auth_type" = "WPA-PSK" ]; then (umask 0077 && wpa_passphrase "$essid" "$psk" | sed -e '/^\t#psk=.*/d' >> "$conffile") else cat << EOF >> $conffile network={ ssid="$essid" key_mgmt=$auth_type } EOF fi mkdir -p "$ROOT/etc/conf.d" if grep -q ^wpa_supplicant_args= "$ROOT"/etc/conf.d/wpa_supplicant 2>/dev/null; then sed -i -e "s/^wpa_supplicant_args=.*/wpa_supplicant_args=\"-i $iface\"/" /etc/conf.d/wpa_supplicant else printf 'wpa_supplicant_args="-i%s"\n' "$iface" >> "$ROOT"/etc/conf.d/wpa_supplicant fi rc-update --quiet add wpa_supplicant boot rc-service wpa_supplicant start } essid_is_valid() { [ -n "$1" ] && cut -d/ -f1 "$essids_list" | grep -q -w -F "$1" } is_number() { echo "$1" | grep -q -E '^[0-9]+$' } essid_by_index() { if is_number "$1"; then cut -d/ -f1 "$essids_list" | sed "$1!d" fi } wlan_is_psk() { local essid="$1" awk -F/ -v essid="$essid" '$1==essid {print $2}' "$essids_list" | grep -q -F -w 'PSK' } config_iface() { local iface="$1" local prefix="$2" local default_address="$3" local address= netmask= gateway= bridge_ports= local bridge local conf="$prefix$iface.conf" if [ -n "$ask_bridge" ] && ! is_bridge $iface \ && ask_yesno "Do you want to bridge the interface $iface? (y/n)" y; then bridge="br$(echo $iface | sed 's/[^0-9]//g')" ask "Name of the bridge you want add $iface to:" $bridge bridge_add_port $resp $iface return fi if [ -r "$iface.bridge_ports" ]; then bridge_ports=$(echo $(cat $iface.bridge_ports)) echo "bridge_ports=\"$bridge_ports\"" >> $conf fi if [ -r "$iface.bond_slaves" ]; then bond_slaves=$(echo $(cat $iface.bond_slaves)) echo "bond_slaves=\"$bond_slaves\"" >> $conf fi if [ -r "$iface.raw_device" ]; then raw_device=$(cat $iface.raw_device) echo "raw_device=\"$raw_device\"" >> $conf fi if is_wifi $iface; then apk add --quiet --no-progress iw wpa_supplicant || return local wifi_configured=false while ! $wifi_configured; do echo "Available wireless networks (scanning):" if ! find_essids $iface; then printf "\nNo available wireless networks\n" return fi local essid= auth_type="NONE" ask "Type the wireless network name to connect to:" if ! essid_is_valid "$resp"; then case "$resp" in ""|done|abort) echo "Aborting $iface setup"; return;; esac local by_index="$(essid_by_index "$resp")" if essid_is_valid "$by_index"; then resp="$by_index" else echo "Invalid SSID: $resp" continue fi fi essid="$resp" if wlan_is_psk "$essid"; then auth_type="WPA-PSK" askpass "Type the \"$essid\" network Pre-Shared Key (will not echo):" psk="$resp" fi config_wpa_supp "$iface" "$essid" "$auth_type" "$psk" && wifi_configured=true done fi # use ipcalc to validate the address. we do accept /mask # we are no interested in the result, only error code, so # we send result to /dev/null while ! ipcalc -s -m $address >/dev/null 2>&1; do address=${default_address:-$(get_default_addr $iface)} [ -z "$address" ] && address="dhcp" ask "Ip address for $iface? (or 'dhcp', 'none', '?')" $address address=$resp case "$resp" in '?') ipaddr_help;; "abort") return;; "dhcp") echo "type=dhcp" >> $conf unconfigured_del $iface return ;; "none") echo "type=manual" >> $conf unconfigured_del $iface return;; br[0-9]*|bridge[0-9]*) case "$iface" in # we dont allow bridge bridges br[0-9]*|bridge[0-9]*) continue;; esac bridge_add_port $resp $iface return ;; esac done # extract netmask if entered together with address if [ "$address" != "${address%%/*}" ]; then netmask=$(ipcalc -s -m $address | cut -d= -f2) fi # use ipcalc -m to validate netmask. we dont accept /mask suffix # so we pass on a dummy mask to ipcalc. while ! ipcalc -s -m $netmask/0 >/dev/null 2>&1; do netmask=$(get_default_mask $address) ask "Netmask?" $netmask netmask=$resp [ "$netmask" = "abort" ] && return done # use ipcalc -m to validate netmask. we dont accept /mask suffix # so we pass on a dummy mask to ipcalc. while ! ipcalc -s -m $gateway/0 >/dev/null 2>&1; do gateway=$(get_default_gateway $iface) [ -z "$gateway" ] && gateway=none ask "Gateway? (or 'none')" $gateway gateway=$resp [ "$gateway" = "abort" ] && return [ "$gateway" = "none" ] && gateway="" [ -z "$gateway" ] && break done echo "type=static" >> $conf if [ -n "$bridge_ports" ]; then echo "bridge_ports=$bridge_ports" >> $conf fi echo "address=${address%%/*}" >> $conf #strip off /mask if there echo "netmask=$netmask" >> $conf echo "gateway=$gateway" >> $conf # print summary echo "Configuration for $iface:" sed 's/^/ /' $conf unconfigured_del $iface } is_bridge() { [ -e "$ROOT"/sys/class/net/$1/bridge ] || [ -e $1.bridge_ports ] } is_bond_master() { [ -e $1.bond_slaves ] } unconfigured_available() { local local i= iflist= for i in $(unconfigured_list); do if ! is_bridge $i && ! is_bond_master $i; then iflist="${iflist}${iflist:+ }$i" fi done echo $iflist } unconfigured_all_are() { local i= for i; do unconfigured_isin $i || return 1 done return 0 } config_bridge() { local bridge="$1" iflist= i= ports= while ! unconfigured_all_done; do set -- $(unconfigured_available) [ $# -eq 0 ] && return 0; ports=$(bridge_list_ports $bridge) if [ -n "$ports" ]; then echo "Bridge ports in $bridge are: $ports" fi echo "Available bridge ports are: $@" ask "Which port(s) do you want add to bridge $bridge? (or 'done')" $1 case $resp in 'abort') return 1;; 'done') return 0;; esac for i in $resp; do if unconfigured_isin $i; then bridge_add_port $bridge $i else echo "$i is not valid" fi done done } bond_add_slave() { local master="$1" slave= shift for slave; do echo $slave >> $master.bond_slaves unconfigured_add $master unconfigured_del $slave done } bond_list_slaves() { if [ -r $1.bond_slaves ]; then echo $(cat $1.bond_slaves) fi } config_bond() { local master="$1" slaves= while ! unconfigured_all_done; do set -- $(unconfigured_available) [ $# -eq 0 ] && return 0; slaves=$(bond_list_slaves $master) if [ -n "$slaves" ]; then echo "Bond slaves in $master are: $slaves" fi echo "Available bond slaves are: $@" ask "Which slave(s) do you want add to $master? (or 'done')" $1 case $resp in 'abort') return 1;; 'done') return 0;; esac for i in $resp; do if unconfigured_isin $i; then bond_add_slave $master $i else echo "$i is not valid" fi done done } config_vlan() { local iface="$1" vid= raw_device= case $iface in *.*) raw_device=${iface%.*} vid=${iface#*.} ;; vlan*) vid=${iface#vlan} ask_which "raw device" "do you want use for $iface" "$(unconfigured_list)" echo "$resp" > $iface.raw_device return 0 ;; esac if unconfigured_isin $raw_device || is_bond_master $raw_device; then return 0 fi echo "$raw_device is not a valid raw device for $iface" return 1 } usage() { cat <<-__EOF__ usage: setup-interfaces [-abhir] [-p ROOT] Setup network interfaces options: -a Automatic interface setup using DHCP -b Ask for bridging of interfaces -h Show this help -i Read new contents of ${ROOT}etc/network/interfaces from stdin -p Set the system root to operate in -r Restart the networking service after the setup __EOF__ exit $1 } iface_help() { cat <<-__EOF__ Select the interface you wish to configure. For advanced configurations, you can also enter: br[0-9]+ (ex: br0) bridge interface bridge[0-9]+ (ex: bridge0) bridge interface bond[0-9]+ (ex: bond32) bonded interface vlan[0-9]+ (ex: vlan371) vlan interface eth?.[0-9]+ (ex: eth0.371) vlan interface bond?.[0.9]+ (ex: bond0.371) vlan interface You will be asked which physical interface(s) to be used for advanced configurations. Select 'none' to leave configuration unmodified. __EOF__ } prompt_for_interfaces() { init_tmpdir TMP cd $TMP unconfigured_detect index=1 while ! unconfigured_all_done; do echo "Available interfaces are: $(unconfigured_list)." echo "Enter '?' for help on bridges, bonding and vlans." ask "Which one do you want to initialize? (or '?' or 'done')" \ $(unconfigured_get_first) iface=$resp case "$iface" in "none") exit;; "done") break;; '?') iface_help; continue;; br[0-9]*|bridge[0-9]*|virbr[0-9]*) config_bridge $iface || continue;; bond[0-9]*.[0-9]*) config_bond ${iface%.*} || continue config_iface ${iface%.*} $(printf "%.3d~" $index) none index=$(( $index + 1 )) config_vlan $iface || continue ;; bond[0-9]*) config_bond $iface || continue;; *.[0-9]*|vlan[0-9]*) config_vlan $iface || continue;; *) unconfigured_isin $iface || continue;; esac config_iface $iface $(printf "%.3d~" $index) index=$(( $index + 1 )) done if [ "$(openrc --sys)" != "LXC" ] || ! ip addr show lo | grep -q 'inet.*127\.0'; then echo "type=loopback" > 000~lo.conf echo "" > interface fi for i in *.conf ; do iface=$(basename $i .conf) iface=${iface#[0-9]*~} bridge_ports= bond_slaves= raw_device= address= type= gateway= . ./$i echo "auto $iface" >> interfaces echo "iface $iface inet $type" >> interfaces if [ -n "$bridge_ports" ]; then PKGS="$PKGS bridge" printf "\tbridge-ports %s\n" "$bridge_ports" >> interfaces fi if [ -n "$bond_slaves" ]; then PKGS="$PKGS bonding" printf "\tbond-slaves %s\n" "$bond_slaves" >> interfaces fi if [ -n "$raw_device" ]; then printf "\tvlan-raw-device %s\n" "$raw_device" >> interfaces fi case "$iface" in *.[0-9]*|vlan[0-9]*) if ! [ -f "$ROOT"usr/libexec/ifupdown-ng/link ]; then PKGS="$PKGS vlan" fi ;; esac case $type in manual) printf "\tup ip link set \$IFACE up\n" >> interfaces printf "\tdown ip link set \$IFACE down\n" >> interfaces ;; static) printf "\taddress %s\n" "$address" >> interfaces printf "\tnetmask %s\n" "$netmask" >> interfaces [ "$gateway" ] \ && printf "\tgateway %s\n" "$gateway" >> interfaces ;; esac echo "" >> interfaces done if ask_yesno "Do you want to do any manual network configuration? (y/n)" n; then case "$EDITOR" in nano) apk add nano;; vim) apk add vim;; esac ${EDITOR:-vi} interfaces fi if [ -n "$PKGS" ]; then apk add --quiet $PKGS fi mkdir -p $ROOT/etc/network cp interfaces $ROOT/etc/network/ } find_first_iface_up() { local n=0 [ $# -eq 0 ] && return while [ $n -le ${SETUP_INTERFACES_LINK_WAIT_MAX:-11} ]; do for i in "$@"; do if [ "$(cat "$ROOT/sys/class/net/$i/operstate" 2>/dev/null)" = "up" ]; then echo "$i" return fi done sleep 0.1 n=$((n+1)) done } auto_setup() { local iface set -- $(available_ifaces) if [ $# -eq 0 ]; then return fi for iface in "$@"; do $MOCK ip link set dev "$iface" up done iface="$(find_first_iface_up "$@")" if [ -z "$iface" ]; then iface="$1" fi # we will likely use the found interface later so lets keep it up for i in "$@"; do if [ "$i" != "$iface" ]; then $MOCK ip link set dev "$i" down fi done cat >$ROOT/etc/network/interfaces <<-EOF auto lo iface lo inet loopback auto $iface iface $iface inet dhcp EOF } ask_bridge= is_xen_dom0 && ask_bridge=1 while getopts "abhip:r" opt; do case $opt in a) auto=1;; b) ask_bridge=1;; h) usage 0;; i) STDINPUT=1;; p) ROOT=$OPTARG;; r) restart=1;; '?') usage "1" >&2;; esac done if [ "$1" = none ]; then exit fi mkdir -p $ROOT/etc/network if [ "$STDINPUT" = "1" ]; then cat > $ROOT/etc/network/interfaces elif [ -n "$auto" ]; then auto_setup else prompt_for_interfaces fi if [ -n "$restart" ]; then rc-service networking --quiet restart >/dev/null fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" MAPDIR="$ROOT/usr/share/bkeymaps" if [ -f "$ROOT/etc/conf.d/loadkmap" ]; then . "$ROOT/etc/conf.d/loadkmap" variant=$(basename "KEYMAP") variant="${variant%%.*}" fi usage() { cat <<-__EOF__ usage: setup-keymap [-h] [LAYOUT [VARIANT]] Sets the system keymap layout and variant. options: -h Show this help Sets keymap to LAYOUT (and VARIANT) or prompt if unspecified. __EOF__ exit $1 } show_layouts() { output="" for file in "$MAPDIR"/*; do base=$(basename "$file") output="$output${base%.bmap.gz} " done print_column "$output" } show_variants() { output="" for file in "$MAPDIR/$1"/*; do base=$(basename "$file") output="$output${base%.bmap.gz} " done print_column "$output" } print_column() { if [ -z "$1" ]; then echo "Error: No data to display." >&2 return 1 fi local terminal_width=$(stty size 2>/dev/null | cut -d' ' -f2) if [ -z "$terminal_width" ] || [ "$terminal_width" -eq 0 ]; then terminal_width=80 fi max_word_length=$(echo "$1" | awk '{for(i=1;i<=NF;i++) x = (length($i) > x ? length($i) : x)} END {print x}') number_of_columns=$((terminal_width / (max_word_length + 1))) if [ "$number_of_columns" -eq 0 ]; then number_of_columns=1 fi words=$(echo $1) i=0 for word in $words; do printf "%-${max_word_length}s " "$word" i=$((i + 1)) if [ $((i % number_of_columns)) -eq 0 ]; then printf "\n" fi done if [ $((i % number_of_columns)) -ne 0 ]; then printf "\n" fi } select_layout() { while true; do if [ -z "$layout" ] || ! [ -d "$MAPDIR/$layout" ]; then layout=none fi show_layouts echo "" ask "Select keyboard layout:" "$layout" echo "" if [ "$resp" = "abort" ] || [ "$resp" = "none" ] ; then goodbye 0 fi set -- $resp layout="$1" variant="$2" if [ -d "$MAPDIR/$layout" ] ; then return 0 fi done } setup_mapfile() { local name="$(basename "$1")" local conf="$ROOT/etc/conf.d/loadkmap" mkdir -p "$ROOT/etc/keymap" mkdir -p "$ROOT/etc/conf.d/" if cp "$1" "$ROOT/etc/keymap/$name" ; then [ -f "$conf" ] && sed -i '/^KEYMAP=/d' "$conf" echo "KEYMAP=/etc/keymap/$name" >> "$conf" # we actually load the keymap now rc-service loadkmap restart rc-update -q add loadkmap boot goodbye 0 fi } select_variant() { while true; do show_variants "$layout" if [ ! -f "$MAPDIR/$layout/$variant.bmap" ] ; then variant="" fi echo "" ask "Select variant (or 'abort'):" "$variant" echo "" variant="$resp" if [ "$variant" = "abort" ] || [ "$variant" = "none" ]; then break; fi if [ -f "$MAPDIR/$layout/$variant.bmap"* ]; then setup_mapfile "$MAPDIR/$layout/$variant.bmap"* fi done } goodbye() { apk del --quiet --no-progress .setup-keymap-deps exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) trap 'goodbye 1' INT apk add --quiet --virtual .setup-keymap-deps kbd-bkeymaps deflayout="$1" defvariant="$2" while true; do if [ -n "$deflayout" ]; then if [ "$deflayout" = "none" ]; then goodbye 0 fi layout="$deflayout" unset deflayout else select_layout fi if [ -n "$defvariant" ]; then variant="$defvariant" fi # if variant is defined, this could match, otherwise we'll have to choose a variant if [ -f "$MAPDIR/$layout/$variant.bmap"* ]; then setup_mapfile "$MAPDIR/$layout/$variant.bmap"* else # if there is only one variant, just pick it count=$(ls "$MAPDIR"/"$layout" | wc -l) if [ $count -eq 1 ]; then setup_mapfile "$MAPDIR/$layout/"* continue fi select_variant fi done #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-lbu [-hq] [MEDIA] Setup lbu media settings. MEDIA is optional mountpoint under /media options: -h Show this help -q Quietly pick best suggestion. Only prompts user if unsure. __EOF__ exit $1 } get_filesystem_type() { local mountpoint="$1" shift awk "\$2==\"$mountpoint\" {print \$3}" "$@" 2>/dev/null } get_dev() { local mountpoint="$1" shift awk "\$2==\"$mountpoint\" {print \$1}" "$@" 2>/dev/null } is_in_fstab() { test -n "$(get_filesystem_type $1 "$ROOT"/etc/fstab)" } is_mounted() { test -n "$(get_filesystem_type $1 "$ROOT"/proc/mounts)" } is_iso9660() { local fs for fs in $(get_filesystem_type $1 "$ROOT"/proc/mounts "$ROOT"/etc/fstab); do if [ "$fs" = "iso9660" ]; then return 0 fi done return 1 } set_media() { local media="${1%/}" # strip trailing / local mnt=/media/$media case "$media" in LABEL=*|UUID=*) mkdir -p $ROOT/media/$media;; esac if [ -d "$media" ] && [ "${media#/media/}" != "$media" ]; then mnt="$media" media=${mnt#/media/} fi if [ "$ROOT" = "/" ] && ! [ -d "$mnt" ]; then echo "$mnt: not a directory" >&2 exit 1 fi # set LBU_MEDIA in /etc/lbu/lbu.conf if [ -f "${ROOT}"etc/lbu/lbu.conf ]; then sed -e "/^\#\?[[:space:]]*LBU_MEDIA=.*/s/.*/LBU_MEDIA=$media/" \ -i "${ROOT}"etc/lbu/lbu.conf if ! egrep -q '^LBU_MEDIA=' "${ROOT}"etc/lbu/lbu.conf; then echo "LBU_MEDIA=$media" >> "${ROOT}"etc/lbu/lbu.conf fi else mkdir -p "${ROOT}"etc/lbu echo "LBU_MEDIA=$media" >> "${ROOT}"etc/lbu/lbu.conf fi # append to fstab if its missing if ! is_in_fstab $mnt; then case "$media" in LABEL=*|UUID=*) dev=$(findfs $media) ;; *) dev=$(get_dev $mnt "$ROOT"/proc/mounts) ;; esac if [ -z "$dev" ]; then echo "$media: Could not find device" >&2 exit 1 fi # get TYPE=... LABEL=... UUID=... from blkid eval $(blkid $dev | awk -F: '{print $2}') if [ -z "$TYPE" ]; then echo "$media: Could not find filesystem type" >&2 exit 1 fi if [ -n "$UUID" ]; then UUID="UUID=$UUID" fi # use LABEL= if it was specifically selected, otherwise use UUID case "$media" in LABEL=*|UUID=*) UUID="$media";; esac mkdir -p "$ROOT"/etc printf "%s\t%s\t%s\tnoauto,ro 0 0\n" "${UUID:-$dev}" "$mnt" "$TYPE" >> "$ROOT"/etc/fstab fi # hack in case we have alpine_dev mounted on /media/usbdisk but # lbu is stored on /media/usb # Otherwise we get issues when we do lbu commit. if [ "$media" = "usb" ] && is_mounted /media/usbdisk; then mount --move /media/usbdisk /media/usb elif [ "$media" = "usbdisk" ] && is_mounted /media/usb; then mount --move /media/usb /media/usbdisk fi } while getopts "hq" opt; do case $opt in h) usage 0;; q) quiet=1;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # check if MEDIA option was given if [ -n "$1" ]; then if [ "$1" = "none" ]; then exit fi set_media "$1" exit fi alternatives= suggestion="none" for dir in /media/*; do [ -d "$dir" ] || continue if is_iso9660 "$dir"; then continue fi alternatives="$alternatives, '${dir#/media/}'" if is_mounted "$dir"; then suggestion=${dir#/media/} [ -n "$quiet" ] && media=$suggestion fi done if findfs "LABEL=APKOVL" >/dev/null; then suggestion="LABEL=APKOVL" case ", $alternatives, " in *"'LABEL=APKOVL'"*) ;; *) alternatives="$alternatives, 'LABEL=APKOVL'" ;; esac fi # strip leading , + space alternatives=${alternatives#, } # if nothing is mounted (or boot from cdrom) usbmnt=$(awk '$1 == "/dev/usbdisk" {print $2}' /proc/mounts) if [ -z "$suggestion" ] && [ -n "$usbmnt" ]; then suggestion=${usbmnt#/media/} if [ -n "$quiet" ] && [ -e /dev/usbdisk ]; then media=$suggestion fi fi while [ -z "$media" ]; do ask "Enter where to store configs ($alternatives or 'none')" "$suggestion" media="$resp" case "$media" in none|LABEL=*) break;; esac if [ -d "/media/$media" ]; then break fi echo "/media/$media is not a directory. Please try again." media= done if [ "$media" = "none" ]; then exit 0 fi set_media "$media" #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" conf="$ROOT/etc/ssmtp/ssmtp.conf" usage() { cat <<-EOF usage: setup-mta [-h] [SMTPSERVER] Setup SMTP server for outgoing email options: -h Show this help If SMTPSERVER is not prompted user will be prompted EOF exit $1 } cfgval() { awk -F= "/^$1/ {print \$2}" $conf 2>/dev/null } setcfg() { local key="$1" local value="$2" mkdir -p "${conf%/*}" sed -i "s/^\\(\\#\\)*$key=.*/$key=$value/" "$conf" 2>/dev/null if ! grep -q "^$key=" "$conf" 2>/dev/null; then echo "$key=$value" >> "$conf" fi } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) mailhub="$1" if [ -f "$conf" ] ; then mailhub=$(cfgval mailhub) fi domain=$(hostname -d $hostname 2>/dev/null) if [ -z "$mailhub" ] ;then if [ -n "$domain" ] ; then mailhub="smtp.$domain" else mailhub=smtp fi fi res= while [ $# -eq 0 ] && [ "$res" != "221" ]; do ask "Outgoing mail server? (e.g 'smtp.isp.com')" "$mailhub" mailhub="$resp" if ! ask_yesno "Test connection? (y/n)" y; then break fi res=$(printf "quit\r\n\n" | nc $mailhub 25 | awk '/^221/ {print $1}') [ "x$res" = "x221" ] && echo "Connection to $mailhub is ok." done apk add ssmtp setcfg mailhub $mailhub setcfg FromLineOverride YES #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat >&$(( $1 + 1 ))<<-__EOF__ usage: setup-ntp [-h] [busybox|openntpd|chrony|none] Setup NTP time synchronization options: -h Show this help User is prompted if no NTP daemon is specified __EOF__ exit $1 } while getopts "hc:" opt; do case $opt in c) resp="$OPTARG";; h) usage 0;; '?') usage 1;; esac done shift $(( $OPTIND - 1 )) : ${resp:=$1} while [ $# -eq 0 ] && ! isin "$resp" busybox openntpd chrony none abort; do if date -d "$resp" >/dev/null 2>&1; then $MOCK date -s "$resp" else # display current time before asking for NTP client date fi ask "Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none')" chrony done pkgs="$resp" case "$resp" in none|abort) exit 0 ;; busybox) pkgs='' svc=ntpd ;; chrony) if apk info --installed --quiet acf-core; then pkgs="$pkgs acf-chrony" fi svc=chronyd ;; openntpd) svc=openntpd ;; *) echo "setup-ntp: '$resp' is not a supported NTP client" >&2 usage 1 ;; esac [ -z "$pkgs" ] || apk add --quiet $pkgs rc-update add $svc default rc-service $svc start #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-proxy [-hq] [PROXYURL] Setup http proxy options: -h Show this help -q Quiet mode If PROXYURL is not specified user will be prompted. __EOF__ exit $1 } while getopts "hp:q" opt; do case "$opt" in q) quiet=1;; h) usage 0;; p) ROOT=$OPTARG;; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1)) proxyurl="$1" PROFILE="$ROOT/etc/profile.d/proxy.sh" if [ -f "$PROFILE" ] ; then . $PROFILE fi suggest=${http_proxy:-none} while [ $# -eq 0 ]; do case "$proxyurl" in http://*|https://*) break;; none) break;; esac ask "HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none')" $suggest proxyurl=$resp done if [ "$proxyurl" = "none" ]; then rm -f "$PROFILE" else mkdir -p "${PROFILE%/*}" cat >"$PROFILE" <<-__EOF__ # this file was generated with and might get overwritten by setup-proxy export http_proxy=$proxyurl export https_proxy=$proxyurl export ftp_proxy=$proxyurl export no_proxy=localhost __EOF__ # busybox wget does not handle http proxies well apk add --quiet --no-progress wget fi if [ -z "$quiet" ] && [ "$proxyurl" != "none" ]; then cat <<-__EOF__ To make changes active please do login again or source $PROFILE with ". $PROFILE" __EOF__ fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-sshd [-h] [-k authorized key] [openssh | dropbear | none] Setup sshd daemon options: -h Show this help -k Authorized key for root (HTTP(S)/FTP URL, the public key itself or 'none') __EOF__ exit $1 } root_login_help() { cat <<-__EOF__ Valid options are: yes root will be able to login with password or ssh key no root will not be allowed to login with ssh prohibit-password root will be able to login with ssh key but not with password __EOF__ } set_sshd_config() { local key="$1" value="$2" sed -i -E -e "s/^#?\s*$key.*/$key $value/" \ "$ROOT"/etc/ssh/sshd_config 2>/dev/null if ! grep -q -w "^$key" "$ROOT"/etc/ssh/sshd_config; then echo "$key $value" >> "$ROOT"/etc/ssh/sshd_config fi } get_sshd_config() { local key="$1" value="$2" awk -v key="$key" '$1 == key {print $2}' "$ROOT"/etc/ssh/sshd_config } authorized_key="$SSH_KEY" while getopts "hc:k:" opt; do case $opt in h) usage 0;; c) sshdchoice="$OPTARG";; # backwards compat k) authorized_key="$OPTARG";; '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1 )) case "$1" in openssh|dropbear|none) sshdchoice="$1" ;; "") [ -z "$sshdchoice" ] && interactive=1;; *) usage "1" >&2;; esac while [ -n "$interactive" ] && ! isin "$sshdchoice" openssh dropbear none; do ask "Which ssh server? ('openssh', 'dropbear' or 'none')" openssh sshdchoice="$resp" done if [ "$sshdchoice" = "none" ]; then exit 0 fi pkgs="$sshdchoice" if [ "$sshdchoice" = "openssh" ] && apk info --quiet --installed acf-core; then pkgs="$pkgs acf-openssh" fi apk add --quiet $pkgs users=$(awk -F: '{if ($3<65000 && $3 >= 1000) print $1}' \ "$ROOT"/etc/passwd 2>/dev/null) if [ "$sshdchoice" = "openssh" ] && [ -z "$authorized_key" ] && [ -z "$users" ]; then suggest=prohibit-password while [ -n "$interactive" ]; do ask "Allow root ssh login? ('?' for help)" "$suggest" case "$resp" in '?') root_login_help continue ;; "al "*) suggest="https://gitlab.alpinelinux.org/${resp#* }.keys" continue ;; "gl "*) suggest="https://gitlab.com/${resp#* }.keys" continue ;; "gh "*) suggest="https://github.com/${resp#* }.keys" continue ;; yes|no|prohibit-password) set_sshd_config PermitRootLogin "$resp" break ;; http://*|https://*) authorized_key="$(wget -qO- "$resp")" || { echo "Failed to fetch key from '$resp'" continue } break ;; esac done suggest=none while [ -n "$interactive" ] && [ "$(get_sshd_config PermitRootLogin)" != "no" ]; do ask "Enter ssh key or URL for root (or 'none')" "$suggest" case "$resp" in "al "*) suggest="https://gitlab.alpinelinux.org/${resp#* }.keys" continue ;; "gl "*) suggest="https://gitlab.com/${resp#* }.keys" continue ;; "gh "*) suggest="https://github.com/${resp#* }.keys" continue ;; http://*|https://*) authorized_key="$(wget -qO- "$resp")" || { echo "Failed to fetch key from '$resp'" continue } break ;; none) break ;; *) if printf "%s\n" "$resp" | ssh-keygen -l -f - >/dev/null; then authorized_key="$resp" break fi ;; esac done fi # ask "Enter ssh key or URL for $username (or 'none')" none svc= case "$sshdchoice" in openssh) svc=sshd;; dropbear) svc=dropbear;; esac if [ -n "$svc" ]; then rc-update add $svc default rc-service $svc start fi if [ -n "$authorized_key" -a "$authorized_key" != "none" ]; then # if the argument is an HTTP(S)/FTP URL, try to fetch the file contents case "$authorized_key" in http*://*|ftp://*) key_url="$authorized_key" authorized_key="$(wget -qO- "$key_url")" || die "Failed to fetch key from '$key_url'" ;; esac umask 077 mkdir -p "$ROOT"/root/.ssh echo "$authorized_key" >> "$ROOT"/root/.ssh/authorized_keys fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" zroot="$ROOT"usr/share/zoneinfo usage() { cat <<-__EOF__ usage: setup-timezone [-h] [-k|-i] [TIMEZONE] Sets the timezone for the system. options: -h Show this help -i Install tzdata and symlink instead of making a copy -k Keep previous copies of tzdata TIMEZONE is relative $zroot. If TIMEZONE is not specified user will be prompted. __EOF__ exit $1 } show_tz_list() { local i z= list= local path="$zroot/$1" [ -d "$path" ] || return 1 for i in $(find $path/ -maxdepth 1); do case $i in *.tab|*/) continue;; esac if [ -d "$i" ]; then z="$z ${i##*/}/" else z="$z ${i##*/}" fi done ( cd $path && ls --color=never -Cd $z ) } setup_tz() { local zonepath="$1" if ! $INSTALL_TZDATA; then local zone="${zonepath#*/zoneinfo/}" local zdir="${zonepath%/*}"/ zdir="${zdir#*/zoneinfo/}" if ! $KEEP_TZDATA; then rm -rf "${ROOT}"etc/zoneinfo fi mkdir -p "${ROOT}"etc/zoneinfo/$zdir cp "$zonepath" "${ROOT}"etc/zoneinfo/$zdir/ zonepath=/etc/zoneinfo/$zone fi rm -f "${ROOT}"etc/localtime ln -s "$zonepath" "${ROOT}"etc/localtime } INSTALL_TZDATA=false KEEP_TZDATA=false while getopts "hikz:" opt; do case $opt in h) usage 0;; i) INSTALL_TZDATA=true;; k) KEEP_TZDATA=true;; z) ZONE="$OPTARG";; # backwards compat '?') usage "1" >&2;; esac done shift $(( $OPTIND - 1)) if [ -z "$ZONE" ]; then ZONE="$1" fi if [ "$ZONE" = "none" ]; then exit 0 fi if $INSTALL_TZDATA; then pkg=tzdata apkdel= else pkg="--force --virtual .setup-timezone tzdata" apkdel=".setup-timezone" fi apk add --no-progress --quiet $pkg || die "Failed to install tzdata package" if [ -n "$apkdel" ]; then trap "exit 1" INT TERM HUP trap "apk del --no-progress --quiet $apkdel" EXIT fi if [ -L "${ROOT}"etc/zoneinfo/localtime ]; then default_timezone=$(readlink "${ROOT}"etc/zoneinfo/localtime) default_timezone=${timezone#*/zoneinfo/} else default_timezone=UTC fi if [ -n "$ZONE" ]; then [ -f "$zroot/$ZONE" ] || die "'$ZONE' is not a valid timezone on this system" setup_tz "$zroot"/"$ZONE" else while true; do show_tz_list echo "" ask "Which timezone are you in? (or '?' or 'none')" "$default_timezone" timezone=$(printf %s "$resp" | sed 's/\/\+/\//g; s/\/$//') case "$timezone" in none|abort) break;; ""|"?") continue;; esac while [ -d "$zroot/$timezone" ]; do show_tz_list "$timezone" echo "" ask "What sub-timezone of '$timezone' are you in? (or '?')" zone=$(printf %s "$resp" | sed 's/\/\+/\//g; s/\/$//') case "$zone" in ""|"?") continue;; esac default_timezone="$timezone" timezone="$timezone/$zone" done if [ -f "$zroot/$timezone" ]; then setup_tz "$zroot/$timezone" break fi echo "'$timezone' is not a valid timezone on this system" done fi #!/bin/sh PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-user [-h] [-a] [-u] [-f FULLNAME] [-g GROUPS] [-k SSHKEY] [USERNAME] Create user account options: -a Create admin user. Add to wheel group and set up doas -h Show this help -f Set full name for user -g Comma or space separated list of groups to add user to -k ssh key or URL to ssh key (eg. https://gitlab.alpinelinux.org/user.keys) or 'none' for no key -u Unlock the user automatically (eg. creating the user non-interactively with an ssh key for login) If USERNAME is not specified user will be prompted. __EOF__ exit $1 } while getopts "af:g:hk:u" opt; do case $opt in a) admin=1;; h) usage 0;; f) fullnameopt="$OPTARG";; g) groups="$OPTARG";; k) keysopt="$OPTARG";; u) forceunlock=1;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) if [ -z "$admin$fullnameopt$groups$keysopt$forceunlock" ] && [ "$1" = "none" ]; then exit 0 fi if [ $# -gt 1 ]; then usage "1" >&2 elif [ $# -eq 1 ]; then username="$1" else interactive=1 fi while true; do fullname="$fullnameopt" if [ -n "$interactive" ] && [ -z "$username" ]; then if [ -n "$fullname" ]; then suggest=${fullname:+$(echo "$fullname" | sed -E 's/^(.).*\s+(.*)/\1\2/' | tr '[:upper:]' '[:lower:]')} else suggest=no fi # dont suggest something that has failed before if [ "$suggest" = "$failed_username" ]; then suggest= fi ask "Setup a user? (enter a lower-case loginname, or 'no')" $suggest case "$resp" in no) exit 0;; *) username="$resp";; esac fi if [ -n "$interactive" ] && [ -z "$fullnameopt" ]; then ask "Full name for user $username" ${lastfullname:-$username} fullname="$resp" lastfullname="$resp" fi if [ -n "$fullname" ]; then adduser -g "$fullname" -D "$username" && break else adduser -D "$username" && break fi if ! [ -n "$interactive" ]; then exit 1 fi failed_username="$username" username= done while [ -n "$interactive" ] && ! $MOCK passwd "$username"; do echo "Please retry." done if [ -n "$interactive" ] && [ -z "$keysopt" ]; then suggest=none while true; do ask "Enter ssh key or URL for $username (or 'none')" $suggest case "$resp" in al) suggest="https://gitlab.alpinelinux.org/$username.keys" continue ;; gl) suggest="https://gitlab.com/$username.keys" continue ;; gh) suggest="https://github.com/$username.keys" continue ;; none) break ;; https://*|http://*) sshkeys=$(wget -q -O- $resp | grep ^ssh-) ;; *) sshkeys="$resp" ;; esac if echo "$sshkeys" | grep -q ^ssh-; then break fi echo "Did not find any key in '$resp'" done else case "$keysopt" in https://*|http://*) sshkeys=$(wget -q -O- "$keysopt" | grep ^ssh-);; none) sshkeys="" ;; *) sshkeys="$keysopt";; esac if [ -n "$sshkeys" ] && ! echo "$sshkeys" | grep -q ^ssh-; then echo "Could not find any keys in '$resp'" >&2 exit 1 fi fi if [ -n "$sshkeys" ] && [ "$sshkeys" != "none" ]; then ssh_directory="$ROOT"/home/$username/.ssh ( umask 077 mkdir -p "$ssh_directory" echo "$sshkeys" > "$ssh_directory"/authorized_keys ) $MOCK chown -R $username:$username "$ssh_directory" fi if [ -n "$groups" ] && [ "$groups" != "none" ]; then for i in $(echo $groups | tr ',' ' '); do $MOCK addgroup "$username" "$i" || exit done fi if [ -n "$admin" ]; then apk add doas mkdir -p "$ROOT"/etc/doas.d echo "permit persist :wheel" >> "$ROOT"/etc/doas.d/doas.conf $MOCK addgroup "$username" "wheel" || exit fi if [ -n "$forceunlock" ]; then $MOCK passwd -u "$username" || exit fi #!/bin/sh usage() { cat <<-__EOF__ usage: setup-wayland-base [-h] [PKG..] Set up system to use Wayland options: -h Show this help Installs and enables elogind, enables community repository, enable udev and install the packages PKG if specified. __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # For every main/ repo, enable corresponding community/ repo setup-apkrepos -o apk add elogind polkit-elogind eudev "$@" setup-devd udev for service in elogind polkit; do rc-service "$service" start rc-update add "$service" done #!/bin/sh # simple script to setup basic xen dom0 # kernel modules mkdir -p "$ROOT"/etc for mod in xen_netback xen_blkback xenfs xen_pciback xen_wdt tun; do if $MOCK modprobe $mod; then grep -q -w $mod "$ROOT"/etc/modules 2>/dev/null || echo $mod >> "$ROOT"/etc/modules fi done # install packages apk add --quiet xen $@ # setup and start services for svc in xenstored xenconsoled xenqemu; do if rc-service --exist "$svc"; then rc-update --quiet add "$svc" default rc-service "$svc" start fi done #!/bin/sh usage() { cat <<-__EOF__ usage: setup-xorg-base [-h] [PKG..] Set up system to use Xorg options: -h Show this help Installs xorg-server, enables community repository, enable udev and install the packages PKG if specified. __EOF__ exit $1 } while getopts "h" opt; do case $opt in h) usage 0;; '?') usage "1" >&2;; esac done shift $(($OPTIND - 1)) # For every main/ repo, enable corresponding community/ repo setup-apkrepos -o apk add xorg-server xf86-input-libinput xinit eudev mesa-dri-gallium "$@" setup-devd udev #!/bin/sh VERSION=3.19.0-r0 PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" # set up temp dir init_tmpdir TMPD LBUCACHE="$TMPD/lbucache" usage() { cat <<-__EOF__ $PROGRAM $VERSION usage: $PROGRAM [-a|--all] [-i|--initd] [-l|--list] [-h|--help] options: -a, --all Select all updated files -i, --initd Use all new init.d scripts -l, --list List updated files -h, --help Show this help __EOF__ exit $1 } is_modified() { [ -f "$LBUCACHE" ] || lbu status -a | awk '{print $2}' > "$LBUCACHE" test -n "$( ( echo "$1" ; cat "$LBUCACHE" ) | sort | uniq -d)" } is_initd() { echo "$1" | grep etc/init.d/ > /dev/null } args=$(getopt -o ailh --long all,initd,list,help -n "$PROGRAM" -- "$@") if [ $? -ne 0 ]; then usage "1" >&2 fi eval set -- "$args" while true; do case $1 in -a|--all) aflag="-a";; -i|--initd) iflag="-i";; -l|--list) lflag="-l";; -h|--help) usage 0;; --) shift; break;; '?') usage "1" >&2;; esac shift done if which vimdiff >/dev/null; then vflag=", Vimdiff old new" vflag2="/v" fi for apknew in $(find "$ROOT/etc" -name '*.apk-new') ; do p="${apknew%.apk-new}" f="${p#${ROOT}/}" if [ "$lflag" ] ; then # just list the file if [ "$aflag" ] || is_modified "$f" ; then echo "$p" fi elif [ "$aflag" ] || is_modified "$f" ; then if [ "$iflag" ] && is_initd "$f" ; then echo "Autoupdating $p" mv "$apknew" "$p" continue fi diff -u "$p" "$apknew" # ask user what to do with the file unset resp while [ -z "$resp" ] ; do echo "New $p available:" ask "Quit, Next, Show diff, Edit new${vflag}, Zap new, Use new (q/n/s/e${vflag2}/z/u)" s case "$resp" in q) exit;; n) continue;; s) diff -u "$p" "$apknew" | ${PAGER:-less} unset resp ;; e) ${EDITOR:-vi} "$apknew" ; unset resp;; v) if [ "$vflag" ]; then vimdiff "$p" "$apknew" fi unset resp;; z) rm "$apknew";; u) mv "$apknew" "$p";; *) unset resp;; esac done else # auto update echo "Autoupdating unchanged $p" mv "$apknew" "$p" fi done #!/bin/sh -e # update-kernel # # Kernel and firmware update script for Alpine installations set up # with setup-bootable # # Copyright (c) 2014 Timo Teräs # Copyright (c) 2014-2021 Kaarle Ritvanen PREFIX=/usr : ${LIBDIR=$PREFIX/lib} . "$LIBDIR/libalpine.sh" SCRIPT=update-kernel VIRTUAL=.tmp-$SCRIPT SUPERUSER= [ $(id -u) -eq 0 ] && SUPERUSER=Y if [ -z "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then exec fakeroot "$0" "$@" fi ARCH= BUILDDIR= FLAVOR= MEDIA= MNTDIR= PACKAGES= MKINITFS_ARGS= REPOSITORIES_FILE=/etc/apk/repositories KEYS_DIR=/etc/apk/keys CACHE_DIR=/etc/apk/cache SIGNALS="HUP INT TERM" tmpdir= features= modloopfw= error() { echo "$SCRIPT: $1" >&2 } usage() { [ "$2" ] && error "$2" $outfh local opts="[-F ]... [-p ]..." local dest_args="[-a ] " local outfh=2 [ $1 -eq 0 ] && outfh=1 cat >&$outfh <<-__EOF__ usage: $SCRIPT $opts [$dest_args] $SCRIPT -f $opts $dest_args $SCRIPT -b $opts [$dest_args] Options: -a|--arch Install kernel for specified architecture -b|--build-dir

Install custom-built kernel -e|--modloopfw Install extra firmware in modloop -f|--flavor Install kernel of specified flavor -F|--feature Enable initfs feature -p|--package Additional module or firmware package -s|--modloopsign Sign modloop with abuild key -v|--verbose Verbose output -k|--apk-pubkey Include given key in initramfs -K|--hostkeys Include host keys in initramfs -C|--compression Initramfs compression (see mkinitfs for options) -M|--media Boot media directory layout -d|--keys-dir Override directory of trusted keys for apk -c|--cache-dir Override cache directory --repositories-file apk repositories file On low-memory systems, you may want to point the TMPDIR environment variable to a storage-backed directory. __EOF__ exit $1 } QUIET_OPT="--quiet" OPTS=$(getopt -l arch:,build-dir:,flavor:,feature:,modloopfw:,help,package:,modloopsign,verbose,apk-pubkey:,hostkeys,compression:,media,repositories-file:,keys-dir:,cache-dir: \ -n $SCRIPT -o a:b:f:F:hp:svk:KC:Md:c: -- "$@") || usage 1 eval set -- "$OPTS" while :; do case "$1" in -a|--arch) shift ARCH=$1 ;; -b|--build-dir) shift BUILDDIR=$1 ;; -f|--flavor) shift FLAVOR=$1 ;; -F|--feature) shift features="$features $1" ;; -e|--modloopfw) shift modloopfw="$modloopfw $1" ;; -h|--help) echo "$SCRIPT 3.19.0-r0" usage 0 ;; -p|--package) shift PACKAGES="$PACKAGES $1" ;; -s|--modloopsign) MODLOOPSIGN=1 ;; -v|--verbose) QUIET_OPT= ;; -k|--apk-pubkey) shift APK_PUBKEY="$1" ;; -K|--hostkeys) MKINITFS_ARGS="$MKINITFS_ARGS -K" ;; -C|--compression) shift MKINITFS_ARGS="$MKINITFS_ARGS -C $1" ;; -M|--media) MEDIA=yes ;; -d|--keys-dir) shift KEYS_DIR="$1" ;; -c|--cache-dir) shift CACHE_DIR="$1" ;; --repositories-file) shift REPOSITORIES_FILE=$1 ;; --) break ;; esac shift done DESTDIR=$2 [ "$BUILDDIR" -a "$FLAVOR" ] && \ usage 1 "Cannot specify both build directory and flavor" if [ -z "$DESTDIR" ]; then [ "$ARCH" ] && \ usage 1 "Cannot specify architecture when updating the current kernel" [ "$FLAVOR" ] && \ usage 1 "Cannot specify flavor when updating the current kernel" [ "$SUPERUSER" ] || \ usage 1 "Specify destination directory or run as superuser" while read MOUNT; do set -- $MOUNT [ $2 = /.modloop ] || continue DESTDIR=$(dirname $(busybox losetup $1 | cut -d " " -f 3)) MNTDIR=$(dirname "$DESTDIR") break done < /proc/mounts if [ -z "$MNTDIR" ]; then error "Module loopback device not mounted" exit 1 fi fi remount() { mount $1 -o remount "$MNTDIR" } ignore_sigs() { trap "" $SIGNALS } clean_up() { set +e ignore_sigs if [ "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then apk del $QUIET_OPT $VIRTUAL fi rm -fr $tmpdir } sign_modloop() { local in="$1" local abuild_conf="${ABUILD_CONF:-"/etc/abuild.conf"}" [ -f "$abuild_conf" ] && . "$abuild_conf" local abuild_home="${ABUILD_USERDIR:-"$HOME/.abuild"}" local abuild_userconf="${ABUILD_USERCONF:-"$abuild_home/abuild.conf"}" [ -f "$abuild_userconf" ] && . "$abuild_userconf" local privkey="$PACKAGER_PRIVKEY" local pubkey="${PACKAGER_PUBKEY:-"${privkey}.pub"}" MODLOOPSIG=${in##*/}.SIGN.RSA.${pubkey##*/} echo "Signing: $in" openssl dgst -sha1 -sign "$privkey" \ -out "$tmpdir/$MODLOOPSIG" \ "$in" } trap clean_up EXIT $SIGNALS if [ "$SUPERUSER" ] && [ -z "$FAKEROOTKEY" ]; then apk add $QUIET_OPT --update-cache -t $VIRTUAL mkinitfs squashfs-tools kmod fi if [ -z "$features" ]; then . "$ROOT"/etc/mkinitfs/mkinitfs.conf fi if [ -z "$FLAVOR" ]; then FLAVOR=$(uname -r | cut -d - -f 3-) [ "$FLAVOR" ] || FLAVOR=vanilla fi [ "$ARCH" ] || ARCH=$(apk --print-arch) tmpdir=$(mktemp -dt $SCRIPT.XXXXXX) ROOTFS=$tmpdir/root BOOT=$ROOTFS/boot CACHE_DIR_OPT="--cache-dir $CACHE_DIR" if ! [ -e "$CACHE_DIR" ]; then CACHE_DIR_OPT= fi _apk() { local cmd="$1" shift apk $cmd $QUIET_OPT $CACHE_DIR_OPT -p $ROOTFS --arch "$ARCH" \ --keys-dir $KEYS_DIR \ --repositories-file "$REPOSITORIES_FILE" $* } extra_pkgs() { local res="$(_apk search -x $1)" if [ "$res" ]; then echo $* fi } # set up the root and get the APKINDEX for search _apk add --initdb --update-cache if [ "$BUILDDIR" ]; then case "$ARCH" in arm*|aarch64*) _install="zinstall dtbs_install" ;; riscv64) _install="zinstall dtbs_install" ;; *) _install="install" ;; esac mkdir -p $BOOT make -C "$BUILDDIR" $_install firmware_install modules_install \ INSTALL_MOD_PATH=$ROOTFS \ INSTALL_PATH=$BOOT \ INSTALL_DTBS_PATH='$ROOTFS/usr/lib/linux-$(KERNELRELEASE)' else if [ -z "$PACKAGES" ]; then PACKAGES="$(extra_pkgs "xtables-addons-$FLAVOR")" fi PACKAGES="$PACKAGES linux-$FLAVOR linux-firmware" fi _apk add --no-scripts alpine-base $PACKAGES if [ -n "$APK_PUBKEY" ]; then mkdir -p "$ROOTFS"/etc/apk/keys cp "$APK_PUBKEY" "$ROOTFS"/etc/apk/keys/ fi KVER_FLAVOR= [ "$FLAVOR" = vanilla ] || KVER_FLAVOR=-$FLAVOR KVER=$(basename $(ls -d $ROOTFS/lib/modules/*"$KVER_FLAVOR")) DTBDIR=$ROOTFS/boot/dtbs-$FLAVOR [ -d "$DTBDIR" ] || DTBDIR=$ROOTFS/usr/lib/linux-$KVER [ -d "$DTBDIR" ] || DTBDIR=$ROOTFS/boot find $ROOTFS/lib/modules \ -name \*.ko.gz -exec gunzip {} + \ -o -name \*.ko.xz -exec unxz {} + \ -o -name \*.ko.zst -exec unzstd --rm {} + \ -o ! -name '' # don't fail if no files found. busybox find doesn't support -true $MOCK depmod -b $ROOTFS "$KVER" STAGING=$tmpdir/boot MODLOOP=$tmpdir/modloop MODIMG=modloop-$FLAVOR mkdir $MODLOOP $STAGING cp -a $ROOTFS/lib/modules $MODLOOP mkdir -p $MODLOOP/modules/firmware find $ROOTFS/lib/modules -type f -name "*.ko*" | xargs modinfo -k $KVER -F firmware | sort -u | while read FW; do for f in "$ROOTFS"/lib/firmware/$FW "$ROOTFS"/lib/firmware/$FW.xz "$ROOTFS"/lib/firmware/$FW.zst; do if ! [ -e "$f" ]; then continue fi install -pD "$f" "$MODLOOP/modules/firmware/${f#*/lib/firmware}" # copy also all potentially associated files f=${f%.zst} f=${f%.xz} for _file in "${f%.*}".*; do install -pD "$_file" "$MODLOOP/modules/firmware/${_file#*/lib/firmware/}" done done done # install extra firmware files in modloop (i.e. not detected by modinfo) for _xfw in $modloopfw; do if [ -f "$ROOTFS/lib/firmware/$_xfw" ]; then install -pD "$ROOTFS/lib/firmware/$_xfw" \ "$MODLOOP"/modules/firmware/"$_xfw" else echo "Warning: extra firmware \"$_xfw\" not found!" fi done # wireless regulatory db if [ -e "$ROOTFS"/lib/modules/*/kernel/net/wireless/cfg80211.ko* ]; then _apk add --no-scripts wireless-regdb for _regdb in "$ROOTFS"/lib/firmware/regulatory.db*; do [ -e "$_regdb" ] && install -pD "$_regdb" "$MODLOOP"/modules/firmware/"${_regdb##*/}" done fi # include bluetooth firmware in modloop if [ -e "$ROOTFS"/lib/modules/*/kernel/drivers/bluetooth/btbcm.ko* ]; then for _btfw in "$ROOTFS"/lib/firmware/brcm/*.hcd*; do install -pD "$_btfw" \ "$MODLOOP"/modules/firmware/brcm/"${_btfw##*/}" done fi case $ARCH in armhf) mksfs="-Xbcj arm" ;; armv7|aarch64) mksfs="-Xbcj arm,armthumb" ;; x86|x86_64) mksfs="-Xbcj x86" ;; *) mksfs= esac mksquashfs $MODLOOP "$STAGING/$MODIMG" $MKSQUASHFS_OPTS -comp xz -exit-on-error $mksfs if [ -n "$MODLOOPSIGN" ]; then sign_modloop "$STAGING/$MODIMG" MKINITFS_ARGS="$MKINITFS_ARGS -s $tmpdir/$MODLOOPSIG" fi $MOCK mkinitfs $MKINITFS_ARGS -q -b $ROOTFS -F "$features base squashfs" \ -o "$STAGING/initramfs-$FLAVOR" "$KVER" for file in System.map config vmlinuz; do cp "$BOOT/$file-$KVER" "$STAGING" 2>/dev/null \ || cp "$BOOT/$file-$FLAVOR" "$STAGING" 2>/dev/null \ || cp "$BOOT/$file" "$STAGING" 2>/dev/null \ || { echo "Failed to copy $file-$KVER, $file-$FLAVOR or $file" >&2; exit 1; } done if [ "$MNTDIR" ]; then ignore_sigs umount /.modloop remount -w fi mkdir -p "$DESTDIR"/${MEDIA:+boot/} mv $STAGING/* "$DESTDIR"/${MEDIA:+boot/} if [ -d "$DTBDIR" ]; then _opwd=$PWD case "$MEDIA,$FLAVOR" in yes,rpi*) _dtb="$DESTDIR/" ;; yes,*) _dtb="$DESTDIR/boot/dtbs-$FLAVOR" ;; *,*) _dtb="$DESTDIR/dtbs/dtbs-$FLAVOR" ;; esac mkdir -p "$_dtb" _dtb=$(realpath "$_dtb") cd "$DTBDIR" find -type f \( -name "*.dtb" -o -name "*.dtbo" \) | cpio -pudm "$_dtb" 2> /dev/null cd "$_opwd" fi if [ "$MNTDIR" ]; then set +e sync remount -r mount -o loop "$DESTDIR/$MODIMG" /.modloop fi exit 0 -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yHJxQgsHQREclQu4Ohe qxTxd1tHcNnvnQTu/UrTky8wWvgXT+jpveroeWWnzmsYlDI93eLI2ORakxb3gA2O Q0Ry4ws8vhaxLQGC74uQR5+/yYrLuTKydFzuPaS1dK19qJPXB8GMdmFOijnXX4SA jixuHLe1WW7kZVtjL7nufvpXkWBGjsfrvskdNA/5MfxAeBbqPgaq0QMEfxMAn6/R L5kNepi/Vr4S39Xvf2DzWkTLEK8pcnjNkt9/aafhWqFVW7m3HCAII6h/qlQNQKSo GuH34Q8GsFG30izUENV9avY7hSLq7nggsvknlNBZtFUcmGoQrtx3FmyYsIC8/R+B ywIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvNijDxJ8kloskKQpJdx+ mTMVFFUGDoDCbulnhZMJoKNkSuZOzBoFC94omYPtxnIcBdWBGnrm6ncbKRlR+6oy DO0W7c44uHKCFGFqBhDasdI4RCYP+fcIX/lyMh6MLbOxqS22TwSLhCVjTyJeeH7K aA7vqk+QSsF4TGbYzQDDpg7+6aAcNzg6InNePaywA6hbT0JXbxnDWsB+2/LLSF2G mnhJlJrWB1WGjkz23ONIWk85W4S0XB/ewDefd4Ly/zyIciastA7Zqnh7p3Ody6Q0 sS2MJzo7p3os1smGjUF158s6m/JbVh4DN6YIsxwl2OjDOz9R0OycfJSDaBVIGZzg cQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0 64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+ xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL VQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlzMkl7b5PBdfMzGdCT0 cGloRr5xGgVmsdq5EtJvFkFAiN8Ac9MCFy/vAFmS8/7ZaGOXoCDWbYVLTLOO2qtX yHRl+7fJVh2N6qrDDFPmdgCi8NaE+3rITWXGrrQ1spJ0B6HIzTDNEjRKnD4xyg4j g01FMcJTU6E+V2JBY45CKN9dWr1JDM/nei/Pf0byBJlMp/mSSfjodykmz4Oe13xB Ca1WTwgFykKYthoLGYrmo+LKIGpMoeEbY1kuUe04UiDe47l6Oggwnl+8XD1MeRWY sWgj8sF4dTcSfCMavK4zHRFFQbGp/YFJ/Ww6U9lA3Vq0wyEI6MCMQnoSMFwrbgZw wwIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3v8/ye/V/t5xf4JiXLXa hWFRozsnmn3hobON20GdmkrzKzO/eUqPOKTpg2GtvBhK30fu5oY5uN2ORiv2Y2ht eLiZ9HVz3XP8Fm9frha60B7KNu66FO5P2o3i+E+DWTPqqPcCG6t4Znk2BypILcit wiPKTsgbBQR2qo/cO01eLLdt6oOzAaF94NH0656kvRewdo6HG4urbO46tCAizvCR CA7KGFMyad8WdKkTjxh8YLDLoOCtoZmXmQAiwfRe9pKXRH/XXGop8SYptLqyVVQ+ tegOD9wRs2tOlgcLx4F/uMzHN7uoho6okBPiifRX+Pf38Vx+ozXh056tjmdZkCaV aQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoSPnuAGKtRIS5fEgYPXD 8pSGvKAmIv3A08LBViDUe+YwhilSHbYXUEAcSH1KZvOo1WT1x2FNEPBEFEFU1Eyc +qGzbA03UFgBNvArurHQ5Z/GngGqE7IarSQFSoqewYRtFSfp+TL9CUNBvM0rT7vz 2eMu3/wWG+CBmb92lkmyWwC1WSWFKO3x8w+Br2IFWvAZqHRt8oiG5QtYvcZL6jym Y8T6sgdDlj+Y+wWaLHs9Fc+7vBuyK9C4O1ORdMPW15qVSl4Lc2Wu1QVwRiKnmA+c DsH/m7kDNRHM7TjWnuj+nrBOKAHzYquiu5iB3Qmx+0gwnrSVf27Arc3ozUmmJbLj zQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBxJN9ErBgdRcPr5g4hV qyUSGZEKuvQliq2Z9SRHLh2J43+EdB6A+yzVvLnzcHVpBJ+BZ9RV30EM9guck9sh r+bryZcRHyjG2wiIEoduxF2a8KeWeQH7QlpwGhuobo1+gA8L0AGImiA6UP3LOirl I0G2+iaKZowME8/tydww4jx5vG132JCOScMjTalRsYZYJcjFbebQQolpqRaGB4iG WqhytWQGWuKiB1A22wjmIYf3t96l1Mp+FmM2URPxD1gk/BIBnX7ew+2gWppXOK9j 1BJpo0/HaX5XoZ/uMqISAAtgHZAqq+g3IUPouxTphgYQRTRYpz2COw3NF43VYQrR bQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXEJ8uVwJPODshTkf2BH pH5fVVDppOa974+IQJsZDmGd3Ny0dcd+WwYUhNFUW3bAfc3/egaMWCaprfaHn+oS 4ddbOFgbX8JCHdru/QMAAU0aEWSMybfJGA569c38fNUF/puX6XK/y0lD2SS3YQ/a oJ5jb5eNrQGR1HHMAd0G9WC4JeZ6WkVTkrcOw55F00aUPGEjejreXBerhTyFdabo dSfc1TILWIYD742Lkm82UBOPsOSdSfOdsMOOkSXxhdCJuCQQ70DHkw7Epy9r+X33 ybI4r1cARcV75OviyhD8CFhAlapLKaYnRFqFxlA515e6h8i8ih/v3MSEW17cCK0b QwIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwR4uJVtJOnOFGchnMW5Y j5/waBdG1u5BTMlH+iQMcV5+VgWhmpZHJCBz3ocD+0IGk2I68S5TDOHec/GSC0lv 6R9o6F7h429GmgPgVKQsc8mPTPtbjJMuLLs4xKc+viCplXc0Nc0ZoHmCH4da6fCV tdpHQjVe6F9zjdquZ4RjV6R6JTiN9v924dGMAkbW/xXmamtz51FzondKC52Gh8Mo /oA0/T0KsCMCi7tb4QNQUYrf+Xcha9uus4ww1kWNZyfXJB87a2kORLiWMfs2IBBJ TmZ2Fnk0JnHDb8Oknxd9PvJPT0mvyT8DA+KIAPqNvOjUXP4bnjEHJcoCP9S5HkGC IQIDAQAB -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAutQkua2CAig4VFSJ7v54 ALyu/J1WB3oni7qwCZD3veURw7HxpNAj9hR+S5N/pNeZgubQvJWyaPuQDm7PTs1+ tFGiYNfAsiibX6Rv0wci3M+z2XEVAeR9Vzg6v4qoofDyoTbovn2LztaNEjTkB+oK tlvpNhg1zhou0jDVYFniEXvzjckxswHVb8cT0OMTKHALyLPrPOJzVtM9C1ew2Nnc 3848xLiApMu3NBk0JqfcS3Bo5Y2b1FRVBvdt+2gFoKZix1MnZdAEZ8xQzL/a0YS5 Hd0wj5+EEKHfOd3A75uPa/WQmA+o0cBFfrzm69QDcSJSwGpzWrD1ScH3AK8nWvoj v7e9gukK/9yl1b4fQQ00vttwJPSgm9EnfPHLAtgXkRloI27H6/PuLoNvSAMQwuCD hQRlyGLPBETKkHeodfLoULjhDi1K2gKJTMhtbnUcAA7nEphkMhPWkBpgFdrH+5z4 Lxy+3ek0cqcI7K68EtrffU8jtUj9LFTUC8dERaIBs7NgQ/LfDbDfGh9g6qVj1hZl k9aaIPTm/xsi8v3u+0qaq7KzIBc9s59JOoA8TlpOaYdVgSQhHHLBaahOuAigH+VI isbC9vmqsThF2QdDtQt37keuqoda2E6sL7PUvIyVXDRfwX7uMDjlzTxHTymvq2Ck htBqojBnThmjJQFgZXocHG8CAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlEyxkHggKCXC2Wf5Mzx4 nZLFZvU2bgcA3exfNPO/g1YunKfQY+Jg4fr6tJUUTZ3XZUrhmLNWvpvSwDS19ZmC IXOu0+V94aNgnhMsk9rr59I8qcbsQGIBoHzuAl8NzZCgdbEXkiY90w1skUw8J57z qCsMBydAueMXuWqF5nGtYbi5vHwK42PffpiZ7G5Kjwn8nYMW5IZdL6ZnMEVJUWC9 I4waeKg0yskczYDmZUEAtrn3laX9677ToCpiKrvmZYjlGl0BaGp3cxggP2xaDbUq qfFxWNgvUAb3pXD09JM6Mt6HSIJaFc9vQbrKB9KT515y763j5CC2KUsilszKi3mB HYe5PoebdjS7D1Oh+tRqfegU2IImzSwW3iwA7PJvefFuc/kNIijfS/gH/cAqAK6z bhdOtE/zc7TtqW2Wn5Y03jIZdtm12CxSxwgtCF1NPyEWyIxAQUX9ACb3M0FAZ61n fpPrvwTaIIxxZ01L3IzPLpbc44x/DhJIEU+iDt6IMTrHOphD9MCG4631eIdB0H1b 6zbNX1CXTsafqHRFV9XmYYIeOMggmd90s3xIbEujA6HKNP/gwzO6CDJ+nHFDEqoF SkxRdTkEqjTjVKieURW7Swv7zpfu5PrsrrkyGnsRrBJJzXlm2FOOxnbI2iSL1B5F rO5kbUxFeZUIDq+7Yv4kLWcCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnC+bR4bHf/L6QdU4puhQ gl1MHePszRC38bzvVFDUJsmCaMCL2suCs2A2yxAgGb9pu9AJYLAmxQC4mM3jNqhg /E7yuaBbek3O02zN/ctvflJ250wZCy+z0ZGIp1ak6pu1j14IwHokl9j36zNfGtfv ADVOcdpWITFFlPqwq1qt/H3UsKVmtiF3BNWWTeUEQwKvlU8ymxgS99yn0+4OPyNT L3EUeS+NQJtDS01unau0t7LnjUXn+XIneWny8bIYOQCuVR6s/gpIGuhBaUqwaJOw 7jkJZYF2Ij7uPb4b5/R3vX2FfxxqEHqssFSg8FFUNTZz3qNZs0CRVyfA972g9WkJ hPfn31pQYil4QGRibCMIeU27YAEjXoqfJKEPh4UWMQsQLrEfdGfb8VgwrPbniGfU L3jKJR3VAafL9330iawzVQDlIlwGl6u77gEXMl9K0pfazunYhAp+BMP+9ot5ckK+ osmrqj11qMESsAj083GeFdfV3pXEIwUytaB0AKEht9DbqUfiE/oeZ/LAXgySMtVC sbC4ESmgVeY2xSBIJdDyUap7FR49GGrw0W49NUv9gRgQtGGaNVQQO9oGL2PBC41P iWF9GLoX30HIz1P8PF/cZvicSSPkQf2Z6TV+t0ebdGNS5DjapdnCrq8m9Z0pyKsQ uxAL2a7zX8l5i1CZh1ycUGsCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0MfCDrhODRCIxR9Dep1s eXafh5CE5BrF4WbCgCsevyPIdvTeyIaW4vmO3bbG4VzhogDZju+R3IQYFuhoXP5v Y+zYJGnwrgz3r5wYAvPnLEs1+dtDKYOgJXQj+wLJBW1mzRDL8FoRXOe5iRmn1EFS wZ1DoUvyu7/J5r0itKicZp3QKED6YoilXed+1vnS4Sk0mzN4smuMR9eO1mMCqNp9 9KTfRDHTbakIHwasECCXCp50uXdoW6ig/xUAFanpm9LtK6jctNDbXDhQmgvAaLXZ LvFqoaYJ/CvWkyYCgL6qxvMvVmPoRv7OPcyni4xR/WgWa0MSaEWjgPx3+yj9fiMA 1S02pFWFDOr5OUF/O4YhFJvUCOtVsUPPfA/Lj6faL0h5QI9mQhy5Zb9TTaS9jB6p Lw7u0dJlrjFedk8KTJdFCcaGYHP6kNPnOxMylcB/5WcztXZVQD5WpCicGNBxCGMm W64SgrV7M07gQfL/32QLsdqPUf0i8hoVD8wfQ3EpbQzv6Fk1Cn90bZqZafg8XWGY wddhkXk7egrr23Djv37V2okjzdqoyLBYBxMz63qQzFoAVv5VoY2NDTbXYUYytOvG GJ1afYDRVWrExCech1mX5ZVUB1br6WM+psFLJFoBFl6mDmiYt0vMYBddKISsvwLl IJQkzDwtXzT2cSjoj3T5QekCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvaaoSLab+IluixwKV5Od 0gib2YurjPatGIbn5Ov2DLUFYiebj2oJINXJSwUOO+4WcuHFEqiL/1rya+k5hLZt hnPL1tn6QD4rESznvGSasRCQNT2vS/oyZbTYJRyAtFkEYLlq0t3S3xBxxHWuvIf0 qVxVNYpQWyM3N9RIeYBR/euXKJXileSHk/uq1I5wTC0XBIHWcthczGN0m9wBEiWS 0m3cnPk4q0Ea8mUJ91Rqob19qETz6VbSPYYpZk3qOycjKosuwcuzoMpwU8KRiMFd 5LHtX0Hx85ghGsWDVtS0c0+aJa4lOMGvJCAOvDfqvODv7gKlCXUpgumGpLdTmaZ8 1RwqspAe3IqBcdKTqRD4m2mSg23nVx2FAY3cjFvZQtfooT7q1ItRV5RgH6FhQSl7 +6YIMJ1Bf8AAlLdRLpg+doOUGcEn+pkDiHFgI8ylH1LKyFKw+eXaAml/7DaWZk1d dqggwhXOhc/UUZFQuQQ8A8zpA13PcbC05XxN2hyP93tCEtyynMLVPtrRwDnHxFKa qKzs3rMDXPSXRn3ZZTdKH3069ApkEjQdpcwUh+EmJ1Ve/5cdtzT6kKWCjKBFZP/s 91MlRrX2BTRdHaU5QJkUheUtakwxuHrdah2F94lRmsnQlpPr2YseJu6sIE+Dnx4M CfhdVbQL2w54R645nlnohu8CAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU pNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X 0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6 ADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ raQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy KLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj /QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H Kuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs mFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1 /J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq XIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4 VORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0 XkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ piM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46 xLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP ODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM EyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr DzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+ f53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF HwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk Ok9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6 9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT JZDr++FjKrnnijbyNF8b98UCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0 lIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm a6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw tO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C US/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP hP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv LSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0 x9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF wmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG LPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV GZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C 8CM1S15HxV78s9dFntEqIokCAwEAAQ== -----END PUBLIC KEY----- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfB12w4ZgqsXWZDfUAV/ 6Y4aHUKIu3q4SXrNZ7CXF9nXoAVYrS7NAxJdAodsY3vPCN0g5O8DFXR+390LdOuQ +HsGKCc1k5tX5ZXld37EZNTNSbR0k+NKhd9h6X3u6wqPOx7SIKxwAQR8qeeFq4pP rt9GAGlxtuYgzIIcKJPwE0dZlcBCg+GnptCUZXp/38BP1eYC+xTXSL6Muq1etYfg odXdb7Yl+2h1IHuOwo5rjgY5kpY7GcAs8AjGk3lDD/av60OTYccknH0NCVSmPoXK vrxDBOn0LQRNBLcAfnTKgHrzy0Q5h4TNkkyTgxkoQw5ObDk9nnabTxql732yy9BY s+hM9+dSFO1HKeVXreYSA2n1ndF18YAvAumzgyqzB7I4pMHXq1kC/8bONMJxwSkS Ym6CoXKyavp7RqGMyeVpRC7tV+blkrrUml0BwNkxE+XnwDRB3xDV6hqgWe0XrifD YTfvd9ScZQP83ip0r4IKlq4GMv/R5shcCRJSkSZ6QSGshH40JYSoiwJf5FHbj9ND 7do0UAqebWo4yNx63j/wb2ULorW3AClv0BCFSdPsIrCStiGdpgJDBR2P2NZOCob3 G9uMj+wJD6JJg2nWqNJxkANXX37Qf8plgzssrhrgOvB0fjjS7GYhfkfmZTJ0wPOw A8+KzFseBh4UFGgue78KwgkCAwEAAQ== -----END PUBLIC KEY----- 3.21.0 Welcome to Alpine Linux 3.21 Kernel \r on an \m (\l) https://secdb.alpinelinux.org/v3.21/main.json https://secdb.alpinelinux.org/v3.21/community.json NAME="Alpine Linux" ID=alpine VERSION_ID=3.21.0 PRETTY_NAME="Alpine Linux v3.21" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" # This file specifies the Certificate Transparency logs # that are to be trusted. # Google's list of logs can be found here: # www.certificate-transparency.org/known-logs # A Python program to convert the log list to OpenSSL's format can be # found here: # https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py # Use the "--openssl_output" flag. # This file specifies the Certificate Transparency logs # that are to be trusted. # Google's list of logs can be found here: # www.certificate-transparency.org/known-logs # A Python program to convert the log list to OpenSSL's format can be # found here: # https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py # Use the "--openssl_output" flag. # # OpenSSL example configuration file. # See doc/man5/config.pod for more info. # # This is mostly being used for generation of certificate requests, # but may be used for auto loading of providers # Note that you can include other files from the main configuration # file using the .include directive. #.include filename # This definition stops the following lines choking if HOME isn't # defined. HOME = . # Use this in order to automatically load providers. openssl_conf = openssl_init # Comment out the next line to ignore configuration errors config_diagnostics = 1 # Extra OBJECT IDENTIFIER info: # oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 # Policies used by the TSA examples. tsa_policy1 = 1.2.3.4.1 tsa_policy2 = 1.2.3.4.5.6 tsa_policy3 = 1.2.3.4.5.7 # For FIPS # Optionally include a file that is generated by the OpenSSL fipsinstall # application. This file contains configuration data required by the OpenSSL # fips provider. It contains a named section e.g. [fips_sect] which is # referenced from the [provider_sect] below. # Refer to the OpenSSL security policy for more information. # .include fipsmodule.cnf [openssl_init] providers = provider_sect # List of providers to load [provider_sect] default = default_sect # The fips section name should match the section name inside the # included fipsmodule.cnf. # fips = fips_sect # If no providers are activated explicitly, the default one is activated implicitly. # See man 7 OSSL_PROVIDER-default for more details. # # If you add a section explicitly activating any other provider(s), you most # probably need to explicitly activate the default provider, otherwise it # becomes unavailable in openssl. As a consequence applications depending on # OpenSSL may not work correctly which could lead to significant system # problems including inability to remotely access the system. [default_sect] # activate = 1 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = ./demoCA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several certs with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem # The private key x509_extensions = usr_cert # The extensions to add to the cert # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certificate field options # Extension copying option: use with caution. # copy_extensions = copy # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crlnumber must also be commented out to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = default # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extensions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. string_mask = utf8only # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = AU countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Some-State localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Internet Widgits Pty Ltd # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This is required for TSA certificates. # extendedKeyUsage = critical,timeStamping [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always [ proxy_cert_ext ] # These extensions should be added when creating a proxy certificate # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This really needs to be in place for it to be a proxy certificate. proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo #################################################################### [ tsa ] default_tsa = tsa_config1 # the default TSA section [ tsa_config1 ] # These are used by the TSA reply generation only. dir = ./demoCA # TSA root directory serial = $dir/tsaserial # The current serial number (mandatory) crypto_device = builtin # OpenSSL engine to use for signing signer_cert = $dir/tsacert.pem # The TSA signing certificate # (optional) certs = $dir/cacert.pem # Certificate chain to include in reply # (optional) signer_key = $dir/private/tsakey.pem # The TSA private key (optional) signer_digest = sha256 # Signing digest to use. (Optional) default_policy = tsa_policy1 # Policy if request did not specify it # (optional) other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) accuracy = secs:1, millisecs:500, microsecs:100 # (optional) clock_precision_digits = 0 # number of digits after dot. (optional) ordering = yes # Is ordering defined for timestamps? # (optional, default: no) tsa_name = yes # Must the TSA name be included in the reply? # (optional, default: no) ess_cert_id_chain = no # Must the ESS cert id chain be included? # (optional, default: no) ess_cert_id_alg = sha256 # algorithm to compute certificate # identifier (optional, default: sha256) [insta] # CMP using Insta Demo CA # Message transfer server = pki.certificate.fi:8700 # proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 # tls_use = 0 path = pkix/ # Server authentication recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer ignore_keyusage = 1 # potentially needed quirk unprotected_errors = 1 # potentially needed quirk extracertsout = insta.extracerts.pem # Client authentication ref = 3078 # user identification secret = pass:insta # can be used for both client and server side # Generic message options cmd = ir # default operation, can be overridden on cmd line with, e.g., kur # Certificate enrollment subject = "/CN=openssl-cmp-test" newkey = insta.priv.pem out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature certout = insta.cert.pem [pbm] # Password-based protection for Insta CA # Server and client authentication ref = $insta::ref # 3078 secret = $insta::secret # pass:insta [signature] # Signature-based protection for Insta CA # Server authentication trusted = $insta::out_trusted # apps/insta.ca.crt # Client authentication secret = # disable PBM key = $insta::newkey # insta.priv.pem cert = $insta::certout # insta.cert.pem [ir] cmd = ir [cr] cmd = cr [kur] # Certificate update cmd = kur oldcert = $insta::certout # insta.cert.pem [rr] # Certificate revocation cmd = rr oldcert = $insta::certout # insta.cert.pem # # OpenSSL example configuration file. # See doc/man5/config.pod for more info. # # This is mostly being used for generation of certificate requests, # but may be used for auto loading of providers # Note that you can include other files from the main configuration # file using the .include directive. #.include filename # This definition stops the following lines choking if HOME isn't # defined. HOME = . # Use this in order to automatically load providers. openssl_conf = openssl_init # Comment out the next line to ignore configuration errors config_diagnostics = 1 # Extra OBJECT IDENTIFIER info: # oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 # Policies used by the TSA examples. tsa_policy1 = 1.2.3.4.1 tsa_policy2 = 1.2.3.4.5.6 tsa_policy3 = 1.2.3.4.5.7 # For FIPS # Optionally include a file that is generated by the OpenSSL fipsinstall # application. This file contains configuration data required by the OpenSSL # fips provider. It contains a named section e.g. [fips_sect] which is # referenced from the [provider_sect] below. # Refer to the OpenSSL security policy for more information. # .include fipsmodule.cnf [openssl_init] providers = provider_sect # List of providers to load [provider_sect] default = default_sect # The fips section name should match the section name inside the # included fipsmodule.cnf. # fips = fips_sect # If no providers are activated explicitly, the default one is activated implicitly. # See man 7 OSSL_PROVIDER-default for more details. # # If you add a section explicitly activating any other provider(s), you most # probably need to explicitly activate the default provider, otherwise it # becomes unavailable in openssl. As a consequence applications depending on # OpenSSL may not work correctly which could lead to significant system # problems including inability to remotely access the system. [default_sect] # activate = 1 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = ./demoCA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several certs with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem # The private key x509_extensions = usr_cert # The extensions to add to the cert # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certificate field options # Extension copying option: use with caution. # copy_extensions = copy # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crlnumber must also be commented out to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = default # use public key default MD preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extensions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. string_mask = utf8only # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = AU countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Some-State localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Internet Widgits Pty Ltd # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when 'ca' signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This is required for TSA certificates. # extendedKeyUsage = critical,timeStamping [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer basicConstraints = critical,CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where 'obj' is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always [ proxy_cert_ext ] # These extensions should be added when creating a proxy certificate # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # An alternative to produce certificates that aren't # deprecated according to PKIX. # subjectAltName=email:move # Copy subject details # issuerAltName=issuer:copy # This really needs to be in place for it to be a proxy certificate. proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo #################################################################### [ tsa ] default_tsa = tsa_config1 # the default TSA section [ tsa_config1 ] # These are used by the TSA reply generation only. dir = ./demoCA # TSA root directory serial = $dir/tsaserial # The current serial number (mandatory) crypto_device = builtin # OpenSSL engine to use for signing signer_cert = $dir/tsacert.pem # The TSA signing certificate # (optional) certs = $dir/cacert.pem # Certificate chain to include in reply # (optional) signer_key = $dir/private/tsakey.pem # The TSA private key (optional) signer_digest = sha256 # Signing digest to use. (Optional) default_policy = tsa_policy1 # Policy if request did not specify it # (optional) other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) accuracy = secs:1, millisecs:500, microsecs:100 # (optional) clock_precision_digits = 0 # number of digits after dot. (optional) ordering = yes # Is ordering defined for timestamps? # (optional, default: no) tsa_name = yes # Must the TSA name be included in the reply? # (optional, default: no) ess_cert_id_chain = no # Must the ESS cert id chain be included? # (optional, default: no) ess_cert_id_alg = sha256 # algorithm to compute certificate # identifier (optional, default: sha256) [insta] # CMP using Insta Demo CA # Message transfer server = pki.certificate.fi:8700 # proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 # tls_use = 0 path = pkix/ # Server authentication recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer ignore_keyusage = 1 # potentially needed quirk unprotected_errors = 1 # potentially needed quirk extracertsout = insta.extracerts.pem # Client authentication ref = 3078 # user identification secret = pass:insta # can be used for both client and server side # Generic message options cmd = ir # default operation, can be overridden on cmd line with, e.g., kur # Certificate enrollment subject = "/CN=openssl-cmp-test" newkey = insta.priv.pem out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature certout = insta.cert.pem [pbm] # Password-based protection for Insta CA # Server and client authentication ref = $insta::ref # 3078 secret = $insta::secret # pass:insta [signature] # Signature-based protection for Insta CA # Server authentication trusted = $insta::out_trusted # apps/insta.ca.crt # Client authentication secret = # disable PBM key = $insta::newkey # insta.priv.pem cert = $insta::certout # insta.cert.pem [ir] cmd = ir [cr] cmd = cr [kur] # Certificate update cmd = kur oldcert = $insta::certout # insta.cert.pem [rr] # Certificate revocation cmd = rr oldcert = $insta::certout # insta.cert.pem #!/bin/sh poweroff # enter the cron options CRON_OPTS="-c /etc/crontabs" KLOGD_OPTS="" # Absolut path to the keymap which should be loaded using loadkmap. #KEYMAP="/usr/share/keymaps/xkb/us.map.gz" # By default ntpd runs as a client. Add -l to run as a server on port 123. NTPD_OPTS="-N -p pool.ntp.org" # Set the ntp server here NTP_HOST=pool.ntp.org SYSLOGD_OPTS="-t" #WATCHDOG_OPTS="-t 30" WATCHDOG_DEV="" #!/sbin/openrc-run name="busybox acpid" command="/sbin/acpid" command_args="$ACPID_OPTS -f" pidfile="/run/acpid.pid" command_background=true start_stop_daemon_args="-g wheel -k 027" depend() { need dev localmount after hwdrivers modules keyword -vserver -lxc } #!/sbin/openrc-run name="busybox $RC_SVCNAME" command="/usr/sbin/$SVCNAME" pidfile="/run/$RC_SVCNAME.pid" command_args="$CRON_OPTS -f" command_background=true depend() { need localmount need logger } #!/sbin/openrc-run name="busybox klogd" command="/sbin/klogd" command_args="${KLOGD_OPTS} -n" command_user="klogd" pidfile="/run/klogd.pid" command_background=true capabilities="^cap_syslog" depend() { need clock hostname localmount logger before net keyword -vserver -lxc } #!/sbin/openrc-run description="Applies a keymap for the consoles." depend() { provide keymaps need localmount keyword -openvz -prefix -uml -vserver -xenu -lxc } start() { [ -z "$KEYMAP" ] && return ebegin "Setting keymap" zcat "$KEYMAP" | loadkmap eend $? } stop() { return } #!/sbin/openrc-run name="busybox $RC_SVCNAME" command="/usr/sbin/$RC_SVCNAME" command_args="${NTPD_OPTS:--N -p pool.ntp.org} -n" command_user="ntp" pidfile="/run/$SVCNAME.pid" command_background=true capabilities="^cap_sys_time,^cap_net_bind_service" depend() { need net provide ntp-client use dns } #!/sbin/openrc-run depend() { need net after firewall keyword -vserver -lxc } start() { if [ -z "$NTP_HOST" ] ; then eerror "Please set NTP_HOST in /etc/conf.d/rdate" return 1 fi ebegin "Running busybox rdate" rdate "$NTP_HOST" eend $? } #!/sbin/openrc-run description="Message logging system" name="busybox syslog" command="/sbin/syslogd" command_args="${SYSLOGD_OPTS} -n" pidfile="/run/syslogd.pid" command_background=true start_stop_daemon_args="-g wheel -k 027" depend() { need clock hostname localmount provide logger } #!/sbin/openrc-run name="busybox watchdog" command="/sbin/watchdog" command_args="${WATCHDOG_OPTS} -F ${WATCHDOG_DEV}" pidfile="/run/watchdog.pid" command_background=true depend() { need dev after hwdrivers } start_pre() { if ! [ -n "$WATCHDOG_DEV" ]; then eerror "WATCHDOG_DEV is not set" return 1 fi } #!/bin/sh scan_dirs() { scanelf -qS "$@" | while read SONAME FILE; do TARGET="${FILE##*/}" LINK="${FILE%/*}/$SONAME" case "$FILE" in /lib/*|/usr/lib/*|/usr/local/lib/*) ;; *) [ -h "$LINK" -o ! -e "$LINK" ] && ln -sf "$TARGET" "$LINK" esac done return 0 } # eat ldconfig options while getopts "nNvXvf:C:r:" opt; do : done shift $(( $OPTIND - 1 )) [ $# -gt 0 ] && scan_dirs "$@" #!/bin/sh exec /lib/ld-musl-aarch64.so.1 --list "$@" # This is an example /etc/pkcs11/pkcs11.conf file. Copy it into # place before use. # This setting controls whether to load user configuration from the # ~/.config/pkcs11 directory. Possible values: # none: No user configuration # merge: Merge the user config over the system configuration (default) # only: Only user configuration, ignore system configuration user-config: merge #!/bin/sh # This script is a placeholder designed to be replaced when this software # has been customized for distribution. It should be symlinked linked to the # distribution's update-ca-certificates or update-ca-trust command as # appropriate. In the future this script will be called when the PKCS#11 # trust module is used to modify trust anchors and related data. if [ $# -ne 0 ]; then echo "usage: trust extract-compat" >&2 exit 2 fi uid=$(id -u) if [ "$uid" != 0 ]; then echo "trust: running as non-root user: skip extracting compat bundles" >&2 exit 0 fi echo "trust: the placeholder extract-compat command has not been customized by your distribution." >&2 # You can use commands like this to extract data from trust modules # into appropriate locations for your distribution. # # trust extract --format=openssl-bundle --filter=ca-anchors \ # --overwrite /tmp/openssl-bundle.pem # trust extract --format=pem-bundle --filter=ca-anchors --overwrite \ # --purpose server-auth /tmp/server-auth-bundle.pem # trust extract --format=java-cacerts --filter=ca-anchors --overwrite \ # --purpose server-auth /tmp/cacerts exit 1 # default config pool pool.ntp.org iburst initstepslew 10 pool.ntp.org driftfile /var/lib/chrony/chrony.drift rtcsync cmdport 0 /var/log/chrony/*.log { missingok nocreate sharedscripts postrotate /usr/bin/chronyc cyclelogs > /dev/null 2>&1 || true endscript } # /etc/conf.d/chronyd CFGFILE="/etc/chrony/chrony.conf" # chronyd takes some time to perform a second fork, by enabling this # option chronyd is deamonized through start-stop-daemon(1) thereby # significantly reducing the startup time. FAST_STARTUP=no # Configuration dependant options : # -s - Set system time from RTC if rtcfile directive present # -r - Reload sample histories if dumponexit directive present # # The combination of "-s -r" allows chronyd to perform long term averaging of # the gain or loss rate across system reboots and shutdowns. ARGS="" # vrf e.g 'vrf-mgmt' #vrf="" #!/sbin/openrc-run command="/usr/sbin/chronyd" description="NTP daemon" pidfile="/run/chrony/chronyd.pid" required_files="$CFGFILE" command_args="-f $CFGFILE $ARGS" depend() { need net after firewall provide ntp-client ntp-server use dns } start() { if [ -c /dev/rtc ]; then grep -q '^rtcfile' "${CFGFILE}" && command_args="$command_args -s" fi grep -q '^dumponexit$' "${CFGFILE}" && command_args="$command_args -r" if yesno "$FAST_STARTUP"; then # this option makes it stay in foreground and let openrc do the tracking, # so we have to set pidfile to a dir that exists earlier. # the reason this is not the default is because there is no 'readiness', # self-backgrounding chrony waits for time to sync before continuing, # and this form does not. command_args="$command_args -n" command_background=true pidfile=/run/chronyd.pid fi default_start } # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. # Allow users of this group to interact with dhcpcd via the control socket. #controlgroup wheel # Inform the DHCP server of our hostname for DDNS. #hostname # Use the hardware address of the interface for the Client ID. #clientid # or # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. # Some non-RFC compliant DHCP servers do not reply with this set. # In this case, comment out duid and enable clientid above. duid # Persist interface configuration when dhcpcd exits. persistent # vendorclassid is set to blank to avoid sending the default of # dhcpcd-::: vendorclassid # A list of options to request from the DHCP server. option domain_name_servers, domain_name, domain_search option classless_static_routes # Respect the network MTU. This is applied to DHCP routes. option interface_mtu # Request a hostname from the network option host_name # Most distributions have NTP support. #option ntp_servers # Rapid commit support. # Safe to enable by default because it requires the equivalent option set # on the server to actually work. option rapid_commit # A ServerID is required by RFC2131. require dhcp_server_identifier # Generate SLAAC address using the Hardware Address of the interface #slaac hwaddr # OR generate Stable Private IPv6 Addresses based from the DUID slaac private # Echo the interface flags, reason and message options if [ "$reason" = "TEST" ]; then # General variables at the top set | while read line; do case "$line" in interface=*|pid=*|reason=*|protocol=*|profile=*|skip_hooks=*) echo "$line";; esac done # Interface flags set | while read line; do case "$line" in ifcarrier=*|ifflags=*|ifmetric=*|ifmtu=*|ifwireless=*|ifssid=*) echo "$line";; esac done # Old lease set | while read line; do case "$line" in old_*) echo "$line";; esac done # New lease set | while read line; do case "$line" in new_*) echo "$line";; esac done # Router Advertisements set | while read line; do case "$line" in nd[0-9]*_*) echo "$line";; esac done exit 0 fi # Generate /etc/resolv.conf # Support resolvconf(8) if available # We can merge other dhcpcd resolv.conf files into one like resolvconf, # but resolvconf is preferred as other applications like VPN clients # can readily hook into it. # Also, resolvconf can configure local nameservers such as bind # or dnsmasq. This is important as the libc resolver isn't that powerful. resolv_conf_dir="$state_dir/resolv.conf" nocarrier_roaming_dir="$state_dir/roaming" NL=" " : ${resolvconf:=resolvconf} if command -v "$resolvconf" >/dev/null 2>&1; then have_resolvconf=true else have_resolvconf=false fi build_resolv_conf() { cf="$state_dir/resolv.conf.$ifname" # Build a list of interfaces interfaces=$(list_interfaces "$resolv_conf_dir") # Build the resolv.conf header= if [ -n "$interfaces" ]; then # Build the header for x in ${interfaces}; do header="$header${header:+, }$x" done # Build the search list domain=$(cd "$resolv_conf_dir"; \ key_get_value "domain " ${interfaces}) search=$(cd "$resolv_conf_dir"; \ key_get_value "search " ${interfaces}) set -- ${domain} domain="$1" [ -n "$2" ] && search="$search $*" [ -n "$search" ] && search="$(uniqify $search)" [ "$domain" = "$search" ] && search= [ -n "$domain" ] && domain="domain $domain$NL" [ -n "$search" ] && search="search $search$NL" # Build the nameserver list srvs=$(cd "$resolv_conf_dir"; \ key_get_value "nameserver " ${interfaces}) for x in $(uniqify $srvs); do servers="${servers}nameserver $x$NL" done fi header="$signature_base${header:+ $from }$header" # Assemble resolv.conf using our head and tail files [ -f "$cf" ] && rm -f "$cf" [ -d "$resolv_conf_dir" ] || mkdir -p "$resolv_conf_dir" echo "$header" > "$cf" if [ -f /etc/resolv.conf.head ]; then cat /etc/resolv.conf.head >> "$cf" else echo "# /etc/resolv.conf.head can replace this line" >> "$cf" fi printf %s "$domain$search$servers" >> "$cf" if [ -f /etc/resolv.conf.tail ]; then cat /etc/resolv.conf.tail >> "$cf" else echo "# /etc/resolv.conf.tail can replace this line" >> "$cf" fi if change_file /etc/resolv.conf "$cf"; then chmod 644 /etc/resolv.conf fi rm -f "$cf" } # Extract any ND DNS options from the RA # Obey the lifetimes eval_nd_dns() { eval rdnsstime=\$nd${i}_rdnss${j}_lifetime [ -z "$rdnsstime" ] && return 1 ltime=$(($rdnsstime - $offset)) if [ "$ltime" -gt 0 ]; then eval rdnss=\$nd${i}_rdnss${j}_servers [ -n "$rdnss" ] && new_rdnss="$new_rdnss${new_rdnss:+ }$rdnss" fi eval dnssltime=\$nd${i}_dnssl${j}_lifetime [ -z "$dnssltime" ] && return 1 ltime=$(($dnssltime - $offset)) if [ "$ltime" -gt 0 ]; then eval dnssl=\$nd${i}_dnssl${j}_search [ -n "$dnssl" ] && new_dnssl="$new_dnssl${new_dnssl:+ }$dnssl" fi j=$(($j + 1)) return 0 } add_resolv_conf() { conf="$signature$NL" warn=true # Loop to extract the ND DNS options using our indexed shell values i=1 j=1 while true; do eval acquired=\$nd${i}_acquired [ -z "$acquired" ] && break eval now=\$nd${i}_now [ -z "$now" ] && break offset=$(($now - $acquired)) while true; do eval_nd_dns || break done i=$(($i + 1)) j=1 done [ -n "$new_rdnss" ] && \ new_domain_name_servers="$new_domain_name_servers${new_domain_name_servers:+ }$new_rdnss" [ -n "$new_dnssl" ] && \ new_domain_search="$new_domain_search${new_domain_search:+ }$new_dnssl" # Derive a new domain from our various hostname options if [ -z "$new_domain_name" ]; then if [ "$new_dhcp6_fqdn" != "${new_dhcp6_fqdn#*.}" ]; then new_domain_name="${new_dhcp6_fqdn#*.}" elif [ "$new_fqdn" != "${new_fqdn#*.}" ]; then new_domain_name="${new_fqdn#*.}" elif [ "$new_host_name" != "${new_host_name#*.}" ]; then new_domain_name="${new_host_name#*.}" fi fi # If we don't have any configuration, remove it if [ -z "$new_domain_name_servers" ] && [ -z "$new_domain_name" ] && [ -z "$new_domain_search" ]; then remove_resolv_conf return $? fi if [ -n "$new_domain_name" ]; then set -- $new_domain_name if valid_domainname "$1"; then conf="${conf}domain $1$NL" else syslog err "Invalid domain name: $1" fi # If there is no search this, make this one if [ -z "$new_domain_search" ]; then new_domain_search="$new_domain_name" [ "$new_domain_name" = "$1" ] && warn=true fi fi if [ -n "$new_domain_search" ]; then new_domain_search=$(uniqify $new_domain_search) if valid_domainname_list $new_domain_search; then conf="${conf}search $new_domain_search$NL" elif ! $warn; then syslog err "Invalid domain name in list:" \ "$new_domain_search" fi fi new_domain_name_servers=$(uniqify $new_domain_name_servers) for x in ${new_domain_name_servers}; do conf="${conf}nameserver $x$NL" done if $have_resolvconf; then [ -n "$ifmetric" ] && export IF_METRIC="$ifmetric" printf %s "$conf" | "$resolvconf" -a "$ifname" return $? fi if [ -e "$resolv_conf_dir/$ifname" ]; then rm -f "$resolv_conf_dir/$ifname" fi [ -d "$resolv_conf_dir" ] || mkdir -p "$resolv_conf_dir" printf %s "$conf" > "$resolv_conf_dir/$ifname" build_resolv_conf } remove_resolv_conf() { if $have_resolvconf; then "$resolvconf" -d "$ifname" -f else if [ -e "$resolv_conf_dir/$ifname" ]; then rm -f "$resolv_conf_dir/$ifname" fi build_resolv_conf fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_domain_name_servers="$new_dhcp6_name_servers" new_domain_search="$new_dhcp6_domain_search" ;; esac if $if_configured; then if $have_resolvconf && [ "$reason" = NOCARRIER_ROAMING ]; then # avoid calling resolvconf -c on CARRIER unless we roam mkdir -p "$nocarrier_roaming_dir" echo " " >"$nocarrier_roaming_dir/$interface" "$resolvconf" -C "$interface.*" elif $have_resolvconf && [ "$reason" = CARRIER ]; then # Not all resolvconf implementations support -c if [ -e "$nocarrier_roaming_dir/$interface" ]; then rm -f "$nocarrier_roaming_dir/$interface" "$resolvconf" -c "$interface.*" fi elif $if_up || [ "$reason" = ROUTERADVERT ]; then add_resolv_conf elif $if_down; then remove_resolv_conf fi fi # Set the hostname from DHCP data if required # A hostname can either be a short hostname or a FQDN. # hostname_fqdn=true # hostname_fqdn=false # hostname_fqdn=server # A value of server means just what the server says, don't manipulate it. # This could lead to an inconsistent hostname on a DHCPv4 and DHCPv6 network # where the DHCPv4 hostname is short and the DHCPv6 has an FQDN. # DHCPv6 has no hostname option. # RFC4702 section 3.1 says FQDN should be prefered over hostname. # # As such, the default is hostname_fqdn=true so that a consistent hostname # is always assigned. : ${hostname_fqdn:=true} # If we used to set the hostname, but relinquish control of it, we should # reset to the default value. : ${hostname_default=(none)} # Some systems don't have hostname(1) _hostname() { if [ -z "${1+x}" ]; then if [ -r /proc/sys/kernel/hostname ]; then read name /dev/null 2>/dev/null; then hostname elif sysctl kern.hostname >/dev/null 2>&1; then sysctl -n kern.hostname elif sysctl kernel.hostname >/dev/null 2>&1; then sysctl -n kernel.hostname else return 1 fi return $? fi if [ -w /proc/sys/kernel/hostname ]; then echo "$1" >/proc/sys/kernel/hostname elif [ -n "$1" ] && command -v hostname >/dev/null 2>&1; then hostname "$1" elif sysctl kern.hostname >/dev/null 2>&1; then sysctl -w "kern.hostname=$1" >/dev/null elif sysctl kernel.hostname >/dev/null 2>&1; then sysctl -w "kernel.hostname=$1" >/dev/null else # May fail to set a blank hostname hostname "$1" fi } is_default_hostname() { case "$1" in ""|"$hostname_default"|localhost|localhost.localdomain) return 0;; esac return 1 } need_hostname() { # Always load the hostname variable for future use hostname="$(_hostname)" is_default_hostname "$hostname" && return 0 case "$force_hostname" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|1) return 0;; esac if [ -n "$old_fqdn" ]; then if ${hfqdn} || ! ${hshort}; then [ "$hostname" = "$old_fqdn" ] else [ "$hostname" = "${old_fqdn%%.*}" ] fi elif [ -n "$old_host_name" ]; then if ${hfqdn}; then if [ -n "$old_domain_name" ] && [ "$old_host_name" = "${old_host_name#*.}" ] then [ "$hostname" = \ "$old_host_name.$old_domain_name" ] else [ "$hostname" = "$old_host_name" ] fi elif ${hshort}; then [ "$hostname" = "${old_host_name%%.*}" ] else [ "$hostname" = "$old_host_name" ] fi else # No old hostname false fi } try_hostname() { [ "$hostname" = "$1" ] && return 0 if valid_domainname "$1"; then syslog info "Setting hostname: $1" _hostname "$1" else syslog err "Invalid hostname: $1" fi } set_hostname() { hfqdn=false hshort=false case "$hostname_fqdn" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|1) hfqdn=true;; ""|[Ss][Ee][Rr][Vv][Ee][Rr]) ;; *) hshort=true;; esac need_hostname || return 0 if [ -n "$new_fqdn" ]; then if ${hfqdn} || ! ${hshort}; then try_hostname "$new_fqdn" else try_hostname "${new_fqdn%%.*}" fi elif [ -n "$new_host_name" ]; then if ${hfqdn}; then if [ -n "$new_domain_name" ] && [ "$new_host_name" = "${new_host_name#*.}" ] then try_hostname "$new_host_name.$new_domain_name" else try_hostname "$new_host_name" fi elif ${hshort}; then try_hostname "${new_host_name%%.*}" else try_hostname "$new_host_name" fi elif ! is_default_hostname "$hostname"; then try_hostname "$hostname_default" fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_fqdn="$new_dhcp6_fqdn" old_fqdn="$old_dhcp6_fqdn" ;; esac if $if_configured && $if_up && [ "$reason" != ROUTERADVERT ]; then set_hostname fi # Sample dhcpcd hook script for NTP # It will configure either one of NTP, OpenNTP or Chrony (in that order) # and will default to NTP if no default config is found. # Like our resolv.conf hook script, we store a database of ntp.conf files # and merge into /etc/ntp.conf # You can set the env var NTP_CONF to override the derived default on # systems with >1 NTP client installed. # Here is an example for OpenNTP # dhcpcd -e NTP_CONF=/usr/pkg/etc/ntpd.conf # or by adding this to /etc/dhcpcd.conf # env NTP_CONF=/usr/pkg/etc/ntpd.conf # or by adding this to /etc/dhcpcd.enter-hook # NTP_CONF=/usr/pkg/etc/ntpd.conf # To use Chrony instead, simply change ntpd.conf to chrony.conf in the # above examples. : ${ntp_confs:=ntp.conf ntpd.conf chrony.conf} : ${ntp_conf_dirs=/etc /etc/chrony /usr/pkg/etc /usr/local/etc} ntp_conf_dir="$state_dir/ntp.conf" # If NTP_CONF is not set, work out a good default if [ -z "$NTP_CONF" ]; then for d in ${ntp_conf_dirs}; do for f in ${ntp_confs}; do if [ -e "$d/$f" ]; then NTP_CONF="$d/$f" break 2 fi done done [ -e "$NTP_CONF" ] || NTP_CONF=/etc/ntp.conf fi # Derive service name from configuration if [ -z "$ntp_service" ]; then case "$NTP_CONF" in *chrony.conf) ntp_service=chronyd;; *) ntp_service=ntpd;; esac fi # Debian has a separate file for DHCP config to avoid stamping on # the master. if [ "$ntp_service" = ntpd ] && command -v invoke-rc.d >/dev/null 2>&1; then [ -e /var/lib/ntp ] || mkdir /var/lib/ntp : ${ntp_service:=ntp} : ${NTP_DHCP_CONF:=/var/lib/ntp/ntp.conf.dhcp} fi : ${ntp_restart_cmd:=service_condcommand $ntp_service restart} ntp_conf=${NTP_CONF} NL=" " build_ntp_conf() { cf="$state_dir/ntp.conf.$ifname" # Build a list of interfaces interfaces=$(list_interfaces "$ntp_conf_dir") header= servers= if [ -n "$interfaces" ]; then # Build the header for x in ${interfaces}; do header="$header${header:+, }$x" done # Build a server list srvs=$(cd "$ntp_conf_dir"; key_get_value "server " $interfaces) if [ -n "$srvs" ]; then for x in $(uniqify $srvs); do servers="${servers}server $x$NL" done fi fi # Merge our config into ntp.conf [ -e "$cf" ] && rm -f "$cf" [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" if [ -n "$NTP_DHCP_CONF" ]; then [ -e "$ntp_conf" ] && cp "$ntp_conf" "$cf" ntp_conf="$NTP_DHCP_CONF" elif [ -e "$ntp_conf" ]; then remove_markers "$signature_base" "$signature_base_end" \ "$ntp_conf" > "$cf" fi if [ -n "$servers" ]; then echo "$signature_base${header:+ $from }$header" >> "$cf" printf %s "$servers" >> "$cf" echo "$signature_base_end${header:+ $from }$header" >> "$cf" else [ -e "$ntp_conf" ] && [ -e "$cf" ] || return fi # If we changed anything, restart ntpd if change_file "$ntp_conf" "$cf"; then [ -n "$ntp_restart_cmd" ] && eval $ntp_restart_cmd fi } add_ntp_conf() { cf="$ntp_conf_dir/$ifname" [ -e "$cf" ] && rm "$cf" [ -d "$ntp_conf_dir" ] || mkdir -p "$ntp_conf_dir" if [ -n "$new_ntp_servers" ]; then for x in $(uniqify $new_ntp_servers); do echo "server $x" >> "$cf" done fi build_ntp_conf } remove_ntp_conf() { if [ -e "$ntp_conf_dir/$ifname" ]; then rm "$ntp_conf_dir/$ifname" fi build_ntp_conf } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_ntp_servers="$new_dhcp6_sntp_servers $new_dhcp6_ntp_server_addr $new_dhcp6_ntp_server_fqdn" ;; esac if $if_configured; then if $if_up; then add_ntp_conf elif $if_down; then remove_ntp_conf fi fi #!/bin/sh # dhcpcd client configuration script # Handy variables and functions for our hooks to use ifname="$interface${protocol+.}$protocol" from=from signature_base="# Generated by dhcpcd" signature="$signature_base $from $ifname" signature_base_end="# End of dhcpcd" signature_end="$signature_base_end $from $ifname" state_dir=/run/dhcpcd/hook-state _detected_init=false : ${if_up:=false} : ${if_down:=false} : ${syslog_debug:=false} # Ensure that all arguments are unique uniqify() { result= for i do case " $result " in *" $i "*);; *) result="$result${result:+ }$i";; esac done echo "$result" } # List interface config files in a directory. # If dhcpcd is running as a single instance then it will have a list of # interfaces in the preferred order. # Otherwise we just use what we have. list_interfaces() { ifaces= for i in $interface_order; do for x in "$1"/$i.*; do [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}" done done for x in "$1"/*; do [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}" done uniqify $ifaces } # Trim function trim() { var="$*" var=${var#"${var%%[![:space:]]*}"} var=${var%"${var##*[![:space:]]}"} if [ -z "$var" ]; then # So it seems our shell doesn't support wctype(3) patterns # Fall back to sed var=$(echo "$*" | sed -e 's/^[[:space:]]*//;s/[[:space:]]*$//') fi printf %s "$var" } # We normally use sed to extract values using a key from a list of files # but sed may not always be available at the time. key_get_value() { key="$1" shift if command -v sed >/dev/null 2>&1; then sed -n "s/^$key//p" $@ else for x do while read line; do case "$line" in "$key"*) echo "${line##$key}";; esac done < "$x" done fi } # We normally use sed to remove markers from a configuration file # but sed may not always be available at the time. remove_markers() { m1="$1" m2="$2" in_marker=0 shift; shift if command -v sed >/dev/null 2>&1; then sed "/^$m1/,/^$m2/d" $@ else for x do while read line; do case "$line" in "$m1"*) in_marker=1;; "$m2"*) in_marker=0;; *) [ $in_marker = 0 ] && echo "$line";; esac done < "$x" done fi } # Compare two files. comp_file() { [ -e "$1" ] && [ -e "$2" ] || return 1 if command -v cmp >/dev/null 2>&1; then cmp -s "$1" "$2" elif command -v diff >/dev/null 2>&1; then diff -q "$1" "$2" >/dev/null else # Hopefully we're only working on small text files ... [ "$(cat "$1")" = "$(cat "$2")" ] fi } # Compare two files. # If different, replace first with second otherwise remove second. change_file() { if [ -e "$1" ]; then if comp_file "$1" "$2"; then rm -f "$2" return 1 fi fi cat "$2" > "$1" rm -f "$2" return 0 } # Compare two files. # If different, copy or link depending on target type copy_file() { if [ -h "$2" ]; then [ "$(readlink "$2")" = "$1" ] && return 1 ln -sf "$1" "$2" else comp_file "$1" "$2" && return 1 cat "$1" >"$2" fi } # Save a config file save_conf() { if [ -f "$1" ]; then rm -f "$1-pre.$interface" cat "$1" > "$1-pre.$interface" fi } # Restore a config file restore_conf() { [ -f "$1-pre.$interface" ] || return 1 cat "$1-pre.$interface" > "$1" rm -f "$1-pre.$interface" } # Write a syslog entry syslog() { lvl="$1" if [ "$lvl" = debug ]; then ${syslog_debug} || return 0 fi [ -n "$lvl" ] && shift [ -n "$*" ] || return 0 case "$lvl" in err|error) echo "$interface: $*" >&2;; *) echo "$interface: $*";; esac if command -v logger >/dev/null 2>&1; then logger -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*" fi } # Check for a valid name as per RFC952 and RFC1123 section 2.1 valid_domainname() { name="$1" [ -z "$name" ] || [ ${#name} -gt 255 ] && return 1 while [ -n "$name" ]; do label="${name%%.*}" [ -z "$label" ] || [ ${#label} -gt 63 ] && return 1 case "$label" in -*|_*|*-|*_) return 1;; *[![:alnum:]_-]*) return 1;; "$name") return 0;; esac name="${name#*.}" done return 0 } valid_domainname_list() { for name do valid_domainname "$name" || return $? done return 0 } # With the advent of alternative init systems, it's possible to have # more than one installed. So we need to try to guess what one we're # using unless overridden by configure. detect_init() { _service_exists="" _service_cmd="" _service_status="" [ -n "$_service_cmd" ] && return 0 if $_detected_init; then [ -n "$_service_cmd" ] return $? fi # Detect the running init system. # As systemd and OpenRC can be installed on top of legacy init # systems we try to detect them first. status="" : ${status:=status} if [ -x /bin/systemctl ] && [ -S /run/systemd/private ]; then _service_exists="/bin/systemctl --quiet is-enabled \$1.service" _service_status="/bin/systemctl --quiet is-active \$1.service" _service_cmd="/bin/systemctl \$2 --no-block \$1.service" elif [ -x /usr/bin/systemctl ] && [ -S /run/systemd/private ]; then _service_exists="/usr/bin/systemctl --quiet is-enabled \$1.service" _service_status="/usr/bin/systemctl --quiet is-active \$1.service" _service_cmd="/usr/bin/systemctl \$2 --no-block \$1.service" elif [ -x /sbin/rc-service ] && { [ -s /libexec/rc/init.d/softlevel ] || [ -s /run/openrc/softlevel ]; } then _service_exists="/sbin/rc-service -e \$1" _service_cmd="/sbin/rc-service \$1 -- -D \$2" elif [ -x /usr/sbin/invoke-rc.d ]; then _service_exists="/usr/sbin/invoke-rc.d --query --quiet \$1 start >/dev/null 2>&1 || [ \$? = 104 ]" _service_cmd="/usr/sbin/invoke-rc.d \$1 \$2" elif [ -x /sbin/service ]; then _service_exists="/sbin/service \$1 >/dev/null 2>&1" _service_cmd="/sbin/service \$1 \$2" elif [ -x /usr/sbin/service ]; then _service_exists="/usr/sbin/service \$1 $status >/dev/null 2>&1" _service_cmd="/usr/sbin/service \$1 \$2" elif [ -x /bin/sv ]; then _service_exists="/bin/sv status \$1 >/dev/null 2>&1" _service_cmd="/bin/sv \$2 \$1" elif [ -x /usr/bin/sv ]; then _service_exists="/usr/bin/sv status \$1 >/dev/null 2>&1" _service_cmd="/usr/bin/sv \$2 \$1" elif [ -e /etc/slackware-version ] && [ -d /etc/rc.d ]; then _service_exists="[ -x /etc/rc.d/rc.\$1 ]" _service_cmd="/etc/rc.d/rc.\$1 \$2" _service_status="/etc/rc.d/rc.\$1 status >/dev/null 2>&1" else for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do if [ -d $x ]; then _service_exists="[ -x $x/\$1 ]" _service_cmd="$x/\$1 \$2" _service_status="$x/\$1 $status >/dev/null 2>&1" break fi done if [ -e /etc/arch-release ]; then _service_status="[ -e /var/run/daemons/\$1 ]" elif [ "$x" = "/etc/rc.d" ] && [ -e /etc/rc.d/rc.subr ]; then _service_status="$x/\$1 check >/dev/null 2>&1" fi fi _detected_init=true if [ -z "$_service_cmd" ]; then syslog err "could not detect a useable init system" return 1 fi return 0 } # Check a system service exists service_exists() { if [ -z "$_service_exists" ]; then detect_init || return 1 fi eval $_service_exists } # Send a command to a system service service_cmd() { if [ -z "$_service_cmd" ]; then detect_init || return 1 fi eval $_service_cmd } # Send a command to a system service if it is running service_status() { if [ -z "$_service_cmd" ]; then detect_init || return 1 fi if [ -n "$_service_status" ]; then eval $_service_status else service_command $1 status >/dev/null 2>&1 fi } # Handy macros for our hooks service_command() { service_exists $1 && service_cmd $1 $2 } service_condcommand() { service_exists $1 && service_status $1 && service_cmd $1 $2 } # We source each script into this one so that scripts run earlier can # remove variables from the environment so later scripts don't see them. # Thus, the user can create their dhcpcd.enter/exit-hook script to configure # /etc/resolv.conf how they want and stop the system scripts ever updating it. for hook in \ /etc/dhcpcd.enter-hook \ /usr/lib/dhcpcd/dhcpcd-hooks/* \ /etc/dhcpcd.exit-hook do case "$hook" in */*~) continue;; esac for skip in $skip_hooks; do case "$hook" in */"$skip") continue 2;; */[0-9][0-9]"-$skip") continue 2;; */[0-9][0-9]"-$skip.sh") continue 2;; esac done if [ -f "$hook" ]; then . "$hook" fi done # Start, reconfigure and stop wpa_supplicant per wireless interface. # # This is only needed when using wpa_supplicant-2.5 or older, OR # when wpa_supplicant has not been built with CONFIG_MATCH_IFACE, OR # wpa_supplicant was launched without the -M flag to activate # interface matching. if [ -z "$wpa_supplicant_conf" ]; then for x in \ /etc/wpa_supplicant/wpa_supplicant-"$interface".conf \ /etc/wpa_supplicant/wpa_supplicant.conf \ /etc/wpa_supplicant-"$interface".conf \ /etc/wpa_supplicant.conf \ ; do if [ -s "$x" ]; then wpa_supplicant_conf="$x" break fi done fi : ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf} wpa_supplicant_ctrldir() { dir=$(key_get_value "[[:space:]]*ctrl_interface=" \ "$wpa_supplicant_conf") dir=$(trim "$dir") case "$dir" in DIR=*) dir=${dir##DIR=} dir=${dir%%[[:space:]]GROUP=*} dir=$(trim "$dir") ;; esac printf %s "$dir" } wpa_supplicant_start() { # If the carrier is up, don't bother checking anything [ "$ifcarrier" = "up" ] && return 0 # Pre flight checks if [ ! -s "$wpa_supplicant_conf" ]; then syslog warn \ "$wpa_supplicant_conf does not exist" syslog warn "not interacting with wpa_supplicant(8)" return 1 fi dir=$(wpa_supplicant_ctrldir) if [ -z "$dir" ]; then syslog warn \ "ctrl_interface not defined in $wpa_supplicant_conf" syslog warn "not interacting with wpa_supplicant(8)" return 1 fi wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1 && return 0 syslog info "starting wpa_supplicant" driver=${wpa_supplicant_driver:+-D}$wpa_supplicant_driver err=$(wpa_supplicant -B -c"$wpa_supplicant_conf" -i"$interface" \ "$driver" 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to start wpa_supplicant" syslog err "$err" fi return $errn } wpa_supplicant_reconfigure() { dir=$(wpa_supplicant_ctrldir) [ -z "$dir" ] && return 1 if ! wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1; then wpa_supplicant_start return $? fi syslog info "reconfiguring wpa_supplicant" err=$(wpa_cli -p "$dir" -i "$interface" reconfigure 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to reconfigure wpa_supplicant" syslog err "$err" fi return $errn } wpa_supplicant_stop() { dir=$(wpa_supplicant_ctrldir) [ -z "$dir" ] && return 1 wpa_cli -p "$dir" -i "$interface" status >/dev/null 2>&1 || return 0 syslog info "stopping wpa_supplicant" err=$(wpa_cli -i"$interface" terminate 2>&1) errn=$? if [ $errn != 0 ]; then syslog err "failed to stop wpa_supplicant" syslog err "$err" fi return $errn } if [ "$ifwireless" = "1" ] && \ command -v wpa_supplicant >/dev/null 2>&1 && \ command -v wpa_cli >/dev/null 2>&1 then case "$reason" in PREINIT) wpa_supplicant_start;; RECONFIGURE) wpa_supplicant_reconfigure;; DEPARTED|STOPPED) wpa_supplicant_stop;; esac fi # Configure timezone : ${localtime:=/etc/localtime} set_zoneinfo() { [ -z "$new_tzdb_timezone" ] && return 0 zoneinfo_dir= for d in \ /usr/share/zoneinfo \ /usr/lib/zoneinfo \ /var/share/zoneinfo \ /var/zoneinfo \ ; do if [ -d "$d" ]; then zoneinfo_dir="$d" break fi done if [ -z "$zoneinfo_dir" ]; then syslog warning "timezone directory not found" return 1 fi zone_file="$zoneinfo_dir/$new_tzdb_timezone" if [ ! -e "$zone_file" ]; then syslog warning "no timezone definition for $new_tzdb_timezone" return 1 fi if copy_file "$zone_file" "$localtime"; then syslog info "timezone changed to $new_tzdb_timezone" fi } # For ease of use, map DHCP6 names onto our DHCP4 names case "$reason" in BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6) new_tzdb_timezone="$new_dhcp6_tzdb_timezone" ;; esac if $if_configured && $if_up; then set_zoneinfo fi # Lookup the hostname in DNS if not set lookup_hostname() { [ -z "$new_ip_address" ] && return 1 # Silly ISC programs love to send error text to stdout if command -v dig >/dev/null 2>&1; then h=$(dig +short -x $new_ip_address) if [ $? = 0 ]; then echo "$h" | sed 's/\.$//' return 0 fi elif command -v host >/dev/null 2>&1; then h=$(host $new_ip_address) if [ $? = 0 ]; then echo "$h" \ | sed 's/.* domain name pointer \(.*\)./\1/' return 0 fi elif command -v getent >/dev/null 2>&1; then h=$(getent hosts $new_ip_address) if [ $? = 0 ]; then echo "$h" | sed 's/[^ ]* *\([^ ]*\).*/\1/' return 0 fi fi return 1 } set_hostname() { if [ -z "${new_host_name}${new_fqdn_name}" ]; then export new_host_name="$(lookup_hostname)" fi } if $if_up; then set_hostname fi # Sample dhcpcd hook for ypbind # This script is only suitable for the Linux version. ypbind_pid() { [ -s /var/run/ypbind.pid ] && cat /var/run/ypbind.pid } make_yp_conf() { [ -z "${new_nis_domain}${new_nis_servers}" ] && return 0 cf=/etc/yp.conf."$ifname" rm -f "$cf" echo "$signature" > "$cf" prefix= if [ -n "$new_nis_domain" ]; then if ! valid_domainname "$new_nis_domain"; then syslog err "Invalid NIS domain name: $new_nis_domain" rm -f "$cf" return 1 fi domainname "$new_nis_domain" if [ -n "$new_nis_servers" ]; then prefix="domain $new_nis_domain server " else echo "domain $new_nis_domain broadcast" >> "$cf" fi else prefix="ypserver " fi for x in $new_nis_servers; do echo "$prefix$x" >> "$cf" done save_conf /etc/yp.conf cat "$cf" > /etc/yp.conf rm -f "$cf" pid="$(ypbind_pid)" if [ -n "$pid" ]; then kill -HUP "$pid" fi } restore_yp_conf() { [ -n "$old_nis_domain" ] && domainname "" restore_conf /etc/yp.conf || return 0 pid="$(ypbind_pid)" if [ -n "$pid" ]; then kill -HUP "$pid" fi } if $if_configured; then if $if_up; then make_yp_conf elif $if_down; then restore_yp_conf fi fi #!/sbin/openrc-run description="DHCP Client Daemon" command="/sbin/dhcpcd" command_args="-q -B ${command_args:-}" command_background="true" pidfile="/run/dhcpcd/pid" depend() { provide net need localmount use logger network after bootmisc modules before dns } start_pre() { checkpath -d /run/dhcpcd } # See doas.conf(5) and doas.d(5) for configuration details. # Configuration here may be overridden by /etc/doas.d/*.conf if files exist. # Uncomment to allow group "wheel" to become root. # permit persist :wheel # e2scrub configuration file # Uncomment to enable automatic periodic runs of e2scrub_all # (either via cron or via a systemd timer) # periodic_e2scrub=1 # e-mail destination used by e2scrub_fail when problems are found with # the file system. # recipient=root # e-mail sender used by e2scrub_fail when problems are found with # the file system. # sender=e2scrub@host.domain.name # Snapshots will be created to run fsck; the snapshot will be of this size. # snap_size_mb=256 # Set this to 1 to enable fstrim for everyone. # fstrim=0 # Arguments passed into e2fsck. # e2fsck_opts="-vtt" # Set this to 1 to have e2scrub_all scrub all LVs, not just the mounted ones. # scrub_all=0 [defaults] base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 [fs_types] ext3 = { features = has_journal } ext4 = { features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file } small = { blocksize = 1024 inode_ratio = 4096 } floppy = { blocksize = 1024 inode_ratio = 8192 } big = { inode_ratio = 32768 } huge = { inode_ratio = 65536 } news = { inode_ratio = 4096 } largefile = { inode_ratio = 1048576 blocksize = -1 } largefile4 = { inode_ratio = 4194304 blocksize = -1 } hurd = { blocksize = 4096 inode_size = 128 warn_y2038_dates = 0 } kernel/net/9p kernel/fs/9p kernel/drivers/block/aoe/*.ko* kernel/drivers/ata/*.ko* /bin/busybox /bin/sh /sbin/modprobe /lib/mdev /sbin/apk /etc/modprobe.d/*.conf /etc/mdev.conf /sbin/nlplug-findfs kernel/drivers/block/loop.ko* kernel/drivers/gpu/drm/tiny/simpledrm.ko* kernel/fs/overlayfs 8( ,friendlyarm,nanopi-r2s-plusrockchip,rk3328 +7FriendlyElec NanoPi R2S Plusaliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/usb@ff600000/device@2/mmc@ff500000/mmc@ff520000cpus+cpu@0cpuarm,cortex-a53xpsci@0=J@\iz cpu@1cpuarm,cortex-a53xpsci@0=J@\iz cpu@2cpuarm,cortex-a53xpsci@0=J@\iz cpu@3cpuarm,cortex-a53xpsci@0=J@\iz idle-statespscicpu-sleeparm,idle-statexl2-cachecache @2opp-table-0operating-points-v2opp-408000000Q ~.@?opp-600000000#F ~.@opp-8160000000, B@.@opp-1008000000< .@opp-1200000000G (.@opp-1296000000M?d  .@analog-soundsimple-audio-cardKi2sd~Analog disabledsimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem  disabledhdmi-soundsimple-audio-cardKi2sd~HDMI disabledsimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24mEi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk   txrx disabledi2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclk txrx disabledi2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclk txrx disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk  tx&default4 disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclk rx&defaultsleep4> disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd:io-domains"rockchip,rk3328-io-voltage-domainokayHUcqgpiorockchip,rk3328-grf-gpiopower-controller!rockchip,rk3328-power-controller+<power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB  RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclk txrx&default 4 !"# disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclk txrx&default 4#$%# disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclk txrx&default4&#okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclk&default4' disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclk&default4(okaypmic@18rockchip,rk805 )xin32krk805-clkout24*&default-N\+h+t+++regulatorsDCDC_REG1vdd_log 4  0regulator-state-mem6B@DCDC_REG2vdd_arm 4  0regulator-state-mem6~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4 vcc_io_332Z2Zregulator-state-mem62ZLDO_REG1vcc_18w@w@regulator-state-mem6w@LDO_REG2 vcc18_emmcw@w@regulator-state-mem6w@LDO_REG3vdd_10B@B@regulator-state-mem6B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclk&default4, disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclk&default4- disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk  txrx&default4./01 disabledwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclk&default42R disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclk&default43R disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclk&default44Rokaypwm@ff1b0030rockchip,rk3328-pwm0< pwmpclk&default45R disableddma-controller@ff1f0000arm,pl330arm,primecell@] apb_pclktthermal-zonessoc-thermal6tripstrip-point0ppassivetrip-point1Lpassive7soc-crits criticalcooling-mapsmap070 tsadc@ff250000rockchip,rk3328-tsadc% :$ P$tsadcapb_pclk&initdefaultsleep48>9"8,B 3tsadc-apb?:Lcokayy6efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuse id@7cpu-leakage@17logic-leakage@19cpu-version@1aFadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk,V 3saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore,fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk;<iommu@ff350800rockchip,iommu5@  F aclkiface<;video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB  ׄׄ=<iommu@ff360480rockchip,iommu 6@6@ JB aclkiface<=vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop, 3axiahbdclk> disabledport+ endpoint@0?Diommu@ff373f00rockchip,iommu7?  ; aclkiface disabled>hdmi@ff3c0000rockchip,rk3328-dw-hdmi< #Fiahbisfrcec@hdmi&default 4ABC?: disabledports+port@0endpointD?port@1codec@ff410000rockchip,rk3328-codecA* pclkmclk?: disabledphy@ff430000rockchip,rk3328-hdmi-phyC SEysysclkrefoclkrefpclk hdmi_phy'F 3cpu-versionD disabled@clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconD?:Ox=&'(ABDC"\5H4$\zEEE| n6n6n6ׄn6#FLGрxhxhрxhxhsyscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyEphyclk usb480m_phy{\GokayGotg-portD$;<=otg-bvalidotg-idlinestateokayWhost-portD > linestateokayXmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-samples~р,m3resetokay4HIJK&defaultLmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-samples~р,n3reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-samples~р,o3resetokay!&default 4MNOethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac,c 3stmmaceth?:/=Kokaydf\PPVinputcQnrgmiiw4R&default$mdiosnps,dwmac-mdio+ethernet-phy@14S&default'P )Qethernet@ff550000rockchip,rk3328-gmacU?: macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy,b 3stmmacethnrmiicT/=KVoutput disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V,d&default4UVTusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motghost @ W usb2-phyokayusb@ff5c0000 generic-ehci\  NGXusbokayusb@ff5d0000 generic-ohci]  NGXusbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-samples~р,h3reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost utmi_wide  ? W y  okay+device@2 usbbda,8153interrupt-controller@ff811000 arm,gic-400  @ @ `   crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk,D 3crypto-rstpinctrlrockchip,rk3328-pinctrl?:+ gpio@ff210000rockchip,gpio-bank! 3  egpio@ff220000rockchip,gpio-bank" 4  )gpio@ff230000rockchip,gpio-bank# 5  igpio@ff240000rockchip,gpio-bank$ 6  pcfg-pull-up [pcfg-pull-down cpcfg-pull-none Ypcfg-pull-none-2ma  "bpcfg-pull-up-2ma  "pcfg-pull-up-4ma  "\pcfg-pull-none-4ma  "_pcfg-pull-down-4ma  "pcfg-pull-none-8ma  "]pcfg-pull-up-8ma  "^pcfg-pull-none-12ma  " `pcfg-pull-up-12ma  " apcfg-output-high 1pcfg-output-low =pcfg-input-high  HZpcfg-input Hi2c0i2c0-xfer UYY'i2c1i2c1-xfer UYY(i2c2i2c2-xfer U YY,i2c3i2c3-xfer UYY-i2c3-pins UYYhdmi_i2chdmii2c-xfer UYYBpdm-0pdmm0-clk UYpdmm0-fsync UYpdmm0-sdi0 UYpdmm0-sdi1 UYpdmm0-sdi2 UYpdmm0-sdi3 UYpdmm0-clk-sleep UZpdmm0-sdi0-sleep UZpdmm0-sdi1-sleep UZpdmm0-sdi2-sleep UZpdmm0-sdi3-sleep UZpdmm0-fsync-sleep UZtsadcotp-pin U Y8otp-out U Y9uart0uart0-xfer U Y[ uart0-cts U Y!uart0-rts U Y"uart0-rts-pin U Yuart1uart1-xfer UY[#uart1-cts UY$uart1-rts UY%uart1-rts-pin UYuart2-0uart2m0-xfer UY[uart2-1uart2m1-xfer UY[&spi0-0spi0m0-clk U[spi0m0-cs0 U [spi0m0-tx U [spi0m0-rx U [spi0m0-cs1 U [spi0-1spi0m1-clk U[spi0m1-cs0 U[spi0m1-tx U[spi0m1-rx U[spi0m1-cs1 U[spi0-2spi0m2-clk U[.spi0m2-cs0 U[1spi0m2-tx U[/spi0m2-rx U[0i2s1i2s1-mclk UYi2s1-sclk UYi2s1-lrckrx UYi2s1-lrcktx UYi2s1-sdi UYi2s1-sdo UYi2s1-sdio1 UYi2s1-sdio2 UYi2s1-sdio3 UYi2s1-sleep UZZZZZZZZZi2s2-0i2s2m0-mclk UYi2s2m0-sclk UYi2s2m0-lrckrx UYi2s2m0-lrcktx UYi2s2m0-sdi UYi2s2m0-sdo UYi2s2m0-sleep` UZZZZZZi2s2-1i2s2m1-mclk UYi2s2m1-sclk UYi2sm1-lrckrx UYi2s2m1-lrcktx UYi2s2m1-sdi UYi2s2m1-sdo UYi2s2m1-sleepP UZZZZZspdif-0spdifm0-tx UYspdif-1spdifm1-tx UYspdif-2spdifm2-tx UYsdmmc0-0sdmmc0m0-pwren U\sdmmc0m0-pin U\sdmmc0-1sdmmc0m1-pwren U\sdmmc0m1-pin U\ksdmmc0sdmmc0-clk U]Hsdmmc0-cmd U^Isdmmc0-dectn U\Jsdmmc0-wrprt U\sdmmc0-bus1 U^sdmmc0-bus4@ U^^^^Ksdmmc0-pins U\\\\\\\\sdmmc0extsdmmc0ext-clk U_sdmmc0ext-cmd U\sdmmc0ext-wrprt U\sdmmc0ext-dectn U\sdmmc0ext-bus1 U\sdmmc0ext-bus4@ U\\\\sdmmc0ext-pins U\\\\\\\\sdmmc1sdmmc1-clk U ]sdmmc1-cmd U ^sdmmc1-pwren U^sdmmc1-wrprt U^sdmmc1-dectn U^sdmmc1-bus1 U^sdmmc1-bus4@ U^^^^sdmmc1-pins U \ \\\\\\\\emmcemmc-clk U`Memmc-cmd UaNemmc-pwren UYemmc-rstnout UYemmc-bus1 Uaemmc-bus4@ Uaaaaemmc-bus8 UaaaaaaaaOpwm0pwm0-pin UY2pwm1pwm1-pin UY3pwm2pwm2-pin UY4pwmirpwmir-pin UY5gmac-1rgmiim1-pins` U ] __]___ _ _] ]__]]] ]_]]]]Rrmiim1-pins Ub`bbbb b b` ` Y YYYYYgmac2phyfephyled-speed10 UYfephyled-duplex UYfephyled-rxm1 UYUfephyled-txm1 UYfephyled-linkm1 UYVtsadc_pintsadc-int U Ytsadc-pin U Yhdmi_pinhdmi-cec UYAhdmi-hpd UcCcif-0dvp-d2d9-m0 UYYYYY Y Y YYYYYcif-1dvp-d2d9-m1 UYYYYYYYYYYYYbuttonreset-button-pin UYdgmac2ioeth-phy-reset-pin UcSledslan-led-pin UYfsys-led-pin UYgwan-led-pin UYhlanlan-vdd-pin UYlpmicpmic-int-l U[*sdsdio-vcc-pin U[jchosen cserial2:1500000n8gmac-clock fixed-clocksY@ gmac_clkinPkeys gpio-keys4d&defaultkey-reset oreset e u 2leds gpio-leds 4fgh&defaultled-0 i onanopi-r2s:green:lanled-1 e onanopi-r2s:red:sys onled-2 i onanopi-r2s:green:wansdmmcio-regulatorregulator-gpio  )4j&default vcc_io_sdiow@2Z  voltage w@2Z sdmmc-regulatorregulator-fixed e4k&defaultvcc_sd2Z2Z Lvdd-5vregulator-fixedvdd_5vLK@LK@+vdd-5v-lanregulator-fixed  i4l&default vdd_5v_lan + compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0ethernet1mmc0mmc1device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1pmuio-supplyvccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthmax-frequencybus-widthcap-sd-highspeeddisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplycap-mmc-highspeedmmc-hs200-1_8vnon-removabletx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-handlephy-modephy-supplyrx_delaysnps,aaltx_delayreset-assert-usreset-deassert-usreset-gpiosphy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathlabellinux,codedebounce-intervaldefault-stateenable-active-highregulator-settling-time-usregulator-typestartup-delay-usvin-supplygpio 8P( 'friendlyarm,nanopi-r2srockchip,rk3328 +7FriendlyElec NanoPi R2Saliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/usb@ff600000/device@2/mmc@ff500000cpus+cpu@0cpuarm,cortex-a53xpsci @+8E@Wdu cpu@1cpuarm,cortex-a53xpsci @+8E@Wdu cpu@2cpuarm,cortex-a53xpsci @+8E@Wdu cpu@3cpuarm,cortex-a53xpsci @+8E@Wdu idle-statespscicpu-sleeparm,idle-statexl2-cachecache@-opp-table-0operating-points-v2 opp-408000000Q~)@:opp-600000000#F~)@opp-8160000000,B@)@opp-1008000000<)@opp-1200000000G()@opp-1296000000M?d )@analog-soundsimple-audio-cardFi2s_yAnalog disabledsimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem  disabledhdmi-soundsimple-audio-cardFi2s_yHDMI disabledsimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24mEi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx disabledi2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx disabledi2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk tx!default/ disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrx!defaultsleep/9 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd:io-domains"rockchip,rk3328-io-voltage-domainokayCP^lzgpiorockchip,rk3328-grf-gpiopower-controller!rockchip,rk3328-power-controller+<power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrx!default / !" disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrx!default /#$% disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrx!default/&okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclk!default/' disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclk!default/(okaypmic@18rockchip,rk805 )xin32krk805-clkout2/*!default(IW+c+o+{++regulatorsDCDC_REG1vdd_log 4 0regulator-state-mem1B@DCDC_REG2vdd_arm 4 0regulator-state-mem1~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4 vcc_io_332Z2Zregulator-state-mem12ZLDO_REG1vcc_18w@w@regulator-state-mem1w@LDO_REG2 vcc18_emmcw@w@regulator-state-mem1w@LDO_REG3vdd_10B@B@regulator-state-mem1B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclk!default/, disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclk!default/- disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrx!default/./01 disabledwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclk!default/2M disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclk!default/3M disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclk!default/4Mokaypwm@ff1b0030rockchip,rk3328-pwm0< pwmpclk!default/5M disableddma-controller@ff1f0000arm,pl330arm,primecell@X apb_pclkothermal-zonessoc-thermalz6tripstrip-point0ppassivetrip-point1Lpassive7soc-crits criticalcooling-mapsmap070 tsadc@ff250000rockchip,rk3328-tsadc% :$P$tsadcapb_pclk!initdefaultsleep/8998'B .tsadc-apb::G^okayt6efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuse id@7cpu-leakage@17logic-leakage@19cpu-version@1aFadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk'V .saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore'fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk;<iommu@ff350800rockchip,iommu5@  F aclkiface<;video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB ׄׄ=<iommu@ff360480rockchip,iommu 6@6@ JB aclkiface<=vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop' .axiahbdclk> disabledport+ endpoint@0?Diommu@ff373f00rockchip,iommu7?  ; aclkiface disabled>hdmi@ff3c0000rockchip,rk3328-dw-hdmi< #Fiahbisfrcec@hdmi!default /ABC:: disabledports+port@0endpointD?port@1codec@ff410000rockchip,rk3328-codecA* pclkmclk:: disabledphy@ff430000rockchip,rk3328-hdmi-phyC SEysysclkrefoclkrefpclk hdmi_phy"F .cpu-version? disabled@clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconD::Jx=&'(ABDC"\5H4$WzEEE|n6n6n6ׄn6#FLGрxhxhрxhxhsyscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyEphyclk usb480m_phy{WGokayGotg-port?$;<=otg-bvalidotg-idlinestateokayThost-port? > linestateokayUmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-samplenyр'm.resetokay/HIJK!defaultLmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-samplenyр'n.reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-samplenyр'o.reset disabledethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac'c .stmmaceth:: okaydfWMM"input/N:rgmiiC/O!defaultNW`$mdiosnps,dwmac-mdio+ethernet-phy@1/P!defaulti'yP )Nethernet@ff550000rockchip,rk3328-gmacU:: macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy'b .stmmaceth:rmii/Q "output disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V'd!default/RSQusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motghost@ T usb2-phyokayusb@ff5c0000 generic-ehci\  NGUusbokayusb@ff5d0000 generic-ohci]  NGUusbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-samplenyр'h.reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost utmi_wide  # E f okay+device@2 usbbda,8153interrupt-controller@ff811000 arm,gic-400  @ @ `   crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk'D .crypto-rstpinctrlrockchip,rk3328-pinctrl::+ gpio@ff210000rockchip,gpio-bank! 3  bgpio@ff220000rockchip,gpio-bank" 4  )gpio@ff230000rockchip,gpio-bank# 5  fgpio@ff240000rockchip,gpio-bank$ 6  pcfg-pull-up Xpcfg-pull-down `pcfg-pull-none Vpcfg-pull-none-2ma  _pcfg-pull-up-2ma  pcfg-pull-up-4ma  Ypcfg-pull-none-4ma  \pcfg-pull-down-4ma  pcfg-pull-none-8ma  Zpcfg-pull-up-8ma  [pcfg-pull-none-12ma  ]pcfg-pull-up-12ma  ^pcfg-output-high pcfg-output-low pcfg-input-high  Wpcfg-input i2c0i2c0-xfer !VV'i2c1i2c1-xfer !VV(i2c2i2c2-xfer ! VV,i2c3i2c3-xfer !VV-i2c3-pins !VVhdmi_i2chdmii2c-xfer !VVBpdm-0pdmm0-clk !Vpdmm0-fsync !Vpdmm0-sdi0 !Vpdmm0-sdi1 !Vpdmm0-sdi2 !Vpdmm0-sdi3 !Vpdmm0-clk-sleep !Wpdmm0-sdi0-sleep !Wpdmm0-sdi1-sleep !Wpdmm0-sdi2-sleep !Wpdmm0-sdi3-sleep !Wpdmm0-fsync-sleep !Wtsadcotp-pin ! V8otp-out ! V9uart0uart0-xfer ! VX uart0-cts ! V!uart0-rts ! V"uart0-rts-pin ! Vuart1uart1-xfer !VX#uart1-cts !V$uart1-rts !V%uart1-rts-pin !Vuart2-0uart2m0-xfer !VXuart2-1uart2m1-xfer !VX&spi0-0spi0m0-clk !Xspi0m0-cs0 ! Xspi0m0-tx ! Xspi0m0-rx ! Xspi0m0-cs1 ! Xspi0-1spi0m1-clk !Xspi0m1-cs0 !Xspi0m1-tx !Xspi0m1-rx !Xspi0m1-cs1 !Xspi0-2spi0m2-clk !X.spi0m2-cs0 !X1spi0m2-tx !X/spi0m2-rx !X0i2s1i2s1-mclk !Vi2s1-sclk !Vi2s1-lrckrx !Vi2s1-lrcktx !Vi2s1-sdi !Vi2s1-sdo !Vi2s1-sdio1 !Vi2s1-sdio2 !Vi2s1-sdio3 !Vi2s1-sleep !WWWWWWWWWi2s2-0i2s2m0-mclk !Vi2s2m0-sclk !Vi2s2m0-lrckrx !Vi2s2m0-lrcktx !Vi2s2m0-sdi !Vi2s2m0-sdo !Vi2s2m0-sleep` !WWWWWWi2s2-1i2s2m1-mclk !Vi2s2m1-sclk !Vi2sm1-lrckrx !Vi2s2m1-lrcktx !Vi2s2m1-sdi !Vi2s2m1-sdo !Vi2s2m1-sleepP !WWWWWspdif-0spdifm0-tx !Vspdif-1spdifm1-tx !Vspdif-2spdifm2-tx !Vsdmmc0-0sdmmc0m0-pwren !Ysdmmc0m0-pin !Ysdmmc0-1sdmmc0m1-pwren !Ysdmmc0m1-pin !Yhsdmmc0sdmmc0-clk !ZHsdmmc0-cmd ![Isdmmc0-dectn !YJsdmmc0-wrprt !Ysdmmc0-bus1 ![sdmmc0-bus4@ ![[[[Ksdmmc0-pins !YYYYYYYYsdmmc0extsdmmc0ext-clk !\sdmmc0ext-cmd !Ysdmmc0ext-wrprt !Ysdmmc0ext-dectn !Ysdmmc0ext-bus1 !Ysdmmc0ext-bus4@ !YYYYsdmmc0ext-pins !YYYYYYYYsdmmc1sdmmc1-clk ! Zsdmmc1-cmd ! [sdmmc1-pwren ![sdmmc1-wrprt ![sdmmc1-dectn ![sdmmc1-bus1 ![sdmmc1-bus4@ ![[[[sdmmc1-pins ! Y YYYYYYYYemmcemmc-clk !]emmc-cmd !^emmc-pwren !Vemmc-rstnout !Vemmc-bus1 !^emmc-bus4@ !^^^^emmc-bus8 !^^^^^^^^pwm0pwm0-pin !V2pwm1pwm1-pin !V3pwm2pwm2-pin !V4pwmirpwmir-pin !V5gmac-1rgmiim1-pins` ! Z \\Z\\\ \ \Z Z\\ZZZ Z\ZZZZOrmiim1-pins !_]____ _ _] ] V VVVVVgmac2phyfephyled-speed10 !Vfephyled-duplex !Vfephyled-rxm1 !VRfephyled-txm1 !Vfephyled-linkm1 !VStsadc_pintsadc-int ! Vtsadc-pin ! Vhdmi_pinhdmi-cec !VAhdmi-hpd !`Ccif-0dvp-d2d9-m0 !VVVVV V V VVVVVcif-1dvp-d2d9-m1 !VVVVVVVVVVVVbuttonreset-button-pin !Vagmac2ioeth-phy-reset-pin !`Pledslan-led-pin !Vcsys-led-pin !Vdwan-led-pin !Velanlan-vdd-pin !Vipmicpmic-int-l !X*sdsdio-vcc-pin !Xgchosen /serial2:1500000n8gmac-clock fixed-clocksY@ gmac_clkinMkeys gpio-keys/a!defaultkey-reset ;reset b A L2leds gpio-leds /cde!defaultled-0 f ;nanopi-r2s:green:lanled-1 b ;nanopi-r2s:red:sys ^onled-2 f ;nanopi-r2s:green:wansdmmcio-regulatorregulator-gpio l )/g!default vcc_io_sdiow@2Z  voltage w@2Z sdmmc-regulatorregulator-fixed b/h!defaultvcc_sd2Z2Z Lvdd-5vregulator-fixedvdd_5vLK@LK@+vdd-5v-lanregulator-fixed l f/i!default vdd_5v_lan + compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0ethernet1mmc0device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1pmuio-supplyvccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthmax-frequencybus-widthcap-sd-highspeeddisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplytx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-handlephy-modephy-supplyrx_delaysnps,aaltx_delayreset-assert-usreset-deassert-usreset-gpiosphy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathlabellinux,codedebounce-intervaldefault-stateenable-active-highregulator-settling-time-usregulator-typestartup-delay-usvin-supplygpio "8H( -xunlong,orangepi-r1-plus-ltsrockchip,rk3328 +7Xunlong Orange Pi R1 Plus LTSaliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/usb@ff600000/device@2/mmc@ff500000cpus+cpu@0cpuarm,cortex-a53xpsci @+8E@Wdu cpu@1cpuarm,cortex-a53xpsci @+8E@Wdu cpu@2cpuarm,cortex-a53xpsci @+8E@Wdu cpu@3cpuarm,cortex-a53xpsci @+8E@Wdu idle-statespscicpu-sleeparm,idle-statexl2-cachecache@-opp-table-0operating-points-v2 opp-408000000Q~)@:opp-600000000#F~)@opp-8160000000,B@)@opp-1008000000<)@opp-1200000000G()@opp-1296000000M?d )@analog-soundsimple-audio-cardFi2s_yAnalog disabledsimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem  disabledhdmi-soundsimple-audio-cardFi2s_yHDMI disabledsimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24mCi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx disabledi2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx disabledi2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk tx!default/ disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrx!defaultsleep/9 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd8io-domains"rockchip,rk3328-io-voltage-domainokayCP^lzgpiorockchip,rk3328-grf-gpiopower-controller!rockchip,rk3328-power-controller+:power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrx!default /  disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrx!default /!"# disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrx!default/$okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclk!default/% disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclk!default/&okaypmic@18rockchip,rk805 'xin32krk805-clkout2/(!default(IW)c)o){))regulatorsDCDC_REG1vdd_log 4 0regulator-state-mem1B@DCDC_REG2vdd_arm 4 0regulator-state-mem1~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Zregulator-state-mem12ZLDO_REG1vcc_18w@w@regulator-state-mem1w@LDO_REG2 vcc18_emmcw@w@regulator-state-mem1w@LDO_REG3vdd_10B@B@regulator-state-mem1B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclk!default/* disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclk!default/+ disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrx!default/,-./okayflash@0jedec,spi-norMwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclk!default/0_ disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclk!default/1_ disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclk!default/2_okaypwm@ff1b0030rockchip,rk3328-pwm0< pwmpclk!default/3_ disableddma-controller@ff1f0000arm,pl330arm,primecell@j apb_pclkthermal-zonessoc-thermal4tripstrip-point0ppassivetrip-point1Lpassive5soc-crits criticalcooling-mapsmap050 tsadc@ff250000rockchip,rk3328-tsadc% : $P$tsadcapb_pclk!initdefaultsleep/697/69B @tsadc-apbL8Ypokay4efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuse id@7cpu-leakage@17logic-leakage@19cpu-version@1aDadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk9V @saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore9fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk9:iommu@ff350800rockchip,iommu5@  F aclkiface:9video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccore AB ׄׄ;:iommu@ff360480rockchip,iommu 6@6@ JB aclkiface:;vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop9 @axiahbdclk< disabledport+ endpoint@0=Biommu@ff373f00rockchip,iommu7?  ; aclkiface disabled<hdmi@ff3c0000rockchip,rk3328-dw-hdmi< #Fiahbisfrcec%>*hdmi!default /?@AL8 disabledports+port@0endpointB=port@1codec@ff410000rockchip,rk3328-codecA* pclkmclkL8 disabledphy@ff430000rockchip,rk3328-hdmi-phyC SCysysclkrefoclkrefpclk hdmi_phy4D @cpu-versionQ disabled>clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconDL8\ x=&'(ABDC"\5H4$izCCC|n6n6n6ׄn6#FLGрxhxhрxhxhsyscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyCphyclk usb480m_phy {iEokayEotg-portQ$;<=otg-bvalidotg-idlinestateokayRhost-portQ > linestateokaySmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sampleQр9m@resetokay/FGHI!defaultJmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sampleQр9n@reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sampleQр9o@reset disabledethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac9c @stmmacethL8okay dfiKKinputLrgmii/M!default"mdiosnps,dwmac-mdio+ethernet-phy@0ethernet-phy-ieee802.3-c22+IsY@h/N!default:P 'Lethernet@ff550000rockchip,rk3328-gmacUL8 macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy9b @stmmacethrmiiOoutput disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V9d!default/PQOusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motg host   )@ %R *usb2-phyokayusb@ff5c0000 generic-ehci\  NE%S*usbokayusb@ff5d0000 generic-ohci]  NE%S*usbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sampleQр9h@reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clk host 8utmi_wide A b z   okay+device@2 usbbda,8153interrupt-controller@ff811000 arm,gic-400  @ @ `   crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk9D @crypto-rstpinctrlrockchip,rk3328-pinctrlL8+ gpio@ff210000rockchip,gpio-bank! 3  dgpio@ff220000rockchip,gpio-bank" 4  'gpio@ff230000rockchip,gpio-bank# 5  bgpio@ff240000rockchip,gpio-bank$ 6  cpcfg-pull-up Vpcfg-pull-down )^pcfg-pull-none 8Tpcfg-pull-none-2ma 8 E]pcfg-pull-up-2ma  Epcfg-pull-up-4ma  EWpcfg-pull-none-4ma 8 EZpcfg-pull-down-4ma ) Epcfg-pull-none-8ma 8 EXpcfg-pull-up-8ma  EYpcfg-pull-none-12ma 8 E [pcfg-pull-up-12ma  E \pcfg-output-high Tpcfg-output-low `pcfg-input-high  kUpcfg-input ki2c0i2c0-xfer xTT%i2c1i2c1-xfer xTT&i2c2i2c2-xfer x TT*i2c3i2c3-xfer xTT+i2c3-pins xTThdmi_i2chdmii2c-xfer xTT@pdm-0pdmm0-clk xTpdmm0-fsync xTpdmm0-sdi0 xTpdmm0-sdi1 xTpdmm0-sdi2 xTpdmm0-sdi3 xTpdmm0-clk-sleep xUpdmm0-sdi0-sleep xUpdmm0-sdi1-sleep xUpdmm0-sdi2-sleep xUpdmm0-sdi3-sleep xUpdmm0-fsync-sleep xUtsadcotp-pin x T6otp-out x T7uart0uart0-xfer x TVuart0-cts x Tuart0-rts x T uart0-rts-pin x Tuart1uart1-xfer xTV!uart1-cts xT"uart1-rts xT#uart1-rts-pin xTuart2-0uart2m0-xfer xTVuart2-1uart2m1-xfer xTV$spi0-0spi0m0-clk xVspi0m0-cs0 x Vspi0m0-tx x Vspi0m0-rx x Vspi0m0-cs1 x Vspi0-1spi0m1-clk xVspi0m1-cs0 xVspi0m1-tx xVspi0m1-rx xVspi0m1-cs1 xVspi0-2spi0m2-clk xV,spi0m2-cs0 xV/spi0m2-tx xV-spi0m2-rx xV.i2s1i2s1-mclk xTi2s1-sclk xTi2s1-lrckrx xTi2s1-lrcktx xTi2s1-sdi xTi2s1-sdo xTi2s1-sdio1 xTi2s1-sdio2 xTi2s1-sdio3 xTi2s1-sleep xUUUUUUUUUi2s2-0i2s2m0-mclk xTi2s2m0-sclk xTi2s2m0-lrckrx xTi2s2m0-lrcktx xTi2s2m0-sdi xTi2s2m0-sdo xTi2s2m0-sleep` xUUUUUUi2s2-1i2s2m1-mclk xTi2s2m1-sclk xTi2sm1-lrckrx xTi2s2m1-lrcktx xTi2s2m1-sdi xTi2s2m1-sdo xTi2s2m1-sleepP xUUUUUspdif-0spdifm0-tx xTspdif-1spdifm1-tx xTspdif-2spdifm2-tx xTsdmmc0-0sdmmc0m0-pwren xWsdmmc0m0-pin xWsdmmc0-1sdmmc0m1-pwren xWsdmmc0m1-pin xWesdmmc0sdmmc0-clk xXFsdmmc0-cmd xYGsdmmc0-dectn xWHsdmmc0-wrprt xWsdmmc0-bus1 xYsdmmc0-bus4@ xYYYYIsdmmc0-pins xWWWWWWWWsdmmc0extsdmmc0ext-clk xZsdmmc0ext-cmd xWsdmmc0ext-wrprt xWsdmmc0ext-dectn xWsdmmc0ext-bus1 xWsdmmc0ext-bus4@ xWWWWsdmmc0ext-pins xWWWWWWWWsdmmc1sdmmc1-clk x Xsdmmc1-cmd x Ysdmmc1-pwren xYsdmmc1-wrprt xYsdmmc1-dectn xYsdmmc1-bus1 xYsdmmc1-bus4@ xYYYYsdmmc1-pins x W WWWWWWWWemmcemmc-clk x[emmc-cmd x\emmc-pwren xTemmc-rstnout xTemmc-bus1 x\emmc-bus4@ x\\\\emmc-bus8 x\\\\\\\\pwm0pwm0-pin xT0pwm1pwm1-pin xT1pwm2pwm2-pin xT2pwmirpwmir-pin xT3gmac-1rgmiim1-pins` x X ZZXZZZ Z ZX XZZXXX XZXXXXMrmiim1-pins x][]]]] ] ][ [ T TTTTTgmac2phyfephyled-speed10 xTfephyled-duplex xTfephyled-rxm1 xTPfephyled-txm1 xTfephyled-linkm1 xTQtsadc_pintsadc-int x Ttsadc-pin x Thdmi_pinhdmi-cec xT?hdmi-hpd x^Acif-0dvp-d2d9-m0 xTTTTT T T TTTTTcif-1dvp-d2d9-m1 xTTTTTTTTTTTTgmac2ioeth-phy-reset-pin x^Nledslan-led-pin xT_sys-led-pin xT`wan-led-pin xTalanlan-vdd-pin xTfpmicpmic-int-l xV(chosen serial2:1500000n8gmac-clock fixed-clocksY@ gmac_clkinKleds gpio-leds /_`a!defaultled-0 lan  bled-1 status  c heartbeatled-2 wan  bsdmmc-regulatorregulator-fixed d/e!defaultvcc_sd Jvcc-sys-regulatorregulator-fixedvcc_sysLK@LK@)vdd-5v-lan-regulatorregulator-fixed  b/f!default vdd_5v_lan ) compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0ethernet1mmc0device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1pmuio-supplyvccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvoltspi-max-frequency#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthbus-widthcap-sd-highspeeddisable-wpvmmc-supplytx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-handlephy-modephy-supplysnps,aalrx_delaytx_delaymotorcomm,auto-sleep-disabledmotorcomm,clk-out-frequency-hzmotorcomm,keep-pll-enabledmotorcomm,rx-clk-drv-microampmotorcomm,rx-data-drv-microampreset-assert-usreset-deassert-usreset-gpiosphy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathfunctioncolorlinux,default-triggergpiovin-supplyenable-active-high 8( E)xunlong,orangepi-r1-plusrockchip,rk3328 +7Xunlong Orange Pi R1 Plusaliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/usb@ff600000/device@2/mmc@ff500000cpus+cpu@0cpuarm,cortex-a53xpsci @+8E@Wdu cpu@1cpuarm,cortex-a53xpsci @+8E@Wdu cpu@2cpuarm,cortex-a53xpsci @+8E@Wdu cpu@3cpuarm,cortex-a53xpsci @+8E@Wdu idle-statespscicpu-sleeparm,idle-statexl2-cachecache@-opp-table-0operating-points-v2 opp-408000000Q~)@:opp-600000000#F~)@opp-8160000000,B@)@opp-1008000000<)@opp-1200000000G()@opp-1296000000M?d )@analog-soundsimple-audio-cardFi2s_yAnalog disabledsimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem  disabledhdmi-soundsimple-audio-cardFi2s_yHDMI disabledsimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24mCi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx disabledi2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx disabledi2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk tx!default/ disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrx!defaultsleep/9 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd8io-domains"rockchip,rk3328-io-voltage-domainokayCP^lzgpiorockchip,rk3328-grf-gpiopower-controller!rockchip,rk3328-power-controller+:power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrx!default /  disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrx!default /!"# disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrx!default/$okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclk!default/% disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclk!default/&okaypmic@18rockchip,rk805 'xin32krk805-clkout2/(!default(IW)c)o){))regulatorsDCDC_REG1vdd_log 4 0regulator-state-mem1B@DCDC_REG2vdd_arm 4 0regulator-state-mem1~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Zregulator-state-mem12ZLDO_REG1vcc_18w@w@regulator-state-mem1w@LDO_REG2 vcc18_emmcw@w@regulator-state-mem1w@LDO_REG3vdd_10B@B@regulator-state-mem1B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclk!default/* disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclk!default/+ disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrx!default/,-./okayflash@0jedec,spi-norMwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclk!default/0_ disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclk!default/1_ disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclk!default/2_okaypwm@ff1b0030rockchip,rk3328-pwm0< pwmpclk!default/3_ disableddma-controller@ff1f0000arm,pl330arm,primecell@j apb_pclkthermal-zonessoc-thermal4tripstrip-point0ppassivetrip-point1Lpassive5soc-crits criticalcooling-mapsmap050 tsadc@ff250000rockchip,rk3328-tsadc% : $P$tsadcapb_pclk!initdefaultsleep/697/69B @tsadc-apbL8Ypokay4efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuse id@7cpu-leakage@17logic-leakage@19cpu-version@1aDadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk9V @saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore9fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk9:iommu@ff350800rockchip,iommu5@  F aclkiface:9video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccore AB ׄׄ;:iommu@ff360480rockchip,iommu 6@6@ JB aclkiface:;vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop9 @axiahbdclk< disabledport+ endpoint@0=Biommu@ff373f00rockchip,iommu7?  ; aclkiface disabled<hdmi@ff3c0000rockchip,rk3328-dw-hdmi< #Fiahbisfrcec%>*hdmi!default /?@AL8 disabledports+port@0endpointB=port@1codec@ff410000rockchip,rk3328-codecA* pclkmclkL8 disabledphy@ff430000rockchip,rk3328-hdmi-phyC SCysysclkrefoclkrefpclk hdmi_phy4D @cpu-versionQ disabled>clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconDL8\ x=&'(ABDC"\5H4$izCCC|n6n6n6ׄn6#FLGрxhxhрxhxhsyscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyCphyclk usb480m_phy {iEokayEotg-portQ$;<=otg-bvalidotg-idlinestateokayRhost-portQ > linestateokaySmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sampleQр9m@resetokay/FGHI!defaultJmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sampleQр9n@reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sampleQр9o@reset disabledethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac9c @stmmacethL8okay dfiKKinputLrgmii/M!default"$mdiosnps,dwmac-mdio+ethernet-phy@1/N!default+';P M'Lethernet@ff550000rockchip,rk3328-gmacUL8 macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy9b @stmmacethrmiiOoutput disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V9d!default/PQYOusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motgkhosts@ %R *usb2-phyokayusb@ff5c0000 generic-ehci\  NE%S*usbokayusb@ff5d0000 generic-ohci]  NE%S*usbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sampleQр9h@reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkkhost utmi_wide  ( Aokay+device@2 usbbda,8153interrupt-controller@ff811000 arm,gic-400 Z k@ @ `   crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk9D @crypto-rstpinctrlrockchip,rk3328-pinctrlL8+ gpio@ff210000rockchip,gpio-bank! 3 k Zdgpio@ff220000rockchip,gpio-bank" 4 k Z'gpio@ff230000rockchip,gpio-bank# 5 k Zbgpio@ff240000rockchip,gpio-bank$ 6 k Zcpcfg-pull-up Vpcfg-pull-down ^pcfg-pull-none Tpcfg-pull-none-2ma  ]pcfg-pull-up-2ma  pcfg-pull-up-4ma  Wpcfg-pull-none-4ma  Zpcfg-pull-down-4ma  pcfg-pull-none-8ma  Xpcfg-pull-up-8ma  Ypcfg-pull-none-12ma  [pcfg-pull-up-12ma  \pcfg-output-high pcfg-output-low pcfg-input-high  Upcfg-input i2c0i2c0-xfer TT%i2c1i2c1-xfer TT&i2c2i2c2-xfer  TT*i2c3i2c3-xfer TT+i2c3-pins TThdmi_i2chdmii2c-xfer TT@pdm-0pdmm0-clk Tpdmm0-fsync Tpdmm0-sdi0 Tpdmm0-sdi1 Tpdmm0-sdi2 Tpdmm0-sdi3 Tpdmm0-clk-sleep Updmm0-sdi0-sleep Updmm0-sdi1-sleep Updmm0-sdi2-sleep Updmm0-sdi3-sleep Updmm0-fsync-sleep Utsadcotp-pin  T6otp-out  T7uart0uart0-xfer  TVuart0-cts  Tuart0-rts  T uart0-rts-pin  Tuart1uart1-xfer TV!uart1-cts T"uart1-rts T#uart1-rts-pin Tuart2-0uart2m0-xfer TVuart2-1uart2m1-xfer TV$spi0-0spi0m0-clk Vspi0m0-cs0  Vspi0m0-tx  Vspi0m0-rx  Vspi0m0-cs1  Vspi0-1spi0m1-clk Vspi0m1-cs0 Vspi0m1-tx Vspi0m1-rx Vspi0m1-cs1 Vspi0-2spi0m2-clk V,spi0m2-cs0 V/spi0m2-tx V-spi0m2-rx V.i2s1i2s1-mclk Ti2s1-sclk Ti2s1-lrckrx Ti2s1-lrcktx Ti2s1-sdi Ti2s1-sdo Ti2s1-sdio1 Ti2s1-sdio2 Ti2s1-sdio3 Ti2s1-sleep UUUUUUUUUi2s2-0i2s2m0-mclk Ti2s2m0-sclk Ti2s2m0-lrckrx Ti2s2m0-lrcktx Ti2s2m0-sdi Ti2s2m0-sdo Ti2s2m0-sleep` UUUUUUi2s2-1i2s2m1-mclk Ti2s2m1-sclk Ti2sm1-lrckrx Ti2s2m1-lrcktx Ti2s2m1-sdi Ti2s2m1-sdo Ti2s2m1-sleepP UUUUUspdif-0spdifm0-tx Tspdif-1spdifm1-tx Tspdif-2spdifm2-tx Tsdmmc0-0sdmmc0m0-pwren Wsdmmc0m0-pin Wsdmmc0-1sdmmc0m1-pwren Wsdmmc0m1-pin Wesdmmc0sdmmc0-clk XFsdmmc0-cmd YGsdmmc0-dectn WHsdmmc0-wrprt Wsdmmc0-bus1 Ysdmmc0-bus4@ YYYYIsdmmc0-pins WWWWWWWWsdmmc0extsdmmc0ext-clk Zsdmmc0ext-cmd Wsdmmc0ext-wrprt Wsdmmc0ext-dectn Wsdmmc0ext-bus1 Wsdmmc0ext-bus4@ WWWWsdmmc0ext-pins WWWWWWWWsdmmc1sdmmc1-clk  Xsdmmc1-cmd  Ysdmmc1-pwren Ysdmmc1-wrprt Ysdmmc1-dectn Ysdmmc1-bus1 Ysdmmc1-bus4@ YYYYsdmmc1-pins  W WWWWWWWWemmcemmc-clk [emmc-cmd \emmc-pwren Temmc-rstnout Temmc-bus1 \emmc-bus4@ \\\\emmc-bus8 \\\\\\\\pwm0pwm0-pin T0pwm1pwm1-pin T1pwm2pwm2-pin T2pwmirpwmir-pin T3gmac-1rgmiim1-pins`  X ZZXZZZ Z ZX XZZXXX XZXXXXMrmiim1-pins ][]]]] ] ][ [ T TTTTTgmac2phyfephyled-speed10 Tfephyled-duplex Tfephyled-rxm1 TPfephyled-txm1 Tfephyled-linkm1 TQtsadc_pintsadc-int  Ttsadc-pin  Thdmi_pinhdmi-cec T?hdmi-hpd ^Acif-0dvp-d2d9-m0 TTTTT T T TTTTTcif-1dvp-d2d9-m1 TTTTTTTTTTTTgmac2ioeth-phy-reset-pin ^Nledslan-led-pin T_sys-led-pin T`wan-led-pin Talanlan-vdd-pin Tfpmicpmic-int-l V(chosen serial2:1500000n8gmac-clock fixed-clocksY@ gmac_clkinKleds gpio-leds /_`a!defaultled-0 lan  Sbled-1 status  Sc heartbeatled-2 wan  Sbsdmmc-regulatorregulator-fixed "d/e!defaultvcc_sd 'Jvcc-sys-regulatorregulator-fixedvcc_sysLK@LK@)vdd-5v-lan-regulatorregulator-fixed 2 "b/f!default vdd_5v_lan ') compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0ethernet1mmc0device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1pmuio-supplyvccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvoltspi-max-frequency#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthbus-widthcap-sd-highspeeddisable-wpvmmc-supplytx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-handlephy-modephy-supplysnps,aalrx_delaytx_delayreset-assert-usreset-deassert-usreset-gpiosphy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathfunctioncolorlinux,default-triggergpiovin-supplyenable-active-high X8( &firefly,roc-rk3328-ccrockchip,rk3328 +7Firefly roc-rk3328-ccaliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/mmc@ff500000/mmc@ff520000cpus+cpu@0cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@1cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@2cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@3cpuarm,cortex-a53xpsci@&3@@R_p{ idle-statespscicpu-sleeparm,idle-statex{l2-cachecache @({opp-table-0operating-points-v2{opp-408000000Q~$@5opp-600000000#F~$@opp-8160000000,B@$@opp-1008000000<$@opp-1200000000G($@opp-1296000000M?d $@analog-soundsimple-audio-cardAi2sZtAnalogokaysimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem hdmi-soundsimple-audio-cardAi2sZtHDMIokaysimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24m{Ei2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx okay{i2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx okay{i2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx  disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk txdefault*  disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrxdefaultsleep*4 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd{:io-domains"rockchip,rk3328-io-voltage-domainokay>LZhvgpiorockchip,rk3328-grf-gpio{epower-controller!rockchip,rk3328-power-controller+{<power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrxdefault * !"  disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrxdefault *#$%  disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrxdefault*& okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclkdefault*' disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclkdefault*(okaypmic@18rockchip,rk805 )xin32krk805-clkout2default**#DR+^+j+v+{hregulatorsDCDC_REG1 vdd_logic 4 regulator-state-memB@DCDC_REG2vdd_arm 4 {regulator-state-mem~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Z{regulator-state-mem2ZLDO_REG1vcc_18w@w@{regulator-state-memw@LDO_REG2 vcc18_emmcw@w@{regulator-state-memw@LDO_REG3vdd_10B@B@regulator-state-memB@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclkdefault*, disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclkdefault*- disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrxdefault*./01 disabledwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclkdefault*23 disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclkdefault*33 disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclkdefault*43 disabledpwm@ff1b0030rockchip,rk3328-pwm0< pwmpclkdefault*53 disableddma-controller@ff1f0000arm,pl330arm,primecell@> apb_pclkU{thermal-zonessoc-thermal`v6tripstrip-point0ppassivetrip-point1Lpassive{7soc-crits criticalcooling-mapsmap070 tsadc@ff250000rockchip,rk3328-tsadc% :$P$tsadcapb_pclkinitdefaultsleep*8498 B tsadc-apb :-Dokay{6efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuseZ id@7cpu-leakage@17logic-leakage@19cpu-version@1an{Fadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( Ps%saradcapb_pclk V saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk;<iommu@ff350800rockchip,iommu5@  F aclkiface<{;video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB ׄׄ=<iommu@ff360480rockchip,iommu 6@6@ JB aclkiface<{=vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop  axiahbdclk>okayport+{ endpoint@0?{Diommu@ff373f00rockchip,iommu7?  ; aclkifaceokay{>hdmi@ff3c0000rockchip,rk3328-dw-hdmi<  #Fiahbisfrcec@hdmidefault *ABC : okay{ports+port@0endpointD{?port@1codec@ff410000rockchip,rk3328-codecA* pclkmclk : okay{phy@ff430000rockchip,rk3328-hdmi-phyC SEysysclkrefoclkrefpclk hdmi_phyF cpu-versionokay{@clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconD :x=&'(ABDC"\5H4$ zEEE|n6n6n6ׄn6#FLGрxhxhрxhxh{syscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyEphyclk usb480m_phy{ Gokay{Gotg-port$;<=otg-bvalidotg-idlinestateokay{Vhost-port > linestateokay{Wmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sample"-р mresetokay;EWhdefault*HIJKsLmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sample"-р nreset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sample"-р oresetokay;Edefault *MNOethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac c stmmaceth :okaydf PPinputQ*rgmiidefault*R3 <)L b'Pw$ethernet@ff550000rockchip,rk3328-gmacU : macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy b stmmaceth*rmiiSoutput disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V ddefault*TU{Susb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motghost@ V usb2-phyokayusb@ff5c0000 generic-ehci\  NGWusbokayusb@ff5d0000 generic-ohci]  NGWusbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sample"-р hreset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost utmi_wide  + M n okayinterrupt-controller@ff811000 arm,gic-400  @ @ `   {crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk D crypto-rstpinctrlrockchip,rk3328-pinctrl :+ gpio@ff210000rockchip,gpio-bank! 3  {cgpio@ff220000rockchip,gpio-bank" 4  {)gpio@ff230000rockchip,gpio-bank# 5  gpio@ff240000rockchip,gpio-bank$ 6  pcfg-pull-up {Zpcfg-pull-down {bpcfg-pull-none {Xpcfg-pull-none-2ma  {apcfg-pull-up-2ma  pcfg-pull-up-4ma  {[pcfg-pull-none-4ma  {^pcfg-pull-down-4ma  pcfg-pull-none-8ma  {\pcfg-pull-up-8ma  {]pcfg-pull-none-12ma  {_pcfg-pull-up-12ma  {`pcfg-output-high pcfg-output-low pcfg-input-high  {Ypcfg-input i2c0i2c0-xfer )XX{'i2c1i2c1-xfer )XX{(i2c2i2c2-xfer ) XX{,i2c3i2c3-xfer )XX{-i2c3-pins )XXhdmi_i2chdmii2c-xfer )XX{Bpdm-0pdmm0-clk )X{pdmm0-fsync )Xpdmm0-sdi0 )X{pdmm0-sdi1 )X{pdmm0-sdi2 )X{pdmm0-sdi3 )X{pdmm0-clk-sleep )Y{pdmm0-sdi0-sleep )Y{pdmm0-sdi1-sleep )Y{pdmm0-sdi2-sleep )Y{pdmm0-sdi3-sleep )Y{pdmm0-fsync-sleep )Ytsadcotp-pin ) X{8otp-out ) X{9uart0uart0-xfer ) XZ{ uart0-cts ) X{!uart0-rts ) X{"uart0-rts-pin ) Xuart1uart1-xfer )XZ{#uart1-cts )X{$uart1-rts )X{%uart1-rts-pin )Xuart2-0uart2m0-xfer )XZuart2-1uart2m1-xfer )XZ{&spi0-0spi0m0-clk )Zspi0m0-cs0 ) Zspi0m0-tx ) Zspi0m0-rx ) Zspi0m0-cs1 ) Zspi0-1spi0m1-clk )Zspi0m1-cs0 )Zspi0m1-tx )Zspi0m1-rx )Zspi0m1-cs1 )Zspi0-2spi0m2-clk )Z{.spi0m2-cs0 )Z{1spi0m2-tx )Z{/spi0m2-rx )Z{0i2s1i2s1-mclk )Xi2s1-sclk )Xi2s1-lrckrx )Xi2s1-lrcktx )Xi2s1-sdi )Xi2s1-sdo )Xi2s1-sdio1 )Xi2s1-sdio2 )Xi2s1-sdio3 )Xi2s1-sleep )YYYYYYYYYi2s2-0i2s2m0-mclk )Xi2s2m0-sclk )Xi2s2m0-lrckrx )Xi2s2m0-lrcktx )Xi2s2m0-sdi )Xi2s2m0-sdo )Xi2s2m0-sleep` )YYYYYYi2s2-1i2s2m1-mclk )Xi2s2m1-sclk )Xi2sm1-lrckrx )Xi2s2m1-lrcktx )Xi2s2m1-sdi )Xi2s2m1-sdo )Xi2s2m1-sleepP )YYYYYspdif-0spdifm0-tx )Xspdif-1spdifm1-tx )Xspdif-2spdifm2-tx )X{sdmmc0-0sdmmc0m0-pwren )[sdmmc0m0-pin )[sdmmc0-1sdmmc0m1-pwren )[sdmmc0m1-pin )[{dsdmmc0sdmmc0-clk )\{Hsdmmc0-cmd )]{Isdmmc0-dectn )[{Jsdmmc0-wrprt )[sdmmc0-bus1 )]sdmmc0-bus4@ )]]]]{Ksdmmc0-pins )[[[[[[[[sdmmc0extsdmmc0ext-clk )^sdmmc0ext-cmd )[sdmmc0ext-wrprt )[sdmmc0ext-dectn )[sdmmc0ext-bus1 )[sdmmc0ext-bus4@ )[[[[sdmmc0ext-pins )[[[[[[[[sdmmc1sdmmc1-clk ) \sdmmc1-cmd ) ]sdmmc1-pwren )]sdmmc1-wrprt )]sdmmc1-dectn )]sdmmc1-bus1 )]sdmmc1-bus4@ )]]]]sdmmc1-pins ) [ [[[[[[[[emmcemmc-clk )_{Memmc-cmd )`{Nemmc-pwren )Xemmc-rstnout )Xemmc-bus1 )`emmc-bus4@ )````emmc-bus8 )````````{Opwm0pwm0-pin )X{2pwm1pwm1-pin )X{3pwm2pwm2-pin )X{4pwmirpwmir-pin )X{5gmac-1rgmiim1-pins` ) \ ^^\^^^ ^ ^\ \^^\\\ \^\\\\{Rrmiim1-pins )a_aaaa a a_ _ X XXXXXgmac2phyfephyled-speed10 )Xfephyled-duplex )Xfephyled-rxm1 )X{Tfephyled-txm1 )Xfephyled-linkm1 )X{Utsadc_pintsadc-int ) Xtsadc-pin ) Xhdmi_pinhdmi-cec )X{Ahdmi-hpd )b{Ccif-0dvp-d2d9-m0 )XXXXX X X XXXXXcif-1dvp-d2d9-m1 )XXXXXXXXXXXXpmicpmic-int-l )Z{*usb2usb20-host-drv )X{fchosen 7serial2:1500000n8external-gmac-clock fixed-clocksY@ gmac_clkin{Pdc-12vregulator-fixeddc_12v{gsdmmc-regulatorregulator-fixed Gcdefault*dvcc_sd2Z2Z C{Lsdmmcio-regulatorregulator-gpio New@2Z vcc_sdio Tvoltagew@2Z C+{vcc-host1-5v-regulatorregulator-fixed c G)default*f vcc_host1_5v C+vcc-sysregulator-fixedvcc_sysLK@LK@ Cg{+vcc-phy-regulatorregulator-fixedvcc_phy{Qleds gpio-ledsled-0 vfirefly:blue:power |heartbeat Nh onled-1 vfirefly:yellow:user |mmc1 Nh off compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0mmc0mmc1device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1vccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplypmuio-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthmax-frequencybus-widthcap-mmc-highspeedcap-sd-highspeeddisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplymmc-ddr-1_8vmmc-hs200-1_8vnon-removabletx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-supplyphy-modesnps,aalsnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ussnps,rxpbltx_delayrx_delayphy-handlephy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathvin-supplygpiosregulator-typeenable-active-highlabellinux,default-triggerdefault-state 8( 7L&firefly,roc-rk3328-pcrockchip,rk3328 +7Firefly ROC-RK3328-PCaliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/mmc@ff500000/mmc@ff520000cpus+cpu@0cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@1cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@2cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@3cpuarm,cortex-a53xpsci@&3@@R_p{ idle-statespscicpu-sleeparm,idle-statex{l2-cachecache @({opp-table-0operating-points-v2{opp-408000000Q~$@5opp-600000000#F~$@opp-8160000000,B@$@opp-1008000000<$@opp-1200000000G($@opp-1296000000M?d $@analog-soundsimple-audio-cardAi2sZtAnalogokaysimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem hdmi-soundsimple-audio-cardAi2sZtHDMIokaysimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24m{Gi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx okay{i2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx okay{i2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx  disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk txdefault*  disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrxdefaultsleep*4 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd{:io-domains"rockchip,rk3328-io-voltage-domainokay>LZhvgpiorockchip,rk3328-grf-gpio{Fpower-controller!rockchip,rk3328-power-controller+{=power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrxdefault * !"  disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrxdefault *#$%  disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrxdefault*& okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclkdefault*' disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclkdefault*(okaypmic@18rockchip,rk805 )xin32krk805-clkout2default**#DR+^+j+v+{jregulatorsDCDC_REG1 vdd_logic 4 {;regulator-state-memB@DCDC_REG2vdd_arm 4 {regulator-state-mem~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Z{regulator-state-mem2ZLDO_REG1vcc_18w@w@{regulator-state-memw@LDO_REG2 vcc18_emmcw@w@{regulator-state-memw@LDO_REG3vdd_10B@B@regulator-state-memB@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclkdefault*, disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclkdefault*- disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrxdefault*./01 disabledwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclkdefault*23 disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclkdefault*33 disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclkdefault*43 disabledpwm@ff1b0030rockchip,rk3328-pwm0< pwmpclkdefault*53 disableddma-controller@ff1f0000arm,pl330arm,primecell@> apb_pclkU{thermal-zonessoc-thermal`v6tripstrip-point0ppassivetrip-point1Lpassive{7soc-crits criticalcooling-mapsmap070 tsadc@ff250000rockchip,rk3328-tsadc% :$P$tsadcapb_pclkinitdefaultsleep*8498 B tsadc-apb :-Dokay{6efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuseZ id@7cpu-leakage@17logic-leakage@19cpu-version@1an{Hadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( Ps%saradcapb_pclk V saradc-apbokay{kgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore f;iommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk<=iommu@ff350800rockchip,iommu5@  F aclkiface={<video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB ׄׄ>=iommu@ff360480rockchip,iommu 6@6@ JB aclkiface={>vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop  axiahbdclk?okayport+{ endpoint@0@{Eiommu@ff373f00rockchip,iommu7?  ; aclkifaceokay{?hdmi@ff3c0000rockchip,rk3328-dw-hdmi<  #FiahbisfrcecAhdmidefault *BCD : okay{ports+port@0endpointE{@port@1codec@ff410000rockchip,rk3328-codecA* pclkmclk : okay F{phy@ff430000rockchip,rk3328-hdmi-phyC SGysysclkrefoclkrefpclk hdmi_phyH cpu-versionokay{Aclock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconD :!x=&'(ABDC"\5H4$.zGGG|n6n6n6ׄn6#FLGрxhxhрxhxh{syscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyGphyclk usb480m_phy{.Iokay{Iotg-port$;<=otg-bvalidotg-idlinestateokay{Yhost-port > linestateokay{Zmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sampleEPр mresetokay^hzdefault*JKLMNmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sampleEPр nreset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sampleEPр oresetokay^hdefault *OPQethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac c stmmaceth :*okaydf.RR5inputBSMrgmiidefault*TV _Uo 'P$ethernet@ff550000rockchip,rk3328-gmacU : macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy b stmmacethMrmiiV*5output disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V ddefault*WX{Vusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motghost@ Y usb2-phyokayusb@ff5c0000 generic-ehci\  NIZusbokayusb@ff5d0000 generic-ohci]  NIZusbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sampleEPр hreset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost utmi_wide  6 N p  okayinterrupt-controller@ff811000 arm,gic-400  @ @ `   {crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk D crypto-rstpinctrlrockchip,rk3328-pinctrl :+ gpio@ff210000rockchip,gpio-bank! 3  {)gpio@ff220000rockchip,gpio-bank" 4  {Ugpio@ff230000rockchip,gpio-bank# 5  {lgpio@ff240000rockchip,gpio-bank$ 6  {ppcfg-pull-up {]pcfg-pull-down {epcfg-pull-none {[pcfg-pull-none-2ma  {dpcfg-pull-up-2ma  pcfg-pull-up-4ma  {^pcfg-pull-none-4ma  {apcfg-pull-down-4ma  pcfg-pull-none-8ma  {_pcfg-pull-up-8ma  {`pcfg-pull-none-12ma   {bpcfg-pull-up-12ma   {cpcfg-output-high (pcfg-output-low 4pcfg-input-high  ?{\pcfg-input ?i2c0i2c0-xfer L[[{'i2c1i2c1-xfer L[[{(i2c2i2c2-xfer L [[{,i2c3i2c3-xfer L[[{-i2c3-pins L[[hdmi_i2chdmii2c-xfer L[[{Cpdm-0pdmm0-clk L[{pdmm0-fsync L[pdmm0-sdi0 L[{pdmm0-sdi1 L[{pdmm0-sdi2 L[{pdmm0-sdi3 L[{pdmm0-clk-sleep L\{pdmm0-sdi0-sleep L\{pdmm0-sdi1-sleep L\{pdmm0-sdi2-sleep L\{pdmm0-sdi3-sleep L\{pdmm0-fsync-sleep L\tsadcotp-pin L [{8otp-out L [{9uart0uart0-xfer L []{ uart0-cts L [{!uart0-rts L [{"uart0-rts-pin L [uart1uart1-xfer L[]{#uart1-cts L[{$uart1-rts L[{%uart1-rts-pin L[uart2-0uart2m0-xfer L[]uart2-1uart2m1-xfer L[]{&spi0-0spi0m0-clk L]spi0m0-cs0 L ]spi0m0-tx L ]spi0m0-rx L ]spi0m0-cs1 L ]spi0-1spi0m1-clk L]spi0m1-cs0 L]spi0m1-tx L]spi0m1-rx L]spi0m1-cs1 L]spi0-2spi0m2-clk L]{.spi0m2-cs0 L]{1spi0m2-tx L]{/spi0m2-rx L]{0i2s1i2s1-mclk L[i2s1-sclk L[i2s1-lrckrx L[i2s1-lrcktx L[i2s1-sdi L[i2s1-sdo L[i2s1-sdio1 L[i2s1-sdio2 L[i2s1-sdio3 L[i2s1-sleep L\\\\\\\\\i2s2-0i2s2m0-mclk L[i2s2m0-sclk L[i2s2m0-lrckrx L[i2s2m0-lrcktx L[i2s2m0-sdi L[i2s2m0-sdo L[i2s2m0-sleep` L\\\\\\i2s2-1i2s2m1-mclk L[i2s2m1-sclk L[i2sm1-lrckrx L[i2s2m1-lrcktx L[i2s2m1-sdi L[i2s2m1-sdo L[i2s2m1-sleepP L\\\\\spdif-0spdifm0-tx L[spdif-1spdifm1-tx L[spdif-2spdifm2-tx L[{sdmmc0-0sdmmc0m0-pwren L^sdmmc0m0-pin L^sdmmc0-1sdmmc0m1-pwren L^sdmmc0m1-pin L^{fsdmmc0sdmmc0-clk L_{Jsdmmc0-cmd L`{Ksdmmc0-dectn L^{Lsdmmc0-wrprt L^sdmmc0-bus1 L`sdmmc0-bus4@ L````{Msdmmc0-pins L^^^^^^^^sdmmc0extsdmmc0ext-clk Lasdmmc0ext-cmd L^sdmmc0ext-wrprt L^sdmmc0ext-dectn L^sdmmc0ext-bus1 L^sdmmc0ext-bus4@ L^^^^sdmmc0ext-pins L^^^^^^^^sdmmc1sdmmc1-clk L _sdmmc1-cmd L `sdmmc1-pwren L`sdmmc1-wrprt L`sdmmc1-dectn L`sdmmc1-bus1 L`sdmmc1-bus4@ L````sdmmc1-pins L ^ ^^^^^^^^emmcemmc-clk Lb{Oemmc-cmd Lc{Pemmc-pwren L[emmc-rstnout L[emmc-bus1 Lcemmc-bus4@ Lccccemmc-bus8 Lcccccccc{Qpwm0pwm0-pin L[{2pwm1pwm1-pin L[{3pwm2pwm2-pin L[{4pwmirpwmir-pin L[{5gmac-1rgmiim1-pins` L _ aa_aaa a a_ _aa___ _a____{Trmiim1-pins Ldbdddd d db b [ [[[[[gmac2phyfephyled-speed10 L[fephyled-duplex L[fephyled-rxm1 L[{Wfephyled-txm1 L[fephyled-linkm1 L[{Xtsadc_pintsadc-int L [tsadc-pin L [hdmi_pinhdmi-cec L[{Bhdmi-hpd Le{Dcif-0dvp-d2d9-m0 L[[[[[ [ [ [[[[[cif-1dvp-d2d9-m1 L[[[[[[[[[[[[pmicpmic-int-l L]{*usb2usb20-host-drv L]{hirir-int L[{msdmmciosdio-per-pin Le{gwifiwifi-en L[{nwifi-host-wake La{obt-rst L[bt-en L[chosen Zserial2:1500000n8external-gmac-clock fixed-clocksY@ gmac_clkin{Rdc-12vregulator-fixeddc_12v{isdmmc-regulatorregulator-fixed j)default*fvcc_sd2Z2Z f{Nsdmmcio-regulatorregulator-gpio )w@2Z vcc_sdio qvoltagew@2Z f+default*g{vcc-host1-5v-regulatorregulator-fixed  j)default*h vcc_host1_5v f+vcc-sysregulator-fixedvcc_sysLK@LK@ fi{+vcc-phy-regulatorregulator-fixedvcc_phy{Sleds gpio-ledsled-0 firefly:blue:power heartbeat j onled-1 firefly:yellow:user mmc1 j offadc-keys adc-keys k buttons button-recovery Recovery h 'ir-receivergpio-ir-receiver l rc-khadasdefault*msdio-pwrseqmmc-pwrseq-simpledefault*no +p compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0mmc0mmc1device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1vccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplypmuio-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,efuse-sizebits#io-channel-cellsvref-supplyinterrupt-namesmali-supply#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesmute-gpiosnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthmax-frequencybus-widthcap-mmc-highspeedcap-sd-highspeeddisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplymmc-ddr-1_8vmmc-hs200-1_8vnon-removabletx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-supplyphy-modesnps,aalsnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ussnps,rxpbltx_delayrx_delayphy-handlephy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathvin-supplyregulator-typeenable-active-highlabellinux,default-triggerdefault-stateio-channelsio-channel-nameskeyup-threshold-microvoltlinux,codepress-threshold-microvoltlinux,rc-map-namereset-gpios 8,( radxa,rockpi-erockchip,rk3328 +7Radxa ROCK Pi Ealiases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/ethernet@ff550000/mmc@ff500000/mmc@ff520000cpus+cpu@0cpuarm,cortex-a53xpsci@0=J@\iz cpu@1cpuarm,cortex-a53xpsci@0=J@\iz cpu@2cpuarm,cortex-a53xpsci@0=J@\iz cpu@3cpuarm,cortex-a53xpsci@0=J@\iz idle-statespscicpu-sleeparm,idle-statexl2-cachecache @2opp-table-0operating-points-v2opp-408000000Q ~.@?opp-600000000#F ~.@opp-8160000000, B@.@opp-1008000000< .@opp-1200000000G (.@opp-1296000000M?d  .@analog-soundsimple-audio-cardKi2sd~Analogokaysimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem hdmi-soundsimple-audio-cardKi2sd~HDMI disabledsimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24mDi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk   txrx disabledi2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclk txrxokayi2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclk txrx disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk  tx&default4 disabledpdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclk rx&defaultsleep4> disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd8io-domains"rockchip,rk3328-io-voltage-domainokayHUcqgpiorockchip,rk3328-grf-gpiopower-controller!rockchip,rk3328-power-controller+;power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB  RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclk txrx&default 4 # disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclk txrx&default 4!"## disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclk txrx&default4$#okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclk&default4% disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclk&default4&okaypmic@18rockchip,rk805 'xin32krk805-clkout2&default4(-N\)h)t)))regulatorsDCDC_REG1vdd_log 4  0regulator-state-mem6B@DCDC_REG2vdd_arm 4  0regulator-state-mem6~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Zregulator-state-mem62ZLDO_REG1vcc_18w@w@9regulator-state-mem6w@LDO_REG2 vcc18_emmcw@w@regulator-state-mem6w@LDO_REG3vdd_10B@B@regulator-state-mem6B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclk&default4* disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclk&default4+ disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk  txrx&default4,-./ disabledwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclk&default40R disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclk&default41R disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclk&default42R disabledpwm@ff1b0030rockchip,rk3328-pwm0< pwmpclk&default43R disableddma-controller@ff1f0000arm,pl330arm,primecell@] apb_pclktthermal-zonessoc-thermal4tripstrip-point0ppassivetrip-point1Lpassive5soc-crits criticalcooling-mapsmap050 tsadc@ff250000rockchip,rk3328-tsadc% :$ P$tsadcapb_pclk&initdefaultsleep46>7"6,B 3tsadc-apb?8Lcokay4efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efusey id@7cpu-leakage@17logic-leakage@19cpu-version@1aEadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk,V 3saradc-apbokay9egpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore,fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk:;iommu@ff350800rockchip,iommu5@  F aclkiface;:video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB  ׄׄ<;iommu@ff360480rockchip,iommu 6@6@ JB aclkiface;<vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop, 3axiahbdclk= disabledport+ endpoint@0>Ciommu@ff373f00rockchip,iommu7?  ; aclkiface disabled=hdmi@ff3c0000rockchip,rk3328-dw-hdmi< #Fiahbisfrcec?hdmi&default 4@AB?8 disabledports+port@0endpointC>port@1codec@ff410000rockchip,rk3328-codecA* pclkmclk?8okayphy@ff430000rockchip,rk3328-hdmi-phyC SDysysclkrefoclkrefpclk hdmi_phyE  cpu-version disabled?clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconD?8)x=&'(ABDC"\5H4$6zDDD| n6n6n6ׄn6#FLGрxhxhрxhxhsyscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyDphyclk usb480m_phy{6FokayFotg-port$;<=otg-bvalidotg-idlinestate disabledXhost-port > linestateokayYmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sampleMXр,m3resetokayfp&default4GHIJKmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sampleMXр,n3reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sampleMXр,o3resetokayf&default 4LMNethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac,c 3stmmaceth?8okaydf6OOinputP rgmii)&default4Q4=H&Qmdiosnps,dwmac-mdio+ethernet-phy@14RS&default TZ'jP |TPethernet@ff550000rockchip,rk3328-gmacU?8 macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy,b 3stmmaceth rmiiUoutputokaymdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V,d&default4VWUusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motgotg@ X usb2-phy disabledusb@ff5c0000 generic-ehci\  NFYusbokayusb@ff5d0000 generic-ohci]  NFYusb disabledmmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sampleMXр,h3reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost utmi_wide  6 W pokayinterrupt-controller@ff811000 arm,gic-400  @ @ `   crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk,D 3crypto-rstpinctrlrockchip,rk3328-pinctrl?8+ gpio@ff210000rockchip,gpio-bank! 3  1 pin-15 [GPIO0_D3]'gpio@ff220000rockchip,gpio-bank" 4  1 pin-07 [GPIO1_D4]Tgpio@ff230000rockchip,gpio-bank# 5  A pin-08 [GPIO2_A0]pin-10 [GPIO2_A1]pin-11 [GPIO2_A2]pin-13 [GPIO2-A3]pin-27 [GPIO2_A4]pin-28 [GPIO2_A5]pin-33 [GPIO2_A6]pin-26 [GPIO2_B4]pin-36 [GPIO2_B7]pin-32 [GPIO2_C0]pin-35 [GPIO2_C1]pin-12 [GPIO2_C2]pin-38 [GPIO2_C3]pin-29 [GPIO2_C4]pin-31 [GPIO2_C5]pin-37 [GPIO2_C6]pin-40 [GPIO2_C7]gpio@ff240000rockchip,gpio-bank$ 6   pin-23 [GPIO3_A0]pin-19 [GPIO3_A1]pin-21 [GPIO3_A2]pin-03 [GPIO3_A4]pin-05 [GPIO3_A6]pin-24 [GPIO3_B0]gpcfg-pull-up \pcfg-pull-down dpcfg-pull-none Zpcfg-pull-none-2ma  cpcfg-pull-up-2ma  pcfg-pull-up-4ma  ]pcfg-pull-none-4ma  `pcfg-pull-down-4ma  pcfg-pull-none-8ma  ^pcfg-pull-up-8ma  _pcfg-pull-none-12ma  apcfg-pull-up-12ma  bpcfg-output-high pcfg-output-low pcfg-input-high  [pcfg-input i2c0i2c0-xfer "ZZ%i2c1i2c1-xfer "ZZ&i2c2i2c2-xfer " ZZ*i2c3i2c3-xfer "ZZ+i2c3-pins "ZZhdmi_i2chdmii2c-xfer "ZZApdm-0pdmm0-clk "Zpdmm0-fsync "Zpdmm0-sdi0 "Zpdmm0-sdi1 "Zpdmm0-sdi2 "Zpdmm0-sdi3 "Zpdmm0-clk-sleep "[pdmm0-sdi0-sleep "[pdmm0-sdi1-sleep "[pdmm0-sdi2-sleep "[pdmm0-sdi3-sleep "[pdmm0-fsync-sleep "[tsadcotp-pin " Z6otp-out " Z7uart0uart0-xfer " Z\uart0-cts " Zuart0-rts " Z uart0-rts-pin " Zuart1uart1-xfer "Z\!uart1-cts "Z"uart1-rts "Z#uart1-rts-pin "Zuart2-0uart2m0-xfer "Z\uart2-1uart2m1-xfer "Z\$spi0-0spi0m0-clk "\spi0m0-cs0 " \spi0m0-tx " \spi0m0-rx " \spi0m0-cs1 " \spi0-1spi0m1-clk "\spi0m1-cs0 "\spi0m1-tx "\spi0m1-rx "\spi0m1-cs1 "\spi0-2spi0m2-clk "\,spi0m2-cs0 "\/spi0m2-tx "\-spi0m2-rx "\.i2s1i2s1-mclk "Zi2s1-sclk "Zi2s1-lrckrx "Zi2s1-lrcktx "Zi2s1-sdi "Zi2s1-sdo "Zi2s1-sdio1 "Zi2s1-sdio2 "Zi2s1-sdio3 "Zi2s1-sleep "[[[[[[[[[i2s2-0i2s2m0-mclk "Zi2s2m0-sclk "Zi2s2m0-lrckrx "Zi2s2m0-lrcktx "Zi2s2m0-sdi "Zi2s2m0-sdo "Zi2s2m0-sleep` "[[[[[[i2s2-1i2s2m1-mclk "Zi2s2m1-sclk "Zi2sm1-lrckrx "Zi2s2m1-lrcktx "Zi2s2m1-sdi "Zi2s2m1-sdo "Zi2s2m1-sleepP "[[[[[spdif-0spdifm0-tx "Zspdif-1spdifm1-tx "Zspdif-2spdifm2-tx "Zsdmmc0-0sdmmc0m0-pwren "]sdmmc0m0-pin "]sdmmc0-1sdmmc0m1-pwren "]sdmmc0m1-pin "]hsdmmc0sdmmc0-clk "^Gsdmmc0-cmd "_Hsdmmc0-dectn "]Isdmmc0-wrprt "]sdmmc0-bus1 "_sdmmc0-bus4@ "____Jsdmmc0-pins "]]]]]]]]sdmmc0extsdmmc0ext-clk "`sdmmc0ext-cmd "]sdmmc0ext-wrprt "]sdmmc0ext-dectn "]sdmmc0ext-bus1 "]sdmmc0ext-bus4@ "]]]]sdmmc0ext-pins "]]]]]]]]sdmmc1sdmmc1-clk " ^sdmmc1-cmd " _sdmmc1-pwren "_sdmmc1-wrprt "_sdmmc1-dectn "_sdmmc1-bus1 "_sdmmc1-bus4@ "____sdmmc1-pins " ] ]]]]]]]]emmcemmc-clk "aLemmc-cmd "bMemmc-pwren "Zemmc-rstnout "Zemmc-bus1 "bemmc-bus4@ "bbbbemmc-bus8 "bbbbbbbbNpwm0pwm0-pin "Z0pwm1pwm1-pin "Z1pwm2pwm2-pin "Z2pwmirpwmir-pin "Z3gmac-1rgmiim1-pins` " ^ ``^``` ` `^ ^``^^^ ^`^^^^Qrmiim1-pins "cacccc c ca a Z ZZZZZgmac2phyfephyled-speed10 "Zfephyled-duplex "Zfephyled-rxm1 "ZVfephyled-txm1 "Zfephyled-linkm1 "ZWtsadc_pintsadc-int " Ztsadc-pin " Zhdmi_pinhdmi-cec "Z@hdmi-hpd "dBcif-0dvp-d2d9-m0 "ZZZZZ Z Z ZZZZZcif-1dvp-d2d9-m1 "ZZZZZZZZZZZZephyeth-phy-int-pin "dReth-phy-reset-pin "dSledsled-pin "Zfpmicpmic-int-l "\(usb3usb30-host-drv "Ziwifiwifi-en "Zjchosen 0serial2:1500000n8adc-keys adc-keys <e Hbuttons Ybutton-recovery sRecovery yh 'external-gmac-clock fixed-clocksY@ gmac_clkinOleds gpio-leds4f&defaultled-0  g heartbeatsdmmc-regulatorregulator-fixed '&default4hvcc_sd Kvcc-host-5v-regulatorregulator-fixed g&default4i  vcc_host_5v )vcc-sysregulator-fixedvcc_sysLK@LK@)vcc-wifi-regulatorregulator-fixed '&default4j vcc_wifi  compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0ethernet1mmc0mmc1device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1pmuio-supplyvccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,efuse-sizebits#io-channel-cellsvref-supplyinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthmax-frequencybus-widthcap-sd-highspeeddisable-wpvmmc-supplycap-mmc-highspeedmmc-ddr-1_8vmmc-hs200-1_8vnon-removablevqmmc-supplytx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-handlephy-modephy-supplysnps,aalsnps,rxpbltx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosphy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathio-channelsio-channel-nameskeyup-threshold-microvoltlabellinux,codepress-threshold-microvoltcolorlinux,default-triggergpiovin-supplyenable-active-high '8( Ppine64,rock64rockchip,rk3328 +7Pine64 Rock64aliases=/pinctrl/gpio@ff210000C/pinctrl/gpio@ff220000I/pinctrl/gpio@ff230000O/pinctrl/gpio@ff240000U/serial@ff110000]/serial@ff120000e/serial@ff130000m/i2c@ff150000r/i2c@ff160000w/i2c@ff170000|/i2c@ff180000/ethernet@ff540000/mmc@ff500000/mmc@ff520000cpus+cpu@0cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@1cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@2cpuarm,cortex-a53xpsci@&3@@R_p{ cpu@3cpuarm,cortex-a53xpsci@&3@@R_p{ idle-statespscicpu-sleeparm,idle-statex{l2-cachecache @({opp-table-0operating-points-v2{opp-408000000Q~$@5opp-600000000#F~$@opp-8160000000,B@$@opp-1008000000<$@opp-1200000000G($@opp-1296000000M?d $@analog-soundsimple-audio-cardAi2sZtAnalogokaysimple-audio-card,cpusimple-audio-card,codecarm-pmuarm,cortex-a53-pmu0defg display-subsystemrockchip,display-subsystem hdmi-soundsimple-audio-cardAi2sZtHDMIokaysimple-audio-card,cpusimple-audio-card,codecpsciarm,psci-1.0arm,psci-0.2smctimerarm,armv8-timer0   xin24m fixed-clockn6xin24m{Fi2s@ff000000(rockchip,rk3328-i2srockchip,rk3066-i2s )7i2s_clki2s_hclk  txrx okay{i2s@ff010000(rockchip,rk3328-i2srockchip,rk3066-i2s *8i2s_clki2s_hclktxrx okay{i2s@ff020000(rockchip,rk3328-i2srockchip,rk3066-i2s +9i2s_clki2s_hclktxrx  disabledspdif@ff030000rockchip,rk3328-spdif .: mclkhclk txdefault* okay{ipdm@ff040000 rockchip,pdm=Rpdm_clkpdm_hclkrxdefaultsleep*4 disabledsyscon@ff100000&rockchip,rk3328-grfsysconsimple-mfd{9io-domains"rockchip,rk3328-io-voltage-domainokay>LZhvgpiorockchip,rk3328-grf-gpio{Epower-controller!rockchip,rk3328-power-controller+{;power-domain@6power-domain@5 BABpower-domain@8Freboot-modesyscon-reboot-modeRBRBRB RBserial@ff110000&rockchip,rk3328-uartsnps,dw-apb-uart 7&baudclkapb_pclktxrxdefault * !  disabledserial@ff120000&rockchip,rk3328-uartsnps,dw-apb-uart 8'baudclkapb_pclktxrxdefault *"#$  disabledserial@ff130000&rockchip,rk3328-uartsnps,dw-apb-uart 9(baudclkapb_pclktxrxdefault*% okayi2c@ff150000(rockchip,rk3328-i2crockchip,rk3399-i2c $+7 i2cpclkdefault*& disabledi2c@ff160000(rockchip,rk3328-i2crockchip,rk3399-i2c %+8 i2cpclkdefault*'okaypmic@18rockchip,rk805 (xin32krk805-clkout2default*)#DR*^*j*v**{hregulatorsDCDC_REG1 vdd_logic 4 0regulator-state-mem,B@DCDC_REG2vdd_arm 4 0{regulator-state-mem,~DCDC_REG3vcc_ddrregulator-state-memDCDC_REG4vcc_io2Z2Z{regulator-state-mem,2ZLDO_REG1vcc_18w@w@{regulator-state-mem,w@LDO_REG2 vcc18_emmcw@w@{regulator-state-mem,w@LDO_REG3vdd_10B@B@{Cregulator-state-mem,B@i2c@ff170000(rockchip,rk3328-i2crockchip,rk3399-i2c &+9 i2cpclkdefault*+ disabledi2c@ff180000(rockchip,rk3328-i2crockchip,rk3399-i2c '+: i2cpclkdefault*, disabledspi@ff190000(rockchip,rk3328-spirockchip,rk3066-spi 1+ spiclkapb_pclk txrxdefault*-./0okayflash@0jedec,spi-norHwatchdog@ff1a0000 rockchip,rk3328-wdtsnps,dw-wdt (pwm@ff1b0000rockchip,rk3328-pwm< pwmpclkdefault*1Z disabledpwm@ff1b0010rockchip,rk3328-pwm< pwmpclkdefault*2Z disabledpwm@ff1b0020rockchip,rk3328-pwm < pwmpclkdefault*3Z disabledpwm@ff1b0030rockchip,rk3328-pwm0< pwmpclkdefault*4Z disableddma-controller@ff1f0000arm,pl330arm,primecell@e apb_pclk|{thermal-zonessoc-thermal5tripstrip-point0ppassivetrip-point1Lpassive{6soc-crits criticalcooling-mapsmap060 tsadc@ff250000rockchip,rk3328-tsadc% :$P$tsadcapb_pclkinitdefaultsleep*748*74B ;tsadc-apbG9Tkokay{5efuse@ff260000rockchip,rk3328-efuse&P+> pclk_efuse id@7cpu-leakage@17logic-leakage@19cpu-version@1a{Gadc@ff280000.rockchip,rk3328-saradcrockchip,rk3399-saradc( P%saradcapb_pclk4V ;saradc-apb disabledgpu@ff300000"rockchip,rk3328-maliarm,mali-4500TZW]XY[\"gpgpmmupppp0ppmmu0pp1ppmmu1 buscore4fiommu@ff330200rockchip,iommu3 ` aclkiface disablediommu@ff340800rockchip,iommu4@ bF aclkiface disabledvideo-codec@ff350000rockchip,rk3328-vpu5  vdpuF aclkhclk:;iommu@ff350800rockchip,iommu5@  F aclkiface;{:video-codec@ff360000*rockchip,rk3328-vdecrockchip,rk3399-vdec6  BABaxiahbcabaccoreAB ׄׄ<;iommu@ff360480rockchip,iommu 6@6@ JB aclkiface;{<vop@ff370000rockchip,rk3328-vop7>  x;aclk_vopdclk_vophclk_vop4 ;axiahbdclk=okayport+{ endpoint@0>{Diommu@ff373f00rockchip,iommu7?  ; aclkifaceokay{=hdmi@ff3c0000rockchip,rk3328-dw-hdmi<  #Fiahbisfrcec ?%hdmidefault *@ABG9 okay/C?{ports+port@0endpointD{>port@1codec@ff410000rockchip,rk3328-codecA* pclkmclkG9 okay OE{phy@ff430000rockchip,rk3328-hdmi-phyC SFysysclkrefoclkrefpclk hdmi_phyZG fcpu-versionwokay{?clock-controller@ff440000(rockchip,rk3328-crurockchip,crusysconDG9x=&'(ABDC"\5H4$zFFF|n6n6n6ׄn6#FLGрxhxhрxhxh{syscon@ff450000.rockchip,rk3328-usb2phy-grfsysconsimple-mfdE+usb2phy@100rockchip,rk3328-usb2phyFphyclk usb480m_phy{Hokay{Hotg-portw$;<=otg-bvalidotg-idlinestateokay{Whost-portw > linestateokay{Xmmc@ff5000000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcP@   =!JNbiuciuciu-driveciu-sampleLр4m;resetokaydefault*IJKLMmmc@ff5100000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcQ@   >"KObiuciuciu-driveciu-sampleLр4n;reset disabledmmc@ff5200000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshcR@  ?#LPbiuciuciu-driveciu-sampleLр4o;resetokaydefault *NOPethernet@ff540000rockchip,rk3328-gmacT macirq8dWXZYMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac4c ;stmmacethG9-;okaydfQQFinputS^rgmiidefault*Rg S 'P$ethernet@ff550000rockchip,rk3328-gmacUG9 macirq8TSSUVIstmmacethmac_clk_rxmac_clk_txclk_mac_refaclk_macpclk_macclk_macphy4b ;stmmaceth^rmiiT-;Foutput disabledmdiosnps,dwmac-mdio+ethernet-phy@04ethernet-phy-id1234.d400ethernet-phy-ieee802.3-c22V4ddefault*UV{Tusb@ff5800002rockchip,rk3328-usbrockchip,rk3066-usbsnps,dwc2X Motghost  @  W %usb2-phyokayusb@ff5c0000 generic-ehci\  NH X%usbokayusb@ff5d0000 generic-ohci]  NH X%usbokaymmc@ff5f00000rockchip,rk3328-dw-mshcrockchip,rk3288-dw-mshc_@  @MQbiuciuciu-driveciu-sampleLр4h;reset disabledusb@ff600000rockchip,rk3328-dwc3snps,dwc3` C`aref_clksuspend_clkbus_clkhost $utmi_wide - N f   okayinterrupt-controller@ff811000 arm,gic-400  @ @ `   {crypto@ff060000rockchip,rk3328-crypto@ PQ;hclk_masterhclk_slavesclk4D ;crypto-rstpinctrlrockchip,rk3328-pinctrlG9+ gpio@ff210000rockchip,gpio-bank! 3  {dgpio@ff220000rockchip,gpio-bank" 4  {Sgpio@ff230000rockchip,gpio-bank# 5  {(gpio@ff240000rockchip,gpio-bank$ 6  pcfg-pull-up {[pcfg-pull-down {cpcfg-pull-none ${Ypcfg-pull-none-2ma $ 1{bpcfg-pull-up-2ma  1pcfg-pull-up-4ma  1{\pcfg-pull-none-4ma $ 1{_pcfg-pull-down-4ma  1pcfg-pull-none-8ma $ 1{]pcfg-pull-up-8ma  1{^pcfg-pull-none-12ma $ 1 {`pcfg-pull-up-12ma  1 {apcfg-output-high @pcfg-output-low Lpcfg-input-high  W{Zpcfg-input Wi2c0i2c0-xfer dYY{&i2c1i2c1-xfer dYY{'i2c2i2c2-xfer d YY{+i2c3i2c3-xfer dYY{,i2c3-pins dYYhdmi_i2chdmii2c-xfer dYY{Apdm-0pdmm0-clk dY{pdmm0-fsync dYpdmm0-sdi0 dY{pdmm0-sdi1 dY{pdmm0-sdi2 dY{pdmm0-sdi3 dY{pdmm0-clk-sleep dZ{pdmm0-sdi0-sleep dZ{pdmm0-sdi1-sleep dZ{pdmm0-sdi2-sleep dZ{pdmm0-sdi3-sleep dZ{pdmm0-fsync-sleep dZtsadcotp-pin d Y{7otp-out d Y{8uart0uart0-xfer d Y[{uart0-cts d Y{ uart0-rts d Y{!uart0-rts-pin d Yuart1uart1-xfer dY[{"uart1-cts dY{#uart1-rts dY{$uart1-rts-pin dYuart2-0uart2m0-xfer dY[uart2-1uart2m1-xfer dY[{%spi0-0spi0m0-clk d[spi0m0-cs0 d [spi0m0-tx d [spi0m0-rx d [spi0m0-cs1 d [spi0-1spi0m1-clk d[spi0m1-cs0 d[spi0m1-tx d[spi0m1-rx d[spi0m1-cs1 d[spi0-2spi0m2-clk d[{-spi0m2-cs0 d[{0spi0m2-tx d[{.spi0m2-rx d[{/i2s1i2s1-mclk dYi2s1-sclk dYi2s1-lrckrx dYi2s1-lrcktx dYi2s1-sdi dYi2s1-sdo dYi2s1-sdio1 dYi2s1-sdio2 dYi2s1-sdio3 dYi2s1-sleep dZZZZZZZZZi2s2-0i2s2m0-mclk dYi2s2m0-sclk dYi2s2m0-lrckrx dYi2s2m0-lrcktx dYi2s2m0-sdi dYi2s2m0-sdo dYi2s2m0-sleep` dZZZZZZi2s2-1i2s2m1-mclk dYi2s2m1-sclk dYi2sm1-lrckrx dYi2s2m1-lrcktx dYi2s2m1-sdi dYi2s2m1-sdo dYi2s2m1-sleepP dZZZZZspdif-0spdifm0-tx dY{spdif-1spdifm1-tx dYspdif-2spdifm2-tx dYsdmmc0-0sdmmc0m0-pwren d\sdmmc0m0-pin d\sdmmc0-1sdmmc0m1-pwren d\sdmmc0m1-pin d\{esdmmc0sdmmc0-clk d]{Isdmmc0-cmd d^{Jsdmmc0-dectn d\{Ksdmmc0-wrprt d\sdmmc0-bus1 d^sdmmc0-bus4@ d^^^^{Lsdmmc0-pins d\\\\\\\\sdmmc0extsdmmc0ext-clk d_sdmmc0ext-cmd d\sdmmc0ext-wrprt d\sdmmc0ext-dectn d\sdmmc0ext-bus1 d\sdmmc0ext-bus4@ d\\\\sdmmc0ext-pins d\\\\\\\\sdmmc1sdmmc1-clk d ]sdmmc1-cmd d ^sdmmc1-pwren d^sdmmc1-wrprt d^sdmmc1-dectn d^sdmmc1-bus1 d^sdmmc1-bus4@ d^^^^sdmmc1-pins d \ \\\\\\\\emmcemmc-clk d`{Nemmc-cmd da{Oemmc-pwren dYemmc-rstnout dYemmc-bus1 daemmc-bus4@ daaaaemmc-bus8 daaaaaaaa{Ppwm0pwm0-pin dY{1pwm1pwm1-pin dY{2pwm2pwm2-pin dY{3pwmirpwmir-pin dY{4gmac-1rgmiim1-pins` d ] __]___ _ _] ]__]]] ]_]]]]{Rrmiim1-pins db`bbbb b b` ` Y YYYYYgmac2phyfephyled-speed10 dYfephyled-duplex dYfephyled-rxm1 dY{Ufephyled-txm1 dYfephyled-linkm1 dY{Vtsadc_pintsadc-int d Ytsadc-pin d Yhdmi_pinhdmi-cec dY{@hdmi-hpd dc{Bcif-0dvp-d2d9-m0 dYYYYY Y Y YYYYYcif-1dvp-d2d9-m1 dYYYYYYYYYYYYirir-int dY{gpmicpmic-int-l d[{)usb2usb20-host-drv dY{fchosen rserial2:1500000n8external-gmac-clock fixed-clocksY@ gmac_clkin{Qsdmmc-regulatorregulator-fixed ddefault*evcc_sd2Z2Z ~{Mvcc-host-5v-regulatorregulator-fixed ddefault*f vcc_host_5v ~*vcc-sysregulator-fixedvcc_sysLK@LK@{*ir-receivergpio-ir-receiver T(*gdefaultleds gpio-ledsled-0 Th mmc0led-1 Th heartbeatspdif-soundsimple-audio-cardtSPDIFsimple-audio-card,cpuisimple-audio-card,codecjspdif-ditlinux,spdif-dit {j compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3serial0serial1serial2i2c0i2c1i2c2i2c3ethernet0mmc0mmc1device_typeregclocks#cooling-cellscpu-idle-statesdynamic-power-coefficientenable-methodoperating-points-v2i-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachecpu-supplyphandleentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usexit-latency-usmin-residency-uscache-levelcache-unifiedopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namestatussound-daiinterruptsinterrupt-affinityports#clock-cellsclock-frequencyclock-output-namesclock-namesdmasdma-names#sound-dai-cellspinctrl-namespinctrl-0pinctrl-1vccio1-supplyvccio2-supplyvccio3-supplyvccio4-supplyvccio5-supplyvccio6-supplypmuio-supplygpio-controller#gpio-cells#power-domain-cellsoffsetmode-normalmode-recoverymode-bootloadermode-loaderreg-io-widthreg-shiftrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvoltspi-max-frequency#pwm-cellsarm,pl330-periph-burst#dma-cellspolling-delay-passivepolling-delaysustainable-powerthermal-sensorstemperaturehysteresistripcooling-devicecontributionassigned-clocksassigned-clock-ratespinctrl-2resetsreset-namesrockchip,grfrockchip,hw-tshut-temp#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,efuse-sizebits#io-channel-cellsinterrupt-names#iommu-cellsiommuspower-domainsremote-endpointphysphy-namesavdd-0v9-supplyavdd-1v8-supplymute-gpiosnvmem-cellsnvmem-cell-names#phy-cells#reset-cellsassigned-clock-parentsfifo-depthbus-widthcap-mmc-highspeedcap-sd-highspeeddisable-wpvmmc-supplymmc-hs200-1_8vnon-removablevqmmc-supplytx-fifo-depthrx-fifo-depthsnps,txpblclock_in_outphy-supplyphy-modesnps,force_thresh_dma_modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delayphy-handlephy-is-integrateddr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizephy_typesnps,dis-del-phy-power-chg-quirksnps,dis_enblslpm_quirksnps,dis-tx-ipgap-linecheck-quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis_u3_susphy_quirk#interrupt-cellsinterrupt-controllerrangesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsstdout-pathvin-supplylinux,default-trigger \8y( yHneardi,lba3368rockchip,rk3368 +7Neardi LBA3368aliases=/pinctrl/gpio@ff750000C/pinctrl/gpio@ff780000I/pinctrl/gpio@ff790000O/pinctrl/gpio@ff7a0000U/i2c@ff650000Z/i2c@ff660000_/i2c@ff140000d/i2c@ff150000i/i2c@ff160000n/i2c@ff170000s/serial@ff180000{/serial@ff190000/serial@ff690000/serial@ff1b0000/serial@ff1c0000/spi@ff110000/spi@ff120000/spi@ff130000/ethernet@ff290000/mmc@ff0f0000/mmc@ff0c0000/mmc@ff0d0000/i2c@ff660000/rtc@51/i2c@ff650000/pmic@1bcpus+cpu-mapcluster0core0core1core2core3cluster1core0core1core2core3 cpu@0cpuarm,cortex-a53psci  cpu@1cpuarm,cortex-a53psci  cpu@2cpuarm,cortex-a53psci  cpu@3cpuarm,cortex-a53psci  cpu@100cpuarm,cortex-a53psci  cpu@101cpuarm,cortex-a53psci  cpu@102cpuarm,cortex-a53psci  cpu@103cpuarm,cortex-a53psci  arm-pmuarm,cortex-a53-pmu`pqrstuvw  psci arm,psci-0.2smctimerarm,armv8-timer0   oscillator fixed-clock/n6?xin24mR ^mmc@ff0c00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @_р m  D r vtbiuciuciu-driveciu-sample   resetokay  default %2mmc@ff0d00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @_р m  E s wtbiuciuciu-driveciu-sample ! resetokay@K E[ default r2+wifi@1%brcm,bcm43455-fmacbrcm,bcm4329-fmac  host-wakedefaultmmc@ff0f00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc@_р m  G u ytbiuciuciu-driveciu-sample # resetokaydefault saradc@ff100000rockchip,saradc $m I [tsaradcapb_pclk W saradc-apbokay ispi@ff110000(rockchip,rk3368-spirockchip,rk3066-spim A Rtspiclkapb_pclk ,default !+ disabledspi@ff120000(rockchip,rk3368-spirockchip,rk3066-spim B Stspiclkapb_pclk -default"#$%+ disabledspi@ff130000(rockchip,rk3368-spirockchip,rk3066-spim C Ttspiclkapb_pclk )default&'()+ disabledi2c@ff140000(rockchip,rk3368-i2crockchip,rk3288-i2c >+ti2cm Ndefault* disabledi2c@ff150000(rockchip,rk3368-i2crockchip,rk3288-i2c ?+ti2cm Odefault+ disabledi2c@ff160000(rockchip,rk3368-i2crockchip,rk3288-i2c @+ti2cm Pdefault, disabledi2c@ff170000(rockchip,rk3368-i2crockchip,rk3288-i2c A+ti2cm Qdefault- disabledserial@ff180000&rockchip,rk3368-uartsnps,dw-apb-uart/n6m M Utbaudclkapb_pclk 7okaydefault ./0 bluetoothbrcm,bcm4345c5  host-wakeupm1tlpo  1@JVdefault 234serial@ff190000&rockchip,rk3368-uartsnps,dw-apb-uart/n6m N Vtbaudclkapb_pclk 8okaydefault5serial@ff1b0000&rockchip,rk3368-uartsnps,dw-apb-uart/n6m P Xtbaudclkapb_pclk : disabledserial@ff1c0000&rockchip,rk3368-uartsnps,dw-apb-uart/n6m Q Ytbaudclkapb_pclk ;okaydefault6dma-controller@ff250000arm,pl330arm,primecell%@cnm  tapb_pclkthermal-zonescpu-thermald7tripscpu_alert0$passive 8cpu_alert18passive 9cpu_crits criticalcooling-mapsmap080map190 gpu-thermald7tripsgpu_alert08passive :gpu_crit8 criticalcooling-mapsmap0:0tsadc@ff280000rockchip,rk3368-tsadc( %m H Zttsadcapb_pclk  tsadc-apbinitdefaultsleep;< ;)sokay@W 7ethernet@ff290000rockchip,rk3368-gmac) macirqr=8m  f g c ]Mtstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macokayinput>rmii?K [@defaultAmdiosnps,dwmac-mdio+ethernet-phy@1ethernet-phy-ieee802.3-c22@d'B@  defaultB >usb@ff500000 generic-ehciP m okay+hub@1 usb5e3,610Cusb@ff5800002rockchip,rk3368-usbrockchip,rk3066-usbsnps,dwc2X m totgotg @@ okayD(6Edma-controller@ff600000arm,pl330arm,primecell`@cnm  tapb_pclk `i2c@ff650000(rockchip,rk3368-i2crockchip,rk3288-i2cem Lti2c <defaultF+okaypmic@1brockchip,rk808 G?rk808-clkout1xin32k_wifi_btDHPH\HhHtHHHHHdefaultIJR 1regulatorsDCDC_REG1vdd_cpu `p0D regulator-state-memVDCDC_REG2vdd_log`oq0Dregulator-state-memB@DCDC_REG3vcc_ddr0Dregulator-state-memDCDC_REG4vcc_io2Z2Z0D regulator-state-mem2ZLDO_REG1vcca1v8_codecw@w@0 _regulator-state-memVLDO_REG2vcca3v0_codec--0regulator-state-memVLDO_REG3vdd_10B@B@0D qregulator-state-memB@LDO_REG4 vdd1v8_wlw@w@ regulator-state-memVLDO_REG5 vccio_sdw@2Z regulator-state-memVLDO_REG6 vdd10_lcdB@B@regulator-state-memVLDO_REG7vcc_18w@w@ regulator-state-memw@LDO_REG8 vcc18_lcdw@w@regulator-state-memVSWITCH_REG1vcc_tpregulator-state-memSWITCH_REG2vcc_sd regulator-state-memVi2c@ff660000(rockchip,rk3368-i2crockchip,rk3288-i2cf =+ti2cm MdefaultKokaycodec@1crealtek,rt5640m qtmclkportendpointL crtc@51haoyu,hym8563Q?xin32kRpwm@ff680000(rockchip,rk3368-pwmrockchip,rk3288-pwmh defaultMm _ disabledpwm@ff680010(rockchip,rk3368-pwmrockchip,rk3288-pwmh defaultNm _ disabledpwm@ff680020(rockchip,rk3368-pwmrockchip,rk3288-pwmh  m _ disabledpwm@ff680030(rockchip,rk3368-pwmrockchip,rk3288-pwmh0 defaultOm _ disabledserial@ff690000&rockchip,rk3368-uartsnps,dw-apb-uartim O Wtbaudclkapb_pclk 9defaultP disabledmbox@ff6b0000rockchip,rk3368-mailboxk0m E tpclk_mailbox+ disabledpower-management@ff730000&rockchip,rk3368-pmusysconsimple-mfdspower-controller!rockchip,rk3368-power-controller7+ dpower-domain@12 m       c h g n o r s f d d h i l k j n m$KQRSTUVWXY7power-domain@14 m  o p KZ[\7power-domain@16m @K]7syscon@ff738000)rockchip,rk3368-pmugrfsysconsimple-mfds eio-domains&rockchip,rk3368-pmu-io-voltage-domainokayR]reboot-modesyscon-reboot-modehoRB{RBRB RBclock-controller@ff760000rockchip,rk3368-cruvm^txin24mr=R syscon@ff770000&rockchip,rk3368-grfsysconsimple-mfdw =io-domains"rockchip,rk3368-io-voltage-domainokay_ watchdog@ff800000 rockchip,rk3368-wdtsnps,dw-wdtm p Ookaytimer@ff810000,rockchip,rk3368-timerrockchip,rk3288-timer  Bm a U tpclktimerspdif@ff880000rockchip,rk3368-spdif 6m S  tmclkhclk`txdefaulta disabledi2s-2ch@ff890000(rockchip,rk3368-i2srockchip,rk3066-i2s (ti2s_clki2s_hclkm T ``txrx disabledi2s-8ch@ff898000(rockchip,rk3368-i2srockchip,rk3066-i2s 5ti2s_clki2s_hclkm R ``txrxdefaultbokayport jendpointi2s*c Liommu@ff900800rockchip,iommu m  taclkiface2d @ disablediommu@ff914000rockchip,iommu @P m  taclkiface@2d M disablediommu@ff930300rockchip,iommu m  taclkiface2d @ disablediommu@ff9a0440rockchip,iommu @@@  m  taclkiface@ disablediommu@ff9a0800rockchip,iommu  m  taclkiface@ disabledqos@ffad0000rockchip,rk3368-qossyscon  Qqos@ffad0080rockchip,rk3368-qossyscon  Rqos@ffad0100rockchip,rk3368-qossyscon  Sqos@ffad0180rockchip,rk3368-qossyscon  Tqos@ffad0200rockchip,rk3368-qossyscon  Uqos@ffad0280rockchip,rk3368-qossyscon  Vqos@ffad0300rockchip,rk3368-qossyscon  Wqos@ffad0380rockchip,rk3368-qossyscon  Xqos@ffad0400rockchip,rk3368-qossyscon  Yqos@ffae0000rockchip,rk3368-qossyscon  Zqos@ffae0100rockchip,rk3368-qossyscon  [qos@ffae0180rockchip,rk3368-qossyscon  \qos@ffaf0000rockchip,rk3368-qossyscon  ]efuse@ffb00000rockchip,rk3368-efuse +m q tpclk_efusecpu-leakage@17temp-adjust@1finterrupt-controller@ffb71000 arm,gic-400h}@ @ `    pinctrlrockchip,rk3368-pinctrlr=e+gpio@ff750000rockchip,gpio-bankum @ Qh} Ggpio@ff780000rockchip,gpio-bankxm A Rh}gpio@ff790000rockchip,gpio-bankym B Sh}gpio@ff7a0000rockchip,gpio-bankzm C Th} pcfg-pull-up gpcfg-pull-downpcfg-pull-none fpcfg-pull-none-12ma  hemmcemmc-clkf emmc-cmdg emmc-pwrgemmc-bus1gemmc-bus4@ggggemmc-bus8gggggggg gmacrgmii-pinsfffh h hhh hffffffrmii-pinsfffh h hffff Ai2c0i2c0-xfer ff Fi2c1i2c1-xfer ff Ki2c2i2c2-xfer  ff *i2c3i2c3-xfer ff +i2c4i2c4-xfer ff ,i2c5i2c5-xfer ff -i2si2s-8ch-bus f ffffffff bpwm0pwm0-pinf Mpwm1pwm1-pinf Npwm3pwm3-pinf Osdio0sdio0-bus1gsdio0-bus4@gggg sdio0-cmdg sdio0-clkf sdio0-cdgsdio0-wpgsdio0-pwrgsdio0-bkpwrgsdio0-intgsdmmcsdmmc-clk f sdmmc-cmd g sdmmc-cd g sdmmc-bus1gsdmmc-bus4@gggg spdifspdif-txf aspi0spi0-clkg spi0-cs0g !spi0-cs1gspi0-txg spi0-rxg spi1spi1-clkg "spi1-cs0g %spi1-cs1gspi1-rxg $spi1-txg #spi2spi2-clk g &spi2-cs0 g )spi2-rx g (spi2-tx g 'tsadcotp-pinf ;otp-outf <uart0uart0-xfer gf .uart0-ctsf /uart0-rtsf 0uart1uart1-xfer gf 5uart1-ctsfuart1-rtsfuart2uart2-xfer gf Puart3uart3-xfer gfuart3-ctsfuart3-rtsfuart4uart4-xfer gf 6uart4-ctsfuart4-rtsfbluetoothbt-host-wakef 2bt-reg-ong 4bt-wakef 3ledspower-ledf lphyphy-rst f Bpmicpmic-intg Ipmic-sleepf Jsdio-pwrseqwifi-reg-onf msoundhp-detf kusbhost-vbus-drvf notg-vbus-drvf owifiwifi-host-wakef chosen serial1:115200n8memory@0memory@adc-key adc-keys i buttons -d ;w@button-recovery URecovery [h fanalog-soundaudio-graph-card j G Ualc5640 Mic JackMICBIAS1IN1PMic JackHeadphone JackHPOLHeadphone JackHPORSpeakersSPORPSpeakersSPORNSpeakersSPOLPSpeakersSPOLN> MicrophoneMic JackHeadphoneHeadphone JackSpeakerSpeakersdefaultkdc-12v-regulatorregulator-fixeddc_12v0D pgmac-clk fixed-clock/ ?ext_gmacR @hub-avdd-regulatorregulator-fixed hub_avdd2Z2Z 0 Cleds gpio-ledspower-led +G power  ondefaultlsdio-pwrseqmmc-pwrseq-simplem1 text_clock defaultm vcc-host-regulatorregulator-fixed  vcc_hostLK@LK@ Hdefaultn 0vcc-lan-regulatorregulator-fixedvcc_lan2Z2Z 0 ?vcc-otg-regulatorregulator-fixed Gvcc_otgLK@LK@ Hdefaulto 0 Dvcc-sys-regulatorregulator-fixedvcc_sysLK@LK@ p0D Hvdd10-usb-regulatorregulator-fixed vdd10_usbB@B@ q0 E compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3i2c0i2c1i2c2i2c3i2c4i2c5serial0serial1serial2serial3serial4spi0spi1spi2ethernet0mmc0mmc1mmc2rtc0rtc1cpudevice_typeregenable-method#cooling-cellscpu-supplyphandleinterruptsinterrupt-affinityclock-frequencyclock-output-names#clock-cellsmax-frequencyclocksclock-namesfifo-depthresetsreset-namesstatusbus-widthvmmc-supplyvqmmc-supplypinctrl-namespinctrl-0cap-sd-highspeeddisable-wpno-mmcno-sdiosd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104mmc-pwrseqassigned-clocksassigned-clock-parentscap-sdio-irqno-sdnon-removableinterrupts-extendedinterrupt-namescap-mmc-highspeedmmc-hs200-1_8v#io-channel-cellsvref-supplyreg-shiftreg-io-widthuart-has-rtsctsdevice-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supply#dma-cellsarm,pl330-broken-no-flushparm,pl330-periph-burstpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicepinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-temprockchip,hw-tshut-moderockchip,hw-tshut-polarityrockchip,grfclock_in_outphy-handlephy-modephy-supplyreset-assert-usreset-deassert-usreset-gpiosvdd-supplydr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizevbus-supplyvusb_a-supplyvusb_d-supplyvcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplysystem-power-controllerwakeup-sourceregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-always-onregulator-boot-onregulator-off-in-suspendregulator-ramp-delayregulator-suspend-microvoltregulator-on-in-suspendrealtek,dmic1-data-pinrealtek,dmic2-data-pinrealtek,in1-differential#sound-dai-cellsremote-endpoint#pwm-cells#mbox-cells#power-domain-cellspm_qospmu-supplyvop-supplyoffsetmode-normalmode-recoverymode-bootloadermode-loader#reset-cellsaudio-supplydvp-supplyflash0-supplygpio1830-supplygpio30-supplysdcard-supplywifi-supplydmasdma-namesdai-formatmclk-fspower-domains#iommu-cellsrockchip,disable-mmu-resetinterrupt-controller#interrupt-cellsrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthrockchip,pinsstdout-pathio-channelsio-channel-namespoll-intervalkeyup-threshold-microvoltlabellinux,codepress-threshold-microvoltdaishp-det-gpioroutingwidgetsvin-supplyfunctioncolordefault-stateenable-active-high k8e(d.rockchip,px5-evbrockchip,px5rockchip,rk3368 +7Rockchip PX5 EVBaliases=/pinctrl/gpio@ff750000C/pinctrl/gpio@ff780000I/pinctrl/gpio@ff790000O/pinctrl/gpio@ff7a0000U/i2c@ff650000Z/i2c@ff660000_/i2c@ff140000d/i2c@ff150000i/i2c@ff160000n/i2c@ff170000s/serial@ff180000{/serial@ff190000/serial@ff690000/serial@ff1b0000/serial@ff1c0000/spi@ff110000/spi@ff120000/spi@ff130000/mmc@ff0c0000/mmc@ff0f0000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1core2core3 cpu@0cpuarm,cortex-a53pscicpu@1cpuarm,cortex-a53pscicpu@2cpuarm,cortex-a53pscicpu@3cpuarm,cortex-a53psci cpu@100cpuarm,cortex-a53pscicpu@101cpuarm,cortex-a53pscicpu@102cpuarm,cortex-a53pscicpu@103cpuarm,cortex-a53psciarm-pmuarm,cortex-a53-pmu`pqrstuvw  psci arm,psci-0.2smctimerarm,armv8-timer0   oscillator fixed-clock n6xin24m.Fmmc@ff0c00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @;р I  D r vPbiuciuciu-driveciu-sample\ g nresetzokaydefault Z$mmc@ff0d00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @;р I  E s wPbiuciuciu-driveciu-sample\ !g nreset zdisabledmmc@ff0f00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc@;р I  G u yPbiuciuciu-driveciu-sample\ #g nresetzokay р1@Fdefault $saradc@ff100000rockchip,saradc $TI I [Psaradcapb_pclkg W nsaradc-apb zdisabledspi@ff110000(rockchip,rk3368-spirockchip,rk3066-spiI A RPspiclkapb_pclk ,default+ zdisabledspi@ff120000(rockchip,rk3368-spirockchip,rk3066-spiI B SPspiclkapb_pclk -default+ zdisabledspi@ff130000(rockchip,rk3368-spirockchip,rk3066-spiI C TPspiclkapb_pclk )default !+ zdisabledi2c@ff140000(rockchip,rk3368-i2crockchip,rk3288-i2c >+Pi2cI Ndefault"zokaytouchscreen@40silead,gsl1680@ # f#r i2c@ff150000(rockchip,rk3368-i2crockchip,rk3288-i2c ?+Pi2cI Odefault$ zdisabledi2c@ff160000(rockchip,rk3368-i2crockchip,rk3288-i2c @+Pi2cI Pdefault% zdisabledi2c@ff170000(rockchip,rk3368-i2crockchip,rk3288-i2c A+Pi2cI Qdefault& zdisabledserial@ff180000&rockchip,rk3368-uartsnps,dw-apb-uart n6I M UPbaudclkapb_pclk 7 zdisabledserial@ff190000&rockchip,rk3368-uartsnps,dw-apb-uart n6I N VPbaudclkapb_pclk 8 zdisabledserial@ff1b0000&rockchip,rk3368-uartsnps,dw-apb-uart n6I P XPbaudclkapb_pclk : zdisabledserial@ff1c0000&rockchip,rk3368-uartsnps,dw-apb-uart n6I Q YPbaudclkapb_pclk ;zokaydma-controller@ff250000arm,pl330arm,primecell%@I  Papb_pclkthermal-zonescpu-thermald#'tripscpu_alert03$?passive(cpu_alert138?passive)cpu_crit3s? criticalcooling-mapsmap0J(0Omap1J)0O gpu-thermald#'tripsgpu_alert038?passive*gpu_crit38? criticalcooling-mapsmap0J*0Otsadc@ff280000rockchip,rk3368-tsadc( %I H ZPtsadcapb_pclkg  ntsadc-apbinitdefaultsleep+^,h+rszokay'ethernet@ff290000rockchip,rk3368-gmac) macirq-8I  f g c ]MPstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac zdisabledusb@ff500000 generic-ehciP I zokayusb@ff5800002rockchip,rk3368-usbrockchip,rk3066-usbsnps,dwc2X I Potgotg@@ zokaydma-controller@ff600000arm,pl330arm,primecell`@I  Papb_pclkGi2c@ff650000(rockchip,rk3368-i2crockchip,rk3288-i2ceI LPi2c <default.+zokaypmic@1brockchip,rk808 /default01&G2S2_2k2w22222xin32krk808-clkout2.regulatorsDCDC_REG1 ` `$vdd_cpuDCDC_REG2 ` `$vdd_logDCDC_REG3$vcc_ddrDCDC_REG42Z 2Z$vcc_ioLDO_REG1w@ w@ $vcc18_flashLDO_REG22Z 2Z$vcca_33LDO_REG3B@ B@$vdd_10LDO_REG42Z 2Z$avdd_33LDO_REG5w@ 2Z $vccio_sdLDO_REG6B@ B@ $vdd10_lcdLDO_REG7w@ w@$vcc_18LDO_REG8w@ w@ $vcc18_lcdSWITCH_REG1$vcc_sdSWITCH_REG2 $vcc33_lcdi2c@ff660000(rockchip,rk3368-i2crockchip,rk3288-i2cf =+Pi2cI Mdefault3zokayaccelerometer@18 bosch,bma250 4pwm@ff680000(rockchip,rk3368-pwmrockchip,rk3288-pwmh3default5I _ zdisabledpwm@ff680010(rockchip,rk3368-pwmrockchip,rk3288-pwmh3default6I _ zdisabledpwm@ff680020(rockchip,rk3368-pwmrockchip,rk3288-pwmh 3I _ zdisabledpwm@ff680030(rockchip,rk3368-pwmrockchip,rk3288-pwmh03default7I _ zdisabledserial@ff690000&rockchip,rk3368-uartsnps,dw-apb-uartiI O WPbaudclkapb_pclk 9default8 zdisabledmbox@ff6b0000rockchip,rk3368-mailboxk0I E Ppclk_mailbox> zdisabledpower-management@ff730000&rockchip,rk3368-pmusysconsimple-mfdspower-controller!rockchip,rk3368-power-controllerJ+Jpower-domain@12 I       c h g n o r s f d d h i l k j n m$^9:;<=>?@AJpower-domain@14 I  o p ^BCDJpower-domain@16I @^EJsyscon@ff738000)rockchip,rk3368-pmugrfsysconsimple-mfdsKio-domains&rockchip,rk3368-pmu-io-voltage-domain zdisabledreboot-modesyscon-reboot-modeelRBxRBRB RBclock-controller@ff760000rockchip,rk3368-cruvIFPxin24m-. syscon@ff770000&rockchip,rk3368-grfsysconsimple-mfdw-io-domains"rockchip,rk3368-io-voltage-domain zdisabledwatchdog@ff800000 rockchip,rk3368-wdtsnps,dw-wdtI p Ozokaytimer@ff810000,rockchip,rk3368-timerrockchip,rk3288-timer  BI a U Ppclktimerspdif@ff880000rockchip,rk3368-spdif 6I S  PmclkhclkGtxdefaultH zdisabledi2s-2ch@ff890000(rockchip,rk3368-i2srockchip,rk3066-i2s (Pi2s_clki2s_hclkI T GGtxrx zdisabledi2s-8ch@ff898000(rockchip,rk3368-i2srockchip,rk3066-i2s 5Pi2s_clki2s_hclkI R GGtxrxdefaultI zdisablediommu@ff900800rockchip,iommu I  PaclkifaceJ  zdisablediommu@ff914000rockchip,iommu @P I  PaclkifaceJ  zdisablediommu@ff930300rockchip,iommu I  PaclkifaceJ  zdisablediommu@ff9a0440rockchip,iommu @@@ I  Paclkiface zdisablediommu@ff9a0800rockchip,iommu  I  Paclkiface zdisabledqos@ffad0000rockchip,rk3368-qossyscon 9qos@ffad0080rockchip,rk3368-qossyscon :qos@ffad0100rockchip,rk3368-qossyscon ;qos@ffad0180rockchip,rk3368-qossyscon <qos@ffad0200rockchip,rk3368-qossyscon =qos@ffad0280rockchip,rk3368-qossyscon >qos@ffad0300rockchip,rk3368-qossyscon ?qos@ffad0380rockchip,rk3368-qossyscon @qos@ffad0400rockchip,rk3368-qossyscon Aqos@ffae0000rockchip,rk3368-qossyscon Bqos@ffae0100rockchip,rk3368-qossyscon Cqos@ffae0180rockchip,rk3368-qossyscon Dqos@ffaf0000rockchip,rk3368-qossyscon Eefuse@ffb00000rockchip,rk3368-efuse +I q Ppclk_efusecpu-leakage@17temp-adjust@1finterrupt-controller@ffb71000 arm,gic-400@ @ `   pinctrlrockchip,rk3368-pinctrl-+K+8gpio@ff750000rockchip,gpio-bankuI @ Q?O/gpio@ff780000rockchip,gpio-bankxI A R?Ogpio@ff790000rockchip,gpio-bankyI B S?O4gpio@ff7a0000rockchip,gpio-bankzI C T?O#pcfg-pull-up[Mpcfg-pull-downhpcfg-pull-nonewLpcfg-pull-none-12maw Nemmcemmc-clkLemmc-cmdMemmc-pwrMemmc-bus1Memmc-bus4@MMMMemmc-bus8MMMMMMMMgmacrgmii-pinsLLLN N NNN NLLLLLLrmii-pinsLLLN N NLLLLi2c0i2c0-xfer LL.i2c1i2c1-xfer LL3i2c2i2c2-xfer  LL"i2c3i2c3-xfer LL$i2c4i2c4-xfer LL%i2c5i2c5-xfer LL&i2si2s-8ch-bus L LLLLLLLLIpwm0pwm0-pinL5pwm1pwm1-pinL6pwm3pwm3-pinL7sdio0sdio0-bus1Msdio0-bus4@MMMMsdio0-cmdMsdio0-clkLsdio0-cdMsdio0-wpMsdio0-pwrMsdio0-bkpwrMsdio0-intMsdmmcsdmmc-clk L sdmmc-cmd M sdmmc-cd Msdmmc-bus1Msdmmc-bus4@MMMM spdifspdif-txLHspi0spi0-clkMspi0-cs0Mspi0-cs1Mspi0-txMspi0-rxMspi1spi1-clkMspi1-cs0Mspi1-cs1Mspi1-rxMspi1-txMspi2spi2-clk Mspi2-cs0 M!spi2-rx M spi2-tx Mtsadcotp-pinL+otp-outL,uart0uart0-xfer MLuart0-ctsLuart0-rtsLuart1uart1-xfer MLuart1-ctsLuart1-rtsLuart2uart2-xfer ML8uart3uart3-xfer MLuart3-ctsLuart3-rtsLuart4uart4-xfer MLuart4-ctsLuart4-rtsLkeyspwr-keyLOpmicpmic-sleepL1pmic-intM0chosenserial4:115200n8memory@0@memorygpio-keys gpio-keysdefaultOkey-power l/ GPIO Powertvcc-sys-regulatorregulator-fixed$vcc_sysLK@ LK@2 compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3i2c0i2c1i2c2i2c3i2c4i2c5serial0serial1serial2serial3serial4spi0spi1spi2mmc0mmc1cpudevice_typeregenable-method#cooling-cellsphandleinterruptsinterrupt-affinityclock-frequencyclock-output-names#clock-cellsmax-frequencyclocksclock-namesfifo-depthresetsreset-namesstatusbus-widthcap-mmc-highspeedcap-sd-highspeedcard-detect-delayno-sdiosd-uhs-sdr12sd-uhs-sdr25pinctrl-namespinctrl-0rockchip,default-sample-phasevmmc-supplyvqmmc-supplymmc-hs200-1_8vno-sdnon-removable#io-channel-cellspower-gpiostouchscreen-size-xtouchscreen-size-ysilead,max-fingersreg-shiftreg-io-width#dma-cellsarm,pl330-broken-no-flushparm,pl330-periph-burstpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicepinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-temprockchip,hw-tshut-moderockchip,hw-tshut-polarityinterrupt-namesrockchip,grfdr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizerockchip,system-power-controllervcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-name#pwm-cells#mbox-cells#power-domain-cellspm_qosoffsetmode-normalmode-recoverymode-bootloadermode-loader#reset-cellsdmasdma-names#sound-dai-cellspower-domains#iommu-cellsrockchip,disable-mmu-resetinterrupt-controller#interrupt-cellsrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthrockchip,pinsstdout-pathlabellinux,codewakeup-source n8g(gProckchip,r88rockchip,rk3368 + 7Rockchip R88aliases=/pinctrl/gpio@ff750000C/pinctrl/gpio@ff780000I/pinctrl/gpio@ff790000O/pinctrl/gpio@ff7a0000U/i2c@ff650000Z/i2c@ff660000_/i2c@ff140000d/i2c@ff150000i/i2c@ff160000n/i2c@ff170000s/serial@ff180000{/serial@ff190000/serial@ff690000/serial@ff1b0000/serial@ff1c0000/spi@ff110000/spi@ff120000/spi@ff130000/ethernet@ff290000/mmc@ff0d0000/mmc@ff0f0000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1core2core3 cpu@0cpuarm,cortex-a53pscicpu@1cpuarm,cortex-a53pscicpu@2cpuarm,cortex-a53pscicpu@3cpuarm,cortex-a53psci cpu@100cpuarm,cortex-a53pscicpu@101cpuarm,cortex-a53pscicpu@102cpuarm,cortex-a53pscicpu@103cpuarm,cortex-a53psciarm-pmuarm,cortex-a53-pmu`pqrstuvw  psci arm,psci-0.2smctimerarm,armv8-timer0   oscillator fixed-clockn6%xin24m8Dmmc@ff0c00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @Eр S  D r vZbiuciuciu-driveciu-samplef q xreset disabledmmc@ff0d00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc @Eр S  E s wZbiuciuciu-driveciu-samplef !q xresetokay E   default  !-mmc@ff0f00000rockchip,rk3368-dw-mshcrockchip,rk3288-dw-mshc@Eр S  G u yZbiuciuciu-driveciu-samplef #q xresetokay: default saradc@ff100000rockchip,saradc $LS I [Zsaradcapb_pclkq W xsaradc-apbokay^spi@ff110000(rockchip,rk3368-spirockchip,rk3066-spiS A RZspiclkapb_pclk , default+ disabledspi@ff120000(rockchip,rk3368-spirockchip,rk3066-spiS B SZspiclkapb_pclk - default+ disabledspi@ff130000(rockchip,rk3368-spirockchip,rk3066-spiS C TZspiclkapb_pclk ) default !+ disabledi2c@ff140000(rockchip,rk3368-i2crockchip,rk3288-i2c >+Zi2cS N default" disabledi2c@ff150000(rockchip,rk3368-i2crockchip,rk3288-i2c ?+Zi2cS O default# disabledi2c@ff160000(rockchip,rk3368-i2crockchip,rk3288-i2c @+Zi2cS P default$ disabledi2c@ff170000(rockchip,rk3368-i2crockchip,rk3288-i2c A+Zi2cS Q default% disabledserial@ff180000&rockchip,rk3368-uartsnps,dw-apb-uartn6S M UZbaudclkapb_pclk 7jt disabledserial@ff190000&rockchip,rk3368-uartsnps,dw-apb-uartn6S N VZbaudclkapb_pclk 8jt disabledserial@ff1b0000&rockchip,rk3368-uartsnps,dw-apb-uartn6S P XZbaudclkapb_pclk :jt disabledserial@ff1c0000&rockchip,rk3368-uartsnps,dw-apb-uartn6S Q YZbaudclkapb_pclk ;jt disableddma-controller@ff250000arm,pl330arm,primecell%@S  Zapb_pclkthermal-zonescpu-thermald&tripscpu_alert0$passive'cpu_alert18passive(cpu_crits criticalcooling-mapsmap0 '0map1 (0 gpu-thermald&tripsgpu_alert08passive)gpu_crit8 criticalcooling-mapsmap0 )0tsadc@ff280000rockchip,rk3368-tsadc( %S H ZZtsadcapb_pclkq  xtsadc-apb initdefaultsleep*+'*1Gsokay^u&ethernet@ff290000rockchip,rk3368-gmac) macirq,8S  f g c ]MZstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macokay-rmiioutput .  'B@ default/ 0usb@ff500000 generic-ehciP S okayusb@ff5800002rockchip,rk3368-usbrockchip,rk3066-usbsnps,dwc2X S Zotghost#5D@@ okaydma-controller@ff600000arm,pl330arm,primecell`@S  Zapb_pclkEi2c@ff650000(rockchip,rk3368-i2crockchip,rk3288-i2ceS LZi2c < default0+okaysyr827@40silergy,syr827@Spvdd_cpu, 4`@1rtc@51haoyu,hym8563Q8%xin32kUi2c@ff660000(rockchip,rk3368-i2crockchip,rk3288-i2cf =+Zi2cS M default2 disabledpwm@ff680000(rockchip,rk3368-pwmrockchip,rk3288-pwmh default3S _ disabledpwm@ff680010(rockchip,rk3368-pwmrockchip,rk3288-pwmh default4S _ disabledpwm@ff680020(rockchip,rk3368-pwmrockchip,rk3288-pwmh S _ disabledpwm@ff680030(rockchip,rk3368-pwmrockchip,rk3288-pwmh0 default5S _ disabledserial@ff690000&rockchip,rk3368-uartsnps,dw-apb-uartiS O WZbaudclkapb_pclk 9 default6jtokaymbox@ff6b0000rockchip,rk3368-mailboxk0S E Zpclk_mailbox disabledpower-management@ff730000&rockchip,rk3368-pmusysconsimple-mfdspower-controller!rockchip,rk3368-power-controller(+Hpower-domain@12 S       c h g n o r s f d d h i l k j n m$<789:;<=>?(power-domain@14 S  o p <@AB(power-domain@16S @<C(syscon@ff738000)rockchip,rk3368-pmugrfsysconsimple-mfdsIio-domains&rockchip,rk3368-pmu-io-voltage-domainokayCNreboot-modesyscon-reboot-modeY`RBlRBzRB RBclock-controller@ff760000rockchip,rk3368-cruvSDZxin24m,8 syscon@ff770000&rockchip,rk3368-grfsysconsimple-mfdw,io-domains"rockchip,rk3368-io-voltage-domainokaywatchdog@ff800000 rockchip,rk3368-wdtsnps,dw-wdtS p Ookaytimer@ff810000,rockchip,rk3368-timerrockchip,rk3288-timer  BS a U Zpclktimerspdif@ff880000rockchip,rk3368-spdif 6S S  ZmclkhclkEtx defaultF disabledi2s-2ch@ff890000(rockchip,rk3368-i2srockchip,rk3066-i2s (Zi2s_clki2s_hclkS T EEtxrx disabledi2s-8ch@ff898000(rockchip,rk3368-i2srockchip,rk3066-i2s 5Zi2s_clki2s_hclkS R EEtxrx defaultG disablediommu@ff900800rockchip,iommu S  ZaclkifaceH  disablediommu@ff914000rockchip,iommu @P S  ZaclkifaceH  disablediommu@ff930300rockchip,iommu S  ZaclkifaceH  disablediommu@ff9a0440rockchip,iommu @@@ S  Zaclkiface disablediommu@ff9a0800rockchip,iommu  S  Zaclkiface disabledqos@ffad0000rockchip,rk3368-qossyscon 7qos@ffad0080rockchip,rk3368-qossyscon 8qos@ffad0100rockchip,rk3368-qossyscon 9qos@ffad0180rockchip,rk3368-qossyscon :qos@ffad0200rockchip,rk3368-qossyscon ;qos@ffad0280rockchip,rk3368-qossyscon <qos@ffad0300rockchip,rk3368-qossyscon =qos@ffad0380rockchip,rk3368-qossyscon >qos@ffad0400rockchip,rk3368-qossyscon ?qos@ffae0000rockchip,rk3368-qossyscon @qos@ffae0100rockchip,rk3368-qossyscon Aqos@ffae0180rockchip,rk3368-qossyscon Bqos@ffaf0000rockchip,rk3368-qossyscon Cefuse@ffb00000rockchip,rk3368-efuse +S q Zpclk_efusecpu-leakage@17temp-adjust@1finterrupt-controller@ffb71000 arm,gic-4000E@ @ `   pinctrlrockchip,rk3368-pinctrl,VI+cgpio@ff750000rockchip,gpio-bankuS @ Qjz0ERgpio@ff780000rockchip,gpio-bankxS A Rjz0Egpio@ff790000rockchip,gpio-bankyS B Sjz0EPgpio@ff7a0000rockchip,gpio-bankzS C Tjz0E.pcfg-pull-upLpcfg-pull-downpcfg-pull-noneMpcfg-pull-none-12ma Nemmcemmc-clkJemmc-cmdKemmc-pwrLemmc-bus1Lemmc-bus4@LLLLemmc-bus8KKKKKKKKemmc-resetMOgmacrgmii-pinsMMMN N NNN NMMMMMMrmii-pinsMMMN N NMMMM/i2c0i2c0-xfer MM0i2c1i2c1-xfer MM2i2c2i2c2-xfer  MM"i2c3i2c3-xfer MM#i2c4i2c4-xfer MM$i2c5i2c5-xfer MM%i2si2s-8ch-bus M MMMMMMMMGpwm0pwm0-pinM3pwm1pwm1-pinM4pwm3pwm3-pinM5sdio0sdio0-bus1Lsdio0-bus4@LLLLsdio0-cmdL sdio0-clkM sdio0-cdLsdio0-wpLsdio0-pwrLsdio0-bkpwrLsdio0-intLsdmmcsdmmc-clk Msdmmc-cmd Lsdmmc-cd Lsdmmc-bus1Lsdmmc-bus4@LLLLspdifspdif-txMFspi0spi0-clkLspi0-cs0Lspi0-cs1Lspi0-txLspi0-rxLspi1spi1-clkLspi1-cs0Lspi1-cs1Lspi1-rxLspi1-txLspi2spi2-clk Lspi2-cs0 L!spi2-rx L spi2-tx Ltsadcotp-pinM*otp-outM+uart0uart0-xfer LMuart0-ctsMuart0-rtsMuart1uart1-xfer LMuart1-ctsMuart1-rtsMuart2uart2-xfer LM6uart3uart3-xfer LMuart3-ctsMuart3-rtsMuart4uart4-xfer LMuart4-ctsMuart4-rtsMpcfg-pull-none-drv-8maJpcfg-pull-up-drv-8maKirir-intLTkeyspwr-keyLQledsstby-pwren Mled-ctlMSsdiowifi-reg-onMWbt-rstMVusbhost-vbus-drvMXchosenserial2:115200n8memory@0memory@emmc-pwrseqmmc-pwrseq-emmcO default Pgpio-keys gpio-keys defaultQkey-power R GPIO Powertgpio-leds gpio-ledsled-0 .r88:green:led defaultSir-receivergpio-ir-receiver . defaultTsdio-pwrseqmmc-pwrseq-simpleSU Zext_clock defaultVW.. vcc18-regulatorregulator-fixedpvcc_18w@w@1vcc-host-regulatorregulator-fixed R defaultX pvcc_host1vcc-io-regulatorregulator-fixedpvcc_io2Z2Z1vcc-lan-regulatorregulator-fixedpvcc_lan2Z2Z-vcc-sys-regulatorregulator-fixedpvcc_sysLK@LK@1vccio-wl-regulatorregulator-fixed pvccio_wl2Z2Zvdd-10-regulatorregulator-fixedpvdd_10B@B@1 compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3i2c0i2c1i2c2i2c3i2c4i2c5serial0serial1serial2serial3serial4spi0spi1spi2ethernet0mmc0mmc1cpudevice_typeregenable-method#cooling-cellsphandleinterruptsinterrupt-affinityclock-frequencyclock-output-names#clock-cellsmax-frequencyclocksclock-namesfifo-depthresetsreset-namesstatusassigned-clocksassigned-clock-parentsbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablepinctrl-namespinctrl-0vmmc-supplyvqmmc-supplycap-mmc-highspeed#io-channel-cellsvref-supplyreg-shiftreg-io-width#dma-cellsarm,pl330-broken-no-flushparm,pl330-periph-burstpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicepinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-temprockchip,hw-tshut-moderockchip,hw-tshut-polarityinterrupt-namesrockchip,grfphy-supplyphy-modeclock_in_outsnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaydr_modeg-np-tx-fifo-sizeg-rx-fifo-sizeg-tx-fifo-sizefcs,suspend-voltage-selectorregulator-nameregulator-enable-ramp-delayregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onvin-supply#pwm-cells#mbox-cells#power-domain-cellspm_qospmu-supplyvop-supplyoffsetmode-normalmode-recoverymode-bootloadermode-loader#reset-cellsaudio-supplygpio30-supplygpio1830-supplywifi-supplydmasdma-names#sound-dai-cellspower-domains#iommu-cellsrockchip,disable-mmu-resetinterrupt-controller#interrupt-cellsrockchip,pmurangesgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthrockchip,pinsstdout-pathreset-gpioswakeup-sourcelabellinux,codeenable-active-high 48( 4$openailab,eaidk-610rockchip,rk3399 +7OPEN AI LAB EAIDK-610aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth okay+;Rinput_jrgmiidefault s  'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay+!"default "#$0wifi@1brcm,bcm4329-fmac % 1host-wakedefault&mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр+>  Lbiuciuciu-driveciu-samplezresetokayS e%ndefault '()mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 y+N> Nclk_xinclk_ahbemmc_cardclocky* ~phy_arasanokay"usb@fe380000 generic-ehci8+y,~usbokayusb@fe3a0000 generic-ohci:+y,~usbokayusb@fe3c0000 generic-ehci<-y.~usbokayusb@fe3e0000 generic-ohci> -y.~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy/0~usb2-phyusb3-phy utmi_wide$okayFport+endpoint@0V1usb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty23~usb2-phyusb3-phy utmi_wide$okaydp@fec00000rockchip,rk3399-cdn-dp +r>  ruocore-clkpclkspdifgrfy45 HJspdifdptxapbcoref disabledportsport+endpoint@0V6endpoint@1V7interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itswppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay8crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c+A> AU i2cpclk;default9+okay,audio-codec@1arealtek,rt5651Ymclk : % fi2c@ff120000rockchip,rk3399-i2c+B> BV i2cpclk#default;+ disabledi2c@ff130000rockchip,rk3399-i2c+C> CW i2cpclk"default<+okayi2c@ff140000rockchip,rk3399-i2c+D> DX i2cpclk&default=+ disabledi2c@ff150000rockchip,rk3399-i2c+E> EY i2cpclk%default>+ disabledi2c@ff160000rockchip,rk3399-i2c+F> FZ i2cpclk$default?+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc default @ABokaybluetoothbrcm,bcm4345c5Clpo D +% =% L`default EFGVHbIserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb defaultJ disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd defaultKokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke defaultL disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDoM M ttxrxdefaultNOPQ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5oM M ttxrxdefaultRSTU+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4oMMttxrxdefaultVWXY+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCoMMttxrxdefaultZ[\]+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclko^^ ttxrxdefault_`ab+ disabledthermal-zonescpu-thermal~dctripscpu_alert0ppassivedcpu_alert1$passiveecpu_crits criticalcooling-mapsmap0dmap1eHgpu-thermal~dctripsgpu_alert0$passivefgpu_crits criticalcooling-mapsmap0f gtsadc@ff260000rockchip,rk3399-tsadc&a+O> qOdtsadcapb_pclk tsadc-apbsinitdefaultsleephihokay5cqos@ffa58000rockchip,rk3399-qossyscon qqos@ffa5c000rockchip,rk3399-qossyscon rqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon uqos@ffa70080rockchip,rk3399-qossyscon vqos@ffa74000rockchip,rk3399-qossyscon@ sqos@ffa76000rockchip,rk3399-qossyscon` tqos@ffa90000rockchip,rk3399-qossyscon wqos@ffa98000rockchip,rk3399-qossyscon jqos@ffaa0000rockchip,rk3399-qossyscon xqos@ffaa0080rockchip,rk3399-qossyscon yqos@ffaa8000rockchip,rk3399-qossyscon zqos@ffaa8080rockchip,rk3399-qossyscon {qos@ffab0000rockchip,rk3399-qossyscon kqos@ffab0080rockchip,rk3399-qossyscon lqos@ffab8000rockchip,rk3399-qossyscon mqos@ffac0000rockchip,rk3399-qossyscon nqos@ffac0080rockchip,rk3399-qossyscon oqos@ffac8000rockchip,rk3399-qossyscon |qos@ffac8080rockchip,rk3399-qossyscon }qos@ffad0000rockchip,rk3399-qossyscon ~qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon ppower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerP+power-domain@34"djPpower-domain@33!dklPpower-domain@31dmPpower-domain@32  dnoPpower-domain@35#dpPpower-domain@25lPpower-domain@23dqPpower-domain@22fdrPpower-domain@27LdsPpower-domain@28dtPpower-domain@8~}Ppower-domain@9 Ppower-domain@24duvPpower-domain@15P+power-domain@21rdwPpower-domain@19dxyPpower-domain@20dz{Ppower-domain@16P+power-domain@17d|}Ppower-domain@18d~Psyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokaykspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf default disabledi2c@ff3c0000rockchip,rk3399-i2c<+ >   i2cpclk9default+okaypmic@1brockchip,rk808 defaultzxin32krk808-clkout2HHHHHHHH H H #HbCregulatorsDCDC_REG1 0vdd_center ? q Wp oq  regulator-state-mem DCDC_REG2 0vdd_cpu_l ? q Wp oq   regulator-state-mem DCDC_REG3 0vcc_ddr  regulator-state-mem DCDC_REG4 0vcc_1v8 ?w@ Ww@  Iregulator-state-mem  w@LDO_REG1 0vcc1v8_dvp ?w@ Ww@  regulator-state-mem LDO_REG2 0vcc2v8_dvp ?* W*  regulator-state-mem LDO_REG3 0vcc1v8_pmu ?w@ Ww@  regulator-state-mem  w@LDO_REG4 0vcc_sdio ?w@ W-  regulator-state-mem  -LDO_REG5 0vcca3v0_codec ?- W-  regulator-state-mem LDO_REG6 0vcc_1v5 ?` W`  regulator-state-mem  `LDO_REG7 0vcca1v8_codec ?w@ Ww@  regulator-state-mem LDO_REG8 0vcc_3v0 ?- W-  regulator-state-mem  -SWITCH_REG1 0vcc3v3_s3  regulator-state-mem SWITCH_REG2 0vcc3v3_s0  regulator-state-mem regulator@40silergy,syr827@  0vdd_cpu_bdefault ? 4 W` o   Hregulator-state-mem regulator@41silergy,syr828A  0vdd_gpudefault ? 4 W` o   Hregulator-state-mem i2c@ff3d0000rockchip,rk3399-i2c=+ >   i2cpclk8default+okayXtypec-portc@22 fcs,fusb302" default ports+port@0endpoint@0V1connectorusb-c-connector +dual 5USB-Cports+port@0endpointVport@1endpointVi2c@ff3e0000rockchip,rk3399-i2c>+ >   i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB ;defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB ;default disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  ;default disabledpwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 ;default disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk Fiommu@ff650800rockchip,iommue@s aclkiface Mvideo-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore F iommu@ff660480rockchip,iommu f@f@u aclkiface  Miommu@ff670800rockchip,iommug@* aclkiface M disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  Z e apb_pclk^dma-controller@ff6e0000arm,pl330arm,primecelln@  Z e apb_pclkMclock-controller@ff750000rockchip,rk3399-pmucruuxin24m |+>(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m |+@BCxD>#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay    mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay+host-port  1linestateokay_,otg-port 0ghj1otg-bvalidotg-idlinestateokay/portendpointVusb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay-host-port  1linestateokay_.otg-port 0lmo1otg-bvalidotg-idlinestateokay2phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay*pcie-phyrockchip,rk3399-pcie-phyrefclk phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref+~>Luphyuphy-pipeuphy-tcphyokaydp-port 4usb3-port  0portendpointVphy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref+> Muphyuphy-pipeuphy-tcphyokaydp-port 5usb3-port 3watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBo^ttx mclkhclkUdefaultf disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'o^^ttxrxi2s_clki2s_hclkVbclk_onbclk_offf disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(o^^ttxrxi2s_clki2s_hclkWdefaultfokay  i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)o^^ttxrxi2s_clki2s_hclkXfokayvop@ff8f0000rockchip,rk3399-vop-lit w+>ׄaclk_vopdclk_vophclk_vop F axiahbdclkokayport+endpoint@0Vendpoint@1Vendpoint@2Vendpoint@3Vendpoint@4V7iommu@ff8f3f00rockchip,iommu?w aclkiface Mokayvop@ff900000rockchip,rk3399-vop-big v+>ׄaclk_vopdclk_vophclk_vop F axiahbdclkokayport+endpoint@0Vendpoint@1Vendpoint@2Vendpoint@3Vendpoint@4V6iommu@ff903f00rockchip,iommu?v aclkiface Mokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Fy~dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface M 'isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Fy~dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface M 'hdmi-soundsimple-audio-card Bi2s [ uhdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi (tqpoiahbisfrcecgrfreffokay defaultports+port@0+endpoint@0Vendpoint@1Vport@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0Vendpoint@1Vport@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0Vendpoint@1Vport@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0Vendpoint@1Vport@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P#okay gpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr   %gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Dgpio@ff788000rockchip,gpio-bankxQ    gpio@ff790000rockchip,gpio-bankyR   :pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k &cifcif-clkin & cif-clkouta & edpedp-hpd &gmacrgmii-pins &    rmii-pins &     i2c0i2c0-xfer &i2c1i2c1-xfer &9i2c2i2c2-xfer &;i2c3i2c3-xfer &<i2c4i2c4-xfer &  i2c5i2c5-xfer &  =i2c6i2c6-xfer &  >i2c7i2c7-xfer &?i2c8i2c8-xfer &i2s0i2s0-2ch-bus` &i2s0-2ch-bus-bclk-off` &i2s0-8ch-bus &i2s0-8ch-bus-bclk-off &i2s1i2s1-2ch-busP &i2s1-2ch-bus-bclk-offP &sdio0sdio0-bus1 &sdio0-bus4@ &"sdio0-cmd &#sdio0-clk &$sdio0-cd &sdio0-pwr &sdio0-bkpwr &sdio0-wp &sdio0-int &sdmmcsdmmc-bus1 &sdmmc-bus4@ &   )sdmmc-clk & 'sdmmc-cmd & (sdmmc-cd &sdmmc-wp &suspendap-pwroff &ddrio-pwroff &spdifspdif-bus &spdif-bus-1 &spi0spi0-clk &Nspi0-cs0 &Qspi0-cs1 &spi0-tx &Ospi0-rx &Pspi1spi1-clk & Rspi1-cs0 & Uspi1-rx &Tspi1-tx &Sspi2spi2-clk & Vspi2-cs0 & Yspi2-rx & Xspi2-tx & Wspi3spi3-clk &spi3-cs0 &spi3-rx &spi3-tx &spi4spi4-clk &Zspi4-cs0 &]spi4-rx &\spi4-tx &[spi5spi5-clk &_spi5-cs0 &bspi5-rx &aspi5-tx &`testclktest-clkout0 &test-clkout1 &test-clkout2 &tsadcotp-pin &hotp-out &iuart0uart0-xfer &@uart0-cts &Auart0-rts &Buart1uart1-xfer &  Juart2auart2a-xfer & uart2buart2b-xfer &uart2cuart2c-xfer &Kuart3uart3-xfer &Luart3-cts &uart3-rts &uart4uart4-xfer &uarthdcpuarthdcp-xfer &pwm0pwm0-pin &pwm0-pin-pull-down &vop0-pwm-pin &vop1-pwm-pin &pwm1pwm1-pin &pwm1-pin-pull-down &pwm2pwm2-pin &pwm2-pin-pull-down &pwm3apwm3a-pin &pwm3bpwm3b-pin &hdmihdmi-i2c-xfer &hdmi-cec &pciepci-clkreqn-cpm &pci-clkreqnb-cpm &buttonspwrbtn &btbt-enable-h & Gbt-host-wake-l &Ebt-wake-l &Ffusb302xfusb0-int &lcd-panellcd-panel-reset &ledswork-led-pin &user-led-pin & heartbeat-led-pin & wlan-led-pin &bt-led-pin &pmicpmic-int-l &vsel1-pin &vsel2-pin &rt5651rt5640-hpcon &sdio-pwrseqwifi-enable-h & usb-typecvcc5v0_typec_en &usb2vcc5v0-host3-en &vcc5v0-host1-en &wifiwifi-host-wake-l &&opp-table-0operating-points-v2 4 opp00 ?Q F  T@opp01 ?#F F opp02 ?0, F P Popp03 ?< FHHopp04 ?G FB@B@opp05 ?Tfr F**opp-table-1operating-points-v2 4opp00 ?Q F  T@opp01 ?#F F opp02 ?0, F opp03 ?< F Y Yopp04 ?G F~~opp05 ?Tfr Fopp06 ?_" Fopp07 ?kI FOOopp-table-2operating-points-v2opp00 ?  F 0opp01 ?@ F 0opp02 ?ׄ F 0opp03 ?e F Y Y0opp04 ?#F FHH0opp05 ?/ F0backlightpwm-backlight ea j  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ |external-gmac-clock fixed-clocksY@ clkin_gmacdc-12vregulator-fixed 0dc_12v   ? Wgpio-keys gpio-keys defaultkey-power d h% 5GPIO Key Power tleds gpio-ledsdefaultled-0 5blue:work on h%led-1 5read:user off h% led-2 5green:heartbeat heartbeat h% led-3 5yellow:wlan hD phy0tx offled-4 5blue:bt hD hci0-power offrt5651-soundsimple-audio-card urealtek,rt5651-codec Bi2s [- MicrophoneMic JackHeadphoneHeadphone JackH Mic JackMICBIAS1IN1PMic JackHeadphone JackHPOLHeadphone JackHPORsimple-audio-card,cpu simple-audio-card,codec sdio-pwrseqmmc-pwrseq-simpleC ext_clockdefault % !vcc1v8-s3regulator-fixed 0vcc1v8_s3   ?w@ Ww@ I8vcc3v3-sysregulator-fixed 0vcc3v3_sys   ?2Z W2Z Hvcc5v0-sysregulator-fixed 0vcc5v0_sys   ?LK@ WLK@ vcc5v0-host1-regulatorregulator-fixed ! ~%default 0vcc5v0_host1  vcc5v0-host3-regulatorregulator-fixed ! ~%default 0vcc5v0_host3  vcc5v0-typec-regulatorregulator-fixed ! ~:default 0vcc5v0_typec  Hvdd-logregulator-fixed 0vdd_log   ?  W  compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wparasan,soc-ctl-syscondisable-cqe-dcmddr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirkusb-role-switchremote-endpoint#sound-dai-cellsmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nshp-det-gpiospk-con-gpioreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supplyvbus-supplydata-rolelabel#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmorientation-switchrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nspwmsbrightness-levelsdefault-brightness-levelautorepeatdebounce-intervallinux,codedefault-statelinux,default-triggersimple-audio-card,widgetssimple-audio-card,routingreset-gpiosenable-active-high 8@( $rockchip,rk3399-evbrockchip,rk3399 +!7Rockchip RK3399 Evaluation Boardaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci(dB R_@q~@ cpu@1cpuarm,cortex-a53psci(dB R_@q~@ cpu@2cpuarm,cortex-a53psci(dB R_@q~@ cpu@3cpuarm,cortex-a53psci(dB R_@q~@ cpu@100cpuarm,cortex-a72psci (B R_@q~@ thermal-idle'cpu@101cpuarm,cortex-a72psci (B R_@q~@ thermal-idle'l2-cache-cluster0cacheTa@s l2-cache-cluster1cacheTa@s idle-statespscicpu-sleeparm,idle-state.x? cluster-sleeparm,idle-state.? display-subsystemrockchip,display-subsystemP memory-controllerrockchip,rk3399-dmcVcrdmc_clk ~disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24m{pcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ Graclkaclk-perfhclkpm0123syslegacyclient`+9H P,Upcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-38_8f(mcoremgmtmgmt-stickypipepmpclkaclk ~disabled y defaultinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Graclkaclk-perfhclkpm8f(mcoremgmtmgmt-stickypipepmpclkaclk P,Upcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default ~disabledethernet@fe300000rockchip,rk3399-gmac0 macirq8ighfjfMrstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macf mstmmaceth~okay 2input?Jrgmiidefault Sc y'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mrbiuciuciu-driveciu-samplefymreset ~disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр   Lrbiuciuciu-driveciu-samplefzmreset ~disabledmmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13  N Nrclk_xinclk_ahbemmc_cardclockP Uphy_arasan~okay(}usb@fe380000 generic-ehci8P Uusb~okayusb@fe3a0000 generic-ohci:P Uusb~okayusb@fe3c0000 generic-ehci<!P"Uusb~okayusb@fe3e0000 generic-ohci> !P"Uusb~okaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM rapb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M rapb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M rapb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M rapb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL rapb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL rapb_pclkusb@fe800000rockchip,rk3399-dwc3+_0Grref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clkf% musb3-otg ~disabledusb@fe800000 snps,dwc3irrefbus_earlysuspend6otgP#$Uusb2-phyusb3-phy >utmi_wideG_ ~disabledusb@fe900000rockchip,rk3399-dwc3+_0Grref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clkf& musb3-otg ~disabledusb@fe900000 snps,dwc3nrrefbus_earlysuspend6otgP%&Uusb2-phyusb3-phy >utmi_wideG_ ~disableddp@fec00000rockchip,rk3399-cdn-dp  r  ruorcore-clkpclkspdifgrfP'( fHJmspdifdptxapbcore ~disabledportsport+endpoint@0)endpoint@1*interrupt-controller@fee00000 arm,gic-v3+_P  msi-controller@fee20000arm,gic-v3-its ppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc> Persaradcapb_pclkf msaradc-apb ~disabledcrypto@ff8b0000rockchip,rk3399-crypto@rhclk_masterhclk_slavesclkfmmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@rhclk_masterhclk_slavesclkfmmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c A AU ri2cpclk;default++ ~disabledi2c@ff120000rockchip,rk3399-i2c B BV ri2cpclk#default,+ ~disabledi2c@ff130000rockchip,rk3399-i2c C CW ri2cpclk"default-+ ~disabledi2c@ff140000rockchip,rk3399-i2c D DX ri2cpclk&default.+ ~disabledi2c@ff150000rockchip,rk3399-i2c E EY ri2cpclk%default/+ ~disabledi2c@ff160000rockchip,rk3399-i2c F FZ ri2cpclk$default0+ ~disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`rbaudclkapb_pclkc2<default1 ~disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRarbaudclkapb_pclkb2<default2 ~disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbrbaudclkapb_pclkd2<default3~okayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcrbaudclkapb_pclke2<default4 ~disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[rspiclkapb_pclkDI5 5 Ntxrxdefault6789+ ~disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\rspiclkapb_pclk5I5 5 Ntxrxdefault:;<=+ ~disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]rspiclkapb_pclk4I55Ntxrxdefault>?@A+ ~disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^rspiclkapb_pclkCI55NtxrxdefaultBCDE+ ~disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_rspiclkapb_pclkIFF NtxrxdefaultGHIJ+ ~disabledthermal-zonescpu-thermalXdn|Ktripscpu_alert0ppassiveLcpu_alert1$passiveMcpu_crits criticalcooling-mapsmap0Lmap1MHgpu-thermalXdn|Ktripsgpu_alert0$passiveNgpu_crits criticalcooling-mapsmap0N Otsadc@ff260000rockchip,rk3399-tsadc&a O qOdrtsadcapb_pclkf mtsadc-apbsinitdefaultsleepPQP ~disabledKqos@ffa58000rockchip,rk3399-qossyscon Yqos@ffa5c000rockchip,rk3399-qossyscon Zqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon ]qos@ffa70080rockchip,rk3399-qossyscon ^qos@ffa74000rockchip,rk3399-qossyscon@ [qos@ffa76000rockchip,rk3399-qossyscon` \qos@ffa90000rockchip,rk3399-qossyscon _qos@ffa98000rockchip,rk3399-qossyscon Rqos@ffaa0000rockchip,rk3399-qossyscon `qos@ffaa0080rockchip,rk3399-qossyscon aqos@ffaa8000rockchip,rk3399-qossyscon bqos@ffaa8080rockchip,rk3399-qossyscon cqos@ffab0000rockchip,rk3399-qossyscon Sqos@ffab0080rockchip,rk3399-qossyscon Tqos@ffab8000rockchip,rk3399-qossyscon Uqos@ffac0000rockchip,rk3399-qossyscon Vqos@ffac0080rockchip,rk3399-qossyscon Wqos@ffac8000rockchip,rk3399-qossyscon dqos@ffac8080rockchip,rk3399-qossyscon eqos@ffad0000rockchip,rk3399-qossyscon fqos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon Xpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller+power-domain@34" Rpower-domain@33! STpower-domain@31 Upower-domain@32   VWpower-domain@35# Xpower-domain@25lpower-domain@23 Ypower-domain@22f Zpower-domain@27L [power-domain@28 \power-domain@8~}power-domain@9 power-domain@24 ]^power-domain@15+power-domain@21r _power-domain@19 `apower-domain@20 bcpower-domain@16+power-domain@17 depower-domain@18 fsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domain ~disabledspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5ggrspiclkapb_pclk<defaulthijk+ ~disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7gg"rbaudclkapb_pclkf2<defaultl ~disabledi2c@ff3c0000rockchip,rk3399-i2c< g  g g ri2cpclk9defaultm+~okaypmic@1brockchip,rk808 ndefaulto4rk808-clkout1rk808-clkout2BpNpZpfprp~ppppppqregulatorsDCDC_REG1vdd_log qpq*>regulator-state-memPh DCDC_REG2 vdd_cpu_l qpq*>regulator-state-memDCDC_REG3vcc_ddr*>regulator-state-memPDCDC_REG4vcc_1v8w@w@*>regulator-state-memPhw@LDO_REG1 vcc1v8_dvpw@w@*>regulator-state-memLDO_REG2 vcc3v0_tp--*>regulator-state-memLDO_REG3 vcc1v8_pmuw@w@*>qregulator-state-memPhw@LDO_REG4vcc_sdw@-*>regulator-state-memPh-LDO_REG5vcca3v0_codec--*>regulator-state-memLDO_REG6vcc_1v5``*>regulator-state-memPh`LDO_REG7vcca1v8_codecw@w@*>regulator-state-memLDO_REG8vcc_3v0--*>regulator-state-memPh-SWITCH_REG1 vcc3v3_s3*>regulator-state-memPSWITCH_REG2 vcc3v3_s0*>regulator-state-memregulator@40silergy,syr827@ vdd_cpu_b 4`*>rregulator-state-memregulator@41silergy,syr828Avdd_gpu 4`*>rregulator-state-memi2c@ff3d0000rockchip,rk3399-i2c= g  g g ri2cpclk8defaults+ ~disabledi2c@ff3e0000rockchip,rk3399-i2c> g  g g ri2cpclk:defaultt+ ~disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmBdefaultug~okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmBdefaultvg ~disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultwg~okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0defaultxg~okaydfi@ff630000c@rockchip,rk3399-dfiVy rpclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq vepuvdpu raclkhclkyiommu@ff650800rockchip,iommue@s raclkifaceyvideo-codec@ff660000rockchip,rk3399-vdecft raxiahbcabaccorez iommu@ff660480rockchip,iommu f@f@u raclkiface ziommu@ff670800rockchip,iommug@* raclkiface ~disabledrga@ff680000rockchip,rk3399-rgah7mraclkhclksclkfjgi mcoreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} rpclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  rapb_pclkFdma-controller@ff6e0000arm,pl330arm,primecelln@  rapb_pclk5clock-controller@ff750000rockchip,rk3399-pmucruu{rxin24m  g(Jgclock-controller@ff760000rockchip,rk3399-cruv{rxin24m  @BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domain ~disabledmipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wordphy-refdphy-cfggrf  ~disabledusb2phy@e450rockchip,rk3399-usb2phyP{rphyclkclk_usbphy0_480m~okayhost-port  linestate~okay?| otg-port 0ghjotg-bvalidotg-idlinestate ~disabled#usb2phy@e460rockchip,rk3399-usb2phy`|rphyclkclk_usbphy1_480m~okay!host-port  linestate~okay?|"otg-port 0lmootg-bvalidotg-idlinestate ~disabled%phy@f780rockchip,rk3399-emmc-phy$}remmcclk 2 ~okaypcie-phyrockchip,rk3399-pcie-phyrrefclk fmphy ~disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}rtcpdcoretcpdphy-ref ~fLmuphyuphy-pipeuphy-tcphy ~disableddp-port 'usb3-port $phy@ff800000rockchip,rk3399-typec-phyrtcpdcoretcpdphy-ref  fMmuphyuphy-pipeuphy-tcphy ~disableddp-port (usb3-port &watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ rpclktimerspdif@ff870000rockchip,rk3399-spdifBIFNtx rmclkhclkUdefault~ ~disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'IFFNtxrxri2s_clki2s_hclkVbclk_onbclk_off ~disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(IFFNtxrxri2s_clki2s_hclkWdefault ~disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)IFFNtxrxri2s_clki2s_hclkX ~disabledvop@ff8f0000rockchip,rk3399-vop-lit w ׄraclk_vopdclk_vophclk_vopf maxiahbdclk ~disabledport+ endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4*iommu@ff8f3f00rockchip,iommu?w raclkiface ~disabledvop@ff900000rockchip,rk3399-vop-big v ׄraclk_vopdclk_vophclk_vopf maxiahbdclk~okayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4)iommu@ff903f00rockchip,iommu?v raclkiface~okayisp0@ff910000rockchip,rk3399-cif-isp@+nrispaclkhclkPUdphy ~disabledports+port@0+iommu@ff914000rockchip,iommu @P+ raclkiface 2isp1@ff920000rockchip,rk3399-cif-isp@,orispaclkhclkPUdphy ~disabledports+port@0+iommu@ff924000rockchip,iommu @P, raclkiface 2hdmi-soundsimple-audio-card Mi2s f hdmi-sound ~disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi<(tqporiahbisfrcecgrfref ~disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porrefpclkphy_cfggrffmapb+ ~disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorrefpclkphy_cfggrffmapb+  ~disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo rdppclkgrfdefaultfmdp~okay ports+port@0+endpoint@0endpoint@1port@1+endpoint@0gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 jobmmugpu( P# ~disabledOpinctrlrockchip,rk3399-pinctrlV+_gpio@ff720000rockchip,gpio-bankrg  gpio@ff730000rockchip,gpio-banksg  ngpio@ff780000rockchip,gpio-bankxP  gpio@ff788000rockchip,gpio-bankxQ  gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k #cifcif-clkin # cif-clkouta # edpedp-hpd #gmacrgmii-pins #    rmii-pins #     i2c0i2c0-xfer #mi2c1i2c1-xfer #+i2c2i2c2-xfer #,i2c3i2c3-xfer #-i2c4i2c4-xfer #  si2c5i2c5-xfer #  .i2c6i2c6-xfer #  /i2c7i2c7-xfer #0i2c8i2c8-xfer #ti2s0i2s0-2ch-bus` #i2s0-2ch-bus-bclk-off` #i2s0-8ch-bus #i2s0-8ch-bus-bclk-off #i2s1i2s1-2ch-busP #i2s1-2ch-bus-bclk-offP #sdio0sdio0-bus1 #sdio0-bus4@ #sdio0-cmd #sdio0-clk #sdio0-cd #sdio0-pwr #sdio0-bkpwr #sdio0-wp #sdio0-int #sdmmcsdmmc-bus1 #sdmmc-bus4@ #   sdmmc-clk # sdmmc-cmd # sdmmc-cd #sdmmc-wp #suspendap-pwroff #ddrio-pwroff #spdifspdif-bus #~spdif-bus-1 #spi0spi0-clk #6spi0-cs0 #9spi0-cs1 #spi0-tx #7spi0-rx #8spi1spi1-clk # :spi1-cs0 # =spi1-rx #<spi1-tx #;spi2spi2-clk # >spi2-cs0 # Aspi2-rx # @spi2-tx # ?spi3spi3-clk #hspi3-cs0 #kspi3-rx #jspi3-tx #ispi4spi4-clk #Bspi4-cs0 #Espi4-rx #Dspi4-tx #Cspi5spi5-clk #Gspi5-cs0 #Jspi5-rx #Ispi5-tx #Htestclktest-clkout0 #test-clkout1 #test-clkout2 #tsadcotp-pin #Potp-out #Quart0uart0-xfer #1uart0-cts #uart0-rts #uart1uart1-xfer #  2uart2auart2a-xfer # uart2buart2b-xfer #uart2cuart2c-xfer #3uart3uart3-xfer #4uart3-cts #uart3-rts #uart4uart4-xfer #luarthdcpuarthdcp-xfer #pwm0pwm0-pin #upwm0-pin-pull-down #vop0-pwm-pin #vop1-pwm-pin #pwm1pwm1-pin #vpwm1-pin-pull-down #pwm2pwm2-pin #wpwm2-pin-pull-down #pwm3apwm3a-pin #xpwm3bpwm3b-pin #hdmihdmi-i2c-xfer #hdmi-cec #pciepci-clkreqn-cpm #pci-clkreqnb-cpm #pmicpmic-int-l #ousb2vcc5v0-host-en #backlightpwm-backlight 1  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ C \aedp-panellg,lp079qx1-sp0v a kn  xportendpointexternal-gmac-clock fixed-clocksY@ clkin_gmacvdd-centerpwm-regulator \a vdd_center 5\*>~okayvcc3v3-sysregulator-fixed vcc3v3_sys*>2Z2Zpvcc5v0-sysregulator-fixed vcc5v0_sys*>LK@LK@rvcc5v0-host-regulatorregulator-fixed  ^default vcc5v0_hostr|vcc-phy-regulatorregulator-fixedvcc_phy*> compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cachephandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiosnum-lanespinctrl-namespinctrl-0interrupt-controllermax-functionsrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthassigned-clock-ratesarasan,soc-ctl-syscondisable-cqe-dcmdbus-widthmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removabledr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsreg-shiftreg-io-widthdmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cells#power-domain-cellspm_qosrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-on-in-suspendregulator-suspend-microvoltregulator-off-in-suspendfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cells#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiforce-hpdgpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsbrightness-levelsdefault-brightness-levelpwmsbacklightenable-gpiospower-supplyenable-active-high 8( vamrs,ficusrockchip,rk3399 +796boards RK3399 Ficusaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000/ethernet@fe300000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokaydefault interrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac>  stmmacethL!Yokaydt"input#rgmiidefault$ % 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample> yresetokay):P&[default '()i+wifi@1brcm,bcm4329-fmac * 1host-wakedefault+mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Adw  Lbiuciuciu-driveciu-sample> zresetokay) *i, default-./0mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 !dNw Nclk_xinclk_ahbemmc_cardclocky1 ~phy_arasan> okay[usb@fe380000 generic-ehci82y3~usbokayusb@fe3a0000 generic-ohci:2y3~usbokayusb@fe3c0000 generic-ehci<4y5~usbokayusb@fe3e0000 generic-ohci> 4y5~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspend!hosty67~usb2-phyusb3-phy )utmi_wide2Jk> okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspend!hosty89~usb2-phyusb3-phy )utmi_wide2Jk> okaydp@fec00000rockchip,rk3399-cdn-dp drw  ruocore-clkpclkspdifgrfy:;>  HJspdifdptxapbcoreL! disabledportsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc> Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cdAw AU i2cpclk;default>+okayi2c@ff120000rockchip,rk3399-i2cdBw BV i2cpclk#default?+okayi2c@ff130000rockchip,rk3399-i2cdCw CW i2cpclk"default@+okayi2c@ff140000rockchip,rk3399-i2cdDw DX i2cpclk&defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cdEw EY i2cpclk%defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cdFw FZ i2cpclk$defaultC+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc'default DEFokaybluetoothbrcm,bcm43438-btGtxco 4H H* Z* default IJKserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb'defaultL disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd'defaultMokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke'defaultN disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDiO O ntxrxdefaultPQRS+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5iO O ntxrxdefaultTUVW+okayxspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4iOOntxrxdefaultXYZ[+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCiOOntxrxdefault\]^_+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclki`` ntxrxdefaultabcd> + disabledthermal-zonescpu-thermaldetripscpu_alert0ppassivefcpu_alert1$passivegcpu_crits criticalcooling-mapsmap0fmap1gHgpu-thermaldetripsgpu_alert0$passivehgpu_crits criticalcooling-mapsmap0h itsadc@ff260000rockchip,rk3399-tsadc&adOw qOdtsadcapb_pclk tsadc-apbL!initdefaultsleepjkj okay!8eqos@ffa58000rockchip,rk3399-qossyscon sqos@ffa5c000rockchip,rk3399-qossyscon tqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon wqos@ffa70080rockchip,rk3399-qossyscon xqos@ffa74000rockchip,rk3399-qossyscon@ uqos@ffa76000rockchip,rk3399-qossyscon` vqos@ffa90000rockchip,rk3399-qossyscon yqos@ffa98000rockchip,rk3399-qossyscon lqos@ffaa0000rockchip,rk3399-qossyscon zqos@ffaa0080rockchip,rk3399-qossyscon {qos@ffaa8000rockchip,rk3399-qossyscon |qos@ffaa8080rockchip,rk3399-qossyscon }qos@ffab0000rockchip,rk3399-qossyscon mqos@ffab0080rockchip,rk3399-qossyscon nqos@ffab8000rockchip,rk3399-qossyscon oqos@ffac0000rockchip,rk3399-qossyscon pqos@ffac0080rockchip,rk3399-qossyscon qqos@ffac8000rockchip,rk3399-qossyscon ~qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon rpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerS+ power-domain@34"glSpower-domain@33!gmnSpower-domain@31goSpower-domain@32  gpqSpower-domain@35#grSpower-domain@25lSpower-domain@23gsSpower-domain@22fgtSpower-domain@27LguSpower-domain@28gvSpower-domain@8~}Spower-domain@9 Spower-domain@24gwxSpower-domain@15S+power-domain@21rgySpower-domain@19gz{Spower-domain@20g|}Spower-domain@16S+power-domain@17g~Spower-domain@18gSsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokaynspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf'default disabledi2c@ff3c0000rockchip,rk3399-i2c<d w   i2cpclk9default+okay}regulator@40silergy,syr827@ vdd_cpu_b 4`   1 Cokayregulator-state-mem Nregulator@41silergy,syr828Avdd_gpu 4`   1 Cregulator-state-mem Npmic@1brockchip,rk808 default g xin32krk808-clkout2       #    # GregulatorsDCDC_REG1 vdd_center qp  1regulator-state-mem NDCDC_REG2 vdd_cpu_l qp  1 regulator-state-mem NDCDC_REG3vcc_ddr  1regulator-state-mem *DCDC_REG4vcc_1v8w@w@  1regulator-state-mem * Bw@LDO_REG1 vcc1v8_dvpw@w@  1regulator-state-mem * Bw@LDO_REG2 vcca1v8_hdmiw@w@  1regulator-state-mem * Bw@LDO_REG3 vcca_1v8w@w@  1regulator-state-mem * Bw@LDO_REG4vcc_sdw@2Z  1,regulator-state-mem * B2ZLDO_REG5 vcc3v0_sd--  1regulator-state-mem * B-LDO_REG6vcc_1v5``  1regulator-state-mem * B`LDO_REG7 vcca0v9_hdmi    1regulator-state-mem * B LDO_REG8vcc_3v0--  1regulator-state-mem * B-SWITCH_REG1 vcc3v3_s3  1regulator-state-mem *SWITCH_REG2 vcc3v3_s0  1regulator-state-mem *i2c@ff3d0000rockchip,rk3399-i2c=d w   i2cpclk8default+okayi2c@ff3e0000rockchip,rk3399-i2c>d w   i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB ^default disabledpwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB ^default disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  ^defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 ^defaultokaydfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk i> iommu@ff650800rockchip,iommue@s aclkiface p> video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore i> iommu@ff660480rockchip,iommu f@f@u aclkiface>  piommu@ff670800rockchip,iommug@* aclkiface p disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb> !efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  }  apb_pclk`dma-controller@ff6e0000arm,pl330arm,primecelln@  }  apb_pclkOclock-controller@ff750000rockchip,rk3399-pmucruuxin24mL dw(Jclock-controller@ff760000rockchip,rk3399-cruvxin24mL! d@BCxDw#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+!io-domains"rockchip,rk3399-io-voltage-domainokay   , mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf>   disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay2host-port  1linestateokay3otg-port 0ghj1otg-bvalidotg-idlinestateokay6usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay4host-port  1linestateokay5otg-port 0lmo1otg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay1pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refd~w> Luphyuphy-pipeuphy-tcphyL!okaydp-port :usb3-port 7phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refdw> Muphyuphy-pipeuphy-tcphyL!okaydp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBi`ntx mclkhclkUdefault>  disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2sL!'i``ntxrxi2s_clki2s_hclkVbclk_onbclk_off>  disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(i``ntxrxi2s_clki2s_hclkWdefault>  disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)i``ntxrxi2s_clki2s_hclkX> okayvop@ff8f0000rockchip,rk3399-vop-lit wdwׄaclk_vopdclk_vophclk_vop i>  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?w aclkiface>  pokayvop@ff900000rockchip,rk3399-vop-big vdwׄaclk_vopdclk_vophclk_vop i>  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?v aclkiface>  pokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk iy~dphy>  disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface p>  isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk iy~dphy>  disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface p>  hdmi-soundsimple-audio-card i2s 6 Phdmi-soundokaysimple-audio-card,cpu gsimple-audio-card,codec ghdmi@ff940000rockchip,rk3399-dw-hdmi'(tqpoiahbisfrcecgrfref> L!okay q  defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf> apbL!+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf> apbL!+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault> dpL! disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P> #okay ipinctrlrockchip,rk3399-pinctrlL!+gpio@ff720000rockchip,gpio-bankr   *gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Hgpio@ff788000rockchip,gpio-bankxQ   %gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k !cifcif-clkin ! cif-clkouta ! edpedp-hpd !gmacrgmii-pins !    $rmii-pins !     rgmii-sleep-pins !i2c0i2c0-xfer !i2c1i2c1-xfer !>i2c2i2c2-xfer !?i2c3i2c3-xfer !@i2c4i2c4-xfer !  i2c5i2c5-xfer !  Ai2c6i2c6-xfer !  Bi2c7i2c7-xfer !Ci2c8i2c8-xfer !i2s0i2s0-2ch-bus` !i2s0-2ch-bus-bclk-off` !i2s0-8ch-bus !i2s0-8ch-bus-bclk-off !i2s1i2s1-2ch-busP !i2s1-2ch-bus-bclk-offP !sdio0sdio0-bus1 !sdio0-bus4@ !'sdio0-cmd !(sdio0-clk !)sdio0-cd !sdio0-pwr !sdio0-bkpwr !sdio0-wp !sdio0-int !sdmmcsdmmc-bus1 !sdmmc-bus4@ !   0sdmmc-clk ! -sdmmc-cmd ! .sdmmc-cd !/sdmmc-wp !suspendap-pwroff !ddrio-pwroff !spdifspdif-bus !spdif-bus-1 !spi0spi0-clk !Pspi0-cs0 !Sspi0-cs1 !spi0-tx !Qspi0-rx !Rspi1spi1-clk ! Tspi1-cs0 ! Wspi1-rx !Vspi1-tx !Uspi2spi2-clk ! Xspi2-cs0 ! [spi2-rx ! Zspi2-tx ! Yspi3spi3-clk !spi3-cs0 !spi3-rx !spi3-tx !spi4spi4-clk !\spi4-cs0 !_spi4-rx !^spi4-tx !]spi5spi5-clk !aspi5-cs0 !dspi5-rx !cspi5-tx !btestclktest-clkout0 !test-clkout1 !test-clkout2 !tsadcotp-pin !jotp-out !kuart0uart0-xfer !Duart0-cts !Euart0-rts !Fuart1uart1-xfer !  Luart2auart2a-xfer ! uart2buart2b-xfer !uart2cuart2c-xfer !Muart3uart3-xfer !Nuart3-cts !uart3-rts !uart4uart4-xfer !uarthdcpuarthdcp-xfer !pwm0pwm0-pin !pwm0-pin-pull-down !vop0-pwm-pin !vop1-pwm-pin !pwm1pwm1-pin !pwm1-pin-pull-down !pwm2pwm2-pin !pwm2-pin-pull-down !pwm3apwm3a-pin !pwm3bpwm3b-pin !hdmihdmi-i2c-xfer !hdmi-cec !pciepci-clkreqn-cpm !pci-clkreqnb-cpm !pcie-drv !btbt-enable-h ! Kbt-host-wake-l !Ibt-wake-l !Jpmicpmic-int-l !vsel1-pin !vsel2-pin !sdio-pwrseqwifi-enable-h ! wifiwifi-host-wake-l !+usb2host-vbus-drv !ledsuser-led1-pin !user-led2-pin !user-led3-pin !user-led4-pin !wlan-led-pin !bt-led-pin !opp-table-0operating-points-v2 / opp00 :Q A  O@opp01 :#F A opp02 :0, A P Popp03 :< AHHopp04 :G AB@B@opp05 :Tfr A**opp-table-1operating-points-v2 /opp00 :Q A  O@opp01 :#F A opp02 :0, A opp03 :< A Y Yopp04 :G A~~opp05 :Tfr Aopp06 :_" Aopp07 :kI AOOopp-table-2operating-points-v2opp00 :  A 0opp01 :@ A 0opp02 :ׄ A 0opp03 :e A Y Y0opp04 :#F AHH0opp05 :/ A0sdio-pwrseqmmc-pwrseq-simpleG ext_clockdefault `* &vcc12v-dcinregulator-fixed vcc12v_dcin  1vcc1v8-s0regulator-fixed vcc1v8_s0w@w@ vcc5v0-sysregulator-fixed vcc5v0_sysLK@LK@  Cvcc3v3-sysregulator-fixed vcc3v3_sys2Z2Z  C#vcc3v3-pcie-regulatorregulator-fixed ldefault 1 vcc3v3_pcie2Z2Z C# vcc5v0-host-regulatorregulator-fixed ldefault vcc5v0_hostLK@LK@  C vcc-0v9regulator-fixedvcc_0v9    C#chosen serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmac"leds gpio-ledsdefaultled-1 red:user1  heartbeatled-2 red:user2  mmc0led-3 red:user3  mmc1led-4 red:user4   noneled-5 red:wlan  phy0tx offled-6 red:bt  hci0-power off compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2ethernet0cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanespinctrl-namespinctrl-0vpcie0v9-supplyvpcie1v8-supplyvpcie3v3-supplyep-gpiosinterrupt-controllermax-functionsrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvqmmc-supplycard-detect-delayarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobedr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosdmasdma-namescs-gpiospolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsfcs,suspend-voltage-selectorregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiavdd-0v9-supplyavdd-1v8-supplyddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsreset-gpiosenable-active-highstdout-pathlabellinux,default-triggerpanic-indicatordefault-state  8 (google,bob-rev13google,bob-rev12google,bob-rev11google,bob-rev10google,bob-rev9google,bob-rev8google,bob-rev7google,bob-rev6google,bob-rev5google,bob-rev4google,bobgoogle,grurockchip,rk3399 + 7Google Bob =convertiblealiasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@1cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@2cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@3cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@100cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'cpu@101cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'l2-cache-cluster0cache\i@{ l2-cache-cluster1cache\i@{idle-states pscicpu-sleeparm,idle-state->Uxf cluster-sleeparm,idle-state->Uf display-subsystemrockchip,display-subsystemwmemory-controllerrockchip,rk3399-dmc}dmc_clkokay( @$'Z?'Z\'Zy/7P(//pmu_a53arm,cortex-a53-pmu,pmu_a72arm,cortex-a72-pmu,psci arm,psci-1.0smctimerarm,armv8-timer@,   7xin24m fixed-clockNn6^xin24mqpcie@f8000000rockchip,rk3399-pcie ~axi-baseapb-basepci+ Gaclkaclk-perfhclkpm0,123syslegacyclient` ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388 (coremgmtmgmt-stickypipepmpclkaclkokay  )default7AQ a!interrupt-controllerqpcie@0,0+pciwifi@0,0 pci1b4b,2b42 ",)default7#pcie-ep@f8000000rockchip,rk3399-pcie-ep ~apb-basemem-base Gaclkaclk-perfhclkpm8 (coremgmtmgmt-stickypipepmpclkaclk ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 )default7$ disabledethernet@fe300000rockchip,rk3399-gmac0, macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac%  stmmaceth& disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@,@р Mbiuciuciu-driveciu-sample% yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@,Aр   Lbiuciuciu-driveciu-sample% zresetokay)default7'()*+.8J [,do|-.mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13, & NрNclk_xinclk_ahb^emmc_cardclockq/ phy_arasan%okay. usb@fe380000 generic-ehci8,01usbokayusb@fe3a0000 generic-ohci:,01usbokayusb@fe3c0000 generic-ehci<,23usbokayusb@fe3e0000 generic-ohci>, 23usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk % usb3-otgokay4usb@fe800000 snps,dwc3,irefbus_earlysuspend"host56usb2-phyusb3-phy *utmi_wide3Kl%okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk & usb3-otgokay7usb@fe900000 snps,dwc3,nrefbus_earlysuspend"host89usb2-phyusb3-phy *utmi_wide3Kl%okaydp@fec00000rockchip,rk3399-cdn-dp,  r  ruocore-clkpclkspdifgrf:;%  HJspdifdptxapbcore&okay47portsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3+qP , msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc,> Pesaradcapb_pclk  saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@,hclk_masterhclk_slavesclk masterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@,hclk_masterhclk_slavesclk masterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c A AU i2cpclk,;)default7>+okayN26,rt5514@57realtek,rt5514WMi2c@ff120000rockchip,rk3399-i2c B BV i2cpclk,#)default7?+ disabledi2c@ff130000rockchip,rk3399-i2c C CW i2cpclk,")default7@+okayN26,touchscreen@10elan,ekth3500 A, )default7BC h,i2c@ff140000rockchip,rk3399-i2c D DX i2cpclk,&)default7DE+okayN26,trackpad@15elan,ekth3000 F,)default7Gi2c@ff150000rockchip,rk3399-i2c E EY i2cpclk,%)default7H+ disabledi2c@ff160000rockchip,rk3399-i2c F FZ i2cpclk,$)default7I+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclk,ct~)default7J disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclk,bt~)default7K disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclk,dt~)default7Lokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclk,et~)default7M disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclk,DN N txrx)default7OPQR+okaytpm@0 google,cr50 ",)default7S 5spi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk,5N N txrx)defaultsleep7TUVW+okayXflash@0jedec,spi-norspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk,4NNtxrx)default7YZ[\+okayspi2@0realtek,rt5514 F, )default7]spi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclk,CNNtxrx)default7^_`a+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk,bb txrx)default7cdef%+okayec@0google,cros-ec-spi ",)default7g-i2c-tunnelgoogle,cros-ec-i2c-tunnel+sbs-battery@bsbs,sbs-battery extcon0google,extcon-usbc-cros-ec4keyboard-controllergoogle,cros-ec-keyb    'D A;<=>?@A B CD}0Y1 d"#(  \V |})   + ^a !%$' & + ,./-32*5 4 9    8 l j6  g ipwmgoogle,cros-ec-pwm Nextcon1google,extcon-usbc-cros-ec7thermal-zonescpu-thermal Yd o }htripscpu_alert0  Epassiveicpu_alert1 p Epassivejcpu_crit s  Ecriticalcooling-mapsmap0 i map1 jH gpu-thermal Yd o }htripsgpu_alert0 $ Epassivekgpu_crit s  Ecriticalcooling-mapsmap0 k ltsadc@ff260000rockchip,rk3399-tsadc&,a O qOdtsadcapb_pclk  tsadc-apb& s)initdefaultsleep7mn m okay  hqos@ffa58000rockchip,rk3399-qossyscon vqos@ffa5c000rockchip,rk3399-qossyscon wqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon zqos@ffa70080rockchip,rk3399-qossyscon {qos@ffa74000rockchip,rk3399-qossyscon@ xqos@ffa76000rockchip,rk3399-qossyscon` yqos@ffa90000rockchip,rk3399-qossyscon |qos@ffa98000rockchip,rk3399-qossyscon oqos@ffaa0000rockchip,rk3399-qossyscon }qos@ffaa0080rockchip,rk3399-qossyscon ~qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon pqos@ffab0080rockchip,rk3399-qossyscon qqos@ffab8000rockchip,rk3399-qossyscon rqos@ffac0000rockchip,rk3399-qossyscon sqos@ffac0080rockchip,rk3399-qossyscon tqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon upower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller !+%power-domain@34" 5o !power-domain@33! 5pq !power-domain@31 5r !power-domain@32   5st !power-domain@35# 5u !power-domain@25l !power-domain@23 5v !power-domain@22f 5w !power-domain@27L 5x !power-domain@28 5y !power-domain@8~} !power-domain@9  !power-domain@24 5z{ !power-domain@15 !+power-domain@21r 5| !power-domain@19 5}~ !power-domain@20 5 !power-domain@16 !+power-domain@17 5 !power-domain@18 5 !syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay <spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk,<)default7+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclk,ft~)default7 disabledi2c@ff3c0000rockchip,rk3399-i2c<    i2cpclk,9)default7+ disabledi2c@ff3d0000rockchip,rk3399-i2c=    i2cpclk,8)default7+ disabledi2c@ff3e0000rockchip,rk3399-i2c>    i2cpclk,:)default7+okayN26,da7219@1a dlg,da7219 F,Ymclk K ( [diff)default7 n y da7219_aad   2   32_64     !! 1>pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB N)default7okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB N)default7okaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  N)default7okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 N)default7okaydfi@ff630000c@rockchip,rk3399-dfi},y pclk_ddr_monokayvideo-codec@ff650000rockchip,rk3399-vpue ,rq vepuvdpu aclkhclk C%iommu@ff650800rockchip,iommue@,s aclkiface J%video-codec@ff660000rockchip,rk3399-vdecf,t axiahbcabaccore C% iommu@ff660480rockchip,iommu f@f@,u aclkiface%  Jiommu@ff670800rockchip,iommug@,* aclkiface J disabledrga@ff680000rockchip,rk3399-rgah,7maclkhclksclk jgi coreaxiahb%!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@ , W b apb_pclkbdma-controller@ff6e0000arm,pl330arm,primecelln@ , W b apb_pclkNclock-controller@ff750000rockchip,rk3399-pmucruuxin24mq y (Jclock-controller@ff760000rockchip,rk3399-cruvxin24m&q y @BCx@#F/;рxh<4`/ׄׄ syscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+&io-domains"rockchip,rk3399-io-voltage-domainokay    .mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf%  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkq^clk_usbphy0_480mokay0host-port , linestateokay1otg-port 0,ghjotg-bvalidotg-idlinestateokay5usb2phy@e460rockchip,rk3399-usb2phy`|phyclkq^clk_usbphy1_480mokay2host-port , linestateokay3otg-port 0,lmootg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay/pcie-phyrockchip,rk3399-pcie-phyrefclk  phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref ~% Luphyuphy-pipeuphy-tcphy&okay4dp-port :usb3-port 6phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref %  Muphyuphy-pipeuphy-tcphy&okay7dp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|,xrktimer@ff850000rockchip,rk3399-timer,QhZ pclktimerspdif@ff870000rockchip,rk3399-spdif,Bbtx mclkhclkU%okayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s&,'bbtxrxi2s_clki2s_hclkV)bclk_onbclk_off7%okayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s,(bbtxrxi2s_clki2s_hclkW)default7% disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s,)bbtxrxi2s_clki2s_hclkX% disabledvop@ff8f0000rockchip,rk3399-vop-lit ,w ׄaclk_vopdclk_vophclk_vop C%  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?,w aclkiface% Jokayvop@ff900000rockchip,rk3399-vop-big ,v ׄaclk_vopdclk_vophclk_vop C%  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?,v aclkiface% Jokayisp0@ff910000rockchip,rk3399-cif-isp@,+nispaclkhclk Cdphy% disabledports+port@0+iommu@ff914000rockchip,iommu @P,+ aclkiface J% isp1@ff920000rockchip,rk3399-cif-isp@,,oispaclkhclk Cdphy% disabledports+port@0+iommu@ff924000rockchip,iommu @P,, aclkiface J% hdmi-soundsimple-audio-card i2s  *hdmi-sound disabledsimple-audio-card,cpu Asimple-audio-card,codec Ahdmi@ff940000rockchip,rk3399-dw-hdmi~,(tqpoiahbisfrcecgrfref%& disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi,- porefpclkphy_cfggrf% apb&+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi,. qorefpclkphy_cfggrf% apb&+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp, jlo dppclkgrf)default7% dp&okay jn6ports+port@0+endpoint@0endpoint@1port@1+endpoint@0gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600, jobmmugpu!0 P%#okay Klpinctrlrockchip,rk3399-pinctrl&}+)default7gpio@ff720000rockchip,gpio-bankr, W gq sAP_RTC_CLK_INEC_AP_INT_LPP1800_AUDIO_ENBT_HOST_WAKE_LWLAN_MODULE_PD_LH1_INT_OD_LCENTERLOGIC_DVS_PWMWIFI_HOST_WAKE_LPMUIO2_33_18_LPP1500_ENAP_EC_WARM_RESET_REQPP3000_EN"gpio@ff730000rockchip,gpio-banks, W gq% sSPK_PA_ENTRACKPAD_INT_LAP_EC_S3_S0_LAP_EC_OVERTEMPAP_SPI_FLASH_MISOAP_SPI_FLASH_MOSI_RAP_SPI_FLASH_CLK_RAP_SPI_FLASH_CS_L_RWLAN_MODULE_RESET_LWIFI_DISABLE_LMIC_INTAP_I2C_DVS_SDAAP_I2C_DVS_SCLAP_BL_ENAP_FLASH_WPLITCPU_DVS_PWMAP_I2C_AUDIO_SDAAP_I2C_AUDIO_SCLHEADSET_INT_LFgpio@ff780000rockchip,gpio-bankxP, W gq sSD_IO_PWR_ENAP_SPI_EC_MISOAP_SPI_EC_MOSIAP_SPI_EC_CLKAP_SPI_EC_CS_LBT_DEV_WAKE_LWIFI_PCIE_CLKREQ_LWIFI_PERST_LSD_PWR_3000_1800_Lgpio@ff788000rockchip,gpio-bankxQ, W gq sAP_SPI_TPM_MISOAP_SPI_TPM_MOSI_RAP_SPI_TPM_CLK_RAP_SPI_TPM_CS_L_REC_IN_RWAP_I2C_TP_SDAAP_I2C_TP_SCLAP_I2C_TP_PU_ENTOUCH_INT_LI2S0_SCLKI2S0_LRCK_RXI2S0_LRCK_TXI2S0_SDI_0I2S0_SDI_1I2S0_SDO_1I2S0_SDO_0Agpio@ff790000rockchip,gpio-bankyR, W gq sI2S_MCLKAP_I2C_MIC_SDAAP_I2C_MIC_SCLAP_I2C_TS_SDAAP_I2C_TS_SCLGPU_DVS_PWMUART_DBG_TX_AP_RXUART_AP_TX_DBG_RXBIGCPU_DVS_PWMEDP_HPD_3V0SD_CARD_DET_LUSB_DP_HPDTOUCH_RESET_LPP3300_DISP_ENSD_SLOT_PWR_EN,pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer >i2c2i2c2-xfer ?i2c3i2c3-xfer @i2c4i2c4-xfer   i2c5i2c5-xfer   Di2c6i2c6-xfer   Hi2c7i2c7-xfer Ii2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  'sdmmc-cmd  (sdmmc-cd )sdmmc-wp sdmmc-cd-pin *suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Ospi0-cs0 Rspi0-cs1 spi0-tx Pspi0-rx Qspi1spi1-clk  Tspi1-cs0  Wspi1-rx Vspi1-tx Uspi1-sleep@   Xspi2spi2-clk  Yspi2-cs0  \spi2-rx  [spi2-tx  Zspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk ^spi4-cs0 aspi4-rx `spi4-tx _spi5spi5-clk cspi5-cs0 fspi5-rx espi5-tx dtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin motp-out nuart0uart0-xfer Juart0-cts uart0-rts uart1uart1-xfer   Kuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Luart3uart3-xfer Muart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm $pcfg-pull-none-8ma  backlight-enablebl-en cros-ecec-ap-int-l gdiscrete-regulatorssd-io-pwr-en sd-pwr-1800-sel sd-slot-pwr-en pp1500-en pp1800-audio-en pp3000-en pp3300-disp-en wlan-module-pd-l codecheadset-int-l mic-int  ]max98357asdmode-en touchscreentouch-int-l  Btouch-reset-l Ctrackpadap-i2c-tp-pu-en  Etrackpad-int-l Gwifiwlan-module-reset-l  bt-host-wake-l wifi-perst-l wlan-host-wake-l #write-protectap-fw-wp tpmh1-int-od-l Sopp-table-0operating-points-v2  opp00 Q 5 @opp01 #F opp02 0, Popp03 < opp04 G opp05 Tfr  opp06 ZJ 0opp-table-1operating-points-v2 opp00 Q 5 @opp01 #F 5opp02 0, opp03 < Popp04 G opp05 Tfr opp06 _"  opp07 kI 0opp08 x) opp-table-2operating-points-v2opp00  5opp01 @ 5opp02 ׄ opp03 e Popp04 #F Hopp05 / g8opp-table-3operating-points-v2opp00 ׄ opp01 'Z opp02 / opp03 7P( H chosen *serial2:115200n8ppvar-sysregulator-fixed 6ppvar_sys E Ypp1200-lpddrregulator-fixed 6pp1200_lpddr E Y kO O pp1800regulator-fixed 6pp1800 E Y kw@ w@ pp3300regulator-fixed 6pp3300 E Y k2Z 2Z pp5000regulator-fixed 6pp5000 E Y kLK@ LK@ ppvar-bigcpu-pwmpwm-regulator 6ppvar_bigcpu_pwm   d d E Y k 5k ppvar-bigcpuvctrl-regulator 6ppvar_bigcpu k 5k   5k B-ppvar-litcpu-pwmpwm-regulator 6ppvar_litcpu_pwm   d d E Y k ,/ ppvar-litcpuvctrl-regulator 6ppvar_litcpu k ,/   ,/ - ppvar-gpu-pwmpwm-regulator 6ppvar_gpu_pwm   d d E Y k  ppvar-gpuvctrl-regulator 6ppvar_gpu k     -pp900-apregulator-fixed 6pp900_ap E Y k   !pp3000-sd-slotregulator-fixed 6pp3000_sd_slot)default7C V, -ppvar-sd-card-ioregulator-gpio 6ppvar_sd_card_io)default7C [ #Sw@- kw@ -.pp3300-trackpadap-rtc-clk fixed-clockN^xin32kqmax98357amaxim,max98357a)default7 hFuokaysoundrockchip,rk3399-gru-soundpp3000regulator-fixed 6pp3000)default7C V"  E Y k- - ppvar-centerlogic-pwmpwm-regulator 6ppvar_centerlogic_pwm   d d E Y k 2 Eppvar-centerlogicvctrl-regulator 6ppvar_centerlogic k 2 E  2E z-ppvar-logicregulator-fixed 6ppvar_logic E Y k   pp1800-audioregulator-fixed 6pp1800_audio)default7C V" E Y pp1800-pcieregulator-fixed 6pp1800_pcie)default7C V"@ pp1500-ap-ioregulator-fixed 6pp1500_ap_io)default7C V"  E Y k` ` pp3300-dispregulator-fixed 6pp3300_disp)default7C V, pp3300-wifi-btregulator-fixed 6pp3300_wifi_btC V" wlan-pd-nregulator-fixed 6wlan_pd_n)default7C VF   backlightpwm-backlight [F)default7 gpio-keys gpio-keys)default7key-wake-on-btWake-on-Bluetooth #"edp-panelboe,nv101wxmn51portendpoint compatibleinterrupt-parent#address-cells#size-cellsmodelchassis-typegpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusrockchip,pd-idle-nsrockchip,sr-idle-nsrockchip,sr-mc-gate-idle-nsrockchip,srpd-lite-idle-nsrockchip,standby-idle-nsrockchip,ddr3_odt_dis_freqrockchip,lpddr3_odt_dis_freqrockchip,lpddr4_odt_dis_freqrockchip,sr-mc-gate-idle-dis-freq-hzrockchip,srpd-lite-idle-dis-freq-hzrockchip,standby-idle-dis-freq-hzcenter-supplyrockchip,pd-idle-dis-freq-hzrockchip,sr-idle-dis-freq-hzinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiospinctrl-namespinctrl-0vpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllerwakeup-sourcemax-functionsnum-lanesrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthassigned-clocksassigned-clock-ratesbus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removableextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-falling-time-nsi2c-scl-rising-time-nsrealtek,dmic-init-delay-msreset-gpiosreg-shiftreg-io-widthdmasdma-namesspi-max-frequencypinctrl-1google,remote-bussbs,i2c-retry-countsbs,poll-retry-countgoogle,usb-port-idkeypad,num-rowskeypad,num-columnsgoogle,needs-ghost-filterlinux,keymap#pwm-cellspolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplydlg,micbias-lvldlg,mic-amp-in-selVDD-supplyVDDMIC-supplyVDDIO-supplydlg,adc-1bit-rptdlg,btn-avgdlg,btn-cfgdlg,mic-det-thrdlg,jack-ins-debdlg,jack-det-ratedlg,jack-rem-debdlg,a-d-btn-thrdlg,d-b-btn-thrdlg,b-c-btn-thrdlg,c-mic-btn-thriommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daimali-supplygpio-controller#gpio-cellsgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendstdout-pathregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltvin-supplypwmspwm-supplypwm-dutycycle-rangepwm-dutycycle-unitctrl-supplyctrl-voltage-rangeregulator-settling-time-up-usmin-slew-down-rateovp-threshold-percentenable-active-highgpioenable-gpiossdmode-gpiossdmode-delayrockchip,cpurockchip,codecregulator-enable-ramp-delaystartup-delay-uspower-supplylabellinux,codebacklight 8(/google,kevin-rev15google,kevin-rev14google,kevin-rev13google,kevin-rev12google,kevin-rev11google,kevin-rev10google,kevin-rev9google,kevin-rev8google,kevin-rev7google,kevin-rev6google,kevingoogle,grurockchip,rk3399 + 7Google Kevin =convertiblealiasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@1cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@2cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@3cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@100cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'cpu@101cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'l2-cache-cluster0cache\i@{ l2-cache-cluster1cache\i@{idle-states pscicpu-sleeparm,idle-state->Uxf cluster-sleeparm,idle-state->Uf display-subsystemrockchip,display-subsystemwmemory-controllerrockchip,rk3399-dmc}dmc_clkokay( @$'Z?'Z\'Zy/7P(//pmu_a53arm,cortex-a53-pmu,pmu_a72arm,cortex-a72-pmu,psci arm,psci-1.0smctimerarm,armv8-timer@,   7xin24m fixed-clockNn6^xin24mqpcie@f8000000rockchip,rk3399-pcie ~axi-baseapb-basepci+ Gaclkaclk-perfhclkpm0,123syslegacyclient` ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388 (coremgmtmgmt-stickypipepmpclkaclkokay  )default7AQ a!interrupt-controllerqpcie@0,0+pciwifi@0,0 pci1b4b,2b42 ",)default7#pcie-ep@f8000000rockchip,rk3399-pcie-ep ~apb-basemem-base Gaclkaclk-perfhclkpm8 (coremgmtmgmt-stickypipepmpclkaclk ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 )default7$ disabledethernet@fe300000rockchip,rk3399-gmac0, macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac%  stmmaceth& disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@,@р Mbiuciuciu-driveciu-sample% yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@,Aр,  Lbiuciuciu-driveciu-sample% zresetokay)default7'()*+AK] n,w-.mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13, &N,рNclk_xinclk_ahb^emmc_cardclockq/ phy_arasan%okayA usb@fe380000 generic-ehci8,01usbokayusb@fe3a0000 generic-ohci:,01usbokayusb@fe3c0000 generic-ehci<,23usbokayusb@fe3e0000 generic-ohci>, 23usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk % usb3-otgokay.4usb@fe800000 snps,dwc3,irefbus_earlysuspend5host56usb2-phyusb3-phy =utmi_wideF^%okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk & usb3-otgokay.7usb@fe900000 snps,dwc3,nrefbus_earlysuspend5host89usb2-phyusb3-phy =utmi_wideF^%okaydp@fec00000rockchip,rk3399-cdn-dp, r,  ruocore-clkpclkspdifgrf:;%  HJspdifdptxapbcore&okay.47portsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3+qP , msi-controller@fee20000arm,gic-v3-its ppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc,>Pesaradcapb_pclk  saradc-apbokay1>crypto@ff8b0000rockchip,rk3399-crypto@,hclk_masterhclk_slavesclk masterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@,hclk_masterhclk_slavesclk masterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA, AU i2cpclk,;)default7?+okayN=2U,rt5514@57realtek,rt5514Wli2c@ff120000rockchip,rk3399-i2cB, BV i2cpclk,#)default7@+okayN=2U,digitizer@9 hid-over-i2c )default7ABCd ,i2c@ff130000rockchip,rk3399-i2cC, CW i2cpclk,")default7D+okayN=2U,touchscreen@4batmel,maxtouchK)default7E F, i2c@ff140000rockchip,rk3399-i2cD, DX i2cpclk,&)default7GH+okayN=2U,trackpad@4aatmel,maxtouchJ)default7I J,i2c@ff150000rockchip,rk3399-i2cE, EY i2cpclk,%)default7K+ disabledi2c@ff160000rockchip,rk3399-i2cF, FZ i2cpclk,$)default7L+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclk,c)default7M disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclk,b)default7N disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclk,d)default7Ookayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclk,e)default7P disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclk,DQ Q txrx)default7RSTU+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk,5Q Q txrx)defaultsleep7VWXY+okayZflash@0jedec,spi-norspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk,4QQtxrx)default7[\]^+okayspi2@0realtek,rt5514 J, )default7_spi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclk,CQQtxrx)default7`abc+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk,dd txrx)default7efgh%+okayec@0google,cros-ec-spi ",)default7i-i2c-tunnelgoogle,cros-ec-i2c-tunnel +sbs-battery@bsbs,sbs-battery   2extcon0google,extcon-usbc-cros-ec G4keyboard-controllergoogle,cros-ec-keyb Z j  }D ;<=>?@A B CD}0Y1 d"#(  \V |})   + ^a !%$' & + ,./-32*5 4 9    8 l j6  g ipwmgoogle,cros-ec-pwm extcon1google,extcon-usbc-cros-ec G7thermal-zonescpu-thermal d  jtripscpu_alert0 p Epassivekcpu_alert1 $ Epassivelcpu_crit s  Ecriticalcooling-mapsmap0 k map1 lH gpu-thermal d  jtripsgpu_alert0 $ Epassivemgpu_crit s  Ecriticalcooling-mapsmap0 m nbigcpu-reg-thermal d  o tripsppvar-bigcpu-on @ Epassiveppvar-bigcpu-alert P Epassivepppvar-bigcpu-crit _  Ecriticalcooling-mapsmap0 p0  map1 p  litcpu-reg-thermal d  q tripsppvar-litcpu-on @ Epassiveppvar-litcpu-alert P Epassiveppvar-litcpu-crit _  Ecriticaltsadc@ff260000rockchip,rk3399-tsadc&,aO, qOdtsadcapb_pclk  tsadc-apb& -s)initdefaultsleep7rs Dr Nokay d {jqos@ffa58000rockchip,rk3399-qossyscon {qos@ffa5c000rockchip,rk3399-qossyscon |qos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon qos@ffa70080rockchip,rk3399-qossyscon qos@ffa74000rockchip,rk3399-qossyscon@ }qos@ffa76000rockchip,rk3399-qossyscon` ~qos@ffa90000rockchip,rk3399-qossyscon qos@ffa98000rockchip,rk3399-qossyscon tqos@ffaa0000rockchip,rk3399-qossyscon qos@ffaa0080rockchip,rk3399-qossyscon qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon uqos@ffab0080rockchip,rk3399-qossyscon vqos@ffab8000rockchip,rk3399-qossyscon wqos@ffac0000rockchip,rk3399-qossyscon xqos@ffac0080rockchip,rk3399-qossyscon yqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon zpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller +%power-domain@34" t power-domain@33! uv power-domain@31 w power-domain@32   xy power-domain@35# z power-domain@25l power-domain@23 { power-domain@22f | power-domain@27L } power-domain@28 ~ power-domain@8~} power-domain@9  power-domain@24  power-domain@15 +power-domain@21r  power-domain@19  power-domain@20  power-domain@16 +power-domain@17  power-domain@18  syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay >spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk,<)default7+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclk,f)default7 disabledi2c@ff3c0000rockchip,rk3399-i2c< ,   i2cpclk,9)default7+okayN=2U,tpm@20infineon,slb9645tt  i2c@ff3d0000rockchip,rk3399-i2c= ,   i2cpclk,8)default7+ disabledi2c@ff3e0000rockchip,rk3399-i2c> ,   i2cpclk,:)default7+okayN=2U,da7219@1a dlg,da7219 J,Ymclk ( diff)default7 >  >da7219_aad ! 2 >2 J Z k32_64 }   ! >pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB )default7okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB )default7okaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  )default7okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 )default7okaydfi@ff630000c@rockchip,rk3399-dfi},y pclk_ddr_monokayvideo-codec@ff650000rockchip,rk3399-vpue ,rq vepuvdpu aclkhclk %iommu@ff650800rockchip,iommue@,s aclkiface %video-codec@ff660000rockchip,rk3399-vdecf,t axiahbcabaccore % iommu@ff660480rockchip,iommu f@f@,u aclkiface%  iommu@ff670800rockchip,iommug@,* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah,7maclkhclksclk jgi coreaxiahb%!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@ ,   apb_pclkddma-controller@ff6e0000arm,pl330arm,primecelln@ ,   apb_pclkQclock-controller@ff750000rockchip,rk3399-pmucruuxin24mq ,(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m&q @BCx@,#F/;рxh<4`/ׄׄ syscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+&io-domains"rockchip,rk3399-io-voltage-domainokay  > - =.mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf% J disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkq^clk_usbphy0_480mokay0host-port J, linestateokay1otg-port J0,ghjotg-bvalidotg-idlinestateokay5usb2phy@e460rockchip,rk3399-usb2phy`|phyclkq^clk_usbphy1_480mokay2host-port J, linestateokay3otg-port J0,lmootg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk U2 Jokay/pcie-phyrockchip,rk3399-pcie-phyrefclk J phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~,% Luphyuphy-pipeuphy-tcphy&okay.4dp-port J:usb3-port J6phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref,%  Muphyuphy-pipeuphy-tcphy&okay.7dp-port J;usb3-port J9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|,xrktimer@ff850000rockchip,rk3399-timer,QhZ pclktimerspdif@ff870000rockchip,rk3399-spdif,Bdtx mclkhclkU%okayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s&,'ddtxrxi2s_clki2s_hclkV)bclk_onbclk_off7%okayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s,(ddtxrxi2s_clki2s_hclkW)default7% disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s,)ddtxrxi2s_clki2s_hclkX% disabledvop@ff8f0000rockchip,rk3399-vop-lit ,w,ׄaclk_vopdclk_vophclk_vop %  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?,w aclkiface% okayvop@ff900000rockchip,rk3399-vop-big ,v,ׄaclk_vopdclk_vophclk_vop %  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?,v aclkiface% okayisp0@ff910000rockchip,rk3399-cif-isp@,+nispaclkhclk dphy% disabledports+port@0+iommu@ff914000rockchip,iommu @P,+ aclkiface % iisp1@ff920000rockchip,rk3399-cif-isp@,,oispaclkhclk dphy% disabledports+port@0+iommu@ff924000rockchip,iommu @P,, aclkiface % ihdmi-soundsimple-audio-card i2s  hdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi,(tqpoiahbisfrcecgrfref%& disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi,- porefpclkphy_cfggrf% apb&+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi,. qorefpclkphy_cfggrf% apb&+ J disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp, jlo dppclkgrf)default7% dp&okayj,n6ports+port@0+endpoint@0endpoint@1port@1+endpoint@0gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600, jobmmugpu!0 P%#okay npinctrlrockchip,rk3399-pinctrl&}+)default7gpio@ff720000rockchip,gpio-bankr,  q AP_RTC_CLK_INEC_AP_INT_LPP1800_AUDIO_ENBT_HOST_WAKE_LWLAN_MODULE_PD_LH1_INT_OD_LCENTERLOGIC_DVS_PWMWIFI_HOST_WAKE_LPMUIO2_33_18_LPP1500_ENAP_EC_WARM_RESET_REQPP3000_EN"gpio@ff730000rockchip,gpio-banks,  q% SPK_PA_ENTRACKPAD_INT_LAP_EC_S3_S0_LAP_EC_OVERTEMPAP_SPI_FLASH_MISOAP_SPI_FLASH_MOSI_RAP_SPI_FLASH_CLK_RAP_SPI_FLASH_CS_L_RWLAN_MODULE_RESET_LWIFI_DISABLE_LMIC_INTAP_I2C_DVS_SDAAP_I2C_DVS_SCLAP_BL_ENAP_FLASH_WPLITCPU_DVS_PWMAP_I2C_AUDIO_SDAAP_I2C_AUDIO_SCLHEADSET_INT_LJgpio@ff780000rockchip,gpio-bankxP,  q SD_IO_PWR_ENAP_SPI_EC_MISOAP_SPI_EC_MOSIAP_SPI_EC_CLKAP_SPI_EC_CS_LBT_DEV_WAKE_LWIFI_PCIE_CLKREQ_LWIFI_PERST_LSD_PWR_3000_1800_Lgpio@ff788000rockchip,gpio-bankxQ,  q AP_SPI_TPM_MISOAP_SPI_TPM_MOSI_RAP_SPI_TPM_CLK_RAP_SPI_TPM_CS_L_REC_IN_RWAP_I2C_TP_SDAAP_I2C_TP_SCLAP_I2C_TP_PU_ENTOUCH_INT_LI2S0_SCLKI2S0_LRCK_RXI2S0_LRCK_TXI2S0_SDI_0I2S0_SDI_1I2S0_SDO_1I2S0_SDO_0Fgpio@ff790000rockchip,gpio-bankyR,  q I2S_MCLKAP_I2C_MIC_SDAAP_I2C_MIC_SCLAP_I2C_TS_SDAAP_I2C_TS_SCLGPU_DVS_PWMUART_DBG_TX_AP_RXUART_AP_TX_DBG_RXBIGCPU_DVS_PWMEDP_HPD_3V0SD_CARD_DET_LUSB_DP_HPDTOUCH_RESET_LPP3300_DISP_ENSD_SLOT_PWR_EN,pcfg-pull-up pcfg-pull-down pcfg-pull-none ,pcfg-pull-none-12ma , 9 pcfg-pull-none-13ma , 9 pcfg-pull-none-18ma , 9pcfg-pull-none-20ma , 9pcfg-pull-up-2ma  9pcfg-pull-up-8ma  9pcfg-pull-up-18ma  9pcfg-pull-up-20ma  9pcfg-pull-down-4ma  9pcfg-pull-down-8ma  9pcfg-pull-down-12ma  9 pcfg-pull-down-18ma  9pcfg-pull-down-20ma  9pcfg-output-high Hpcfg-output-low Tpcfg-input-enable _pcfg-input-pull-up _ pcfg-input-pull-down _ clockclk-32k lcifcif-clkin l cif-clkouta l edpedp-hpd lgmacrgmii-pins l    rmii-pins l     i2c0i2c0-xfer li2c1i2c1-xfer l?i2c2i2c2-xfer l@i2c3i2c3-xfer lDi2c4i2c4-xfer l  i2c5i2c5-xfer l  Gi2c6i2c6-xfer l  Ki2c7i2c7-xfer lLi2c8i2c8-xfer li2s0i2s0-2ch-bus` li2s0-2ch-bus-bclk-off` li2s0-8ch-bus li2s0-8ch-bus-bclk-off li2s1i2s1-2ch-busP li2s1-2ch-bus-bclk-offP lsdio0sdio0-bus1 lsdio0-bus4@ lsdio0-cmd lsdio0-clk lsdio0-cd lsdio0-pwr lsdio0-bkpwr lsdio0-wp lsdio0-int lsdmmcsdmmc-bus1 lsdmmc-bus4@ l   +sdmmc-clk l 'sdmmc-cmd l (sdmmc-cd l)sdmmc-wp lsdmmc-cd-pin l*suspendap-pwroff lddrio-pwroff lspdifspdif-bus lspdif-bus-1 lspi0spi0-clk lRspi0-cs0 lUspi0-cs1 lspi0-tx lSspi0-rx lTspi1spi1-clk l Vspi1-cs0 l Yspi1-rx lXspi1-tx lWspi1-sleep@ l  Zspi2spi2-clk l [spi2-cs0 l ^spi2-rx l ]spi2-tx l \spi3spi3-clk lspi3-cs0 lspi3-rx lspi3-tx lspi4spi4-clk l`spi4-cs0 lcspi4-rx lbspi4-tx laspi5spi5-clk lespi5-cs0 lhspi5-rx lgspi5-tx lftestclktest-clkout0 ltest-clkout1 ltest-clkout2 ltsadcotp-pin lrotp-out lsuart0uart0-xfer lMuart0-cts luart0-rts luart1uart1-xfer l  Nuart2auart2a-xfer l uart2buart2b-xfer luart2cuart2c-xfer lOuart3uart3-xfer lPuart3-cts luart3-rts luart4uart4-xfer luarthdcpuarthdcp-xfer lpwm0pwm0-pin lpwm0-pin-pull-down lvop0-pwm-pin lvop1-pwm-pin lpwm1pwm1-pin lpwm1-pin-pull-down lpwm2pwm2-pin lpwm2-pin-pull-down lpwm3apwm3a-pin lpwm3bpwm3b-pin lhdmihdmi-i2c-xfer lhdmi-cec lpciepci-clkreqn-cpm lpci-clkreqnb-cpm l$pcfg-pull-none-8ma , 9backlight-enablebl-en lcros-ecec-ap-int-l lidiscrete-regulatorssd-io-pwr-en lsd-pwr-1800-sel lsd-slot-pwr-en lpp1500-en l pp1800-audio-en lpp3000-en l pp3300-disp-en lwlan-module-pd-l lcpu3-pen-pwr-en lcodecheadset-int-l lmic-int l _max98357asdmode-en ltouchscreentouch-int-l l Etouch-reset-l ltrackpadap-i2c-tp-pu-en l Htrackpad-int-l lIwifiwlan-module-reset-l l bt-host-wake-l lwifi-perst-l lwlan-host-wake-l l#write-protectap-fw-wp ldigitizercpu1-dig-irq-l lAcpu1-dig-pdct-l lBpencpu1-pen-eject l opp-table-0operating-points-v2 z opp00 Q 5 @opp01 #F opp02 0, Popp03 < opp04 G opp05 Tfr  opp06 ZJ 0opp-table-1operating-points-v2 zopp00 Q 5 @opp01 #F 5opp02 0, opp03 < Popp04 G opp05 Tfr opp06 _"  opp07 kI 0opp08 x) opp-table-2operating-points-v2opp00  5opp01 @ 5opp02 ׄ opp03 e Popp04 #F Hopp05 / g8opp-table-3operating-points-v2opp00 ׄ opp01 'Z opp02 / opp03 7P( H chosen serial2:115200n8ppvar-sysregulator-fixed ppvar_sys  pp1200-lpddrregulator-fixed pp1200_lpddr   OO(pp1800regulator-fixed pp1800   w@w@(>pp3300regulator-fixed pp3300   2Z2Z(pp5000regulator-fixed pp5000   LK@LK@(ppvar-bigcpu-pwmpwm-regulator ppvar_bigcpu_pwm3 8CdWd   /ޜppvar-bigcpuvctrl-regulator ppvar_bigcpu /ޜjv /ޜBppvar-litcpu-pwmpwm-regulator ppvar_litcpu_pwm3 8CdWd   1Yppvar-litcpuvctrl-regulator ppvar_litcpu 1Yjv 1Y ppvar-gpu-pwmpwm-regulator ppvar_gpu_pwm3 8CdWd   vppvar-gpuvctrl-regulator ppvar_gpu vjv vpp900-apregulator-fixed pp900_ap    (!pp3000-sd-slotregulator-fixed pp3000_sd_slot)default7 ,(-ppvar-sd-card-ioregulator-gpio ppvar_sd_card_io)default7  #Sw@- w@-.pp3300-trackpadap-rtc-clk fixed-clockN^xin32kqmax98357amaxim,max98357a)default7 Jokaysoundrockchip,rk3399-gru-soundpp3000regulator-fixed pp3000)default7 "    --(ppvar-centerlogic-pwmpwm-regulator ppvar_centerlogic_pwm3 8CdWd   5E\ppvar-centerlogicvctrl-regulator ppvar_centerlogic 5E\jv 5E\zppvar-logicregulator-fixed ppvar_logic    (pp1800-audioregulator-fixed pp1800_audio)default7 "  (>pp1800-pcieregulator-fixed pp1800_pcie)default7 "+@(>pp1500-ap-ioregulator-fixed pp1500_ap_io)default7 "    ``(>pp3300-dispregulator-fixed pp3300_disp)default7 ,G(pp3300-wifi-btregulator-fixed pp3300_wifi_bt "(wlan-pd-nregulator-fixed wlan_pd_n)default7 J ( backlightpwm-backlight JX)default73gpio-keys gpio-keys)default7key-wake-on-bteWake-on-Bluetooth #"kswitch-pen-insert ePen Insert #" kvp3-3v-digregulator-fixed p3.3v_dig)default7 ,(Cedp-panelsharp,lq123p1jx31Xpanel-timingN `0T @x portendpointthermistor-ppvar-bigcpumurata,ncp15wb473w@ c# Nothermistor-ppvar-litcpumurata,ncp15wb473w@ c# Nq compatibleinterrupt-parent#address-cells#size-cellsmodelchassis-typegpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusrockchip,pd-idle-nsrockchip,sr-idle-nsrockchip,sr-mc-gate-idle-nsrockchip,srpd-lite-idle-nsrockchip,standby-idle-nsrockchip,ddr3_odt_dis_freqrockchip,lpddr3_odt_dis_freqrockchip,lpddr4_odt_dis_freqrockchip,sr-mc-gate-idle-dis-freq-hzrockchip,srpd-lite-idle-dis-freq-hzrockchip,standby-idle-dis-freq-hzcenter-supplyrockchip,pd-idle-dis-freq-hzrockchip,sr-idle-dis-freq-hzinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiospinctrl-namespinctrl-0vpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllerwakeup-sourcemarvell,wakeup-pinmax-functionsnum-lanesrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthassigned-clocksassigned-clock-ratesbus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removableextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-falling-time-nsi2c-scl-rising-time-nsrealtek,dmic-init-delay-msvdd-supplypost-power-on-delay-mshid-descr-addrlinux,gpio-keymapreg-shiftreg-io-widthdmasdma-namespinctrl-1spi-max-frequencygoogle,remote-bussbs,i2c-retry-countsbs,poll-retry-countgoogle,usb-port-idkeypad,num-rowskeypad,num-columnsgoogle,needs-ghost-filterlinux,keymap#pwm-cellspolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicesustainable-powercontributionrockchip,hw-tshut-temppinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplypowered-while-suspendeddlg,micbias-lvldlg,mic-amp-in-selVDD-supplyVDDMIC-supplyVDDIO-supplydlg,adc-1bit-rptdlg,btn-avgdlg,btn-cfgdlg,mic-det-thrdlg,jack-ins-debdlg,jack-det-ratedlg,jack-rem-debdlg,a-d-btn-thrdlg,d-b-btn-thrdlg,b-c-btn-thrdlg,c-mic-btn-thriommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daimali-supplygpio-controller#gpio-cellsgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendstdout-pathregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltvin-supplypwmspwm-supplypwm-dutycycle-rangepwm-dutycycle-unitctrl-supplyctrl-voltage-rangeregulator-settling-time-up-usmin-slew-down-rateovp-threshold-percentenable-active-highgpioenable-gpiossdmode-gpiossdmode-delayrockchip,cpurockchip,codecregulator-enable-ramp-delaystartup-delay-uspower-supplylabellinux,codelinux,input-typebacklighthactivehfront-porchhback-porchhsync-lenhsync-activevactivevfront-porchvback-porchvsync-lenvsync-activepullup-uvpullup-ohmpulldown-ohmio-channels J8<(%google,scarlet-rev15-sku0google,scarlet-rev15google,scarlet-rev14-sku0google,scarlet-rev14google,scarlet-rev13-sku0google,scarlet-rev13google,scarlet-rev12-sku0google,scarlet-rev12google,scarlet-rev11-sku0google,scarlet-rev11google,scarlet-rev10-sku0google,scarlet-rev10google,scarlet-rev9-sku0google,scarlet-rev9google,scarlet-rev8-sku0google,scarlet-rev8google,scarlet-rev7-sku0google,scarlet-rev7google,scarlet-rev6-sku0google,scarlet-rev6google,scarlet-rev5-sku0google,scarlet-rev5google,scarletgoogle,grurockchip,rk3399 +7tabletDGoogle ScarletaliasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@1cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@2cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@3cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@100cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'cpu@101cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'l2-cache-cluster0cache\i@{ l2-cache-cluster1cache\i@{idle-states pscicpu-sleeparm,idle-state->Uxf cluster-sleeparm,idle-state->Uf display-subsystemrockchip,display-subsystemwmemory-controllerrockchip,rk3399-dmc}dmc_clkokay( @$'Z?'Z\'Zy;7P(pmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6$xin24m7pcie@f8000000rockchip,rk3399-pcie Daxi-baseapb-basepci+N_k Gaclkaclk-perfhclkpm0123usyslegacyclient` ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-38̂8(coremgmtmgmt-stickypipepmpclkaclkokay default 'interrupt-controller7Npcie@0,0+pciwifi@0,0 qcom,ath10k( LGO_DUMOpcie-ep@f8000000rockchip,rk3399-pcie-ep Dapb-basemem-base Gaclkaclk-perfhclkpmlz8(coremgmtmgmt-stickypipepmpclkaclk ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default! disabledethernet@fe300000rockchip,rk3399-gmac0 umacirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac" stmmaceth# disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample"yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр  Lbiuciuciu-driveciu-sample"zresetokaydefault$%&'(" 3) <GTan|*+mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 #NрNclk_xinclk_ahb$emmc_cardclock7, phy_arasan"okayusb@fe380000 generic-ehci8-.usb disabledusb@fe3a0000 generic-ohci:-.usbokay+bluetooth@1usbcf3,e300usb4ca,301adefault/ )uwakeupusb@fe3c0000 generic-ehci<01usb disabledusb@fe3e0000 generic-ohci> 01usb disableddebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokay2usb@fe800000 snps,dwc3irefbus_earlysuspendhost34usb2-phyusb3-phy utmi_wide #D]~"okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otg disabledusb@fe900000 snps,dwc3nrefbus_earlysuspendotg56usb2-phyusb3-phy utmi_wide #D]~" disableddp@fec00000rockchip,rk3399-cdn-dp r  ruocore-clkpclkspdifgrf7" HJspdifdptxapbcore#okay2portsport+endpoint@08endpoint@19interrupt-controller@fee00000 arm,gic-v3N+7P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default:+ disabledi2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default;+okay2,digitizer@9 hid-over-i2c  )%default<=i2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default>+okay2,touchscreen@10elan,ekth3500 )default?@ 4 i2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$defaultCD+okay2,camera@36 ovti,ov56956defaultExvclk@FLGX  4HportendpointIecamera@3c ovti,ov2685<defaultJxvclk@FX L  4HportendpointKeserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcpzdefaultL disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbpzdefaultM disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkdpzdefaultNokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkepzdefaultO disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDP P txrxdefaultQRST+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5P P txrxdefaultsleepUVWX+okayYflash@0jedec,spi-norspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4PPtxrxdefaultZ[\]+okaytpm@0 google,cr50 )default^ 5spi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCPPtxrxdefault_`ab+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkcc txrxdefaultdefg"+okayec@0google,cros-ec-spi )defaulth-i2c-tunnelgoogle,cros-ec-i2c-tunnel+sbs-battery@bsbs,sbs-battery extcon0google,extcon-usbc-cros-ec2keyboard-controllergoogle,cros-ec-keyb    #D =;<=>?@A B CD}0Y1 d"#(  \V |})   + ^a !%$' & + ,./-32*5 4 9    8 l j6  g ithermal-zonescpu-thermal Jd ` nitripscpu_alert0 ~ ?passivejcpu_alert1 ~X ?passivekcpu_crit ~s  ?criticalcooling-mapsmap0 j map1 kH gpu-thermal Jd ` nitripsgpu_alert0 ~$ ?passivelgpu_crit ~s  ?criticalcooling-mapsmap0 l mtsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apb# sinitdefaultsleepno n okay  iqos@ffa58000rockchip,rk3399-qossyscon wqos@ffa5c000rockchip,rk3399-qossyscon xqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon {qos@ffa70080rockchip,rk3399-qossyscon |qos@ffa74000rockchip,rk3399-qossyscon@ yqos@ffa76000rockchip,rk3399-qossyscon` zqos@ffa90000rockchip,rk3399-qossyscon }qos@ffa98000rockchip,rk3399-qossyscon pqos@ffaa0000rockchip,rk3399-qossyscon ~qos@ffaa0080rockchip,rk3399-qossyscon qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon qqos@ffab0080rockchip,rk3399-qossyscon rqos@ffab8000rockchip,rk3399-qossyscon sqos@ffac0000rockchip,rk3399-qossyscon tqos@ffac0080rockchip,rk3399-qossyscon uqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon vpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller +"power-domain@34" &p power-domain@33! &qr power-domain@31 &s power-domain@32   &tu power-domain@35# &v power-domain@25l power-domain@23 &w power-domain@22f &x power-domain@27L &y power-domain@28 &z power-domain@8~} power-domain@9  power-domain@24 &{| power-domain@15 +power-domain@21r &} power-domain@19 &~ power-domain@20 & power-domain@16 +power-domain@17 & power-domain@18 & syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay - spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkfpzdefault disabledi2c@ff3c0000rockchip,rk3399-i2c<    i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=    i2cpclk8default+ disabledi2c@ff3e0000rockchip,rk3399-i2c>    i2cpclk:default+okay2,da7219@1a dlg,da7219 )Ymclk < ( Ldiffdefault _  j x da7219_aad   2   32_64    ! ">pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB 4defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB 4defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  4defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 4defaultokaydfi@ff630000c@rockchip,rk3399-dfi}y pclk_ddr_monokayvideo-codec@ff650000rockchip,rk3399-vpue rq uvepuvdpu aclkhclk ?"iommu@ff650800rockchip,iommue@s aclkiface F"video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore ?" iommu@ff660480rockchip,iommu f@f@u aclkiface"  Fiommu@ff670800rockchip,iommug@* aclkiface F disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb"!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  S ^ apb_pclkcdma-controller@ff6e0000arm,pl330arm,primecelln@  S ^ apb_pclkPclock-controller@ff750000rockchip,rk3399-pmucruuxin24m7 u(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m#7 u@BCxD#F_^;рxh<4`/ׄ ׄׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+#io-domains"rockchip,rk3399-io-voltage-domainokay    +mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf" okayusb2phy@e450rockchip,rk3399-usb2phyP{phyclk7$clk_usbphy0_480mokay-host-port  ulinestateokay.otg-port 0ghjuotg-bvalidotg-idlinestateokay3usb2phy@e460rockchip,rk3399-usb2phy`|phyclk7$clk_usbphy1_480m disabled0host-port  ulinestateokay1otg-port 0lmouotg-bvalidotg-idlinestateokay5phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay,pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~"Luphyuphy-pipeuphy-tcphy#okay2dp-port 7usb3-port 4phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref" Muphyuphy-pipeuphy-tcphy# disableddp-port usb3-port 6watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBctx mclkhclkU"okayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s#'cctxrxi2s_clki2s_hclkVbclk_onbclk_off"okayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(cctxrxi2s_clki2s_hclkWdefault" disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)cctxrxi2s_clki2s_hclkX" disabledvop@ff8f0000rockchip,rk3399-vop-lit wׄaclk_vopdclk_vophclk_vop ?" axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff8f3f00rockchip,iommu?w aclkiface" Fokayvop@ff900000rockchip,rk3399-vop-big vׄaclk_vopdclk_vophclk_vop ?" axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff903f00rockchip,iommu?v aclkiface" Fokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk ?dphy"okayports+port@0+endpoint@0eIendpoint@1eKiommu@ff914000rockchip,iommu @P+ aclkiface F" okayisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk ?dphy" disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface F" hdmi-soundsimple-audio-card i2s  &hdmi-sound disabledsimple-audio-card,cpu =simple-audio-card,codec =hdmi@ff940000rockchip,rk3399-dw-hdmiz(tqpoiahbisfrcecgrfref"# disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf"apb#+okay Gports+port@0+endpoint@0endpoint@1port@1endpointpanel@0 T ^defaultinnolux,p097pfg@ kports+port@0endpointport@1endpointdsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf"apb#+ okayports+port@0+endpoint@0endpoint@1port@1endpointdp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault"dp# disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ujobmmugpu!0 P"#okay wmpinctrlrockchip,rk3399-pinctrl#}+default gpio@ff720000rockchip,gpio-bankr  7N CLK_32K_APEC_IN_RW_ODSPK_PA_ENWLAN_PERST_1V8_LWLAN_PD_1V8_LWLAN_RF_KILL_1V8_LBIGCPU_DVS_PWMSD_CD_L_JTAG_ENBT_EN_BT_RF_KILL_1V8_LPMUIO2_33_18_L_PP3300_S0_ENTOUCH_RESET_LAP_EC_WARM_RESET_REQPEN_RESET_LAP_FLASH_WP_Lgpio@ff730000rockchip,gpio-banks  7N PEN_INT_ODLPEN_EJECT_ODLBT_HOST_WAKE_1V8_LWLAN_HOST_WAKE_1V8_LTOUCH_INT_ODLAP_EC_S3_S0_LAP_EC_OVERTEMPAP_SPI_FLASH_MISOAP_SPI_FLASH_MOSI_RAP_SPI_FLASH_CLK_RAP_SPI_FLASH_CS_L_RSD_CARD_DET_ODLAP_EXPANSION_IO1AP_EXPANSION_IO2AP_I2C_DISP_SDAAP_I2C_DISP_SCLH1_INT_ODLEC_AP_INT_ODLLITCPU_DVS_PWMAP_I2C_AUDIO_SDAAP_I2C_AUDIO_SCLAP_EXPANSION_IO3HEADSET_INT_ODLAP_EXPANSION_IO4)gpio@ff780000rockchip,gpio-bankxP  7N AP_I2C_PEN_SDAAP_I2C_PEN_SCLSD_IO_PWR_ENUCAM_RST_LPP1250_CAM_ENWCAM_RST_LAP_EXPANSION_IO5AP_I2C_CAM_SDAAP_I2C_CAM_SCLAP_H1_SPI_MISOAP_H1_SPI_MOSIAP_H1_SPI_CLKAP_H1_SPI_CS_LUART_EXPANSION_TX_AP_RXUART_AP_TX_EXPANSION_RXUART_EXPANSION_RTS_AP_CTSUART_AP_RTS_EXPANSION_CTSAP_SPI_EC_MISOAP_SPI_EC_MOSIAP_SPI_EC_CLKAP_SPI_EC_CS_LPP2800_CAM_ENCLK_24M_CAMWLAN_PCIE_CLKREQ_1V8_LSD_PWR_3000_1800_LHgpio@ff788000rockchip,gpio-bankxQ  7N I2S0_SCLKI2S0_LRCK_RXI2S0_LRCK_TXI2S0_SDI_0STRAP_LCDBIAS_LSTRAP_FEATURE_1STRAP_FEATURE_2I2S0_SDO_0gpio@ff790000rockchip,gpio-bankyR  7N I2S_MCLKAP_I2C_EXPANSION_SDAAP_I2C_EXPANSION_SCLDMIC_ENAP_I2C_TS_SDAAP_I2C_TS_SCLGPU_DVS_PWMUART_DBG_TX_AP_RXUART_AP_TX_DBG_RXBL_ENBL_PWMDISPLAY_RST_LPPVARP_LCD_ENPPVARN_LCD_ENSD_SLOT_PWR_ENpcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer :i2c2i2c2-xfer ;i2c3i2c3-xfer >i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus` i2s0-8ch-bus-bclk-off` i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    (sdmmc-clk  $sdmmc-cmd  %sdmmc-cd &sdmmc-wp sdmmc-cd-pin  'suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Qspi0-cs0 Tspi0-cs1 spi0-tx Rspi0-rx Sspi1spi1-clk  Uspi1-cs0  Xspi1-rx Wspi1-tx Vspi1-sleep@   Yspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk _spi4-cs0 bspi4-rx aspi4-tx `spi5spi5-clk dspi5-cs0 gspi5-rx fspi5-tx etestclktest-clkout0 test-clkout1 Dtest-clkout2 tsadcotp-pin notp-out ouart0uart0-xfer Luart0-cts uart0-rts uart1uart1-xfer   Muart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Nuart3uart3-xfer Ouart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm !pcfg-pull-none-8ma  backlight-enablebl-en cros-ecec-ap-int-l hdiscrete-regulatorssd-io-pwr-en sd-pwr-1800-sel sd-slot-pwr-en display-rst-l ppvarp-lcd-en ppvarn-lcd-en codecheadset-int-l mic-int  max98357asdmode-en touchscreentouch-int-l ?touch-reset-l @trackpadap-i2c-tp-pu-en  trackpad-int-l wifiwlan-module-reset-l  bt-host-wake-l /bt-en-1v8-l wlan-pd-1v8-l wlan-rf-kill-1v8-l wifi-perst-l wlan-host-wake-l write-protectap-fw-wp pcfg-pull-none-6ma  camerapp1250-dvdd pp2800-avdd ucam_rst Jwcam_rst Edigitizerpen-int-odl <pen-reset-l =dmicdmic-en penpen-eject-odl tpmh1-int-od-l ^opp-table-0operating-points-v2  opp00 $Q + 5 9@opp01 $#F + opp02 $0, + Popp03 $< + opp04 $G +opp05 $Tfr + Jopp06 $ZJ +0opp-table-1operating-points-v2 opp00 $Q + 5 9@opp01 $#F + 5opp02 $0, + opp03 $< + Popp04 $G + opp05 $Tfr +opp06 $_" + Jopp07 $kI +0opp08 $x) +opp-table-2operating-points-v2opp00 $  + 5opp01 $@ + 5opp02 $ׄ + opp03 $e + Popp04 $#F +Hopp05 $/ +g8opp-table-3operating-points-v2opp00 $ׄ + opp01 $'Z + opp02 $/ + opp03 $7P( +  Jchosen Vserial2:115200n8ppvar-sysregulator-fixed bppvar_sys q pp1200-lpddrregulator-fixed bpp1200_lpddr q  O O pp1800regulator-fixed bpp1800 q  w@ w@  pp3300regulator-fixed bpp3300 q  2Z 2Z pp5000regulator-fixed bpp5000 q  LK@ LK@ ppvar-bigcpu-pwmpwm-regulator bppvar_bigcpu_pwm   d d q  5J ppvar-bigcpuvctrl-regulator bppvar_bigcpu 5J   5J(Bppvar-litcpu-pwmpwm-regulator bppvar_litcpu_pwm   d d q  =J Nppvar-litcpuvctrl-regulator bppvar_litcpu =J N  =JN( ppvar-gpu-pwmpwm-regulator bppvar_gpu_pwm   d d q  3p Pppvar-gpuvctrl-regulator bppvar_gpu 3p P  3pP(pp900-appp3000-sd-slotregulator-fixed bpp3000_sd_slotdefaultF Y *ppvar-sd-card-ioregulator-gpio bppvar_sd_card_iodefaultF ^H HSw@2Z w@ 2Z+pp3300-trackpadap-rtc-clk fixed-clock$xin32k7max98357amaxim,max98357adefault ^kokaysoundrockchip,rk3399-gru-soundxpp1250-s3regulator-fixed bpp1250_s3 q    pp1250-dvddregulator-fixed bpp1250_dvdddefaultF YH Gpp900-s0regulator-fixed bpp900_s0 q    ppvarn-lcdregulator-fixed bppvarn_lcddefaultF Y ppvarp-lcdregulator-fixed bppvarp_lcddefaultF Y pp900-s3regulator-fixed bpp900_s3 q    pp2800-avddregulator-fixed bpp2800_avdddefaultF YHd Fbt-3v3regulator-fixed bbt_3v3defaultF Y wlan-3v3regulator-fixed bwlan_3v3defaultF Y' backlightpwm-backlight ^default B@dmic dmic-codec defaultgpio-keys gpio-keysdefaultswitch-pen-insert Pen Insert ) compatibleinterrupt-parent#address-cells#size-cellschassis-typemodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusrockchip,pd-idle-nsrockchip,sr-idle-nsrockchip,sr-mc-gate-idle-nsrockchip,srpd-lite-idle-nsrockchip,standby-idle-nsrockchip,ddr3_odt_dis_freqrockchip,lpddr3_odt_dis_freqrockchip,lpddr4_odt_dis_freqrockchip,sr-mc-gate-idle-dis-freq-hzrockchip,srpd-lite-idle-dis-freq-hzrockchip,standby-idle-dis-freq-hzcenter-supplyinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiospinctrl-namespinctrl-0vpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllerqcom,ath10k-calibration-variantmax-functionsnum-lanesrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthassigned-clocksassigned-clock-ratesbus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removableextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-falling-time-nsi2c-scl-rising-time-nshid-descr-addrreset-gpiosavdd-supplydvdd-supplydovdd-supplydata-lanesreg-shiftreg-io-widthdmasdma-namespinctrl-1spi-max-frequencygoogle,remote-bussbs,i2c-retry-countsbs,poll-retry-countgoogle,usb-port-idkeypad,num-rowskeypad,num-columnsgoogle,needs-ghost-filterlinux,keymappolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplydlg,micbias-lvldlg,mic-amp-in-selVDD-supplyVDDMIC-supplyVDDIO-supplydlg,adc-1bit-rptdlg,btn-avgdlg,btn-cfgdlg,mic-det-thrdlg,jack-ins-debdlg,jack-det-ratedlg,jack-rem-debdlg,a-d-btn-thrdlg,d-b-btn-thrdlg,b-c-btn-thrdlg,c-mic-btn-thr#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiclock-masterbacklightenable-gpiosavee-supplymali-supplygpio-controller#gpio-cellsgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendstdout-pathregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltvin-supplypwmspwm-supplypwm-dutycycle-rangepwm-dutycycle-unitctrl-supplyctrl-voltage-rangeregulator-settling-time-up-usenable-active-highgpiosdmode-gpiossdmode-delayrockchip,cpurockchip,codecstartup-delay-usregulator-enable-ramp-delaydmicen-gpioswakeup-delay-mslabellinux,codelinux,input-typewakeup-source F8X( google,scarlet-rev15-sku2google,scarlet-rev15-sku4google,scarlet-rev15-sku6google,scarlet-rev15google,scarlet-rev14-sku2google,scarlet-rev14-sku4google,scarlet-rev14-sku6google,scarlet-rev14google,scarlet-rev13-sku2google,scarlet-rev13-sku4google,scarlet-rev13-sku6google,scarlet-rev13google,scarlet-rev12-sku2google,scarlet-rev12-sku4google,scarlet-rev12-sku6google,scarlet-rev12google,scarlet-rev11-sku2google,scarlet-rev11-sku4google,scarlet-rev11-sku6google,scarlet-rev11google,scarlet-rev10-sku2google,scarlet-rev10-sku4google,scarlet-rev10-sku6google,scarlet-rev10google,scarlet-rev9-sku2google,scarlet-rev9-sku4google,scarlet-rev9-sku6google,scarlet-rev9google,scarlet-rev8-sku2google,scarlet-rev8-sku4google,scarlet-rev8-sku6google,scarlet-rev8google,scarlet-rev7-sku2google,scarlet-rev7-sku4google,scarlet-rev7-sku6google,scarlet-rev7google,scarlet-rev6-sku2google,scarlet-rev6-sku4google,scarlet-rev6-sku6google,scarlet-rev6google,scarlet-rev5-sku2google,scarlet-rev5-sku4google,scarlet-rev5-sku6google,scarlet-rev5google,scarlet-rev4-sku2google,scarlet-rev4-sku4google,scarlet-rev4-sku6google,scarlet-rev4google,scarletgoogle,grurockchip,rk3399 +7tabletDGoogle ScarletaliasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@1cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@2cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@3cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@100cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'cpu@101cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'l2-cache-cluster0cache\i@{ l2-cache-cluster1cache\i@{idle-states pscicpu-sleeparm,idle-state->Uxf cluster-sleeparm,idle-state->Uf display-subsystemrockchip,display-subsystemwmemory-controllerrockchip,rk3399-dmc}dmc_clkokay( @$'Z?'Z\'Zy;7P(pmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6$xin24m7pcie@f8000000rockchip,rk3399-pcie Daxi-baseapb-basepci+N_k Gaclkaclk-perfhclkpm0123usyslegacyclient` ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-38̂8(coremgmtmgmt-stickypipepmpclkaclkokay default 'interrupt-controller7Npcie@0,0+pcipcie-ep@f8000000rockchip,rk3399-pcie-ep Dapb-basemem-base Gaclkaclk-perfhclkpmLZ8(coremgmtmgmt-stickypipepmpclkaclk ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3d default! disabledethernet@fe300000rockchip,rk3399-gmac0 umacirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac" stmmaceth# disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample"yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр  Lbiuciuciu-driveciu-sample"zresetokaydefault$%&'( ) '4AN\*h+mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 u#NрNclk_xinclk_ahb$emmc_cardclock7, phy_arasan"okayusb@fe380000 generic-ehci8-.usb disabledusb@fe3a0000 generic-ohci:-.usbokay+bluetooth@1usbcf3,e300usb4ca,301adefault/ )uwakeupusb@fe3c0000 generic-ehci<01usb disabledusb@fe3e0000 generic-ohci> 01usb disableddebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokay2usb@fe800000 snps,dwc3irefbus_earlysuspendhost34usb2-phyusb3-phy utmi_wide$=^"okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otg disabledusb@fe900000 snps,dwc3nrefbus_earlysuspendotg56usb2-phyusb3-phy utmi_wide$=^" disableddp@fec00000rockchip,rk3399-cdn-dp r  ruocore-clkpclkspdifgrf7" HJspdifdptxapbcore#okay2portsport+endpoint@08endpoint@19interrupt-controller@fee00000 arm,gic-v3N+7P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default:+ disabledi2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default;+okay2,digitizer@9 hid-over-i2c  )default<=i2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default>+okay2,touchscreen@10elan,ekth3500 )default?@  i2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$defaultCD+okay2,camera@36 ovti,ov56956defaultExvclk F,G8  HportendpointIEcamera@3c ovti,ov2685<defaultJxvclk F8 ,  HportendpointKEserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcPZdefaultL disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbPZdefaultM disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkdPZdefaultNokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkePZdefaultO disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDgP P ltxrxdefaultQRST+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5gP P ltxrxdefaultsleepUVWX+okayvYflash@0jedec,spi-norspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4gPPltxrxdefaultZ[\]+okaytpm@0 google,cr50 )default^ 5spi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCgPPltxrxdefault_`ab+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkgcc ltxrxdefaultdefg"+okayec@0google,cros-ec-spi )defaulth-i2c-tunnelgoogle,cros-ec-i2c-tunnel+sbs-battery@bsbs,sbs-battery extcon0google,extcon-usbc-cros-ec2keyboard-controllergoogle,cros-ec-keyb  D ;<=>?@A B CD}0Y1 d"#(  \V |})   + ^a !%$' & + ,./-32*5 4 9    8 l j6  g ithermal-zonescpu-thermal *d @ Nitripscpu_alert0 ^ j?passivejcpu_alert1 ^X j?passivekcpu_crit ^s j ?criticalcooling-mapsmap0 uj zmap1 ukH zgpu-thermal *d @ Nitripsgpu_alert0 ^$ j?passivelgpu_crit ^s j ?criticalcooling-mapsmap0 ul zmtsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apb# sinitdefaultsleepnvo n okay  iqos@ffa58000rockchip,rk3399-qossyscon wqos@ffa5c000rockchip,rk3399-qossyscon xqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon {qos@ffa70080rockchip,rk3399-qossyscon |qos@ffa74000rockchip,rk3399-qossyscon@ yqos@ffa76000rockchip,rk3399-qossyscon` zqos@ffa90000rockchip,rk3399-qossyscon }qos@ffa98000rockchip,rk3399-qossyscon pqos@ffaa0000rockchip,rk3399-qossyscon ~qos@ffaa0080rockchip,rk3399-qossyscon qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon qqos@ffab0080rockchip,rk3399-qossyscon rqos@ffab8000rockchip,rk3399-qossyscon sqos@ffac0000rockchip,rk3399-qossyscon tqos@ffac0080rockchip,rk3399-qossyscon uqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon vpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller +"power-domain@34" p power-domain@33! qr power-domain@31 s power-domain@32   tu power-domain@35# v power-domain@25l power-domain@23 w power-domain@22f x power-domain@27L y power-domain@28 z power-domain@8~} power-domain@9  power-domain@24 {| power-domain@15 +power-domain@21r } power-domain@19 ~ power-domain@20  power-domain@16 +power-domain@17  power-domain@18  syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkfPZdefault disabledi2c@ff3c0000rockchip,rk3399-i2c<    i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=    i2cpclk8default+ disabledi2c@ff3e0000rockchip,rk3399-i2c>    i2cpclk:default+okay2,da7219@1a dlg,da7219 )Ymclk  ( ,diffdefault ?  J X da7219_aad e v 2   32_64    ! >pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 defaultokaydfi@ff630000c@rockchip,rk3399-dfi}y pclk_ddr_monokayvideo-codec@ff650000rockchip,rk3399-vpue rq uvepuvdpu aclkhclk "iommu@ff650800rockchip,iommue@s aclkiface &"video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore " iommu@ff660480rockchip,iommu f@f@u aclkiface"  &iommu@ff670800rockchip,iommug@* aclkiface & disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb"!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  3 > apb_pclkcdma-controller@ff6e0000arm,pl330arm,primecelln@  3 > apb_pclkPclock-controller@ff750000rockchip,rk3399-pmucruuxin24m7 U(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m#7 U@BCxD#F_^;рxh<4`/ׄ ׄׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+#io-domains"rockchip,rk3399-io-voltage-domainokay b  o  |  +mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf" okayusb2phy@e450rockchip,rk3399-usb2phyP{phyclk7$clk_usbphy0_480mokay-host-port  ulinestateokay.otg-port 0ghjuotg-bvalidotg-idlinestateokay3usb2phy@e460rockchip,rk3399-usb2phy`|phyclk7$clk_usbphy1_480m disabled0host-port  ulinestateokay1otg-port 0lmouotg-bvalidotg-idlinestateokay5phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay,pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~"Luphyuphy-pipeuphy-tcphy#okay2dp-port 7usb3-port 4phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref" Muphyuphy-pipeuphy-tcphy# disableddp-port usb3-port 6watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBgcltx mclkhclkU"okayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s#'gccltxrxi2s_clki2s_hclkVbclk_onbclk_offv"okayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(gccltxrxi2s_clki2s_hclkWdefault" disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)gccltxrxi2s_clki2s_hclkX" disabledvop@ff8f0000rockchip,rk3399-vop-lit wׄaclk_vopdclk_vophclk_vop " axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff8f3f00rockchip,iommu?w aclkiface" &okayvop@ff900000rockchip,rk3399-vop-big vׄaclk_vopdclk_vophclk_vop " axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff903f00rockchip,iommu?v aclkiface" &okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk dphy"okayports+port@0+endpoint@0EIendpoint@1EKiommu@ff914000rockchip,iommu @P+ aclkiface &" okayisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk dphy" disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface &" hdmi-soundsimple-audio-card i2s  hdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmiZ(tqpoiahbisfrcecgrfref"# disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf"apb#+okay 'ports+port@0+endpoint@0endpoint@1port@1endpointpanel@0 4 >defaultinnolux,p097pfg  Kports+port@0endpointport@1endpointdsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf"apb#+ okayports+port@0+endpoint@0endpoint@1port@1endpointdp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault"dp# disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ujobmmugpu!0 P"#okay Wmpinctrlrockchip,rk3399-pinctrl#}+default gpio@ff720000rockchip,gpio-bankr c s7N CLK_32K_APEC_IN_RW_ODSPK_PA_ENWLAN_PERST_1V8_LWLAN_PD_1V8_LWLAN_RF_KILL_1V8_LBIGCPU_DVS_PWMSD_CD_L_JTAG_ENBT_EN_BT_RF_KILL_1V8_LPMUIO2_33_18_L_PP3300_S0_ENTOUCH_RESET_LAP_EC_WARM_RESET_REQPEN_RESET_LAP_FLASH_WP_Lgpio@ff730000rockchip,gpio-banks c s7N PEN_INT_ODLPEN_EJECT_ODLBT_HOST_WAKE_1V8_LWLAN_HOST_WAKE_1V8_LTOUCH_INT_ODLAP_EC_S3_S0_LAP_EC_OVERTEMPAP_SPI_FLASH_MISOAP_SPI_FLASH_MOSI_RAP_SPI_FLASH_CLK_RAP_SPI_FLASH_CS_L_RSD_CARD_DET_ODLAP_EXPANSION_IO1AP_EXPANSION_IO2AP_I2C_DISP_SDAAP_I2C_DISP_SCLH1_INT_ODLEC_AP_INT_ODLLITCPU_DVS_PWMAP_I2C_AUDIO_SDAAP_I2C_AUDIO_SCLAP_EXPANSION_IO3HEADSET_INT_ODLAP_EXPANSION_IO4)gpio@ff780000rockchip,gpio-bankxP c s7N AP_I2C_PEN_SDAAP_I2C_PEN_SCLSD_IO_PWR_ENUCAM_RST_LPP1250_CAM_ENWCAM_RST_LAP_EXPANSION_IO5AP_I2C_CAM_SDAAP_I2C_CAM_SCLAP_H1_SPI_MISOAP_H1_SPI_MOSIAP_H1_SPI_CLKAP_H1_SPI_CS_LUART_EXPANSION_TX_AP_RXUART_AP_TX_EXPANSION_RXUART_EXPANSION_RTS_AP_CTSUART_AP_RTS_EXPANSION_CTSAP_SPI_EC_MISOAP_SPI_EC_MOSIAP_SPI_EC_CLKAP_SPI_EC_CS_LPP2800_CAM_ENCLK_24M_CAMWLAN_PCIE_CLKREQ_1V8_LSD_PWR_3000_1800_LHgpio@ff788000rockchip,gpio-bankxQ c s7N I2S0_SCLKI2S0_LRCK_RXI2S0_LRCK_TXI2S0_SDI_0STRAP_LCDBIAS_LSTRAP_FEATURE_1STRAP_FEATURE_2I2S0_SDO_0gpio@ff790000rockchip,gpio-bankyR c s7N I2S_MCLKAP_I2C_EXPANSION_SDAAP_I2C_EXPANSION_SCLDMIC_ENAP_I2C_TS_SDAAP_I2C_TS_SCLGPU_DVS_PWMUART_DBG_TX_AP_RXUART_AP_TX_DBG_RXBL_ENBL_PWMDISPLAY_RST_LPPVARP_LCD_ENPPVARN_LCD_ENSD_SLOT_PWR_ENpcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer :i2c2i2c2-xfer ;i2c3i2c3-xfer >i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus` i2s0-8ch-bus-bclk-off` i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    (sdmmc-clk  $sdmmc-cmd  %sdmmc-cd &sdmmc-wp sdmmc-cd-pin  'suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Qspi0-cs0 Tspi0-cs1 spi0-tx Rspi0-rx Sspi1spi1-clk  Uspi1-cs0  Xspi1-rx Wspi1-tx Vspi1-sleep@   Yspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk _spi4-cs0 bspi4-rx aspi4-tx `spi5spi5-clk dspi5-cs0 gspi5-rx fspi5-tx etestclktest-clkout0 test-clkout1 Dtest-clkout2 tsadcotp-pin notp-out ouart0uart0-xfer Luart0-cts uart0-rts uart1uart1-xfer   Muart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Nuart3uart3-xfer Ouart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm !pcfg-pull-none-8ma  backlight-enablebl-en cros-ecec-ap-int-l hdiscrete-regulatorssd-io-pwr-en sd-pwr-1800-sel sd-slot-pwr-en display-rst-l ppvarp-lcd-en ppvarn-lcd-en codecheadset-int-l mic-int  max98357asdmode-en touchscreentouch-int-l ?touch-reset-l @trackpadap-i2c-tp-pu-en  trackpad-int-l wifiwlan-module-reset-l  bt-host-wake-l /bt-en-1v8-l wlan-pd-1v8-l wlan-rf-kill-1v8-l wifi-perst-l wlan-host-wake-l write-protectap-fw-wp pcfg-pull-none-6ma  camerapp1250-dvdd pp2800-avdd ucam_rst Jwcam_rst Edigitizerpen-int-odl <pen-reset-l =dmicdmic-en penpen-eject-odl tpmh1-int-od-l ^opp-table-0operating-points-v2  opp00 Q 5 @opp01 #F opp02 0, Popp03 < opp04 G opp05 Tfr  *opp06 ZJ 0opp-table-1operating-points-v2 opp00 Q 5 @opp01 #F 5opp02 0, opp03 < Popp04 G opp05 Tfr opp06 _"  *opp07 kI 0opp08 x) opp-table-2operating-points-v2opp00   5opp01 @ 5opp02 ׄ opp03 e Popp04 #F Hopp05 / g8opp-table-3operating-points-v2opp00 ׄ opp01 'Z opp02 / opp03 7P(  *chosen 6serial2:115200n8ppvar-sysregulator-fixed Bppvar_sys Q epp1200-lpddrregulator-fixed Bpp1200_lpddr Q e wO O pp1800regulator-fixed Bpp1800 Q e ww@ w@  pp3300regulator-fixed Bpp3300 Q e w2Z 2Z pp5000regulator-fixed Bpp5000 Q e wLK@ LK@ ppvar-bigcpu-pwmpwm-regulator Bppvar_bigcpu_pwm   d d Q e w 5J ppvar-bigcpuvctrl-regulator Bppvar_bigcpu w 5J   5JBppvar-litcpu-pwmpwm-regulator Bppvar_litcpu_pwm   d d Q e w =J Nppvar-litcpuvctrl-regulator Bppvar_litcpu w =J N  =JN ppvar-gpu-pwmpwm-regulator Bppvar_gpu_pwm   d d Q e w 3p Pppvar-gpuvctrl-regulator Bppvar_gpu w 3p P  3pPpp900-appp3000-sd-slotregulator-fixed Bpp3000_sd_slotdefault& 9 *ppvar-sd-card-ioregulator-gpio Bppvar_sd_card_iodefault& >H HSw@2Z ww@ 2Z+pp3300-trackpadap-rtc-clk fixed-clock$xin32k7max98357amaxim,max98357adefault >Kokaysoundrockchip,rk3399-gru-soundXepp1250-s3regulator-fixed Bpp1250_s3 Q e w  pp1250-dvddregulator-fixed Bpp1250_dvdddefault& 9Ht Gpp900-s0regulator-fixed Bpp900_s0 Q e w   ppvarn-lcdregulator-fixed Bppvarn_lcddefault& 9 ppvarp-lcdregulator-fixed Bppvarp_lcddefault& 9 pp900-s3regulator-fixed Bpp900_s3 Q e w   pp2800-avddregulator-fixed Bpp2800_avdddefault& 9Htd Fbt-3v3regulator-fixed Bbt_3v3default& 9 wlan-3v3regulator-fixed Bwlan_3v3default& 9' backlightpwm-backlight >default B@dmic dmic-codec defaultgpio-keys gpio-keysdefaultswitch-pen-insert Pen Insert ) compatibleinterrupt-parent#address-cells#size-cellschassis-typemodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusrockchip,pd-idle-nsrockchip,sr-idle-nsrockchip,sr-mc-gate-idle-nsrockchip,srpd-lite-idle-nsrockchip,standby-idle-nsrockchip,ddr3_odt_dis_freqrockchip,lpddr3_odt_dis_freqrockchip,lpddr4_odt_dis_freqrockchip,sr-mc-gate-idle-dis-freq-hzrockchip,srpd-lite-idle-dis-freq-hzrockchip,standby-idle-dis-freq-hzcenter-supplyinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiospinctrl-namespinctrl-0vpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthassigned-clocksassigned-clock-ratesbus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removableextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-falling-time-nsi2c-scl-rising-time-nshid-descr-addrreset-gpiosavdd-supplydvdd-supplydovdd-supplydata-lanesreg-shiftreg-io-widthdmasdma-namespinctrl-1spi-max-frequencygoogle,remote-bussbs,i2c-retry-countsbs,poll-retry-countgoogle,usb-port-idkeypad,num-rowskeypad,num-columnsgoogle,needs-ghost-filterlinux,keymappolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplydlg,micbias-lvldlg,mic-amp-in-selVDD-supplyVDDMIC-supplyVDDIO-supplydlg,adc-1bit-rptdlg,btn-avgdlg,btn-cfgdlg,mic-det-thrdlg,jack-ins-debdlg,jack-det-ratedlg,jack-rem-debdlg,a-d-btn-thrdlg,d-b-btn-thrdlg,b-c-btn-thrdlg,c-mic-btn-thr#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiclock-masterbacklightenable-gpiosavee-supplymali-supplygpio-controller#gpio-cellsgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendstdout-pathregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltvin-supplypwmspwm-supplypwm-dutycycle-rangepwm-dutycycle-unitctrl-supplyctrl-voltage-rangeregulator-settling-time-up-usenable-active-highgpiosdmode-gpiossdmode-delayrockchip,cpurockchip,codecstartup-delay-usregulator-enable-ramp-delaydmicen-gpioswakeup-delay-mslabellinux,codelinux,input-typewakeup-source 8(google,scarlet-rev15-sku7google,scarlet-rev15google,scarlet-rev14-sku7google,scarlet-rev14google,scarlet-rev13-sku7google,scarlet-rev13google,scarlet-rev12-sku7google,scarlet-rev12google,scarlet-rev11-sku7google,scarlet-rev11google,scarlet-rev10-sku7google,scarlet-rev10google,scarlet-rev9-sku7google,scarlet-rev9google,scarlet-rev8-sku7google,scarlet-rev8google,scarlet-rev7-sku7google,scarlet-rev7google,scarlet-rev6-sku7google,scarlet-rev6google,scarlet-rev5-sku7google,scarlet-rev5google,scarlet-rev4-sku7google,scarlet-rev4google,scarlet-rev3-sku7google,scarlet-rev3google,scarletgoogle,grurockchip,rk3399 +7tabletDGoogle ScarletaliasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@1cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@2cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@3cpuarm,cortex-a53psci!0dJ Zg@y@   cpu@100cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'cpu@101cpuarm,cortex-a72psci !0J Zg@y@thermal-idle!'l2-cache-cluster0cache\i@{ l2-cache-cluster1cache\i@{idle-states pscicpu-sleeparm,idle-state->Uxf cluster-sleeparm,idle-state->Uf display-subsystemrockchip,display-subsystemwmemory-controllerrockchip,rk3399-dmc}dmc_clkokay( @$'Z?'Z\'Zy;7P(pmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6$xin24m7pcie@f8000000rockchip,rk3399-pcie Daxi-baseapb-basepci+N_k Gaclkaclk-perfhclkpm0123usyslegacyclient` ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-38̂8(coremgmtmgmt-stickypipepmpclkaclkokay default 'interrupt-controller7Npcie@0,0+pcipcie-ep@f8000000rockchip,rk3399-pcie-ep Dapb-basemem-base Gaclkaclk-perfhclkpmLZ8(coremgmtmgmt-stickypipepmpclkaclk ,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3d default! disabledethernet@fe300000rockchip,rk3399-gmac0 umacirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac" stmmaceth# disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample"yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр  Lbiuciuciu-driveciu-sample"zresetokaydefault$%&'( ) '4AN\*h+mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 u#NрNclk_xinclk_ahb$emmc_cardclock7, phy_arasan"okayusb@fe380000 generic-ehci8-.usb disabledusb@fe3a0000 generic-ohci:-.usbokay+bluetooth@1usbcf3,e300usb4ca,301adefault/ )uwakeupusb@fe3c0000 generic-ehci<01usb disabledusb@fe3e0000 generic-ohci> 01usb disableddebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokay2usb@fe800000 snps,dwc3irefbus_earlysuspendhost34usb2-phyusb3-phy utmi_wide$=^"okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otg disabledusb@fe900000 snps,dwc3nrefbus_earlysuspendotg56usb2-phyusb3-phy utmi_wide$=^" disableddp@fec00000rockchip,rk3399-cdn-dp r  ruocore-clkpclkspdifgrf7" HJspdifdptxapbcore#okay2portsport+endpoint@08endpoint@19interrupt-controller@fee00000 arm,gic-v3N+7P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default:+ disabledi2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default;+okay2,digitizer@9 hid-over-i2c  )default<=i2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default>+okay2,touchscreen@10elan,ekth3500 )default?@  i2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$defaultCD+okay2,camera@36 ovti,ov56956defaultExvclk F,G8  HportendpointIEcamera@3c ovti,ov2685<defaultJxvclk F8 ,  HportendpointKEserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcPZdefaultL disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbPZdefaultM disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkdPZdefaultNokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkePZdefaultO disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDgP P ltxrxdefaultQRST+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5gP P ltxrxdefaultsleepUVWX+okayvYflash@0jedec,spi-norspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4gPPltxrxdefaultZ[\]+okaytpm@0 google,cr50 )default^ 5spi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCgPPltxrxdefault_`ab+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkgcc ltxrxdefaultdefg"+okayec@0google,cros-ec-spi )defaulth-i2c-tunnelgoogle,cros-ec-i2c-tunnel+sbs-battery@bsbs,sbs-battery extcon0google,extcon-usbc-cros-ec2keyboard-controllergoogle,cros-ec-keyb  D ;<=>?@A B CD}0Y1 d"#(  \V |})   + ^a !%$' & + ,./-32*5 4 9    8 l j6  g ithermal-zonescpu-thermal *d @ Nitripscpu_alert0 ^ j?passivejcpu_alert1 ^X j?passivekcpu_crit ^s j ?criticalcooling-mapsmap0 uj zmap1 ukH zgpu-thermal *d @ Nitripsgpu_alert0 ^$ j?passivelgpu_crit ^s j ?criticalcooling-mapsmap0 ul zmtsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apb# sinitdefaultsleepnvo n okay  iqos@ffa58000rockchip,rk3399-qossyscon wqos@ffa5c000rockchip,rk3399-qossyscon xqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon {qos@ffa70080rockchip,rk3399-qossyscon |qos@ffa74000rockchip,rk3399-qossyscon@ yqos@ffa76000rockchip,rk3399-qossyscon` zqos@ffa90000rockchip,rk3399-qossyscon }qos@ffa98000rockchip,rk3399-qossyscon pqos@ffaa0000rockchip,rk3399-qossyscon ~qos@ffaa0080rockchip,rk3399-qossyscon qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon qqos@ffab0080rockchip,rk3399-qossyscon rqos@ffab8000rockchip,rk3399-qossyscon sqos@ffac0000rockchip,rk3399-qossyscon tqos@ffac0080rockchip,rk3399-qossyscon uqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon vpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller +"power-domain@34" p power-domain@33! qr power-domain@31 s power-domain@32   tu power-domain@35# v power-domain@25l power-domain@23 w power-domain@22f x power-domain@27L y power-domain@28 z power-domain@8~} power-domain@9  power-domain@24 {| power-domain@15 +power-domain@21r } power-domain@19 ~ power-domain@20  power-domain@16 +power-domain@17  power-domain@18  syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkfPZdefault disabledi2c@ff3c0000rockchip,rk3399-i2c<    i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=    i2cpclk8default+ disabledi2c@ff3e0000rockchip,rk3399-i2c>    i2cpclk:default+okay2,da7219@1a dlg,da7219 )Ymclk  ( ,diffdefault ?  J X da7219_aad e v 2   32_64    ! >pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 defaultokaydfi@ff630000c@rockchip,rk3399-dfi}y pclk_ddr_monokayvideo-codec@ff650000rockchip,rk3399-vpue rq uvepuvdpu aclkhclk "iommu@ff650800rockchip,iommue@s aclkiface &"video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore " iommu@ff660480rockchip,iommu f@f@u aclkiface"  &iommu@ff670800rockchip,iommug@* aclkiface & disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb"!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  3 > apb_pclkcdma-controller@ff6e0000arm,pl330arm,primecelln@  3 > apb_pclkPclock-controller@ff750000rockchip,rk3399-pmucruuxin24m7 U(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m#7 U@BCxD#F_^;рxh<4`/ׄ ׄׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+#io-domains"rockchip,rk3399-io-voltage-domainokay b  o  |  +mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf" okayusb2phy@e450rockchip,rk3399-usb2phyP{phyclk7$clk_usbphy0_480mokay-host-port  ulinestateokay.otg-port 0ghjuotg-bvalidotg-idlinestateokay3usb2phy@e460rockchip,rk3399-usb2phy`|phyclk7$clk_usbphy1_480m disabled0host-port  ulinestateokay1otg-port 0lmouotg-bvalidotg-idlinestateokay5phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay,pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~"Luphyuphy-pipeuphy-tcphy#okay2dp-port 7usb3-port 4phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref" Muphyuphy-pipeuphy-tcphy# disableddp-port usb3-port 6watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBgcltx mclkhclkU"okayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s#'gccltxrxi2s_clki2s_hclkVbclk_onbclk_offv"okayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(gccltxrxi2s_clki2s_hclkWdefault" disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)gccltxrxi2s_clki2s_hclkX" disabledvop@ff8f0000rockchip,rk3399-vop-lit wׄaclk_vopdclk_vophclk_vop " axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff8f3f00rockchip,iommu?w aclkiface" &okayvop@ff900000rockchip,rk3399-vop-big vׄaclk_vopdclk_vophclk_vop " axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff903f00rockchip,iommu?v aclkiface" &okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk dphy"okayports+port@0+endpoint@0EIendpoint@1EKiommu@ff914000rockchip,iommu @P+ aclkiface &" okayisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk dphy" disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface &" hdmi-soundsimple-audio-card i2s  hdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmiZ(tqpoiahbisfrcecgrfref"# disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf"apb#+okay 'ports+port@0+endpoint@0endpoint@1port@1endpointpanel@0 4 >defaultkingdisplay,kd097d04 Kports+port@0endpointport@1endpointdsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf"apb#+ okayports+port@0+endpoint@0endpoint@1port@1endpointdp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault"dp# disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ujobmmugpu!0 P"#okay Xmpinctrlrockchip,rk3399-pinctrl#}+default gpio@ff720000rockchip,gpio-bankr d t7N CLK_32K_APEC_IN_RW_ODSPK_PA_ENWLAN_PERST_1V8_LWLAN_PD_1V8_LWLAN_RF_KILL_1V8_LBIGCPU_DVS_PWMSD_CD_L_JTAG_ENBT_EN_BT_RF_KILL_1V8_LPMUIO2_33_18_L_PP3300_S0_ENTOUCH_RESET_LAP_EC_WARM_RESET_REQPEN_RESET_LAP_FLASH_WP_Lgpio@ff730000rockchip,gpio-banks d t7N PEN_INT_ODLPEN_EJECT_ODLBT_HOST_WAKE_1V8_LWLAN_HOST_WAKE_1V8_LTOUCH_INT_ODLAP_EC_S3_S0_LAP_EC_OVERTEMPAP_SPI_FLASH_MISOAP_SPI_FLASH_MOSI_RAP_SPI_FLASH_CLK_RAP_SPI_FLASH_CS_L_RSD_CARD_DET_ODLAP_EXPANSION_IO1AP_EXPANSION_IO2AP_I2C_DISP_SDAAP_I2C_DISP_SCLH1_INT_ODLEC_AP_INT_ODLLITCPU_DVS_PWMAP_I2C_AUDIO_SDAAP_I2C_AUDIO_SCLAP_EXPANSION_IO3HEADSET_INT_ODLAP_EXPANSION_IO4)gpio@ff780000rockchip,gpio-bankxP d t7N AP_I2C_PEN_SDAAP_I2C_PEN_SCLSD_IO_PWR_ENUCAM_RST_LPP1250_CAM_ENWCAM_RST_LAP_EXPANSION_IO5AP_I2C_CAM_SDAAP_I2C_CAM_SCLAP_H1_SPI_MISOAP_H1_SPI_MOSIAP_H1_SPI_CLKAP_H1_SPI_CS_LUART_EXPANSION_TX_AP_RXUART_AP_TX_EXPANSION_RXUART_EXPANSION_RTS_AP_CTSUART_AP_RTS_EXPANSION_CTSAP_SPI_EC_MISOAP_SPI_EC_MOSIAP_SPI_EC_CLKAP_SPI_EC_CS_LPP2800_CAM_ENCLK_24M_CAMWLAN_PCIE_CLKREQ_1V8_LSD_PWR_3000_1800_LHgpio@ff788000rockchip,gpio-bankxQ d t7N I2S0_SCLKI2S0_LRCK_RXI2S0_LRCK_TXI2S0_SDI_0STRAP_LCDBIAS_LSTRAP_FEATURE_1STRAP_FEATURE_2I2S0_SDO_0gpio@ff790000rockchip,gpio-bankyR d t7N I2S_MCLKAP_I2C_EXPANSION_SDAAP_I2C_EXPANSION_SCLDMIC_ENAP_I2C_TS_SDAAP_I2C_TS_SCLGPU_DVS_PWMUART_DBG_TX_AP_RXUART_AP_TX_DBG_RXBL_ENBL_PWMDISPLAY_RST_LPPVARP_LCD_ENPPVARN_LCD_ENSD_SLOT_PWR_ENpcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer :i2c2i2c2-xfer ;i2c3i2c3-xfer >i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus` i2s0-8ch-bus-bclk-off` i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    (sdmmc-clk  $sdmmc-cmd  %sdmmc-cd &sdmmc-wp sdmmc-cd-pin  'suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Qspi0-cs0 Tspi0-cs1 spi0-tx Rspi0-rx Sspi1spi1-clk  Uspi1-cs0  Xspi1-rx Wspi1-tx Vspi1-sleep@   Yspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk _spi4-cs0 bspi4-rx aspi4-tx `spi5spi5-clk dspi5-cs0 gspi5-rx fspi5-tx etestclktest-clkout0 test-clkout1 Dtest-clkout2 tsadcotp-pin notp-out ouart0uart0-xfer Luart0-cts uart0-rts uart1uart1-xfer   Muart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Nuart3uart3-xfer Ouart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm !pcfg-pull-none-8ma  backlight-enablebl-en cros-ecec-ap-int-l hdiscrete-regulatorssd-io-pwr-en sd-pwr-1800-sel sd-slot-pwr-en display-rst-l ppvarp-lcd-en ppvarn-lcd-en codecheadset-int-l mic-int  max98357asdmode-en touchscreentouch-int-l ?touch-reset-l @trackpadap-i2c-tp-pu-en  trackpad-int-l wifiwlan-module-reset-l  bt-host-wake-l /bt-en-1v8-l wlan-pd-1v8-l wlan-rf-kill-1v8-l wifi-perst-l wlan-host-wake-l write-protectap-fw-wp pcfg-pull-none-6ma  camerapp1250-dvdd pp2800-avdd ucam_rst Jwcam_rst Edigitizerpen-int-odl <pen-reset-l =dmicdmic-en penpen-eject-odl tpmh1-int-od-l ^opp-table-0operating-points-v2  opp00 Q 5 @opp01 #F opp02 0, Popp03 < opp04 G opp05 Tfr  +opp06 ZJ 0opp-table-1operating-points-v2 opp00 Q 5 @opp01 #F 5opp02 0, opp03 < Popp04 G opp05 Tfr opp06 _"  +opp07 kI 0opp08 x) opp-table-2operating-points-v2opp00   5opp01 @ 5opp02 ׄ opp03 e Popp04 #F Hopp05 / g8opp-table-3operating-points-v2opp00 ׄ opp01 'Z opp02 / opp03 7P(  +chosen 7serial2:115200n8ppvar-sysregulator-fixed Cppvar_sys R fpp1200-lpddrregulator-fixed Cpp1200_lpddr R f xO O pp1800regulator-fixed Cpp1800 R f xw@ w@  pp3300regulator-fixed Cpp3300 R f x2Z 2Z pp5000regulator-fixed Cpp5000 R f xLK@ LK@ ppvar-bigcpu-pwmpwm-regulator Cppvar_bigcpu_pwm   d d R f x 5J ppvar-bigcpuvctrl-regulator Cppvar_bigcpu x 5J   5J Bppvar-litcpu-pwmpwm-regulator Cppvar_litcpu_pwm   d d R f x =J Nppvar-litcpuvctrl-regulator Cppvar_litcpu x =J N  =JN  ppvar-gpu-pwmpwm-regulator Cppvar_gpu_pwm   d d R f x 3p Pppvar-gpuvctrl-regulator Cppvar_gpu x 3p P  3pP pp900-appp3000-sd-slotregulator-fixed Cpp3000_sd_slotdefault' : *ppvar-sd-card-ioregulator-gpio Cppvar_sd_card_iodefault' >H HSw@2Z xw@ 2Z+pp3300-trackpadap-rtc-clk fixed-clock$xin32k7max98357amaxim,max98357adefault ?Lokaysoundrockchip,rk3399-gru-soundYfpp1250-s3regulator-fixed Cpp1250_s3 R f x  pp1250-dvddregulator-fixed Cpp1250_dvdddefault' :Hu Gpp900-s0regulator-fixed Cpp900_s0 R f x   ppvarn-lcdregulator-fixed Cppvarn_lcddefault' : ppvarp-lcdregulator-fixed Cppvarp_lcddefault' : pp900-s3regulator-fixed Cpp900_s3 R f x   pp2800-avddregulator-fixed Cpp2800_avdddefault' :Hud Fbt-3v3regulator-fixed Cbt_3v3default' : wlan-3v3regulator-fixed Cwlan_3v3default' :' backlightpwm-backlight >default B@dmic dmic-codec defaultgpio-keys gpio-keysdefaultswitch-pen-insert Pen Insert ) compatibleinterrupt-parent#address-cells#size-cellschassis-typemodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusrockchip,pd-idle-nsrockchip,sr-idle-nsrockchip,sr-mc-gate-idle-nsrockchip,srpd-lite-idle-nsrockchip,standby-idle-nsrockchip,ddr3_odt_dis_freqrockchip,lpddr3_odt_dis_freqrockchip,lpddr4_odt_dis_freqrockchip,sr-mc-gate-idle-dis-freq-hzrockchip,srpd-lite-idle-dis-freq-hzrockchip,standby-idle-dis-freq-hzcenter-supplyinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiospinctrl-namespinctrl-0vpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthassigned-clocksassigned-clock-ratesbus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr12sd-uhs-sdr25sd-uhs-sdr50sd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removableextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-falling-time-nsi2c-scl-rising-time-nshid-descr-addrreset-gpiosavdd-supplydvdd-supplydovdd-supplydata-lanesreg-shiftreg-io-widthdmasdma-namespinctrl-1spi-max-frequencygoogle,remote-bussbs,i2c-retry-countsbs,poll-retry-countgoogle,usb-port-idkeypad,num-rowskeypad,num-columnsgoogle,needs-ghost-filterlinux,keymappolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplydlg,micbias-lvldlg,mic-amp-in-selVDD-supplyVDDMIC-supplyVDDIO-supplydlg,adc-1bit-rptdlg,btn-avgdlg,btn-cfgdlg,mic-det-thrdlg,jack-ins-debdlg,jack-det-ratedlg,jack-rem-debdlg,a-d-btn-thrdlg,d-b-btn-thrdlg,b-c-btn-thrdlg,c-mic-btn-thr#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiclock-masterbacklightenable-gpiospower-supplymali-supplygpio-controller#gpio-cellsgpio-line-namesbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsopp-suspendstdout-pathregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltvin-supplypwmspwm-supplypwm-dutycycle-rangepwm-dutycycle-unitctrl-supplyctrl-voltage-rangeregulator-settling-time-up-usenable-active-highgpiosdmode-gpiossdmode-delayrockchip,cpurockchip,codecstartup-delay-usregulator-enable-ramp-delaydmicen-gpioswakeup-delay-mslabellinux,codelinux,input-typewakeup-source 8( hugsun,x99rockchip,rk3399 +7Hugsun X99 TV BOXaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth okay+;Rinput_jrgmiidefault s  'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay!"default "#$0+wifi@1brcm,bcm4329-fmac % 1host-wakedefault&mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр+>  Lbiuciuciu-driveciu-samplezresetokayрSep'default()*+} mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 +N> Nclk_xinclk_ahbemmc_cardclocky, ~phy_arasanokay"usb@fe380000 generic-ehci8-y.~usbokayusb@fe3a0000 generic-ohci:-y.~usbokayusb@fe3c0000 generic-ehci</y0~usbokayusb@fe3e0000 generic-ohci> /y0~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendhosty12~usb2-phyusb3-phy utmi_wide)Bcokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty34~usb2-phyusb3-phy utmi_wide)Bcokaydp@fec00000rockchip,rk3399-cdn-dp +r>  ruocore-clkpclkspdifgrfy56 HJspdifdptxapbcore disabledportsport+endpoint@07endpoint@18interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay9crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c+A> AU i2cpclk;default:+okay,i2c@ff120000rockchip,rk3399-i2c+B> BV i2cpclk#default;+ disabledi2c@ff130000rockchip,rk3399-i2c+C> CW i2cpclk"default<+okayi2c@ff140000rockchip,rk3399-i2c+D> DX i2cpclk&default=+ disabledi2c@ff150000rockchip,rk3399-i2c+E> EY i2cpclk%default>+ disabledi2c@ff160000rockchip,rk3399-i2c+F> FZ i2cpclk$default?+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc default @ABokaybluetoothbrcm,bcm43438-btC ext_clock -D A% S% b= default EFGlHxIserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb defaultJ disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd defaultKokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke defaultL disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDM M txrxdefaultNOPQ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5M M txrxdefaultRSTU+okayflash@0jedec,spi-nor+spi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4MMtxrxdefaultVWXY+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCMMtxrxdefaultZ[\]+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk^^ txrxdefault_`ab+ disabledthermal-zonescpu-thermaldctripscpu_alert0ppassivedcpu_alert1$passiveecpu_crits criticalcooling-mapsmap0dmap1eHgpu-thermaldctripsgpu_alert0$passivefgpu_crits criticalcooling-mapsmap0f gtsadc@ff260000rockchip,rk3399-tsadc&a+O> qOdtsadcapb_pclk tsadc-apbinitdefaultsleephi&h0okayF]cqos@ffa58000rockchip,rk3399-qossyscon qqos@ffa5c000rockchip,rk3399-qossyscon rqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon uqos@ffa70080rockchip,rk3399-qossyscon vqos@ffa74000rockchip,rk3399-qossyscon@ sqos@ffa76000rockchip,rk3399-qossyscon` tqos@ffa90000rockchip,rk3399-qossyscon wqos@ffa98000rockchip,rk3399-qossyscon jqos@ffaa0000rockchip,rk3399-qossyscon xqos@ffaa0080rockchip,rk3399-qossyscon yqos@ffaa8000rockchip,rk3399-qossyscon zqos@ffaa8080rockchip,rk3399-qossyscon {qos@ffab0000rockchip,rk3399-qossyscon kqos@ffab0080rockchip,rk3399-qossyscon lqos@ffab8000rockchip,rk3399-qossyscon mqos@ffac0000rockchip,rk3399-qossyscon nqos@ffac0080rockchip,rk3399-qossyscon oqos@ffac8000rockchip,rk3399-qossyscon |qos@ffac8080rockchip,rk3399-qossyscon }qos@ffad0000rockchip,rk3399-qossyscon ~qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon ppower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerx+power-domain@34"jxpower-domain@33!klxpower-domain@31mxpower-domain@32  noxpower-domain@35#pxpower-domain@25lxpower-domain@23qxpower-domain@22frxpower-domain@27Lsxpower-domain@28txpower-domain@8~}xpower-domain@9 xpower-domain@24uvxpower-domain@15x+power-domain@21rwxpower-domain@19xyxpower-domain@20z{xpower-domain@16x+power-domain@17|}xpower-domain@18~xsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayIspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf default disabledi2c@ff3c0000rockchip,rk3399-i2c<+ >   i2cpclk9default+okaysyr827@40silergy,syr827@ fan53555-reg vdd_cpu_b 4`  ( < Nregulator-state-mem Ysyr828@41silergy,syr828A fan53555-regvdd_gpu 4`  ( < N rregulator-state-mem Ypmic@1brockchip,rk808 default  xin32krtc_clko_wifi       H   % 2HxICregulatorsDCDC_REG1 vdd_center  q ( <regulator-state-mem YDCDC_REG2 vdd_cpu_l qpq ( < regulator-state-mem YDCDC_REG3vcc_ddr ( <regulator-state-mem ?DCDC_REG4vcc_1v8w@w@ ( <Iregulator-state-mem ? Ww@LDO_REG1 vcc1v8_dvpw@w@ ( <regulator-state-mem ? Ww@LDO_REG2 vcca1v8_hdmiw@w@ ( <regulator-state-mem ? Ww@LDO_REG3 vcca_1v8w@w@ ( <regulator-state-mem ? Ww@LDO_REG4vcc_sdw@2Z ( <'regulator-state-mem ? W2ZLDO_REG5 vcc3v0_sd-- ( <regulator-state-mem ? W-LDO_REG6vcc_1v5`` ( <regulator-state-mem ? W`LDO_REG7 vcca0v9_hdmi   ( <regulator-state-mem ? W LDO_REG8vcc_3v0-- ( <regulator-state-mem ? W-SWITCH_REG1 vcc3v3_s3 ( <regulator-state-mem ?SWITCH_REG2 vcc3v3_s0 ( <regulator-state-mem ?i2c@ff3d0000rockchip,rk3399-i2c=+ >   i2cpclk8default+okayX(typec-portc@22 fcs,fusb302" default sokayi2c@ff3e0000rockchip,rk3399-i2c>+ >   i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB default disabledpwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB default disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 default disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk iommu@ff650800rockchip,iommue@s aclkiface video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore  iommu@ff660480rockchip,iommu f@f@u aclkiface  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclk^dma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkMclock-controller@ff750000rockchip,rk3399-pmucruuxin24m +>(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m +@BCxD>#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay 9 9  'mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay-host-port  1linestateokay_.otg-port 0ghj1otg-bvalidotg-idlinestateokay1usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay/host-port  1linestateokay_0otg-port 0lmo1otg-bvalidotg-idlinestateokay3phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay,pcie-phyrockchip,rk3399-pcie-phyrefclk phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref+~>Luphyuphy-pipeuphy-tcphyokaydp-port 5usb3-port 2phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref+> Muphyuphy-pipeuphy-tcphyokaydp-port 6usb3-port 4watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB^tx mclkhclkUdefaultokayi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'^^txrxi2s_clki2s_hclkVbclk_onbclk_offokay # >i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(^^txrxi2s_clki2s_hclkWdefaultokay # >i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)^^txrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w+>ׄaclk_vopdclk_vophclk_vop  axiahbdclk disabledport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff8f3f00rockchip,iommu?w aclkiface  disabledvop@ff900000rockchip,rk3399-vop-big v+>ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@47iommu@ff903f00rockchip,iommu?v aclkiface okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk y~dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface  Xisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk y~dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface  Xhdmi-soundsimple-audio-card si2s  hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi (tqpoiahbisfrcecgrfrefokay defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P#okay gpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr   %gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Dgpio@ff788000rockchip,gpio-bankxQ    gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  $ pcfg-pull-none-13ma  $ pcfg-pull-none-18ma  $pcfg-pull-none-20ma  $pcfg-pull-up-2ma  $pcfg-pull-up-8ma  $pcfg-pull-up-18ma  $pcfg-pull-up-20ma  $pcfg-pull-down-4ma  $pcfg-pull-down-8ma  $pcfg-pull-down-12ma  $ pcfg-pull-down-18ma  $pcfg-pull-down-20ma  $pcfg-output-high 3pcfg-output-low ?pcfg-input-enable Jpcfg-input-pull-up J pcfg-input-pull-down J clockclk-32k Wcifcif-clkin W cif-clkouta W edpedp-hpd Wgmacrgmii-pins W    rmii-pins W     rgmii-sleep-pins Wi2c0i2c0-xfer Wi2c1i2c1-xfer W:i2c2i2c2-xfer W;i2c3i2c3-xfer W<i2c4i2c4-xfer W  i2c5i2c5-xfer W  =i2c6i2c6-xfer W  >i2c7i2c7-xfer W?i2c8i2c8-xfer Wi2s0i2s0-2ch-bus` Wi2s0-2ch-bus-bclk-off` Wi2s0-8ch-bus Wi2s0-8ch-bus-bclk-off Wi2s1i2s1-2ch-busP Wi2s1-2ch-bus-bclk-offP Wsdio0sdio0-bus1 Wsdio0-bus4@ W"sdio0-cmd W#sdio0-clk W$sdio0-cd Wsdio0-pwr Wsdio0-bkpwr Wsdio0-wp Wsdio0-int Wsdmmcsdmmc-bus1 Wsdmmc-bus4@ W   +sdmmc-clk W (sdmmc-cmd W )sdmmc-cd W*sdmmc-wp Wsuspendap-pwroff Wddrio-pwroff Wspdifspdif-bus Wspdif-bus-1 Wspi0spi0-clk WNspi0-cs0 WQspi0-cs1 Wspi0-tx WOspi0-rx WPspi1spi1-clk W Rspi1-cs0 W Uspi1-rx WTspi1-tx WSspi2spi2-clk W Vspi2-cs0 W Yspi2-rx W Xspi2-tx W Wspi3spi3-clk Wspi3-cs0 Wspi3-rx Wspi3-tx Wspi4spi4-clk WZspi4-cs0 W]spi4-rx W\spi4-tx W[spi5spi5-clk W_spi5-cs0 Wbspi5-rx Waspi5-tx W`testclktest-clkout0 Wtest-clkout1 Wtest-clkout2 Wtsadcotp-pin Whotp-out Wiuart0uart0-xfer W@uart0-cts WBuart0-rts WAuart1uart1-xfer W  Juart2auart2a-xfer W uart2buart2b-xfer Wuart2cuart2c-xfer WKuart3uart3-xfer WLuart3-cts Wuart3-rts Wuart4uart4-xfer Wuarthdcpuarthdcp-xfer Wpwm0pwm0-pin Wpwm0-pin-pull-down Wvop0-pwm-pin Wvop1-pwm-pin Wpwm1pwm1-pin Wpwm1-pin-pull-down Wpwm2pwm2-pin Wpwm2-pin-pull-down Wpwm3apwm3a-pin Wpwm3bpwm3b-pin Whdmihdmi-i2c-xfer Whdmi-cec Wpciepci-clkreqn-cpm Wpci-clkreqnb-cpm Wfusb30xfusb0-int Wirir-rx Wledspower-led-pin Wpmicpmic-int-l Wvsel1-pin Wvsel2-pin Wsdiobt-host-wake-l WFbt-reg-on-h W Ebt-wake-l WGwifi-reg_on-h W wifiwifi-host-wake-l W&usb-typecvcc5v0_typec_en Wusb2host-vbus-drv Wopp-table-0operating-points-v2 e opp00 pQ w  @opp01 p#F w opp02 p0, w P Popp03 p< wHHopp04 pG wB@B@opp05 pTfr w**opp-table-1operating-points-v2 eopp00 pQ w  @opp01 p#F w opp02 p0, w opp03 p< w Y Yopp04 pG w~~opp05 pTfr wopp06 p_" wopp07 pkI wOOopp-table-2operating-points-v2opp00 p  w 0opp01 p@ w 0opp02 pׄ w 0opp03 pe w Y Y0opp04 p#F wHH0opp05 p/ w0chosen serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacdc-5vregulator-fixeddc_5v ( <LK@LK@ir-receivergpio-ir-receiver ;%defaultleds gpio-ledsdefaultled-0 blue:power ; on default-onvcc-sysregulator-fixedvcc_sysLK@LK@ ( Nvcc-phy-regulatorregulator-fixedvcc_phy ( <vcc1v8-s0regulator-fixed vcc1v8_s0w@w@ (9vcc3v3-sysregulator-fixed vcc3v3_sys2Z2Z ( NHvcc5v0-host-regulatorregulator-fixed  ~default vcc5v0_host (vcc5v0-typec-regulatorregulator-fixed  ~default vcc5v0_typec ( Nvcc5v0-usbregulator-fixed vcc5v0_usb ( <LK@LK@ Nvdd-logpwm-regulator a vdd_log 5\ ( <sdio-pwrseqmmc-pwrseq-simpleC ext_clockdefault % ! compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeeddisable-wpvqmmc-supplycard-detect-delayarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobedr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyregulator-compatibleregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onvin-supplyregulator-off-in-suspendregulator-initial-moderockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathlabeldefault-statelinux,default-triggerenable-active-highpwmspwm-supplyreset-gpios 8<( m$khadas,edge-captainrockchip,rk3399 +7Khadas Edge-Captainaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000/ethernet@fe300000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay interrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth)okay4D[inputhsrgmiidefault  |! 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay  "+default #$%9G&T'+wifi@1brcm,bcm4329-fmac ( 1host-wake`default)mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр4t  Lbiuciuciu-driveciu-samplezresetokay (default *+,mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 4Nt Nclk_xinclk_ahbemmc_cardclocky- ~phy_arasanokay+usb@fe380000 generic-ehci8.y/~usbokayusb@fe3a0000 generic-ohci:.y/~usbokayusb@fe3c0000 generic-ehci<0y1~usbokayusb@fe3e0000 generic-ohci> 0y1~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy23~usb2-phyusb3-phy utmi_wide/Hiokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty45~usb2-phyusb3-phy utmi_wide/Hiokaydp@fec00000rockchip,rk3399-cdn-dp 4rt  ruocore-clkpclkspdifgrfy67 HJspdifdptxapbcore disabledportsport+endpoint@08endpoint@19interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay&crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c4At AU i2cpclk;default:+ disabledi2c@ff120000rockchip,rk3399-i2c4Bt BV i2cpclk#default;+ disabledi2c@ff130000rockchip,rk3399-i2c4Ct CW i2cpclk"default<+okayi2c@ff140000rockchip,rk3399-i2c4Dt DX i2cpclk&default=+ disabledi2c@ff150000rockchip,rk3399-i2c4Et EY i2cpclk%default>+ disabledi2c@ff160000rockchip,rk3399-i2c4Ft FZ i2cpclk$default?+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc&default @ABokaybluetoothbrcm,bcm43438-btClpo 3D G( YDh= default EFGrH~Iserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb&defaultJ disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd&defaultKokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke&defaultL disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDM M txrxdefaultNOPQ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5M M txrxdefaultRSTU+okayflash@0 winbond,w25q128fwjedec,spi-nor2spi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4MMtxrxdefaultVWXY+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCMMtxrxdefaultZ[\]+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk^^ txrxdefault_`ab+ disabledthermal-zonescpu-thermaldctripscpu_alert0ppassivedcpu_alert1$passiveecpu_crits criticalcpu_warmactivefcpu_hotactivehcooling-mapsmap0dmap1eHmap2f gmap3h ggpu-thermaldctripsgpu_alert0$passiveigpu_crits criticalgpu_warmactivekgpu_hotactivelcooling-mapsmap0i jmap1k gmap2l gtsadc@ff260000rockchip,rk3399-tsadc&a4Ot qOdtsadcapb_pclk tsadc-apb sinitdefaultsleepm"n,m6okayLccqos@ffa58000rockchip,rk3399-qossyscon vqos@ffa5c000rockchip,rk3399-qossyscon wqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon zqos@ffa70080rockchip,rk3399-qossyscon {qos@ffa74000rockchip,rk3399-qossyscon@ xqos@ffa76000rockchip,rk3399-qossyscon` yqos@ffa90000rockchip,rk3399-qossyscon |qos@ffa98000rockchip,rk3399-qossyscon oqos@ffaa0000rockchip,rk3399-qossyscon }qos@ffaa0080rockchip,rk3399-qossyscon ~qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon pqos@ffab0080rockchip,rk3399-qossyscon qqos@ffab8000rockchip,rk3399-qossyscon rqos@ffac0000rockchip,rk3399-qossyscon sqos@ffac0080rockchip,rk3399-qossyscon tqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon upower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller~+power-domain@34"o~power-domain@33!pq~power-domain@31r~power-domain@32  st~power-domain@35#u~power-domain@25l~power-domain@23v~power-domain@22fw~power-domain@27Lx~power-domain@28y~power-domain@8~}~power-domain@9 ~power-domain@24z{~power-domain@15~+power-domain@21r|~power-domain@19}~~power-domain@20~power-domain@16~+power-domain@17~power-domain@18~syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayIspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf&default disabledi2c@ff3c0000rockchip,rk3399-i2c<4 t   i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=4 t   i2cpclk8default+okaypmic@1brockchip,rk808 xin32krk808-clkout2defaultHHHH H H H +H 7H DH QH~ICregulatorsDCDC_REG1 ^vdd_center m  q p qregulator-state-mem DCDC_REG2 ^vdd_cpu_l m  q p q regulator-state-mem DCDC_REG3 ^vcc_ddr m regulator-state-mem DCDC_REG4 ^vcc_1v8 m  w@ w@Iregulator-state-mem  w@LDO_REG1 ^vcc1v8_apio2 m  w@ w@regulator-state-mem LDO_REG2 ^vcc_vldo2 m  - -regulator-state-mem LDO_REG3 ^vcc1v8_pmupll m  w@ w@regulator-state-mem  w@LDO_REG4 ^vccio_sd m  w@ -'regulator-state-mem  -LDO_REG5 ^vcc_vldo5 m  - -regulator-state-mem LDO_REG6 ^vcc_1v5 m  ` `regulator-state-mem  `LDO_REG7 ^vcc1v8_codec m  w@ w@regulator-state-mem LDO_REG8 ^vcc_3v0 m  - -regulator-state-mem  -SWITCH_REG1 ^vcc3v3_s3 m regulator-state-mem SWITCH_REG2 ^vcc3v3_s0 m regulator-state-mem regulator@40silergy,syr827@ %default ^vdd_cpu_b 4 `  m  BHregulator-state-mem regulator@41silergy,syr828A %default ^vdd_gpu 4 `  m  BHregulator-state-mem i2c@ff3e0000rockchip,rk3399-i2c>4 t   i2cpclk:default+okaypwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB Mdefaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB Mdefault disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  Mdefaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 Mdefault disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk Xiommu@ff650800rockchip,iommue@s aclkiface _video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore X iommu@ff660480rockchip,iommu f@f@u aclkiface  _iommu@ff670800rockchip,iommug@* aclkiface _ disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  l w apb_pclk^dma-controller@ff6e0000arm,pl330arm,primecelln@  l w apb_pclkMclock-controller@ff750000rockchip,rk3399-pmucruuxin24m 4t(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m 4@BCxDt#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay   ' mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay.host-port  1linestateokayh/otg-port 0ghj1otg-bvalidotg-idlinestateokay2usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay0host-port  1linestateokayh1otg-port 0lmo1otg-bvalidotg-idlinestateokay4phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay-pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref4~tLuphyuphy-pipeuphy-tcphyokaydp-port 6usb3-port 3phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref4t Muphyuphy-pipeuphy-tcphyokaydp-port 7usb3-port 5watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB^tx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'^^txrxi2s_clki2s_hclkVbclk_onbclk_off"okay  i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(^^txrxi2s_clki2s_hclkWdefaultokay  i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)^^txrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w4tׄaclk_vopdclk_vophclk_vop X axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff8f3f00rockchip,iommu?w aclkiface _okayvop@ff900000rockchip,rk3399-vop-big v4tׄaclk_vopdclk_vophclk_vop X axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff903f00rockchip,iommu?v aclkiface _okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Xy~dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface _ &isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Xy~dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface _ &hdmi-soundsimple-audio-card Ai2s Z thdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi&(tqpoiahbisfrcecgrfrefokay defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P#okay jpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr   (gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Dgpio@ff788000rockchip,gpio-bankxQ   !gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma e pcfg-pull-none-13ma e pcfg-pull-none-18ma epcfg-pull-none-20ma epcfg-pull-up-2ma epcfg-pull-up-8ma epcfg-pull-up-18ma epcfg-pull-up-20ma epcfg-pull-down-4ma epcfg-pull-down-8ma epcfg-pull-down-12ma e pcfg-pull-down-18ma epcfg-pull-down-20ma epcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins      rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer :i2c2i2c2-xfer ;i2c3i2c3-xfer <i2c4i2c4-xfer   i2c5i2c5-xfer   =i2c6i2c6-xfer   >i2c7i2c7-xfer ?i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ #sdio0-cmd $sdio0-clk %sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    ,sdmmc-clk  *sdmmc-cmd  +sdmmc-cd sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Nspi0-cs0 Qspi0-cs1 spi0-tx Ospi0-rx Pspi1spi1-clk  Rspi1-cs0  Uspi1-rx Tspi1-tx Sspi2spi2-clk  Vspi2-cs0  Yspi2-rx  Xspi2-tx  Wspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk Zspi4-cs0 ]spi4-rx \spi4-tx [spi5spi5-clk _spi5-cs0 bspi5-rx aspi5-tx `testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin motp-out nuart0uart0-xfer @uart0-cts Buart0-rts Auart1uart1-xfer   Juart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Kuart3uart3-xfer Luart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm btbt-host-wake-l Fbt-reg-on-h Ebt-wake-l Gbuttonspwrbtn irir-rx ledssys-led-pin user-led-pin pmicpmic-int-l cpu-b-sleep  gpu-sleep  sdio-pwrseqwifi-enable-h usb2vcc5v0-host-en wifiwifi-host-wake-l )opp-table-0operating-points-v2 $ opp00 /Q 6  D@opp01 /#F 6 opp02 /0, 6 P Popp03 /< 6HHopp04 /G 6B@B@opp05 /Tfr 6**opp-table-1operating-points-v2 $opp00 /Q 6  D@opp01 /#F 6 opp02 /0, 6 opp03 /< 6 Y Yopp04 /G 6~~opp05 /Tfr 6opp06 /_" 6opp07 /kI 6OOopp-table-2operating-points-v2opp00 /  6 0opp01 /@ 6 0opp02 /ׄ 6 0opp03 /e 6 Y Y0opp04 /#F 6HH0opp05 // 60chosen Userial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacsdio-pwrseqmmc-pwrseq-simpleC ext_clockdefault aD"vcc1v8-s3regulator-fixed ^vcc1v8_s3 m  w@ w@ BI&vcc3v3-pcie-regulatorregulator-fixed ^vcc3v3_pcie m  2Z 2Z BHvcc5v0-host-regulatorregulator-fixed m default ^vcc5v0_host m Bvdd-logpwm-regulator a H ^vdd_log m  5 \vsysregulator-fixed ^vsys m vsys-3v3regulator-fixed ^vsys_3v3 m  2Z 2Z BHvsys-5v0regulator-fixed ^vsys_5v0 m  LK@ LK@ Badc-keys adc-keys  buttons w@ dbutton-recovery Recovery h FPgpio-keys gpio-keys defaultkey-power d ( GPIO Key Power tir-receivergpio-ir-receiver  rc-khadasdefaultleds gpio-ledsdefaultled-0 sys_led /heartbeat (led-1 user_led Eoff pwm-fanpwm-fan S# b @g compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2ethernet0cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiosnum-lanesinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104vqmmc-supplyvmmc-supplybrcm,drive-strengthassigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wparasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disableoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathreset-gpiosenable-active-highpwmspwm-supplyio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltautorepeatdebounce-intervallinux,rc-map-namelinux,default-triggerdefault-statecooling-levelsfan-supply 84( mkhadas,edge-vrockchip,rk3399 +7Khadas Edge-Valiases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000/ethernet@fe300000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay interrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth)okay4D[inputhsrgmiidefault  |! 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay  "+default #$%9G&T'+wifi@1brcm,bcm4329-fmac ( 1host-wake`default)mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр4t  Lbiuciuciu-driveciu-samplezresetokay (default *+,mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 4Nt Nclk_xinclk_ahbemmc_cardclocky- ~phy_arasanokay+usb@fe380000 generic-ehci8.y/~usbokayusb@fe3a0000 generic-ohci:.y/~usbokayusb@fe3c0000 generic-ehci<0y1~usbokayusb@fe3e0000 generic-ohci> 0y1~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy23~usb2-phyusb3-phy utmi_wide/Hiokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty45~usb2-phyusb3-phy utmi_wide/Hiokaydp@fec00000rockchip,rk3399-cdn-dp 4rt  ruocore-clkpclkspdifgrfy67 HJspdifdptxapbcore disabledportsport+endpoint@08endpoint@19interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay&crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c4At AU i2cpclk;default:+ disabledi2c@ff120000rockchip,rk3399-i2c4Bt BV i2cpclk#default;+ disabledi2c@ff130000rockchip,rk3399-i2c4Ct CW i2cpclk"default<+okayi2c@ff140000rockchip,rk3399-i2c4Dt DX i2cpclk&default=+ disabledi2c@ff150000rockchip,rk3399-i2c4Et EY i2cpclk%default>+ disabledi2c@ff160000rockchip,rk3399-i2c4Ft FZ i2cpclk$default?+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc&default @ABokaybluetoothbrcm,bcm43438-btClpo 3D G( YDh= default EFGrH~Iserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb&defaultJ disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd&defaultKokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke&defaultL disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDM M txrxdefaultNOPQ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5M M txrxdefaultRSTU+okayflash@0 winbond,w25q128fwjedec,spi-nor2spi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4MMtxrxdefaultVWXY+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCMMtxrxdefaultZ[\]+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk^^ txrxdefault_`ab+ disabledthermal-zonescpu-thermaldctripscpu_alert0ppassivedcpu_alert1$passiveecpu_crits criticalcpu_warmactivefcpu_hotactivehcooling-mapsmap0dmap1eHmap2f gmap3h ggpu-thermaldctripsgpu_alert0$passiveigpu_crits criticalgpu_warmactivekgpu_hotactivelcooling-mapsmap0i jmap1k gmap2l gtsadc@ff260000rockchip,rk3399-tsadc&a4Ot qOdtsadcapb_pclk tsadc-apb sinitdefaultsleepm"n,m6okayLccqos@ffa58000rockchip,rk3399-qossyscon vqos@ffa5c000rockchip,rk3399-qossyscon wqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon zqos@ffa70080rockchip,rk3399-qossyscon {qos@ffa74000rockchip,rk3399-qossyscon@ xqos@ffa76000rockchip,rk3399-qossyscon` yqos@ffa90000rockchip,rk3399-qossyscon |qos@ffa98000rockchip,rk3399-qossyscon oqos@ffaa0000rockchip,rk3399-qossyscon }qos@ffaa0080rockchip,rk3399-qossyscon ~qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon pqos@ffab0080rockchip,rk3399-qossyscon qqos@ffab8000rockchip,rk3399-qossyscon rqos@ffac0000rockchip,rk3399-qossyscon sqos@ffac0080rockchip,rk3399-qossyscon tqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon upower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller~+power-domain@34"o~power-domain@33!pq~power-domain@31r~power-domain@32  st~power-domain@35#u~power-domain@25l~power-domain@23v~power-domain@22fw~power-domain@27Lx~power-domain@28y~power-domain@8~}~power-domain@9 ~power-domain@24z{~power-domain@15~+power-domain@21r|~power-domain@19}~~power-domain@20~power-domain@16~+power-domain@17~power-domain@18~syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayIspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf&default disabledi2c@ff3c0000rockchip,rk3399-i2c<4 t   i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=4 t   i2cpclk8default+okaypmic@1brockchip,rk808 xin32krk808-clkout2defaultHHHH H H H +H 7H DH QH~ICregulatorsDCDC_REG1 ^vdd_center m  q p qregulator-state-mem DCDC_REG2 ^vdd_cpu_l m  q p q regulator-state-mem DCDC_REG3 ^vcc_ddr m regulator-state-mem DCDC_REG4 ^vcc_1v8 m  w@ w@Iregulator-state-mem  w@LDO_REG1 ^vcc1v8_apio2 m  w@ w@regulator-state-mem LDO_REG2 ^vcc_vldo2 m  - -regulator-state-mem LDO_REG3 ^vcc1v8_pmupll m  w@ w@regulator-state-mem  w@LDO_REG4 ^vccio_sd m  w@ -'regulator-state-mem  -LDO_REG5 ^vcc_vldo5 m  - -regulator-state-mem LDO_REG6 ^vcc_1v5 m  ` `regulator-state-mem  `LDO_REG7 ^vcc1v8_codec m  w@ w@regulator-state-mem LDO_REG8 ^vcc_3v0 m  - -regulator-state-mem  -SWITCH_REG1 ^vcc3v3_s3 m regulator-state-mem SWITCH_REG2 ^vcc3v3_s0 m regulator-state-mem regulator@40silergy,syr827@ %default ^vdd_cpu_b 4 `  m  BHregulator-state-mem regulator@41silergy,syr828A %default ^vdd_gpu 4 `  m  BHregulator-state-mem i2c@ff3e0000rockchip,rk3399-i2c>4 t   i2cpclk:default+okaypwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB Mdefaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB Mdefault disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  Mdefaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 Mdefault disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk Xiommu@ff650800rockchip,iommue@s aclkiface _video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore X iommu@ff660480rockchip,iommu f@f@u aclkiface  _iommu@ff670800rockchip,iommug@* aclkiface _ disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  l w apb_pclk^dma-controller@ff6e0000arm,pl330arm,primecelln@  l w apb_pclkMclock-controller@ff750000rockchip,rk3399-pmucruuxin24m 4t(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m 4@BCxDt#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay   ' mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay.host-port  1linestateokayh/otg-port 0ghj1otg-bvalidotg-idlinestateokay2usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay0host-port  1linestateokayh1otg-port 0lmo1otg-bvalidotg-idlinestateokay4phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay-pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref4~tLuphyuphy-pipeuphy-tcphyokaydp-port 6usb3-port 3phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref4t Muphyuphy-pipeuphy-tcphyokaydp-port 7usb3-port 5watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB^tx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'^^txrxi2s_clki2s_hclkVbclk_onbclk_off"okay  i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(^^txrxi2s_clki2s_hclkWdefaultokay  i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)^^txrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w4tׄaclk_vopdclk_vophclk_vop X axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff8f3f00rockchip,iommu?w aclkiface _okayvop@ff900000rockchip,rk3399-vop-big v4tׄaclk_vopdclk_vophclk_vop X axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff903f00rockchip,iommu?v aclkiface _okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Xy~dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface _ &isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Xy~dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface _ &hdmi-soundsimple-audio-card Ai2s Z thdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi&(tqpoiahbisfrcecgrfrefokay defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P#okay jpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr   (gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Dgpio@ff788000rockchip,gpio-bankxQ   !gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma e pcfg-pull-none-13ma e pcfg-pull-none-18ma epcfg-pull-none-20ma epcfg-pull-up-2ma epcfg-pull-up-8ma epcfg-pull-up-18ma epcfg-pull-up-20ma epcfg-pull-down-4ma epcfg-pull-down-8ma epcfg-pull-down-12ma e pcfg-pull-down-18ma epcfg-pull-down-20ma epcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins      rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer :i2c2i2c2-xfer ;i2c3i2c3-xfer <i2c4i2c4-xfer   i2c5i2c5-xfer   =i2c6i2c6-xfer   >i2c7i2c7-xfer ?i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ #sdio0-cmd $sdio0-clk %sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    ,sdmmc-clk  *sdmmc-cmd  +sdmmc-cd sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Nspi0-cs0 Qspi0-cs1 spi0-tx Ospi0-rx Pspi1spi1-clk  Rspi1-cs0  Uspi1-rx Tspi1-tx Sspi2spi2-clk  Vspi2-cs0  Yspi2-rx  Xspi2-tx  Wspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk Zspi4-cs0 ]spi4-rx \spi4-tx [spi5spi5-clk _spi5-cs0 bspi5-rx aspi5-tx `testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin motp-out nuart0uart0-xfer @uart0-cts Buart0-rts Auart1uart1-xfer   Juart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Kuart3uart3-xfer Luart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm btbt-host-wake-l Fbt-reg-on-h Ebt-wake-l Gbuttonspwrbtn irir-rx ledssys-led-pin user-led-pin pmicpmic-int-l cpu-b-sleep  gpu-sleep  sdio-pwrseqwifi-enable-h usb2vcc5v0-host-en wifiwifi-host-wake-l )opp-table-0operating-points-v2 $ opp00 /Q 6  D@opp01 /#F 6 opp02 /0, 6 P Popp03 /< 6HHopp04 /G 6B@B@opp05 /Tfr 6**opp-table-1operating-points-v2 $opp00 /Q 6  D@opp01 /#F 6 opp02 /0, 6 opp03 /< 6 Y Yopp04 /G 6~~opp05 /Tfr 6opp06 /_" 6opp07 /kI 6OOopp-table-2operating-points-v2opp00 /  6 0opp01 /@ 6 0opp02 /ׄ 6 0opp03 /e 6 Y Y0opp04 /#F 6HH0opp05 // 60chosen Userial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacsdio-pwrseqmmc-pwrseq-simpleC ext_clockdefault aD"vcc1v8-s3regulator-fixed ^vcc1v8_s3 m  w@ w@ BI&vcc3v3-pcie-regulatorregulator-fixed ^vcc3v3_pcie m  2Z 2Z BHvcc5v0-host-regulatorregulator-fixed m default ^vcc5v0_host m Bvdd-logpwm-regulator a H ^vdd_log m  5 \vsysregulator-fixed ^vsys m vsys-3v3regulator-fixed ^vsys_3v3 m  2Z 2Z BHvsys-5v0regulator-fixed ^vsys_5v0 m  LK@ LK@ Badc-keys adc-keys  buttons w@ dbutton-recovery Recovery h FPgpio-keys gpio-keys defaultkey-power d ( GPIO Key Power tir-receivergpio-ir-receiver  rc-khadasdefaultleds gpio-ledsdefaultled-0 sys_led /heartbeat (led-1 user_led Eoff pwm-fanpwm-fan S# b @g compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2ethernet0cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiosnum-lanesinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104vqmmc-supplyvmmc-supplybrcm,drive-strengthassigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wparasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disableoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathreset-gpiosenable-active-highpwmspwm-supplyio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltautorepeatdebounce-intervallinux,rc-map-namelinux,default-triggerdefault-statecooling-levelsfan-supply J8( Zkhadas,edgerockchip,rk3399 + 7Khadas Edgealiases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci(dB R_@q~@   cpu@1cpuarm,cortex-a53psci(dB R_@q~@   cpu@2cpuarm,cortex-a53psci(dB R_@q~@   cpu@3cpuarm,cortex-a53psci(dB R_@q~@   cpu@100cpuarm,cortex-a72psci (B R_@q~@thermal-idle'cpu@101cpuarm,cortex-a72psci (B R_@q~@thermal-idle'l2-cache-cluster0cache Ta@s l2-cache-cluster1cache Ta@sidle-statespscicpu-sleeparm,idle-state%6Mx^ cluster-sleeparm,idle-state%6M^ display-subsystemrockchip,display-subsystemomemory-controllerrockchip,rk3399-dmcudmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ Gaclkaclk-perfhclkpm0123'syslegacyclient7`JXg o,tpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-38~8(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk o,tpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 'macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth  disabled!1HinputU`rgmiidefault i y 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay !default "#$&4%A&+wifi@1brcm,bcm4329-fmac ' 'host-wakeMdefault(mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр!a  Lbiuciuciu-driveciu-samplezresetokayv 'default )*+mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 !Na Nclk_xinclk_ahbemmc_cardclocko, tphy_arasanokayusb@fe380000 generic-ehci8-o.tusbokayusb@fe3a0000 generic-ohci:-o.tusbokayusb@fe3c0000 generic-ehci</o0tusbokayusb@fe3e0000 generic-ohci> /o0tusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+~0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgo12tusb2-phyusb3-phy utmi_wide5Vokayusb@fe900000rockchip,rk3399-dwc3+~0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosto34tusb2-phyusb3-phy utmi_wide5Vokaydp@fec00000rockchip,rk3399-cdn-dp !ra  ruocore-clkpclkspdifgrfo56 HJspdifdptxapbcore x disabledportsport+endpoint@07endpoint@18interrupt-controller@fee00000 arm,gic-v3+~P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay%crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c!Aa AU i2cpclk;default9+ disabledi2c@ff120000rockchip,rk3399-i2c!Ba BV i2cpclk#default:+ disabledi2c@ff130000rockchip,rk3399-i2c!Ca CW i2cpclk"default;+okayi2c@ff140000rockchip,rk3399-i2c!Da DX i2cpclk&default<+ disabledi2c@ff150000rockchip,rk3399-i2c!Ea EY i2cpclk%default=+ disabledi2c@ff160000rockchip,rk3399-i2c!Fa FZ i2cpclk$default>+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc default ?@Aokaybluetoothbrcm,bcm43438-btBlpo  C 4' FCU= default DEF_GkHserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb defaultI disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd defaultJokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke defaultK disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDxL L }txrxdefaultMNOP+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5xL L }txrxdefaultQRST+okayflash@0 winbond,w25q128fwjedec,spi-nor2spi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4xLL}txrxdefaultUVWX+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCxLL}txrxdefaultYZ[\+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkx]] }txrxdefault^_`a+ disabledthermal-zonescpu-thermaldbtripscpu_alert0ppassiveccpu_alert1$passivedcpu_crits criticalcpu_warmactiveecpu_hotactivegcooling-mapsmap0cmap1dHmap2e fmap3g fgpu-thermaldbtripsgpu_alert0$passivehgpu_crits criticalgpu_warmactivejgpu_hotactivekcooling-mapsmap0h imap1j fmap2k ftsadc@ff260000rockchip,rk3399-tsadc&a!Oa qOdtsadcapb_pclk tsadc-apb sinitdefaultsleeplml#okay9Pbqos@ffa58000rockchip,rk3399-qossyscon uqos@ffa5c000rockchip,rk3399-qossyscon vqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon yqos@ffa70080rockchip,rk3399-qossyscon zqos@ffa74000rockchip,rk3399-qossyscon@ wqos@ffa76000rockchip,rk3399-qossyscon` xqos@ffa90000rockchip,rk3399-qossyscon {qos@ffa98000rockchip,rk3399-qossyscon nqos@ffaa0000rockchip,rk3399-qossyscon |qos@ffaa0080rockchip,rk3399-qossyscon }qos@ffaa8000rockchip,rk3399-qossyscon ~qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon oqos@ffab0080rockchip,rk3399-qossyscon pqos@ffab8000rockchip,rk3399-qossyscon qqos@ffac0000rockchip,rk3399-qossyscon rqos@ffac0080rockchip,rk3399-qossyscon sqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon tpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerk+power-domain@34"nkpower-domain@33!opkpower-domain@31qkpower-domain@32  rskpower-domain@35#tkpower-domain@25lkpower-domain@23ukpower-domain@22fvkpower-domain@27Lwkpower-domain@28xkpower-domain@8~}kpower-domain@9 kpower-domain@24yzkpower-domain@15k+power-domain@21r{kpower-domain@19|}kpower-domain@20~kpower-domain@16k+power-domain@17kpower-domain@18ksyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayHspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf default disabledi2c@ff3c0000rockchip,rk3399-i2c<! a   i2cpclk9default+ disabledi2c@ff3d0000rockchip,rk3399-i2c=! a   i2cpclk8default+okaypmic@1brockchip,rk808 xin32krk808-clkout2defaultGGGGG G G G $G 1G >GkHBregulatorsDCDC_REG1 Kvdd_center Z n q p qregulator-state-mem DCDC_REG2 Kvdd_cpu_l Z n q p q regulator-state-mem DCDC_REG3 Kvcc_ddr Z nregulator-state-mem DCDC_REG4 Kvcc_1v8 Z n w@ w@Hregulator-state-mem  w@LDO_REG1 Kvcc1v8_apio2 Z n w@ w@regulator-state-mem LDO_REG2 Kvcc_vldo2 Z n - -regulator-state-mem LDO_REG3 Kvcc1v8_pmupll Z n w@ w@regulator-state-mem  w@LDO_REG4 Kvccio_sd Z n w@ -&regulator-state-mem  -LDO_REG5 Kvcc_vldo5 Z n - -regulator-state-mem LDO_REG6 Kvcc_1v5 Z n ` `regulator-state-mem  `LDO_REG7 Kvcc1v8_codec Z n w@ w@regulator-state-mem LDO_REG8 Kvcc_3v0 Z n - -regulator-state-mem  -SWITCH_REG1 Kvcc3v3_s3 Z nregulator-state-mem SWITCH_REG2 Kvcc3v3_s0 Z nregulator-state-mem regulator@40silergy,syr827@ default Kvdd_cpu_b 4 `  Z n /Gregulator-state-mem regulator@41silergy,syr828A default Kvdd_gpu 4 `  Z n /Gregulator-state-mem i2c@ff3e0000rockchip,rk3399-i2c>! a   i2cpclk:default+okaypwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB :defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB :default disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  :defaultokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 :default disableddfi@ff630000c@rockchip,rk3399-dfiuy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 'vepuvdpu aclkhclk Eiommu@ff650800rockchip,iommue@s aclkiface Lvideo-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore E iommu@ff660480rockchip,iommu f@f@u aclkiface  Liommu@ff670800rockchip,iommug@* aclkiface L disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  Y d apb_pclk]dma-controller@ff6e0000arm,pl330arm,primecelln@  Y d apb_pclkLclock-controller@ff750000rockchip,rk3399-pmucruuxin24m  {!a(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m  {!@BCxDa#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay   & mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay-host-port  'linestateokayU.otg-port 0ghj'otg-bvalidotg-idlinestateokay1usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay/host-port  'linestateokayU0otg-port 0lmo'otg-bvalidotg-idlinestateokay3phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay,pcie-phyrockchip,rk3399-pcie-phyrefclk phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref!~aLuphyuphy-pipeuphy-tcphy okaydp-port 5usb3-port 2phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref!a Muphyuphy-pipeuphy-tcphy okaydp-port 6usb3-port 4watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBx]}tx mclkhclkUdefaultx disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s 'x]]}txrxi2s_clki2s_hclkVbclk_onbclk_offxokay  i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(x]]}txrxi2s_clki2s_hclkWdefaultxokay  i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)x]]}txrxi2s_clki2s_hclkXxokayvop@ff8f0000rockchip,rk3399-vop-lit w!aׄaclk_vopdclk_vophclk_vop E axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@48iommu@ff8f3f00rockchip,iommu?w aclkiface Lokayvop@ff900000rockchip,rk3399-vop-big v!aׄaclk_vopdclk_vophclk_vop E axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@47iommu@ff903f00rockchip,iommu?v aclkiface Lokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Eotdphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface L isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Eotdphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface L hdmi-soundsimple-audio-card .i2s G ahdmi-soundokaysimple-audio-card,cpu xsimple-audio-card,codec xhdmi@ff940000rockchip,rk3399-dw-hdmi(tqpoiahbisfrcecgrfref xokay defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb + disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb +  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp  disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 'jobmmugpu( P#okay ipinctrlrockchip,rk3399-pinctrl u+~gpio@ff720000rockchip,gpio-bankr  'gpio@ff730000rockchip,gpio-banks  gpio@ff780000rockchip,gpio-bankxP  Cgpio@ff788000rockchip,gpio-bankxQ   gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma R pcfg-pull-none-13ma R pcfg-pull-none-18ma Rpcfg-pull-none-20ma Rpcfg-pull-up-2ma Rpcfg-pull-up-8ma Rpcfg-pull-up-18ma Rpcfg-pull-up-20ma Rpcfg-pull-down-4ma Rpcfg-pull-down-8ma Rpcfg-pull-down-12ma R pcfg-pull-down-18ma Rpcfg-pull-down-20ma Rpcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer 9i2c2i2c2-xfer :i2c3i2c3-xfer ;i2c4i2c4-xfer   i2c5i2c5-xfer   <i2c6i2c6-xfer   =i2c7i2c7-xfer >i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ "sdio0-cmd #sdio0-clk $sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  )sdmmc-cmd  *sdmmc-cd sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Mspi0-cs0 Pspi0-cs1 spi0-tx Nspi0-rx Ospi1spi1-clk  Qspi1-cs0  Tspi1-rx Sspi1-tx Rspi2spi2-clk  Uspi2-cs0  Xspi2-rx  Wspi2-tx  Vspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk Yspi4-cs0 \spi4-rx [spi4-tx Zspi5spi5-clk ^spi5-cs0 aspi5-rx `spi5-tx _testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin lotp-out muart0uart0-xfer ?uart0-cts Auart0-rts @uart1uart1-xfer   Iuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Juart3uart3-xfer Kuart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm btbt-host-wake-l Ebt-reg-on-h Dbt-wake-l Fbuttonspwrbtn irir-rx ledssys-led-pin user-led-pin pmicpmic-int-l cpu-b-sleep  gpu-sleep  sdio-pwrseqwifi-enable-h usb2vcc5v0-host-en wifiwifi-host-wake-l (opp-table-0operating-points-v2  opp00 Q #  1@opp01 #F # opp02 0, # P Popp03 < #HHopp04 G #B@B@opp05 Tfr #**opp-table-1operating-points-v2 opp00 Q #  1@opp01 #F # opp02 0, # opp03 < # Y Yopp04 G #~~opp05 Tfr #opp06 _" #opp07 kI #OOopp-table-2operating-points-v2opp00   # 0opp01 @ # 0opp02 ׄ # 0opp03 e # Y Y0opp04 #F #HH0opp05 / #0chosen Bserial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacsdio-pwrseqmmc-pwrseq-simpleB ext_clockdefault NC!vcc1v8-s3regulator-fixed Kvcc1v8_s3 Z n w@ w@ /H%vcc3v3-pcie-regulatorregulator-fixed Kvcc3v3_pcie Z n 2Z 2Z /Gvcc5v0-host-regulatorregulator-fixed Z tdefault Kvcc5v0_host Z /vdd-logpwm-regulator ma rG Kvdd_log Z n 5 \vsysregulator-fixed Kvsys Z nvsys-3v3regulator-fixed Kvsys_3v3 Z n 2Z 2Z /Gvsys-5v0regulator-fixed Kvsys_5v0 Z n LK@ LK@ /adc-keys adc-keys } buttons w@ dbutton-recovery Recovery h FPgpio-keys gpio-keys defaultkey-power d ' GPIO Key Power tir-receivergpio-ir-receiver  rc-khadasdefaultleds gpio-ledsdefaultled-0 sys_led heartbeat 'led-1 user_led 2off pwm-fanpwm-fan @ O m@f compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104vqmmc-supplyvmmc-supplybrcm,drive-strengthassigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wparasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disableoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathreset-gpiosenable-active-highpwmspwm-supplyio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltautorepeatdebounce-intervallinux,rc-map-namelinux,default-triggerdefault-statecooling-levelsfan-supply 8߼( ߄kobol,helios64rockchip,rk3399 +7Kobol Helios64aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci-dG Wd@v@   cpu@1cpuarm,cortex-a53psci-dG Wd@v@   cpu@2cpuarm,cortex-a53psci-dG Wd@v@   cpu@3cpuarm,cortex-a53psci-dG Wd@v@   cpu@100cpuarm,cortex-a72psci -G Wd@v@thermal-idle'cpu@101cpuarm,cortex-a72psci -G Wd@v@thermal-idle'l2-cache-cluster0cacheYf@x l2-cache-cluster1cacheYf@xidle-statespscicpu-sleeparm,idle-state*;Rxc cluster-sleeparm,idle-state*;Rc display-subsystemrockchip,display-subsystemtmemory-controllerrockchip,rk3399-dmczdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+" Gaclkaclk-perfhclkpm0123,syslegacyclient<`O]l t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay defaultinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3! default? disabledethernet@fe300000rockchip,rk3399-gmac0 ,macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macI  stmmacethW!dokayo"inputrgmii#default?$% ( 'P &mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleI yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр  Lbiuciuciu-driveciu-sampleI zresetokay2< M'Vdefault?()*+a,m-mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 z!N Nclk_xinclk_ahbemmc_cardclockt. yphy_arasanI okay2m/usb@fe380000 generic-ehci80t1yusb disabledusb@fe3a0000 generic-ohci:0t1yusb disabledusb@fe3c0000 generic-ehci<2t3yusb disabledusb@fe3e0000 generic-ohci> 2t3yusb disableddebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otg disabledusb@fe800000 snps,dwc3irefbus_earlysuspendotgt45yusb2-phyusb3-phy utmi_wide!BI  disabledusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhostt67yusb2-phyusb3-phy utmi_wide!BI okay+hub@1 usb2109,0815+port@1dport@2dport@3ddevice@4 usbbda,8156+interface@0usbifbda,8156.config1.0dp@fec00000rockchip,rk3399-cdn-dp r  ruocore-clkpclkspdifgrft89I  HJspdifdptxapbcoreW!z disabledportsport+endpoint@0:endpoint@1;interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default?<+ disabledi2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default?=+okaytemp@4cnational,lm75Li2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default?>+ disabledi2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&default??+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%default?@+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$default?A+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc default?B disabledserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb default?C disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd default?Dokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke default?E disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDF F txrxdefault?GHIJ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5F F txrxdefault?KLMN+okayflash@0jedec,spi-nor%}x@okay7spi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4FFtxrxdefault?OPQR+okayspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCFFtxrxdefault?STUV+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkWW txrxdefault?XYZ[I +okaythermal-zonescpu-thermalFd\j\tripscpu_alert0zppassive]cpu_alert1z$passive^cpu_critzs criticalcooling-mapsmap0]map1^Hgpu-thermalFd\j\tripsgpu_alert0z$passive_gpu_critzs criticalcooling-mapsmap0_ `tsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apbW!sinitdefaultsleep?abaokay\qos@ffa58000rockchip,rk3399-qossyscon jqos@ffa5c000rockchip,rk3399-qossyscon kqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon nqos@ffa70080rockchip,rk3399-qossyscon oqos@ffa74000rockchip,rk3399-qossyscon@ lqos@ffa76000rockchip,rk3399-qossyscon` mqos@ffa90000rockchip,rk3399-qossyscon pqos@ffa98000rockchip,rk3399-qossyscon cqos@ffaa0000rockchip,rk3399-qossyscon qqos@ffaa0080rockchip,rk3399-qossyscon rqos@ffaa8000rockchip,rk3399-qossyscon sqos@ffaa8080rockchip,rk3399-qossyscon tqos@ffab0000rockchip,rk3399-qossyscon dqos@ffab0080rockchip,rk3399-qossyscon eqos@ffab8000rockchip,rk3399-qossyscon fqos@ffac0000rockchip,rk3399-qossyscon gqos@ffac0080rockchip,rk3399-qossyscon hqos@ffac8000rockchip,rk3399-qossyscon uqos@ffac8080rockchip,rk3399-qossyscon vqos@ffad0000rockchip,rk3399-qossyscon wqos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon ipower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller+ power-domain@34",cpower-domain@33!,depower-domain@31,fpower-domain@32  ,ghpower-domain@35#,ipower-domain@25lpower-domain@23,jpower-domain@22f,kpower-domain@27L,lpower-domain@28,mpower-domain@8~}power-domain@9 power-domain@24,nopower-domain@15+power-domain@21r,ppower-domain@19,qrpower-domain@20,stpower-domain@16+power-domain@17,uvpower-domain@18,wsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay3xspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5yyspiclkapb_pclk<default?z{|}+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7yy"baudclkapb_pclkf default?~ disabledi2c@ff3c0000rockchip,rk3399-i2c<y  y y i2cpclk9default?+okaypmic@1brockchip,rk808 ' xin32krk808-clkout2default?Bco{##xregulatorsDCDC_REG2 vdd_cpu_l  ( : q Rp jq regulator-state-mem DCDC_REG4 vcc1v8_sys_s3  ( :w@ Rw@regulator-state-mem  w@LDO_REG4 vcc_sdio_s0  ( :w@ R--regulator-state-mem  -LDO_REG8 vcc3v0_s3  ( :- R-xregulator-state-mem  -regulator@40silergy,syr827@  vdd_cpu_b  ( : 4 R` j regulator-state-mem i2c@ff3d0000rockchip,rk3399-i2c=y  y y i2cpclk8default?+ disabledi2c@ff3e0000rockchip,rk3399-i2c>y  y y i2cpclk:default?+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB default?yokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB default?yokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  default?y disabledpwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 default?y disableddfi@ff630000c@rockchip,rk3399-dfizy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq ,vepuvdpu aclkhclk I iommu@ff650800rockchip,iommue@s aclkiface I video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore I iommu@ff660480rockchip,iommu f@f@u aclkifaceI  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahbI !efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclkWdma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkFclock-controller@ff750000rockchip,rk3399-pmucruuxin24mW 5y(Jyclock-controller@ff760000rockchip,rk3399-cruvxin24mW! 5@BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+!io-domains"rockchip,rk3399-io-voltage-domainokay B/ O/ \x l-mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrfI  y disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480m disabled0host-port y ,linestate disabled1otg-port y0ghj,otg-bvalidotg-idlinestate disabled4usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay2host-port y ,linestate disabled3otg-port y0lmo,otg-bvalidotg-idlinestateokay6phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 yokay.pcie-phyrockchip,rk3399-pcie-phyrefclk yphyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~I Luphyuphy-pipeuphy-tcphyW! disableddp-port y8usb3-port y5phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refI Muphyuphy-pipeuphy-tcphyW!okaydp-port y9usb3-port y7watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBWtx mclkhclkUdefault?I z disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2sW!'WWtxrxi2s_clki2s_hclkVbclk_onbclk_off?I z disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(WWtxrxi2s_clki2s_hclkWdefault?I z disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)WWtxrxi2s_clki2s_hclkXI z disabledvop@ff8f0000rockchip,rk3399-vop-lit wׄaclk_vopdclk_vophclk_vop I  axiahbdclk disabledport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4;iommu@ff8f3f00rockchip,iommu?w aclkifaceI   disabledvop@ff900000rockchip,rk3399-vop-big vׄaclk_vopdclk_vophclk_vop I  axiahbdclk disabledport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4:iommu@ff903f00rockchip,iommu?v aclkifaceI   disabledisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk tydphyI  disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface I  isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk tydphyI  disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface I  hdmi-soundsimple-audio-card i2s  hdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi (tqpoiahbisfrcecgrfrefI W!z disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfI apbW!+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfI apbW!+ y disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault?I dpW! disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ,jobmmugpu- PI # disabled`pinctrlrockchip,rk3399-pinctrlW!z+gpio@ff720000rockchip,gpio-bankry  'gpio@ff730000rockchip,gpio-banksy  gpio@ff780000rockchip,gpio-bankxP  gpio@ff788000rockchip,gpio-bankxQ  &gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up #pcfg-pull-down 0pcfg-pull-none ?pcfg-pull-none-12ma ? L pcfg-pull-none-13ma ? L pcfg-pull-none-18ma ? Lpcfg-pull-none-20ma ? Lpcfg-pull-up-2ma # Lpcfg-pull-up-8ma # Lpcfg-pull-up-18ma # Lpcfg-pull-up-20ma # Lpcfg-pull-down-4ma 0 Lpcfg-pull-down-8ma 0 Lpcfg-pull-down-12ma 0 L pcfg-pull-down-18ma 0 Lpcfg-pull-down-20ma 0 Lpcfg-output-high [pcfg-output-low gpcfg-input-enable rpcfg-input-pull-up r #pcfg-input-pull-down r 0clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     $rmii-pins      gphy-reset %i2c0i2c0-xfer i2c1i2c1-xfer <i2c2i2c2-xfer =i2c3i2c3-xfer >i2c4i2c4-xfer   i2c5i2c5-xfer   ?i2c6i2c6-xfer   @i2c7i2c7-xfer Ai2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  (sdmmc-cmd  )sdmmc-cd *sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Gspi0-cs0 Jspi0-cs1 spi0-tx Hspi0-rx Ispi1spi1-clk  Kspi1-cs0  Nspi1-rx Mspi1-tx Lspi2spi2-clk  Ospi2-cs0  Rspi2-rx  Qspi2-tx  Pspi3spi3-clk zspi3-cs0 }spi3-rx |spi3-tx {spi4spi4-clk Sspi4-cs0 Vspi4-rx Uspi4-tx Tspi5spi5-clk Xspi5-cs0 [spi5-rx Zspi5-tx Ytestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin aotp-out buart0uart0-xfer Buart0-cts uart0-rts uart1uart1-xfer   Cuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Duart3uart3-xfer Euart3-cts uart3-rts uart4uart4-xfer ~uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm pcie-pwr ledssys-grn-led-on  sys-red-led-on  pmicpmic-int-l  powerhdd-a-power-en hdd-b-power-en vcc5v0-usb-en usb-lan-en vcc3v0-sdsdmmc0-pwr-h opp-table-0operating-points-v2  opp05 Tfr **opp-table-1operating-points-v2 opp07 kI OOopp-table-2operating-points-v2opp00  0opp01 @ 0opp02 ׄ 0opp03 e Y Y0opp04 #F HH0opp05 / 0avdd-0v9-s0regulator-fixed avdd_0v9_s0  ( :  R  avdd-1v8-s0regulator-fixed avdd_1v8_s0  ( :w@ Rw@ #chosen serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmac"fan1pwm-fan @ Pfan2pwm-fan @ Pleds gpio-ledsdefault?led-0 helios64:green:status '  onled-1 helios64:red:fault '  keephdd-a-powerregulator-fixed  ?default  ( hdd_a_power hdd-b-powerregulator-fixed  ?default  ( hdd_b_power pcie-powerregulator-fixed  ?default ( pcie_power ' usblan-powerregulator-fixed  default? usblan_power  ( vcc1v8-sys-s0regulator-fixed vcc1v8_sys_s0  ( :w@ Rw@ /vcc3v0-sdregulator-fixed  ' vcc3v0_sd ( :- R-default? #,vcc3v3-sys-s3regulator-fixed vcc3v3_sys_s3  ( :2Z R2Z #regulator-state-mem vcc5v0-perdevregulator-fixed vcc5v0_perdev  ( :LK@ RLK@ vcc5v0-sysregulator-fixed vcc5v0_sys  ( :LK@ RLK@ regulator-state-mem vcc5v0-usbregulator-fixed  default? vcc5v0_usb  ( :LK@ RLK@ vcc12v-dcinregulator-fixed vcc12v_dcin  ( : Rvcc12v-dcin-bkupregulator-fixed vcc12v_dcin_bkup  ( : R  compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiosnum-lanespinctrl-namesvpcie12v-supplyvpcie3v3-supplyvpcie1v8-supplyvpcie0v9-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-modephy-supplyrx_delaytx_delaysnps,reset-active-lowsnps,reset-delays-ussnps,reset-gpiomax-frequencyfifo-depthassigned-clock-ratesbus-widthcap-sd-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vnon-removabledr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#trigger-source-cells#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdmasdma-namesspi-max-frequencym25p,fast-readpolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllervcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplywakeup-sourceregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daigpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltstdout-pathpwmscooling-levelslabeldefault-stateenable-active-highstartup-delay-us 8|( [Dleez,p710rockchip,rk3399 +7Leez RK3399 P710aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth okay+;Rinput_jrgmiidefault s  'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay+!"default "#$0wifi@1brcm,bcm4329-fmac % 1host-wakedefault&mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр+>  Lbiuciuciu-driveciu-samplezresetokayS e%ndefault'()*mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 y+N> Nclk_xinclk_ahbemmc_cardclocky+ ~phy_arasanokay"usb@fe380000 generic-ehci8,y-~usbokayusb@fe3a0000 generic-ohci:,y-~usbokayusb@fe3c0000 generic-ehci<.y/~usbokayusb@fe3e0000 generic-ohci> .y/~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy01~usb2-phyusb3-phy utmi_wide,Mokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty23~usb2-phyusb3-phy utmi_wide,Mokaydp@fec00000rockchip,rk3399-cdn-dp +r>  ruocore-clkpclkspdifgrfy45 HJspdifdptxapbcoreo disabledportsport+endpoint@06endpoint@17interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay8crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c+A> AU i2cpclk;default9+okay,i2c@ff120000rockchip,rk3399-i2c+B> BV i2cpclk#default:+ disabledi2c@ff130000rockchip,rk3399-i2c+C> CW i2cpclk"default;+okayi2c@ff140000rockchip,rk3399-i2c+D> DX i2cpclk&default<+ disabledi2c@ff150000rockchip,rk3399-i2c+E> EY i2cpclk%default=+ disabledi2c@ff160000rockchip,rk3399-i2c+F> FZ i2cpclk$default>+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc default ?@Aokaybluetoothbrcm,bcm43438-btB ext_clock C +% =% default DEFserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb defaultG disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd defaultHokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke defaultI disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDLJ J QtxrxdefaultKLMN+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5LJ J QtxrxdefaultOPQR+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4LJJQtxrxdefaultSTUV+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCLJJQtxrxdefaultWXYZ+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkL[[ Qtxrxdefault\]^_+ disabledthermal-zonescpu-thermal[dq`tripscpu_alert0ppassiveacpu_alert1$passivebcpu_crits criticalcooling-mapsmap0amap1bHgpu-thermal[dq`tripsgpu_alert0$passivecgpu_crits criticalcooling-mapsmap0c dtsadc@ff260000rockchip,rk3399-tsadc&a+O> qOdtsadcapb_pclk tsadc-apbsinitdefaultsleepefeokay`qos@ffa58000rockchip,rk3399-qossyscon nqos@ffa5c000rockchip,rk3399-qossyscon oqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon rqos@ffa70080rockchip,rk3399-qossyscon sqos@ffa74000rockchip,rk3399-qossyscon@ pqos@ffa76000rockchip,rk3399-qossyscon` qqos@ffa90000rockchip,rk3399-qossyscon tqos@ffa98000rockchip,rk3399-qossyscon gqos@ffaa0000rockchip,rk3399-qossyscon uqos@ffaa0080rockchip,rk3399-qossyscon vqos@ffaa8000rockchip,rk3399-qossyscon wqos@ffaa8080rockchip,rk3399-qossyscon xqos@ffab0000rockchip,rk3399-qossyscon hqos@ffab0080rockchip,rk3399-qossyscon iqos@ffab8000rockchip,rk3399-qossyscon jqos@ffac0000rockchip,rk3399-qossyscon kqos@ffac0080rockchip,rk3399-qossyscon lqos@ffac8000rockchip,rk3399-qossyscon yqos@ffac8080rockchip,rk3399-qossyscon zqos@ffad0000rockchip,rk3399-qossyscon {qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon mpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller-+power-domain@34"Ag-power-domain@33!Ahi-power-domain@31Aj-power-domain@32  Akl-power-domain@35#Am-power-domain@25l-power-domain@23An-power-domain@22fAo-power-domain@27LAp-power-domain@28Aq-power-domain@8~}-power-domain@9 -power-domain@24Ars-power-domain@15-+power-domain@21rAt-power-domain@19Auv-power-domain@20Awx-power-domain@16-+power-domain@17Ayz-power-domain@18A{-syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayH|spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5}}spiclkapb_pclk<default~+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7}}"baudclkapb_pclkf default disabledi2c@ff3c0000rockchip,rk3399-i2c<+} > } } i2cpclk9default+okaypmic@1brockchip,rk808 xin32krk808-clkout2defaultWx  8BregulatorsDCDC_REG1 vdd_center ) = O q gp qregulator-state-mem DCDC_REG2 vdd_cpu_l ) = O q gp q regulator-state-mem DCDC_REG3 vcc_ddr ) =regulator-state-mem DCDC_REG4 vcc_1v8 ) = Ow@ gw@8regulator-state-mem  w@LDO_REG1 vcc1v8_dvp ) = Ow@ gw@regulator-state-mem LDO_REG2 vcc1v8_hdmi ) = Ow@ gw@regulator-state-mem LDO_REG3 vcca_1v8 ) = Ow@ gw@regulator-state-mem  w@LDO_REG4 vccio_sd ) = O- g-regulator-state-mem  -LDO_REG5 vcca3v0_codec ) = O- g-regulator-state-mem LDO_REG6 vcc_1v5 ) = O` g`regulator-state-mem  `LDO_REG7 vcc0v9_hdmi ) = O  g regulator-state-mem LDO_REG8 vcc_3v0 ) = O- g-|regulator-state-mem  -regulator@40silergy,syr827@ default vdd_cpu_b O 4 g`  ) = regulator-state-mem regulator@41silergy,syr828A default vdd_gpu O 4 g`  ) = regulator-state-mem i2c@ff3d0000rockchip,rk3399-i2c=+} > } } i2cpclk8default+okayXi2c@ff3e0000rockchip,rk3399-i2c>+} > } } i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB default} disabledpwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB default} disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  default}okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 default} disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk iommu@ff650800rockchip,iommue@s aclkiface video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore  iommu@ff660480rockchip,iommu f@f@u aclkiface  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  ( 3 apb_pclk[dma-controller@ff6e0000arm,pl330arm,primecelln@  ( 3 apb_pclkJclock-controller@ff750000rockchip,rk3399-pmucruuxin24m J+}>(J}clock-controller@ff760000rockchip,rk3399-cruvxin24m J+@BCxD>#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay W d8 q ~|mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay,host-port  1linestateokay_-otg-port 0ghj1otg-bvalidotg-idlinestateokay0usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay.host-port  1linestateokay_/otg-port 0lmo1otg-bvalidotg-idlinestateokay2phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay+pcie-phyrockchip,rk3399-pcie-phyrefclk phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref+~>Luphyuphy-pipeuphy-tcphyokaydp-port 4usb3-port 1phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref+> Muphyuphy-pipeuphy-tcphyokaydp-port 5usb3-port 3watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBL[Qtx mclkhclkUdefaulto disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'L[[Qtxrxi2s_clki2s_hclkVbclk_onbclk_offookay  i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(L[[Qtxrxi2s_clki2s_hclkWdefaultookay  i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)L[[Qtxrxi2s_clki2s_hclkXookayvop@ff8f0000rockchip,rk3399-vop-lit w+>ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@47iommu@ff8f3f00rockchip,iommu?w aclkiface okayvop@ff900000rockchip,rk3399-vop-big v+>ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@46iommu@ff903f00rockchip,iommu?v aclkiface okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk y~dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface  isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk y~dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface  hdmi-soundsimple-audio-card i2s  0hdmi-soundokaysimple-audio-card,cpu Gsimple-audio-card,codec Ghdmi@ff940000rockchip,rk3399-dw-hdmi (tqpoiahbisfrcecgrfrefookay Qdefaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P#okay ]dpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr} i y %gpio@ff730000rockchip,gpio-banks} i y gpio@ff780000rockchip,gpio-bankxP i y Cgpio@ff788000rockchip,gpio-bankxQ i y  gpio@ff790000rockchip,gpio-bankyR i y pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer 9i2c2i2c2-xfer :i2c3i2c3-xfer ;i2c4i2c4-xfer   i2c5i2c5-xfer   <i2c6i2c6-xfer   =i2c7i2c7-xfer >i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ "sdio0-cmd #sdio0-clk $sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    *sdmmc-clk  'sdmmc-cmd  )sdmmc-cd (sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Kspi0-cs0 Nspi0-cs1 spi0-tx Lspi0-rx Mspi1spi1-clk  Ospi1-cs0  Rspi1-rx Qspi1-tx Pspi2spi2-clk  Sspi2-cs0  Vspi2-rx  Uspi2-tx  Tspi3spi3-clk ~spi3-cs0 spi3-rx spi3-tx spi4spi4-clk Wspi4-cs0 Zspi4-rx Yspi4-tx Xspi5spi5-clk \spi5-cs0 _spi5-rx ^spi5-tx ]testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin eotp-out fuart0uart0-xfer ?uart0-cts @uart0-rts Auart1uart1-xfer   Guart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Huart3uart3-xfer Iuart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm btbt-reg-on-h Fbt-host-wake-l Dbt-wake-l Epmicpmic-int-l vsel1-pin vsel2-pin usb2vcc5v0-host3-en wifiwifi-reg-on-h wifi-host-wake-l &opp-table-0operating-points-v2  opp00 Q   @opp01 #F  opp02 0,  P Popp03 < HHopp04 G B@B@opp05 Tfr **opp-table-1operating-points-v2 opp00 Q   @opp01 #F  opp02 0,  opp03 <  Y Yopp04 G ~~opp05 Tfr opp06 _" opp07 kI OOopp-table-2operating-points-v2opp00   0opp01 @  0opp02 ׄ  0opp03 e  Y Y0opp04 #F HH0opp05 / 0chosen serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacsdio-pwrseqmmc-pwrseq-simpleB ext_clockdefault ,% !dc5v-adpregulator-fixed dc5v_adapter ) = OLK@ gLK@vcc3v3-lanregulator-fixed vcc3v3_lan ) = O2Z g2Z vcc3v3-sysregulator-fixed vcc3v3_sys ) = O2Z g2Z vcc5v0-hostregulator-fixed vcc5v0_host = ) OS` gS` vcc5v0-host3regulator-fixed vcc5v0_host3 8 ~Cdefault ) vcc5v0-sysregulator-fixed vcc5v0_sys ) = OLK@ gLK@ vdd-logpwm-regulator Ka P vdd_log ) = O 5 g\ compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wparasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobedr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosdmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathreset-gpiosenable-active-highpwmspwm-supply 8( r&friendlyarm,nanopc-t4rockchip,rk3399 +7FriendlyElec NanoPC-T4aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay interrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 &default4 disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac> stmmacethL Yokayd!{input&default 4"#$%rgmii&(mdiosnps,dwmac-mdio+ethernet-phy@1 ' 'u0 '%mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample>yresetokay+8N(Y&default 4)*+gmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр{u  Lbiuciuciu-driveciu-sample>zresetokay ,&default4-./0g12mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13  {Nu Nclk_xinclk_ahbemmc_cardclocky3 ~phy_arasan>okayYusb@fe380000 generic-ehci84y5~usbokayusb@fe3a0000 generic-ohci:4y5~usbokayusb@fe3c0000 generic-ehci<6y7~usbokayusb@fe3e0000 generic-ohci> 6y7~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspend(otgy89~usb2-phyusb3-phy 0utmi_wide9Qr>okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspend(hosty:;~usb2-phyusb3-phy 0utmi_wide9Qr>okaydp@fec00000rockchip,rk3399-cdn-dp {ru  ruocore-clkpclkspdifgrfy<=> HJspdifdptxapbcoreL  disabledportsport+endpoint@0>endpoint@1?interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0 interrupt-partition-1 saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay$crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c{Au AU i2cpclk;&default4@+okay @0Gi2c@ff120000rockchip,rk3399-i2c{Bu BV i2cpclk#&default4A+okayi2c@ff130000rockchip,rk3399-i2c{Cu CW i2cpclk"&default4B+ disabledi2c@ff140000rockchip,rk3399-i2c{Du DX i2cpclk&&default4C+ disabledi2c@ff150000rockchip,rk3399-i2c{Eu EY i2cpclk%&default4D+ disabledi2c@ff160000rockchip,rk3399-i2c{Fu FZ i2cpclk$&default4E+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc_i&default 4FGHokaybluetoothbrcm,bcm43438-btIlpo v , , = &default 4JKLMserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb_i&default4N disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd_i&default4Ookayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke_i&default4P disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDQ Q txrx&default4RSTU+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5Q Q txrx&default4VWXY+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4QQtxrx&default4Z[\]+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCQQtxrx&default4^_`a+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkbb txrx&default4cdef>+ disabledthermal-zonescpu-thermaldgtripscpu_alert0ppassivehcpu_alert1$passiveicpu_crits criticalcpu_warmactivejcpu_hotactivelcooling-mapsmap0(h-map1(iH-map2(j -kmap3(l -kgpu-thermaldgtripsgpu_alert0$passivemgpu_crits criticalcooling-mapsmap0(m -ntsadc@ff260000rockchip,rk3399-tsadc&a{Ou qOdtsadcapb_pclk tsadc-apbL <s&initdefaultsleep4oSp]ogokay}gqos@ffa58000rockchip,rk3399-qossyscon xqos@ffa5c000rockchip,rk3399-qossyscon yqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon |qos@ffa70080rockchip,rk3399-qossyscon }qos@ffa74000rockchip,rk3399-qossyscon@ zqos@ffa76000rockchip,rk3399-qossyscon` {qos@ffa90000rockchip,rk3399-qossyscon ~qos@ffa98000rockchip,rk3399-qossyscon qqos@ffaa0000rockchip,rk3399-qossyscon qos@ffaa0080rockchip,rk3399-qossyscon qos@ffaa8000rockchip,rk3399-qossyscon qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon rqos@ffab0080rockchip,rk3399-qossyscon sqos@ffab8000rockchip,rk3399-qossyscon tqos@ffac0000rockchip,rk3399-qossyscon uqos@ffac0080rockchip,rk3399-qossyscon vqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon wpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller+power-domain@34"qpower-domain@33!rspower-domain@31tpower-domain@32  uvpower-domain@35#wpower-domain@25lpower-domain@23xpower-domain@22fypower-domain@27Lzpower-domain@28{power-domain@8~}power-domain@9 power-domain@24|}power-domain@15+power-domain@21r~power-domain@19power-domain@20power-domain@16+power-domain@17power-domain@18syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<&default4+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf_i&default4 disabledi2c@ff3c0000rockchip,rk3399-i2c<{ u   i2cpclk9&default4+okay0Gregulator@40silergy,syr827@&default4   4 4` Lvdd_cpu_b [ pregulator-state-mem {regulator@41silergy,syr828A&default4   4 4` Lvdd_gpu [ pregulator-state-mem {pmic@1brockchip,rk808xin32krtc_clko_wifi &default 4           # 0 =IregulatorsDCDC_REG1   q 4p Lvdd_center [qregulator-state-mem {DCDC_REG2   q 4p Lvdd_cpu_l [q regulator-state-mem {DCDC_REG3  Lvcc_ddrregulator-state-mem JDCDC_REG4  w@ 4w@ Lvcc_1v8Mregulator-state-mem J bw@LDO_REG1  w@ 4w@ Lvcc1v8_camregulator-state-mem {LDO_REG2  - 4- Lvcc3v0_touchregulator-state-mem {LDO_REG3  w@ 4w@ Lvcc1v8_pmupllregulator-state-mem J bw@LDO_REG4  w@ 42Z Lvcc_sdio2regulator-state-mem J b-LDO_REG5  - 4- Lvcca3v0_codecregulator-state-mem {LDO_REG6  ` 4` Lvcc_1v5regulator-state-mem J b`LDO_REG7  w@ 4w@ Lvcca1v8_codecregulator-state-mem {LDO_REG8  - 4- Lvcc_3v0regulator-state-mem J b-SWITCH_REG1  Lvcc3v3_s3&regulator-state-mem {SWITCH_REG2  Lvcc3v3_s0regulator-state-mem {i2c@ff3d0000rockchip,rk3399-i2c={ u   i2cpclk8&default4+okay0Gtypec-portc@22 fcs,fusb302" &default4 ~i2c@ff3e0000rockchip,rk3399-i2c>{ u   i2cpclk:&default4+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB &default4okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB &default4okaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  &active4okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 &default4 disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk >iommu@ff650800rockchip,iommue@s aclkiface >video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore > iommu@ff660480rockchip,iommu f@f@u aclkiface>  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb>!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclkbdma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkQclock-controller@ff750000rockchip,rk3399-pmucruuxin24mL {u(Jclock-controller@ff760000rockchip,rk3399-cruvxin24mL  {@BCxDu#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+ io-domains"rockchip,rk3399-io-voltage-domainokay M  2 mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf>  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay4host-port  1linestateokay5otg-port 0ghj1otg-bvalidotg-idlinestateokay8usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay6host-port  1linestateokay7otg-port 0lmo1otg-bvalidotg-idlinestateokay:phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay .3pcie-phyrockchip,rk3399-pcie-phyrefclk phyokaydu{phy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref{~u>Luphyuphy-pipeuphy-tcphyL okaydp-port <usb3-port 9phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref{u> Muphyuphy-pipeuphy-tcphyL okaydp-port =usb3-port ;watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBbtx mclkhclkU&default4> disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2sL 'bbtxrxi2s_clki2s_hclkV&bclk_onbclk_off4S> disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(bbtxrxi2s_clki2s_hclkW&default4> disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)bbtxrxi2s_clki2s_hclkX>okayvop@ff8f0000rockchip,rk3399-vop-lit w{uׄaclk_vopdclk_vophclk_vop > axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4?iommu@ff8f3f00rockchip,iommu?w aclkiface> okayvop@ff900000rockchip,rk3399-vop-big v{uׄaclk_vopdclk_vophclk_vop > axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4>iommu@ff903f00rockchip,iommu?v aclkiface> okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk y~dphy> disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface > Nisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk y~dphy> disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface > Nhdmi-soundsimple-audio-card ii2s  hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmii(tqpoiahbisfrcecgrfref>L okay &default4ports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf>apbL + disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf>apbL +  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrf&default4>dpL  disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P>#okay npinctrlrockchip,rk3399-pinctrlL +gpio@ff720000rockchip,gpio-bankr   ,gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   gpio@ff788000rockchip,gpio-bankxQ   'gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma   pcfg-pull-none-13ma   pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma   pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high )pcfg-output-low 5pcfg-input-enable @pcfg-input-pull-up @ pcfg-input-pull-down @ clockclk-32k Mcifcif-clkin M cif-clkouta M edpedp-hpd Mgmacrgmii-pins M    "rmii-pins M     phy-intb M #phy-rstb M$i2c0i2c0-xfer Mi2c1i2c1-xfer M@i2c2i2c2-xfer MAi2c3i2c3-xfer MBi2c4i2c4-xfer M  i2c5i2c5-xfer M  Ci2c6i2c6-xfer M  Di2c7i2c7-xfer MEi2c8i2c8-xfer Mi2s0i2s0-2ch-bus` Mi2s0-2ch-bus-bclk-off` Mi2s0-8ch-bus Mi2s0-8ch-bus-bclk-off Mi2s1i2s1-2ch-busP Mi2s1-2ch-bus-bclk-offP Msdio0sdio0-bus1 Msdio0-bus4@ M)sdio0-cmd M*sdio0-clk M+sdio0-cd Msdio0-pwr Msdio0-bkpwr Msdio0-wp Msdio0-int Msdmmcsdmmc-bus1 Msdmmc-bus4@ M   -sdmmc-clk M .sdmmc-cmd M /sdmmc-cd Msdmmc-wp Msdmmc0-det-l M0sdmmc0-pwr-h Msuspendap-pwroff Mddrio-pwroff Mspdifspdif-bus Mspdif-bus-1 Mspi0spi0-clk MRspi0-cs0 MUspi0-cs1 Mspi0-tx MSspi0-rx MTspi1spi1-clk M Vspi1-cs0 M Yspi1-rx MXspi1-tx MWspi2spi2-clk M Zspi2-cs0 M ]spi2-rx M \spi2-tx M [spi3spi3-clk Mspi3-cs0 Mspi3-rx Mspi3-tx Mspi4spi4-clk M^spi4-cs0 Maspi4-rx M`spi4-tx M_spi5spi5-clk Mcspi5-cs0 Mfspi5-rx Mespi5-tx Mdtestclktest-clkout0 Mtest-clkout1 Mtest-clkout2 Mtsadcotp-pin Mootp-out Mpuart0uart0-xfer MFuart0-cts MHuart0-rts MGuart1uart1-xfer M  Nuart2auart2a-xfer M uart2buart2b-xfer Muart2cuart2c-xfer MOuart3uart3-xfer MPuart3-cts Muart3-rts Muart4uart4-xfer Muarthdcpuarthdcp-xfer Mpwm0pwm0-pin Mpwm0-pin-pull-down Mvop0-pwm-pin Mvop1-pwm-pin Mpwm1pwm1-pin Mpwm1-pin-pull-down Mpwm2pwm2-pin Mpwm2-pin-pull-down Mpwm3apwm3a-pin Mpwm3bpwm3b-pin Mhdmihdmi-i2c-xfer Mhdmi-cec Mpciepci-clkreqn-cpm Mpci-clkreqnb-cpm Mfusb30xfusb0-int Mgpio-ledsstatus-led-pin M pmiccpu-b-sleep Mgpu-sleep Mpmic-int-l Mrockchip-keypower-key Msdiobt-host-wake-l MKbt-reg-on-h M Jbt-wake-l MLwifi-reg_on-h M irir-rx Mopp-table-0operating-points-v2 [ opp00 fQ m  {@opp01 f#F m opp02 f0, m P Popp03 f< mHHopp04 fG mB@B@opp05 fTfr m**opp-table-1operating-points-v2 [opp00 fQ m  {@opp01 f#F m opp02 f0, m opp03 f< m Y Yopp04 fG m~~opp05 fTfr mopp06 f_" mopp07 fkI mOOopp-table-2operating-points-v2opp00 f  m 0opp01 f@ m 0opp02 fׄ m 0opp03 fe m Y Y0opp04 f#F mHH0opp05 f/ m0chosen serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmac!vcc3v3-sysregulator-fixed  2Z 42Z Lvcc3v3_sys pvcc5v0-sysregulator-fixed  LK@ 4LK@ Lvcc5v0_sys pvcc1v8-s3regulator-fixed  w@ 4w@ Lvcc1v8_s3 pMvcc3v0-sdregulator-fixed  ,&default4 - 4- Lvcc3v0_sd p1vcca0v9-s3regulator-fixed   4  Lvcca0v9_s3 pvcca1v8-s3regulator-fixed w@ 4w@ Lvcca1v8_s3 pvbus-typecregulator-fixed LK@ 4LK@ Lvbus_typec   pgpio-keys gpio-keys &default4key-power d , GPIO Key Power t gpio-leds gpio-leds&default4led-0 ,  status_led heartbeatsdio-pwrseqmmc-pwrseq-simpleI ext_clock&default4 , (vcc12v0-sysregulator-fixed  4  Lvcc12v0_sysvcc5v0-host0regulator-fixed  Lvcc5v0_host0 padc-keys adc-keys  buttons w@ +dbutton-recovery Recovery h 9FPir-receivergpio-ir-receiver ,&default4pwm-fanpwm-fan S # b mPk compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyep-gpiosvpcie3v3-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vmmc-hs400-1_8vmmc-hs400-enhanced-strobedr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codelinux,default-triggerio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervalpress-threshold-microvoltcooling-levelsfan-supplypwms 84( &friendlyarm,nanopi-m4rockchip,rk3399 +7FriendlyElec NanoPi M4aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokayinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3  default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac% stmmaceth3@okayKbrinput default  !"#rgmii$(mdiosnps,dwmac-mdio+ethernet-phy@1 % 'u0 %#mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample%yresetokay5&@ default '()Nmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aрb\  Lbiuciuciu-driveciu-sample%zresetokayq * default+,-.N/0mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 bN\ Nclk_xinclk_ahbemmc_cardclocky1 ~phy_arasan%okay@usb@fe380000 generic-ehci82y3~usbokayusb@fe3a0000 generic-ohci:2y3~usbokayusb@fe3c0000 generic-ehci<4y5~usbokayusb@fe3e0000 generic-ohci> 4y5~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy67~usb2-phyusb3-phy utmi_wide0Ij%okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty89~usb2-phyusb3-phy utmi_wide0Ij%okaydp@fec00000rockchip,rk3399-cdn-dp br\  ruocore-clkpclkspdifgrfy:;% HJspdifdptxapbcore3 disabledportsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokaycrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cbA\ AU i2cpclk; default>+okay @i2c@ff120000rockchip,rk3399-i2cbB\ BV i2cpclk# default?+okayi2c@ff130000rockchip,rk3399-i2cbC\ CW i2cpclk" default@+ disabledi2c@ff140000rockchip,rk3399-i2cbD\ DX i2cpclk& defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cbE\ EY i2cpclk% defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cbF\ FZ i2cpclk$ defaultC+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc' default DEFokaybluetoothbrcm,bcm43438-btGlpo 4H H* Z* i=  default IJKsLMserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb' defaultN disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd' defaultOokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke' defaultP disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDQ Q txrx defaultRSTU+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5Q Q txrx defaultVWXY+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4QQtxrx defaultZ[\]+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCQQtxrx default^_`a+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkbb txrx defaultcdef%+ disabledthermal-zonescpu-thermaldgtripscpu_alert0ppassivehcpu_alert1$passiveicpu_crits criticalcooling-mapsmap0hmap1iHgpu-thermaldgtripsgpu_alert0$passivejgpu_crits criticalcooling-mapsmap0j ktsadc@ff260000rockchip,rk3399-tsadc&abO\ qOdtsadcapb_pclk tsadc-apb3s initdefaultsleeplml%okay;Rgqos@ffa58000rockchip,rk3399-qossyscon uqos@ffa5c000rockchip,rk3399-qossyscon vqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon yqos@ffa70080rockchip,rk3399-qossyscon zqos@ffa74000rockchip,rk3399-qossyscon@ wqos@ffa76000rockchip,rk3399-qossyscon` xqos@ffa90000rockchip,rk3399-qossyscon {qos@ffa98000rockchip,rk3399-qossyscon nqos@ffaa0000rockchip,rk3399-qossyscon |qos@ffaa0080rockchip,rk3399-qossyscon }qos@ffaa8000rockchip,rk3399-qossyscon ~qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon oqos@ffab0080rockchip,rk3399-qossyscon pqos@ffab8000rockchip,rk3399-qossyscon qqos@ffac0000rockchip,rk3399-qossyscon rqos@ffac0080rockchip,rk3399-qossyscon sqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon tpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerm+power-domain@34"nmpower-domain@33!opmpower-domain@31qmpower-domain@32  rsmpower-domain@35#tmpower-domain@25lmpower-domain@23umpower-domain@22fvmpower-domain@27Lwmpower-domain@28xmpower-domain@8~}mpower-domain@9 mpower-domain@24yzmpower-domain@15m+power-domain@21r{mpower-domain@19|}mpower-domain@20~mpower-domain@16m+power-domain@17mpower-domain@18msyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk< default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf' default disabledi2c@ff3c0000rockchip,rk3399-i2c<b \   i2cpclk9 default+okayregulator@40silergy,syr827@ default 4` vdd_cpu_b  .Lregulator-state-mem 9regulator@41silergy,syr828A default 4` vdd_gpu  .Lregulator-state-mem 9pmic@1brockchip,rk808xin32krtc_clko_wifi  default  R s L L L L L L L L L L LGregulatorsDCDC_REG1 qp vdd_center qregulator-state-mem 9DCDC_REG2 qp vdd_cpu_l q regulator-state-mem 9DCDC_REG3 vcc_ddrregulator-state-mem DCDC_REG4w@w@ vcc_1v8Mregulator-state-mem  w@LDO_REG1w@w@ vcc1v8_camregulator-state-mem 9LDO_REG2-- vcc3v0_touchregulator-state-mem 9LDO_REG3w@w@ vcc1v8_pmupllregulator-state-mem  w@LDO_REG4w@2Z vcc_sdio0regulator-state-mem  -LDO_REG5-- vcca3v0_codecregulator-state-mem 9LDO_REG6`` vcc_1v5regulator-state-mem  `LDO_REG7w@w@ vcca1v8_codecregulator-state-mem 9LDO_REG8-- vcc_3v0regulator-state-mem  -SWITCH_REG1 vcc3v3_s3$regulator-state-mem 9SWITCH_REG2 vcc3v3_s0regulator-state-mem 9i2c@ff3d0000rockchip,rk3399-i2c=b \   i2cpclk8 default+okaytypec-portc@22 fcs,fusb302"  default <i2c@ff3e0000rockchip,rk3399-i2c>b \   i2cpclk: default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB H defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB H defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  H activeokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 H default disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk S%iommu@ff650800rockchip,iommue@s aclkiface Z%video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore S% iommu@ff660480rockchip,iommu f@f@u aclkiface%  Ziommu@ff670800rockchip,iommug@* aclkiface Z disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb%!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  g r apb_pclkbdma-controller@ff6e0000arm,pl330arm,primecelln@  g r apb_pclkQclock-controller@ff750000rockchip,rk3399-pmucruuxin24m3 b\(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m3 b@BCxD\#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay M  0 mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf%  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay2host-port  1linestateokay3otg-port 0ghj1otg-bvalidotg-idlinestateokay6usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay4host-port  1linestateokay5otg-port 0lmo1otg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay 1pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayK\bphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refb~\%Luphyuphy-pipeuphy-tcphy3okaydp-port :usb3-port 7phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refb\% Muphyuphy-pipeuphy-tcphy3okaydp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBbtx mclkhclkU default% disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s3'bbtxrxi2s_clki2s_hclkV bclk_onbclk_off% disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(bbtxrxi2s_clki2s_hclkW default% disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)bbtxrxi2s_clki2s_hclkX%okayvop@ff8f0000rockchip,rk3399-vop-lit wb\ׄaclk_vopdclk_vophclk_vop S% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?w aclkiface% Zokayvop@ff900000rockchip,rk3399-vop-big vb\ׄaclk_vopdclk_vophclk_vop S% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?v aclkiface% Zokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Sy~dphy% disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface Z% isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Sy~dphy% disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface Z% hdmi-soundsimple-audio-card 'i2s @ Zhdmi-soundokaysimple-audio-card,cpu qsimple-audio-card,codec qhdmi@ff940000rockchip,rk3399-dw-hdmi'(tqpoiahbisfrcecgrfref%3okay { defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf%apb3+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf%apb3+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrf default%dp3 disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P%#okay kpinctrlrockchip,rk3399-pinctrl3+gpio@ff720000rockchip,gpio-bankr   *gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Hgpio@ff788000rockchip,gpio-bankxQ   %gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins      rmii-pins      phy-intb  !phy-rstb "i2c0i2c0-xfer i2c1i2c1-xfer >i2c2i2c2-xfer ?i2c3i2c3-xfer @i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ 'sdio0-cmd (sdio0-clk )sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  ,sdmmc-cmd  -sdmmc-cd sdmmc-wp sdmmc0-det-l .sdmmc0-pwr-h suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Rspi0-cs0 Uspi0-cs1 spi0-tx Sspi0-rx Tspi1spi1-clk  Vspi1-cs0  Yspi1-rx Xspi1-tx Wspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk ^spi4-cs0 aspi4-rx `spi4-tx _spi5spi5-clk cspi5-cs0 fspi5-rx espi5-tx dtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin lotp-out muart0uart0-xfer Duart0-cts Fuart0-rts Euart1uart1-xfer   Nuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Ouart3uart3-xfer Puart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm fusb30xfusb0-int gpio-ledsstatus-led-pin pmiccpu-b-sleep gpu-sleep pmic-int-l rockchip-keypower-key sdiobt-host-wake-l Jbt-reg-on-h Ibt-wake-l Kwifi-reg_on-h opp-table-0operating-points-v2  opp00 $Q +  9@opp01 $#F + opp02 $0, + P Popp03 $< +HHopp04 $G +B@B@opp05 $Tfr +**opp-table-1operating-points-v2 opp00 $Q +  9@opp01 $#F + opp02 $0, + opp03 $< + Y Yopp04 $G +~~opp05 $Tfr +opp06 $_" +opp07 $kI +OOopp-table-2operating-points-v2opp00 $  + 0opp01 $@ + 0opp02 $ׄ + 0opp03 $e + Y Y0opp04 $#F +HH0opp05 $/ +0chosen Jserial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacvcc3v3-sysregulator-fixed2Z2Z vcc3v3_sys .Lvcc5v0-sysregulator-fixedLK@LK@ vcc5v0_sys .vcc1v8-s3regulator-fixedw@w@ vcc1v8_s3 .Mvcc3v0-sdregulator-fixed V i* default-- vcc3v0_sd .L/vcca0v9-s3regulator-fixed   vcca0v9_s3 .vcca1v8-s3regulator-fixedw@w@ vcca1v8_s3 .vbus-typecregulator-fixedLK@LK@ vbus_typec .gpio-keys gpio-keys n defaultkey-power yd * GPIO Key Power t sgpio-leds gpio-leds defaultled-0 *  status_led heartbeatsdio-pwrseqmmc-pwrseq-simpleG ext_clock default * &vdd-5vregulator-fixed vdd_5vvcc5v0-coreregulator-fixed vcc5v0_core .vcc5v0-usb1regulator-fixed vcc5v0_usb1 .vcc5v0-usb2regulator-fixed vcc5v0_usb2 . compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codelinux,default-trigger 8( 'friendlyarm,nanopi-m4brockchip,rk3399 +7FriendlyElec NanoPi M4Baliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokayinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3  default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac% stmmaceth3@okayKbrinput default  !"#rgmii$(mdiosnps,dwmac-mdio+ethernet-phy@1 % 'u0 %#mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample%yresetokay5&@ default '()Nmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aрb\  Lbiuciuciu-driveciu-sample%zresetokayq * default+,-.N/0mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 bN\ Nclk_xinclk_ahbemmc_cardclocky1 ~phy_arasan%okay@usb@fe380000 generic-ehci82y3~usbokayusb@fe3a0000 generic-ohci:2y3~usbokayusb@fe3c0000 generic-ehci<4y5~usbokayusb@fe3e0000 generic-ohci> 4y5~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy67~usb2-phyusb3-phy utmi_wide0Ij%okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty89~usb2-phyusb3-phy utmi_wide0Ij%okaydp@fec00000rockchip,rk3399-cdn-dp br\  ruocore-clkpclkspdifgrfy:;% HJspdifdptxapbcore3 disabledportsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokaycrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cbA\ AU i2cpclk; default>+okay @i2c@ff120000rockchip,rk3399-i2cbB\ BV i2cpclk# default?+okayi2c@ff130000rockchip,rk3399-i2cbC\ CW i2cpclk" default@+ disabledi2c@ff140000rockchip,rk3399-i2cbD\ DX i2cpclk& defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cbE\ EY i2cpclk% defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cbF\ FZ i2cpclk$ defaultC+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc' default DEFokaybluetoothbrcm,bcm43438-btGlpo 4H H* Z* i=  default IJKsLMserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb' defaultN disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd' defaultOokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke' defaultP disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDQ Q txrx defaultRSTU+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5Q Q txrx defaultVWXY+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4QQtxrx defaultZ[\]+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCQQtxrx default^_`a+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkbb txrx defaultcdef%+ disabledthermal-zonescpu-thermaldgtripscpu_alert0ppassivehcpu_alert1$passiveicpu_crits criticalcooling-mapsmap0hmap1iHgpu-thermaldgtripsgpu_alert0$passivejgpu_crits criticalcooling-mapsmap0j ktsadc@ff260000rockchip,rk3399-tsadc&abO\ qOdtsadcapb_pclk tsadc-apb3s initdefaultsleeplml%okay;Rgqos@ffa58000rockchip,rk3399-qossyscon uqos@ffa5c000rockchip,rk3399-qossyscon vqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon yqos@ffa70080rockchip,rk3399-qossyscon zqos@ffa74000rockchip,rk3399-qossyscon@ wqos@ffa76000rockchip,rk3399-qossyscon` xqos@ffa90000rockchip,rk3399-qossyscon {qos@ffa98000rockchip,rk3399-qossyscon nqos@ffaa0000rockchip,rk3399-qossyscon |qos@ffaa0080rockchip,rk3399-qossyscon }qos@ffaa8000rockchip,rk3399-qossyscon ~qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon oqos@ffab0080rockchip,rk3399-qossyscon pqos@ffab8000rockchip,rk3399-qossyscon qqos@ffac0000rockchip,rk3399-qossyscon rqos@ffac0080rockchip,rk3399-qossyscon sqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon tpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerm+power-domain@34"nmpower-domain@33!opmpower-domain@31qmpower-domain@32  rsmpower-domain@35#tmpower-domain@25lmpower-domain@23umpower-domain@22fvmpower-domain@27Lwmpower-domain@28xmpower-domain@8~}mpower-domain@9 mpower-domain@24yzmpower-domain@15m+power-domain@21r{mpower-domain@19|}mpower-domain@20~mpower-domain@16m+power-domain@17mpower-domain@18msyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk< default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf' default disabledi2c@ff3c0000rockchip,rk3399-i2c<b \   i2cpclk9 default+okayregulator@40silergy,syr827@ default 4` vdd_cpu_b  .Lregulator-state-mem 9regulator@41silergy,syr828A default 4` vdd_gpu  .Lregulator-state-mem 9pmic@1brockchip,rk808xin32krtc_clko_wifi  default  R s L L L L L L L L L L LGregulatorsDCDC_REG1 qp vdd_center qregulator-state-mem 9DCDC_REG2 qp vdd_cpu_l q regulator-state-mem 9DCDC_REG3 vcc_ddrregulator-state-mem DCDC_REG4w@w@ vcc_1v8Mregulator-state-mem  w@LDO_REG1w@w@ vcc1v8_camregulator-state-mem 9LDO_REG2-- vcc3v0_touchregulator-state-mem 9LDO_REG3w@w@ vcc1v8_pmupllregulator-state-mem  w@LDO_REG4w@2Z vcc_sdio0regulator-state-mem  -LDO_REG5-- vcca3v0_codecregulator-state-mem 9LDO_REG6`` vcc_1v5regulator-state-mem  `LDO_REG7w@w@ vcca1v8_codecregulator-state-mem 9LDO_REG8-- vcc_3v0regulator-state-mem  -SWITCH_REG1 vcc3v3_s3$regulator-state-mem 9SWITCH_REG2 vcc3v3_s0regulator-state-mem 9i2c@ff3d0000rockchip,rk3399-i2c=b \   i2cpclk8 default+ disabledi2c@ff3e0000rockchip,rk3399-i2c>b \   i2cpclk: default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB < defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB < defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  < activeokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 < default disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk G%iommu@ff650800rockchip,iommue@s aclkiface N%video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore G% iommu@ff660480rockchip,iommu f@f@u aclkiface%  Niommu@ff670800rockchip,iommug@* aclkiface N disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb%!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  [ f apb_pclkbdma-controller@ff6e0000arm,pl330arm,primecelln@  [ f apb_pclkQclock-controller@ff750000rockchip,rk3399-pmucruuxin24m3 }b\(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m3 }b@BCxD\#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay M  0 mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf%  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay2host-port  1linestateokay3otg-port 0ghj1otg-bvalidotg-idlinestateokay6usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay4host-port  1linestateokay5otg-port 0lmo1otg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay 1pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayK\bphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refb~\%Luphyuphy-pipeuphy-tcphy3okaydp-port :usb3-port 7phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refb\% Muphyuphy-pipeuphy-tcphy3okaydp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBbtx mclkhclkU default% disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s3'bbtxrxi2s_clki2s_hclkV bclk_onbclk_off% disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(bbtxrxi2s_clki2s_hclkW default% disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)bbtxrxi2s_clki2s_hclkX%okayvop@ff8f0000rockchip,rk3399-vop-lit wb\ׄaclk_vopdclk_vophclk_vop G% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?w aclkiface% Nokayvop@ff900000rockchip,rk3399-vop-big vb\ׄaclk_vopdclk_vophclk_vop G% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?v aclkiface% Nokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Gy~dphy% disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface N% isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Gy~dphy% disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface N% hdmi-soundsimple-audio-card i2s 4 Nhdmi-soundokaysimple-audio-card,cpu esimple-audio-card,codec ehdmi@ff940000rockchip,rk3399-dw-hdmi'(tqpoiahbisfrcecgrfref%3okay o defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf%apb3+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf%apb3+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrf default%dp3 disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P%#okay {kpinctrlrockchip,rk3399-pinctrl3+gpio@ff720000rockchip,gpio-bankr   *gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Hgpio@ff788000rockchip,gpio-bankxQ   %gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins      rmii-pins      phy-intb  !phy-rstb "i2c0i2c0-xfer i2c1i2c1-xfer >i2c2i2c2-xfer ?i2c3i2c3-xfer @i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ 'sdio0-cmd (sdio0-clk )sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  ,sdmmc-cmd  -sdmmc-cd sdmmc-wp sdmmc0-det-l .sdmmc0-pwr-h suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Rspi0-cs0 Uspi0-cs1 spi0-tx Sspi0-rx Tspi1spi1-clk  Vspi1-cs0  Yspi1-rx Xspi1-tx Wspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk ^spi4-cs0 aspi4-rx `spi4-tx _spi5spi5-clk cspi5-cs0 fspi5-rx espi5-tx dtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin lotp-out muart0uart0-xfer Duart0-cts Fuart0-rts Euart1uart1-xfer   Nuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Ouart3uart3-xfer Puart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm fusb30xfusb0-int gpio-ledsstatus-led-pin pmiccpu-b-sleep gpu-sleep pmic-int-l rockchip-keypower-key sdiobt-host-wake-l Jbt-reg-on-h Ibt-wake-l Kwifi-reg_on-h opp-table-0operating-points-v2  opp00 Q   -@opp01 #F  opp02 0,  P Popp03 < HHopp04 G B@B@opp05 Tfr **opp-table-1operating-points-v2 opp00 Q   -@opp01 #F  opp02 0,  opp03 <  Y Yopp04 G ~~opp05 Tfr opp06 _" opp07 kI OOopp-table-2operating-points-v2opp00    0opp01 @  0opp02 ׄ  0opp03 e  Y Y0opp04 #F HH0opp05 / 0chosen >serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacvcc3v3-sysregulator-fixed2Z2Z vcc3v3_sys .Lvcc5v0-sysregulator-fixedLK@LK@ vcc5v0_sys .vcc1v8-s3regulator-fixedw@w@ vcc1v8_s3 .Mvcc3v0-sdregulator-fixed J ]* default-- vcc3v0_sd .L/vcca0v9-s3regulator-fixed   vcca0v9_s3 .vcca1v8-s3regulator-fixedw@w@ vcca1v8_s3 .vbus-typecregulator-fixedLK@LK@ vbus_typec . J gpio-keys gpio-keys b defaultkey-power md * GPIO Key Power t sgpio-leds gpio-leds defaultled-0 *  status_led heartbeatsdio-pwrseqmmc-pwrseq-simpleG ext_clock default * &vdd-5vregulator-fixed vdd_5vvcc5v0-coreregulator-fixed vcc5v0_core .vcc5v0-usb1regulator-fixed vcc5v0_usb1 .vcc5v0-usb2regulator-fixed vcc5v0_usb2 .adc-keys adc-keys  buttons ` dbutton-recovery Recovery h FP compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvolt#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codelinux,default-triggerio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervalpress-threshold-microvolt V8( l(friendlyarm,nanopi-neo4rockchip,rk3399 +7FriendlyARM NanoPi NEO4aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh display-subsystemrockchip,display-subsystemymemory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ ' Gaclkaclk-perfhclkpm01231syslegacyclientA`Tbq y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokayinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk y,~pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3  default disabledethernet@fe300000rockchip,rk3399-gmac0 1macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac% stmmaceth3@okayKbrinput default  !"#rgmii$(mdiosnps,dwmac-mdio+ethernet-phy@1 % 'u0 %#mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample%yresetokay5&@ default '()Nmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aрb\  Lbiuciuciu-driveciu-sample%zresetokayq * default+,-.N/0mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 bN\ Nclk_xinclk_ahbemmc_cardclocky1 ~phy_arasan%okay@usb@fe380000 generic-ehci82y3~usbokayusb@fe3a0000 generic-ohci:2y3~usbokayusb@fe3c0000 generic-ehci<4y5~usbokayusb@fe3e0000 generic-ohci> 4y5~usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgy67~usb2-phyusb3-phy utmi_wide0Ij%okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosty89~usb2-phyusb3-phy utmi_wide0Ij%okaydp@fec00000rockchip,rk3399-cdn-dp br\  ruocore-clkpclkspdifgrfy:;% HJspdifdptxapbcore3 disabledportsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokaycrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cbA\ AU i2cpclk; default>+okay @i2c@ff120000rockchip,rk3399-i2cbB\ BV i2cpclk# default?+okayi2c@ff130000rockchip,rk3399-i2cbC\ CW i2cpclk" default@+ disabledi2c@ff140000rockchip,rk3399-i2cbD\ DX i2cpclk& defaultA+ disabledi2c@ff150000rockchip,rk3399-i2cbE\ EY i2cpclk% defaultB+ disabledi2c@ff160000rockchip,rk3399-i2cbF\ FZ i2cpclk$ defaultC+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc' default DEFokaybluetoothbrcm,bcm43438-btGlpo 4H H* Z* i=  default IJKsLMserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb' defaultN disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd' defaultOokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke' defaultP disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDQ Q txrx defaultRSTU+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5Q Q txrx defaultVWXY+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4QQtxrx defaultZ[\]+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCQQtxrx default^_`a+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkbb txrx defaultcdef%+ disabledthermal-zonescpu-thermaldgtripscpu_alert0ppassivehcpu_alert1$passiveicpu_crits criticalcooling-mapsmap0hmap1iHgpu-thermaldgtripsgpu_alert0$passivejgpu_crits criticalcooling-mapsmap0j ktsadc@ff260000rockchip,rk3399-tsadc&abO\ qOdtsadcapb_pclk tsadc-apb3s initdefaultsleeplml%okay;Rgqos@ffa58000rockchip,rk3399-qossyscon uqos@ffa5c000rockchip,rk3399-qossyscon vqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon yqos@ffa70080rockchip,rk3399-qossyscon zqos@ffa74000rockchip,rk3399-qossyscon@ wqos@ffa76000rockchip,rk3399-qossyscon` xqos@ffa90000rockchip,rk3399-qossyscon {qos@ffa98000rockchip,rk3399-qossyscon nqos@ffaa0000rockchip,rk3399-qossyscon |qos@ffaa0080rockchip,rk3399-qossyscon }qos@ffaa8000rockchip,rk3399-qossyscon ~qos@ffaa8080rockchip,rk3399-qossyscon qos@ffab0000rockchip,rk3399-qossyscon oqos@ffab0080rockchip,rk3399-qossyscon pqos@ffab8000rockchip,rk3399-qossyscon qqos@ffac0000rockchip,rk3399-qossyscon rqos@ffac0080rockchip,rk3399-qossyscon sqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon tpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerm+power-domain@34"nmpower-domain@33!opmpower-domain@31qmpower-domain@32  rsmpower-domain@35#tmpower-domain@25lmpower-domain@23umpower-domain@22fvmpower-domain@27Lwmpower-domain@28xmpower-domain@8~}mpower-domain@9 mpower-domain@24yzmpower-domain@15m+power-domain@21r{mpower-domain@19|}mpower-domain@20~mpower-domain@16m+power-domain@17mpower-domain@18msyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk< default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf' default disabledi2c@ff3c0000rockchip,rk3399-i2c<b \   i2cpclk9 default+okayregulator@40silergy,syr827@ default 4` vdd_cpu_b  .Lregulator-state-mem 9regulator@41silergy,syr828A default 4` vdd_gpu  .Lregulator-state-mem 9pmic@1brockchip,rk808xin32krtc_clko_wifi  default  R s L L L L L L L L L L LGregulatorsDCDC_REG1 qp vdd_center qregulator-state-mem 9DCDC_REG2 qp vdd_cpu_l q regulator-state-mem 9DCDC_REG3 vcc_ddrregulator-state-mem DCDC_REG4w@w@ vcc_1v8Mregulator-state-mem  w@LDO_REG1w@w@ vcc1v8_camregulator-state-mem 9LDO_REG2-- vcc3v0_touchregulator-state-mem 9LDO_REG3w@w@ vcc1v8_pmupllregulator-state-mem  w@LDO_REG4w@2Z vcc_sdio0regulator-state-mem  -LDO_REG5-- vcca3v0_codecregulator-state-mem 9LDO_REG6`` vcc_1v5regulator-state-mem  `LDO_REG7w@w@ vcca1v8_codecregulator-state-mem 9LDO_REG8-- vcc_3v0regulator-state-mem  -SWITCH_REG1 vcc3v3_s3$regulator-state-mem 9SWITCH_REG2 vcc3v3_s0regulator-state-mem 9i2c@ff3d0000rockchip,rk3399-i2c=b \   i2cpclk8 default+okaytypec-portc@22 fcs,fusb302"  default <i2c@ff3e0000rockchip,rk3399-i2c>b \   i2cpclk: default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB H defaultokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB H defaultokaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  H activeokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 H default disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 1vepuvdpu aclkhclk S%iommu@ff650800rockchip,iommue@s aclkiface Z%video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore S% iommu@ff660480rockchip,iommu f@f@u aclkiface%  Ziommu@ff670800rockchip,iommug@* aclkiface Z disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb%!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  g r apb_pclkbdma-controller@ff6e0000arm,pl330arm,primecelln@  g r apb_pclkQclock-controller@ff750000rockchip,rk3399-pmucruuxin24m3 b\(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m3 b@BCxD\#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay M  0 mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf%  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay2host-port  1linestateokay3otg-port 0ghj1otg-bvalidotg-idlinestateokay6usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay4host-port  1linestateokay5otg-port 0lmo1otg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay 1pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayK\bphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refb~\%Luphyuphy-pipeuphy-tcphy3okaydp-port :usb3-port 7phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refb\% Muphyuphy-pipeuphy-tcphy3okaydp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBbtx mclkhclkU default% disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s3'bbtxrxi2s_clki2s_hclkV bclk_onbclk_off% disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(bbtxrxi2s_clki2s_hclkW default% disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)bbtxrxi2s_clki2s_hclkX%okayvop@ff8f0000rockchip,rk3399-vop-lit wb\ׄaclk_vopdclk_vophclk_vop S% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?w aclkiface% Zokayvop@ff900000rockchip,rk3399-vop-big vb\ׄaclk_vopdclk_vophclk_vop S% axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?v aclkiface% Zokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk Sy~dphy% disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface Z% isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk Sy~dphy% disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface Z% hdmi-soundsimple-audio-card 'i2s @ Zhdmi-soundokaysimple-audio-card,cpu qsimple-audio-card,codec qhdmi@ff940000rockchip,rk3399-dw-hdmi'(tqpoiahbisfrcecgrfref%3okay { defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf%apb3+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf%apb3+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrf default%dp3 disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 1jobmmugpu#2 P%#okay kpinctrlrockchip,rk3399-pinctrl3+gpio@ff720000rockchip,gpio-bankr   *gpio@ff730000rockchip,gpio-banks   gpio@ff780000rockchip,gpio-bankxP   Hgpio@ff788000rockchip,gpio-bankxQ   %gpio@ff790000rockchip,gpio-bankyR   pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins      rmii-pins      phy-intb  !phy-rstb "i2c0i2c0-xfer i2c1i2c1-xfer >i2c2i2c2-xfer ?i2c3i2c3-xfer @i2c4i2c4-xfer   i2c5i2c5-xfer   Ai2c6i2c6-xfer   Bi2c7i2c7-xfer Ci2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ 'sdio0-cmd (sdio0-clk )sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    +sdmmc-clk  ,sdmmc-cmd  -sdmmc-cd sdmmc-wp sdmmc0-det-l .sdmmc0-pwr-h suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Rspi0-cs0 Uspi0-cs1 spi0-tx Sspi0-rx Tspi1spi1-clk  Vspi1-cs0  Yspi1-rx Xspi1-tx Wspi2spi2-clk  Zspi2-cs0  ]spi2-rx  \spi2-tx  [spi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk ^spi4-cs0 aspi4-rx `spi4-tx _spi5spi5-clk cspi5-cs0 fspi5-rx espi5-tx dtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin lotp-out muart0uart0-xfer Duart0-cts Fuart0-rts Euart1uart1-xfer   Nuart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Ouart3uart3-xfer Puart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm fusb30xfusb0-int gpio-ledsstatus-led-pin pmiccpu-b-sleep gpu-sleep pmic-int-l rockchip-keypower-key sdiobt-host-wake-l Jbt-reg-on-h Ibt-wake-l Kwifi-reg_on-h opp-table-0operating-points-v2  opp00 $Q +  9@opp01 $#F + opp02 $0, + P Popp03 $< +HHopp04 $G +B@B@opp05 $Tfr +**opp-table-1operating-points-v2 opp00 $Q +  9@opp01 $#F + opp02 $0, + opp03 $< + Y Yopp04 $G +~~opp05 $Tfr +opp06 $_" +opp07 $kI +OOopp-table-2operating-points-v2opp00 $  + 0opp01 $@ + 0opp02 $ׄ + 0opp03 $e + Y Y0opp04 $#F +HH0opp05 $/ +0chosen Jserial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacvcc3v3-sysregulator-fixed2Z2Z vcc3v3_sys .Lvcc5v0-sysregulator-fixedLK@LK@ vcc5v0_sys .vcc1v8-s3regulator-fixedw@w@ vcc1v8_s3 .Mvcc3v0-sdregulator-fixed V i* default-- vcc3v0_sd .L/vcca0v9-s3regulator-fixed   vcca0v9_s3 .vcca1v8-s3regulator-fixedw@w@ vcca1v8_s3 .vbus-typecregulator-fixedLK@LK@ vbus_typec .gpio-keys gpio-keys n defaultkey-power yd * GPIO Key Power t sgpio-leds gpio-leds defaultled-0 *  status_led heartbeatsdio-pwrseqmmc-pwrseq-simpleG ext_clock default * &vdd-5vregulator-fixed vdd_5vvcc5v0-coreregulator-fixed vcc5v0_core .vcc5v0-usb1regulator-fixed vcc5v0_usb1 . compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codelinux,default-trigger 8<( 2friendlyarm,nanopi-r4s-enterpriserockchip,rk3399 ++7FriendlyElec NanoPi R4S Enterprise Editionaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh memory-controllerrockchip,rk3399-dmcydmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+! Gaclkaclk-perfhclkpm0123+syslegacyclient;`N\k s,xpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokayinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk s,xpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default% disabledethernet@fe300000rockchip,rk3399-gmac0 +macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac/ stmmaceth=JokayUl|inputdefault % !"rgmii#($ mac-addressmdiosnps,dwmac-mdio+ethernet-phy@1 % 'u0 %"mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample/yreset disabled(9F\&gdefault %'()ummc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aрl  Lbiuciuciu-driveciu-sample/zresetokay( *default%+,-.u/0mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 lN Nclk_xinclk_ahbemmc_cardclocks1 xphy_arasan/ disabledgusb@fe380000 generic-ehci82s3xusbokayusb@fe3a0000 generic-ohci:2s3xusbokayusb@fe3c0000 generic-ehci<4s5xusbokayusb@fe3e0000 generic-ohci> 4s5xusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspend hosts67xusb2-phyusb3-phy utmi_wide6Wp/okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspend hosts89xusb2-phyusb3-phy utmi_wide6Wp/okaydp@fec00000rockchip,rk3399-cdn-dp lr  ruocore-clkpclkspdifgrfs:;/ HJspdifdptxapbcore= disabledportsport+endpoint@0<endpoint@1=interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2clA AU i2cpclk;default%>+okay @,i2c@ff120000rockchip,rk3399-i2clB BV i2cpclk#default%?+okayeeprom@51microchip,24c02atmel,24c02QDd+mac-address@fa$i2c@ff130000rockchip,rk3399-i2clC CW i2cpclk"default%@+ disabledi2c@ff140000rockchip,rk3399-i2clD DX i2cpclk&default%A+ disabledi2c@ff150000rockchip,rk3399-i2clE EY i2cpclk%default%B+ disabledi2c@ff160000rockchip,rk3399-i2clF FZ i2cpclk$default%C+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcMWdefault %DEF disabledbluetoothbrcm,bcm43438-btGlpo dH x* * = default %IJKLserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbMWdefault%M disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkdMWdefault%Nokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkeMWdefault%O disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDP P txrxdefault%QRST+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5P P txrxdefault%UVWX+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4PPtxrxdefault%YZ[\+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCPPtxrxdefault%]^_`+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkaa txrxdefault%bcde/+ disabledthermal-zonescpu-thermaldftripscpu_alert0p passivegcpu_alert1$ passivehcpu_crits  criticalcooling-mapsmap0gmap1hHgpu-thermaldftripsgpu_alert0$ passiveigpu_crits  criticalcooling-mapsmap0i jtsadc@ff260000rockchip,rk3399-tsadc&alO qOdtsadcapb_pclk tsadc-apb=*sinitdefaultsleep%kAlKkUokaykfqos@ffa58000rockchip,rk3399-qossyscon tqos@ffa5c000rockchip,rk3399-qossyscon uqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon xqos@ffa70080rockchip,rk3399-qossyscon yqos@ffa74000rockchip,rk3399-qossyscon@ vqos@ffa76000rockchip,rk3399-qossyscon` wqos@ffa90000rockchip,rk3399-qossyscon zqos@ffa98000rockchip,rk3399-qossyscon mqos@ffaa0000rockchip,rk3399-qossyscon {qos@ffaa0080rockchip,rk3399-qossyscon |qos@ffaa8000rockchip,rk3399-qossyscon }qos@ffaa8080rockchip,rk3399-qossyscon ~qos@ffab0000rockchip,rk3399-qossyscon nqos@ffab0080rockchip,rk3399-qossyscon oqos@ffab8000rockchip,rk3399-qossyscon pqos@ffac0000rockchip,rk3399-qossyscon qqos@ffac0080rockchip,rk3399-qossyscon rqos@ffac8000rockchip,rk3399-qossyscon qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon spower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller+power-domain@34"mpower-domain@33!nopower-domain@31ppower-domain@32  qrpower-domain@35#spower-domain@25lpower-domain@23tpower-domain@22fupower-domain@27Lvpower-domain@28wpower-domain@8~}power-domain@9 power-domain@24xypower-domain@15+power-domain@21rzpower-domain@19{|power-domain@20}~power-domain@16+power-domain@17power-domain@18syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default%+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkfMWdefault% disabledi2c@ff3c0000rockchip,rk3399-i2c<l    i2cpclk9default%+okay,regulator@40silergy,syr827@default% 4 "` :vdd_cpu_b I ^regulator-state-mem iregulator@41silergy,syr828Adefault% 4 "` :vdd_gpu I ^regulator-state-mem ipmic@1brockchip,rk808xin32krtc_clko_wifi default %             +GregulatorsDCDC_REG1 q "p :vdd_center Iqregulator-state-mem iDCDC_REG2 q "p :vdd_cpu_l Iq regulator-state-mem iDCDC_REG3 :vcc_ddrregulator-state-mem 8DCDC_REG4 w@ "w@ :vcc_1v8Lregulator-state-mem 8 Pw@LDO_REG1 w@ "w@ :vcc1v8_camregulator-state-mem iLDO_REG2 - "- :vcc3v0_touchregulator-state-mem iLDO_REG3 w@ "w@ :vcc1v8_pmupllregulator-state-mem 8 Pw@LDO_REG4 w@ "2Z :vcc_sdio0regulator-state-mem 8 P-LDO_REG5 - "- :vcca3v0_codecregulator-state-mem iLDO_REG6 ` "` :vcc_1v5regulator-state-mem 8 P`LDO_REG7 w@ "w@ :vcca1v8_codecregulator-state-mem iLDO_REG8 - "- :vcc_3v0regulator-state-mem 8 P-SWITCH_REG1 :vcc3v3_s3#regulator-state-mem iSWITCH_REG2 :vcc3v3_s0regulator-state-mem ii2c@ff3d0000rockchip,rk3399-i2c=l    i2cpclk8default%+ disabled,typec-portc@22 fcs,fusb302" default% li2c@ff3e0000rockchip,rk3399-i2c>l    i2cpclk:default%+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB xdefault%okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB xdefault%okaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  xactive%okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 xdefault% disableddfi@ff630000c@rockchip,rk3399-dfiyy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq +vepuvdpu aclkhclk /iommu@ff650800rockchip,iommue@s aclkiface /video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore / iommu@ff660480rockchip,iommu f@f@u aclkiface/  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb/!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclkadma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkPclock-controller@ff750000rockchip,rk3399-pmucruuxin24m= l(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m= l@BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay L  0 mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf/  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay2host-port  +linestateokay3otg-port 0ghj+otg-bvalidotg-idlinestateokay6usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay4host-port  +linestate disabled5otg-port 0lmo+otg-bvalidotg-idlinestateokay8phy@f780rockchip,rk3399-emmc-phy$emmcclk 2  disabled 1pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayUlphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refl~/Luphyuphy-pipeuphy-tcphy=okaydp-port :usb3-port 7phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refl/ Muphyuphy-pipeuphy-tcphy=okaydp-port ;usb3-port 9watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBatx mclkhclkUdefault%/ disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s='aatxrxi2s_clki2s_hclkVbclk_onbclk_off%A/ disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(aatxrxi2s_clki2s_hclkWdefault%/ disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)aatxrxi2s_clki2s_hclkX/okayvop@ff8f0000rockchip,rk3399-vop-lit wlׄaclk_vopdclk_vophclk_vop / axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4=iommu@ff8f3f00rockchip,iommu?w aclkiface/ okayvop@ff900000rockchip,rk3399-vop-big vlׄaclk_vopdclk_vophclk_vop / axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff903f00rockchip,iommu?v aclkiface/ okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk sxdphy/ disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface / <isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk sxdphy/ disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface / <hdmi-soundsimple-audio-card Wi2s p hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmiW(tqpoiahbisfrcecgrfref/=okay default%ports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf/apb=+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf/apb=+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault%/dp= disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 +jobmmugpu#2 P/#okay jpinctrlrockchip,rk3399-pinctrl=y+gpio@ff720000rockchip,gpio-bankr  *gpio@ff730000rockchip,gpio-banks  gpio@ff780000rockchip,gpio-bankxP  Hgpio@ff788000rockchip,gpio-bankxQ  %gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma   pcfg-pull-none-13ma   pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma   pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low #pcfg-input-enable .pcfg-input-pull-up . pcfg-input-pull-down . clockclk-32k ;cifcif-clkin ; cif-clkouta ; edpedp-hpd ;gmacrgmii-pins ;    rmii-pins ;     phy-intb ;  phy-rstb ;!i2c0i2c0-xfer ;i2c1i2c1-xfer ;>i2c2i2c2-xfer ;?i2c3i2c3-xfer ;@i2c4i2c4-xfer ;  i2c5i2c5-xfer ;  Ai2c6i2c6-xfer ;  Bi2c7i2c7-xfer ;Ci2c8i2c8-xfer ;i2s0i2s0-2ch-bus` ;i2s0-2ch-bus-bclk-off` ;i2s0-8ch-bus ;i2s0-8ch-bus-bclk-off ;i2s1i2s1-2ch-busP ;i2s1-2ch-bus-bclk-offP ;sdio0sdio0-bus1 ;sdio0-bus4@ ;'sdio0-cmd ;(sdio0-clk ;)sdio0-cd ;sdio0-pwr ;sdio0-bkpwr ;sdio0-wp ;sdio0-int ;sdmmcsdmmc-bus1 ;sdmmc-bus4@ ;   +sdmmc-clk ; ,sdmmc-cmd ; -sdmmc-cd ;sdmmc-wp ;sdmmc0-det-l ;.sdmmc0-pwr-h ;suspendap-pwroff ;ddrio-pwroff ;spdifspdif-bus ;spdif-bus-1 ;spi0spi0-clk ;Qspi0-cs0 ;Tspi0-cs1 ;spi0-tx ;Rspi0-rx ;Sspi1spi1-clk ; Uspi1-cs0 ; Xspi1-rx ;Wspi1-tx ;Vspi2spi2-clk ; Yspi2-cs0 ; \spi2-rx ; [spi2-tx ; Zspi3spi3-clk ;spi3-cs0 ;spi3-rx ;spi3-tx ;spi4spi4-clk ;]spi4-cs0 ;`spi4-rx ;_spi4-tx ;^spi5spi5-clk ;bspi5-cs0 ;espi5-rx ;dspi5-tx ;ctestclktest-clkout0 ;test-clkout1 ;test-clkout2 ;tsadcotp-pin ;kotp-out ;luart0uart0-xfer ;Duart0-cts ;Fuart0-rts ;Euart1uart1-xfer ;  Muart2auart2a-xfer ; uart2buart2b-xfer ;uart2cuart2c-xfer ;Nuart3uart3-xfer ;Ouart3-cts ;uart3-rts ;uart4uart4-xfer ;uarthdcpuarthdcp-xfer ;pwm0pwm0-pin ;pwm0-pin-pull-down ;vop0-pwm-pin ;vop1-pwm-pin ;pwm1pwm1-pin ;pwm1-pin-pull-down ;pwm2pwm2-pin ;pwm2-pin-pull-down ;pwm3apwm3a-pin ;pwm3bpwm3b-pin ;hdmihdmi-i2c-xfer ;hdmi-cec ;pciepci-clkreqn-cpm ;pci-clkreqnb-cpm ;fusb30xfusb0-int ;gpio-ledslan-led-pin ;sys-led-pin ; wan-led-pin ;pmiccpu-b-sleep ;gpu-sleep ;pmic-int-l ;rockchip-keyreset-button-pin ;sdiobt-host-wake-l ;Jbt-reg-on-h ; Ibt-wake-l ;Kwifi-reg_on-h ; opp-table-0operating-points-v2 I opp00 TQ [  i@opp01 T#F [ opp02 T0, [ P Popp03 T< [HHopp04 TG [B@B@opp05 TTfr [**opp-table-1operating-points-v2 Iopp00 TQ [  i@opp01 T#F [ opp02 T0, [ opp03 T< [ Y Yopp04 TG [~~opp05 TTfr [opp06 T_" [opp07 TkI [OOopp-table-2operating-points-v2opp00 T  [ 0opp01 T@ [ 0opp02 Tׄ [ 0opp03 Te [ Y Y0opp04 T#F [HH0opp05 T/ [0chosen zserial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacvcc3v3-sysregulator-fixed 2Z "2Z :vcc3v3_sys ^vcc5v0-sysregulator-fixed LK@ "LK@ :vcc5v0_sys ^vcc1v8-s3regulator-fixed w@ "w@ :vcc1v8_s3 ^Lvcc3v0-sdregulator-fixed  *default% - "- :vcc3v0_sd ^/vcca0v9-s3regulator-fixed  "  :vcca0v9_s3 ^vcca1v8-s3regulator-fixed w@ "w@ :vcca1v8_s3 ^vbus-typecregulator-fixed LK@ "LK@ :vbus_typecgpio-keys gpio-keys default%key-reset 2  reset gpio-leds gpio-ledsdefault %led-lan  green:lanled-sys *  red:power onled-wan  green:wansdio-pwrseqmmc-pwrseq-simpleG ext_clockdefault% * &vdd-5vregulator-fixed :vdd_5v compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyvpcie3v3-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delaynvmem-cellsnvmem-cell-namesreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nspagesizereg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codedefault-state 8,( 'friendlyarm,nanopi-r4srockchip,rk3399 +7FriendlyElec NanoPi R4Saliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci #2dL \i@{@   cpu@1cpuarm,cortex-a53psci #2dL \i@{@   cpu@2cpuarm,cortex-a53psci #2dL \i@{@   cpu@3cpuarm,cortex-a53psci #2dL \i@{@   cpu@100cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'cpu@101cpuarm,cortex-a72psci  #2L \i@{@thermal-idle#'l2-cache-cluster0cache^k@} l2-cache-cluster1cache^k@}idle-states"pscicpu-sleeparm,idle-state/@Wxh cluster-sleeparm,idle-state/@Wh memory-controllerrockchip,rk3399-dmcydmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+! Gaclkaclk-perfhclkpm0123+syslegacyclient;`N\k s,xpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokayinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk s,xpcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default% disabledethernet@fe300000rockchip,rk3399-gmac0 +macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac/ stmmaceth=JokayUl|inputdefault % !"rgmii#(mdiosnps,dwmac-mdio+ethernet-phy@1 $ 'u0 $"mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sample/yreset disabled )?%Jdefault %&'(Xmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aрlf  Lbiuciuciu-driveciu-sample/zresetokay { )default%*+,-X./mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 lNf Nclk_xinclk_ahbemmc_cardclocks0 xphy_arasan/ disabledJusb@fe380000 generic-ehci81s2xusbokayusb@fe3a0000 generic-ohci:1s2xusbokayusb@fe3c0000 generic-ehci<3s4xusbokayusb@fe3e0000 generic-ohci> 3s4xusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendhosts56xusb2-phyusb3-phy utmi_wide:St/okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhosts78xusb2-phyusb3-phy utmi_wide:St/okaydp@fec00000rockchip,rk3399-cdn-dp lrf  ruocore-clkpclkspdifgrfs9:/ HJspdifdptxapbcore= disabledportsport+endpoint@0;endpoint@1<interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokaycrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2clAf AU i2cpclk;default%=+okay @i2c@ff120000rockchip,rk3399-i2clBf BV i2cpclk#default%>+okayi2c@ff130000rockchip,rk3399-i2clCf CW i2cpclk"default%?+ disabledi2c@ff140000rockchip,rk3399-i2clDf DX i2cpclk&default%@+ disabledi2c@ff150000rockchip,rk3399-i2clEf EY i2cpclk%default%A+ disabledi2c@ff160000rockchip,rk3399-i2clFf FZ i2cpclk$default%B+okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc'1default %CDE disabledbluetoothbrcm,bcm43438-btFlpo >G R) d) s= default %HIJ}Kserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb'1default%L disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd'1default%Mokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke'1default%N disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDO O txrxdefault%PQRS+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5O O txrxdefault%TUVW+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4OOtxrxdefault%XYZ[+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCOOtxrxdefault%\]^_+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk`` txrxdefault%abcd/+ disabledthermal-zonescpu-thermaldetripscpu_alert0ppassivefcpu_alert1$passivegcpu_crits criticalcooling-mapsmap0fmap1gHgpu-thermaldetripsgpu_alert0$passivehgpu_crits criticalcooling-mapsmap0h itsadc@ff260000rockchip,rk3399-tsadc&alOf qOdtsadcapb_pclk tsadc-apb=sinitdefaultsleep%jk%j/okayE\eqos@ffa58000rockchip,rk3399-qossyscon sqos@ffa5c000rockchip,rk3399-qossyscon tqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon wqos@ffa70080rockchip,rk3399-qossyscon xqos@ffa74000rockchip,rk3399-qossyscon@ uqos@ffa76000rockchip,rk3399-qossyscon` vqos@ffa90000rockchip,rk3399-qossyscon yqos@ffa98000rockchip,rk3399-qossyscon lqos@ffaa0000rockchip,rk3399-qossyscon zqos@ffaa0080rockchip,rk3399-qossyscon {qos@ffaa8000rockchip,rk3399-qossyscon |qos@ffaa8080rockchip,rk3399-qossyscon }qos@ffab0000rockchip,rk3399-qossyscon mqos@ffab0080rockchip,rk3399-qossyscon nqos@ffab8000rockchip,rk3399-qossyscon oqos@ffac0000rockchip,rk3399-qossyscon pqos@ffac0080rockchip,rk3399-qossyscon qqos@ffac8000rockchip,rk3399-qossyscon ~qos@ffac8080rockchip,rk3399-qossyscon qos@ffad0000rockchip,rk3399-qossyscon qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon rpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerw+power-domain@34"lwpower-domain@33!mnwpower-domain@31owpower-domain@32  pqwpower-domain@35#rwpower-domain@25lwpower-domain@23swpower-domain@22ftwpower-domain@27Luwpower-domain@28vwpower-domain@8~}wpower-domain@9 wpower-domain@24wxwpower-domain@15w+power-domain@21rywpower-domain@19z{wpower-domain@20|}wpower-domain@16w+power-domain@17~wpower-domain@18wsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5spiclkapb_pclk<default%+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7"baudclkapb_pclkf'1default% disabledi2c@ff3c0000rockchip,rk3399-i2c<l f   i2cpclk9default%+okayregulator@40silergy,syr827@default% 4` vdd_cpu_b # 8regulator-state-mem Cregulator@41silergy,syr828Adefault% 4` vdd_gpu # 8regulator-state-mem Cpmic@1brockchip,rk808xin32krtc_clko_wifi default % \ }           FregulatorsDCDC_REG1 qp vdd_center #qregulator-state-mem CDCDC_REG2 qp vdd_cpu_l #q regulator-state-mem CDCDC_REG3 vcc_ddrregulator-state-mem DCDC_REG4w@w@ vcc_1v8Kregulator-state-mem  *w@LDO_REG1w@w@ vcc1v8_camregulator-state-mem CLDO_REG2-- vcc3v0_touchregulator-state-mem CLDO_REG3w@w@ vcc1v8_pmupllregulator-state-mem  *w@LDO_REG4w@2Z vcc_sdio/regulator-state-mem  *-LDO_REG5-- vcca3v0_codecregulator-state-mem CLDO_REG6`` vcc_1v5regulator-state-mem  *`LDO_REG7w@w@ vcca1v8_codecregulator-state-mem CLDO_REG8-- vcc_3v0regulator-state-mem  *-SWITCH_REG1 vcc3v3_s3#regulator-state-mem CSWITCH_REG2 vcc3v3_s0regulator-state-mem Ci2c@ff3d0000rockchip,rk3399-i2c=l f   i2cpclk8default%+ disabledtypec-portc@22 fcs,fusb302" default% Fi2c@ff3e0000rockchip,rk3399-i2c>l f   i2cpclk:default%+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB Rdefault%okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB Rdefault%okaypwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  Ractive%okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 Rdefault% disableddfi@ff630000c@rockchip,rk3399-dfiyy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq +vepuvdpu aclkhclk ]/iommu@ff650800rockchip,iommue@s aclkiface d/video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore ]/ iommu@ff660480rockchip,iommu f@f@u aclkiface/  diommu@ff670800rockchip,iommug@* aclkiface d disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb/!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  q | apb_pclk`dma-controller@ff6e0000arm,pl330arm,primecelln@  q | apb_pclkOclock-controller@ff750000rockchip,rk3399-pmucruuxin24m= lf(Jclock-controller@ff760000rockchip,rk3399-cruvxin24m= l@BCxDf#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay K  / mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf/  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay1host-port  +linestateokay2otg-port 0ghj+otg-bvalidotg-idlinestateokay5usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay3host-port  +linestate disabled4otg-port 0lmo+otg-bvalidotg-idlinestateokay7phy@f780rockchip,rk3399-emmc-phy$emmcclk 2  disabled 0pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayUflphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refl~f/Luphyuphy-pipeuphy-tcphy=okaydp-port 9usb3-port 6phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-reflf/ Muphyuphy-pipeuphy-tcphy=okaydp-port :usb3-port 8watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB`tx mclkhclkUdefault%/ disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s='``txrxi2s_clki2s_hclkVbclk_onbclk_off%/ disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(``txrxi2s_clki2s_hclkWdefault%/ disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)``txrxi2s_clki2s_hclkX/okayvop@ff8f0000rockchip,rk3399-vop-lit wlfׄaclk_vopdclk_vophclk_vop ]/ axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4<iommu@ff8f3f00rockchip,iommu?w aclkiface/ dokayvop@ff900000rockchip,rk3399-vop-big vlfׄaclk_vopdclk_vophclk_vop ]/ axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4;iommu@ff903f00rockchip,iommu?v aclkiface/ dokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk ]sxdphy/ disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface d/ isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk ]sxdphy/ disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface d/ hdmi-soundsimple-audio-card 1i2s J dhdmi-soundokaysimple-audio-card,cpu {simple-audio-card,codec {hdmi@ff940000rockchip,rk3399-dw-hdmi1(tqpoiahbisfrcecgrfref/=okay default%ports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrf/apb=+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrf/apb=+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefault%/dp= disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 +jobmmugpu#2 P/#okay ipinctrlrockchip,rk3399-pinctrl=y+gpio@ff720000rockchip,gpio-bankr  )gpio@ff730000rockchip,gpio-banks  gpio@ff780000rockchip,gpio-bankxP  Ggpio@ff788000rockchip,gpio-bankxQ  $gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      phy-intb   phy-rstb !i2c0i2c0-xfer i2c1i2c1-xfer =i2c2i2c2-xfer >i2c3i2c3-xfer ?i2c4i2c4-xfer   i2c5i2c5-xfer   @i2c6i2c6-xfer   Ai2c7i2c7-xfer Bi2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ &sdio0-cmd 'sdio0-clk (sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    *sdmmc-clk  +sdmmc-cmd  ,sdmmc-cd sdmmc-wp sdmmc0-det-l -sdmmc0-pwr-h suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Pspi0-cs0 Sspi0-cs1 spi0-tx Qspi0-rx Rspi1spi1-clk  Tspi1-cs0  Wspi1-rx Vspi1-tx Uspi2spi2-clk  Xspi2-cs0  [spi2-rx  Zspi2-tx  Yspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk \spi4-cs0 _spi4-rx ^spi4-tx ]spi5spi5-clk aspi5-cs0 dspi5-rx cspi5-tx btestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin jotp-out kuart0uart0-xfer Cuart0-cts Euart0-rts Duart1uart1-xfer   Luart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Muart3uart3-xfer Nuart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm fusb30xfusb0-int gpio-ledslan-led-pin sys-led-pin  wan-led-pin pmiccpu-b-sleep gpu-sleep pmic-int-l rockchip-keyreset-button-pin sdiobt-host-wake-l Ibt-reg-on-h  Hbt-wake-l Jwifi-reg_on-h  opp-table-0operating-points-v2 # opp00 .Q 5  C@opp01 .#F 5 opp02 .0, 5 P Popp03 .< 5HHopp04 .G 5B@B@opp05 .Tfr 5**opp-table-1operating-points-v2 #opp00 .Q 5  C@opp01 .#F 5 opp02 .0, 5 opp03 .< 5 Y Yopp04 .G 5~~opp05 .Tfr 5opp06 ._" 5opp07 .kI 5OOopp-table-2operating-points-v2opp00 .  5 0opp01 .@ 5 0opp02 .ׄ 5 0opp03 .e 5 Y Y0opp04 .#F 5HH0opp05 ./ 50chosen Tserial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacvcc3v3-sysregulator-fixed2Z2Z vcc3v3_sys 8vcc5v0-sysregulator-fixedLK@LK@ vcc5v0_sys 8vcc1v8-s3regulator-fixedw@w@ vcc1v8_s3 8Kvcc3v0-sdregulator-fixed ` s)default%-- vcc3v0_sd 8.vcca0v9-s3regulator-fixed   vcca0v9_s3 8vcca1v8-s3regulator-fixedw@w@ vcca1v8_s3 8vbus-typecregulator-fixedLK@LK@ vbus_typecgpio-keys gpio-keys xdefault%key-reset 2  reset gpio-leds gpio-ledsdefault %led-lan  green:lanled-sys )  red:power onled-wan  green:wansdio-pwrseqmmc-pwrseq-simpleF ext_clockdefault% ) %vdd-5vregulator-fixed vdd_5v compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesnum-lanesvpcie0v9-supplyvpcie1v8-supplyvpcie3v3-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clock-parentsassigned-clocksclock_in_outphy-handlephy-modephy-supplytx_delayrx_delayreset-assert-usreset-deassert-usreset-gpiosmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyfcs,suspend-voltage-selectorregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-nameregulator-ramp-delayvin-supplyregulator-off-in-suspendrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-on-in-suspendregulator-suspend-microvoltvbus-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathenable-active-highgpioautorepeatdebounce-intervallabellinux,codedefault-state 58(!$pine64,pinebook-prorockchip,rk3399 +7Pine64 Pinebook Pro=laptopaliasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci &5dO _l@~@   cpu@1cpuarm,cortex-a53psci &5dO _l@~@   cpu@2cpuarm,cortex-a53psci &5dO _l@~@   cpu@3cpuarm,cortex-a53psci &5dO _l@~@   cpu@100cpuarm,cortex-a72psci  &5O _l@~@thermal-idle&'cpu@101cpuarm,cortex-a72psci  &5O _l@~@thermal-idle&'l2-cache-cluster0cache an@ l2-cache-cluster1cache an@idle-states%pscicpu-sleeparm,idle-state2CZxk cluster-sleeparm,idle-state2CZk display-subsystemrockchip,display-subsystem|memory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ * Gaclkaclk-perfhclkpm01234syslegacyclientD`Wet |,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay defaultinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk |,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3# default disabledethernet@fe300000rockchip,rk3399-gmac0 4macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macA  stmmacethO!\ disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@gр Mbiuciuciu-driveciu-sampleuA yresetokay"default #$%mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Agр  Lbiuciuciu-driveciu-sampleuA zresetokay  &%default '()0=*I+mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 V!N Nclk_xinclk_ahbemmc_cardclock|, phy_arasanA lokay}usb@fe380000 generic-ehci8-|.usbokayusb@fe3a0000 generic-ohci:-|.usbokayusb@fe3c0000 generic-ehci</|0usbokayusb@fe3e0000 generic-ohci> /|0usbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendhost|12usb2-phyusb3-phy utmi_wideA okayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhost|34usb2-phyusb3-phy utmi_wideA okaydp@fec00000rockchip,rk3399-cdn-dp r  ruocore-clkpclkspdifgrf|56A  HJspdifdptxapbcoreO!2 disabledportsport+endpoint@0C7endpoint@1C8interrupt-controller@fee00000 arm,gic-v3 +P  msi-controller@fee20000arm,gic-v3-itsSbppi-partitionsinterrupt-partition-0minterrupt-partition-1msaradc@ff100000rockchip,rk3399-saradc>vPesaradcapb_pclk saradc-apbokaycrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default9+okayaudio-codec@11everest,es8316Ymclk2i2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default:+ disabledi2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default;+okayi2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&default<+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%default=+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$default>+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcdefault ?@Aokaybluetoothbrcm,bcm4345c5Blpo  &`default CDE & )F5Gserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbdefaultH disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkddefaultIokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkedefaultJ disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDBK K GtxrxdefaultLMNO+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5BK K GtxrxdefaultPQRS+okayQflash@0jedec,spi-norZispi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4BKKGtxrxdefaultTUVW+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCBKKGtxrxdefaultXYZ[+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkB\\ Gtxrxdefault]^_`A + disabledthermal-zonescpu-thermal{datripscpu_alert0pEpassivebcpu_alert1$Epassiveccpu_crits Ecriticalcooling-mapsmap0bmap1cHgpu-thermal{datripsgpu_alert0$Epassivedgpu_crits Ecriticalcooling-mapsmap0d etsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apbO!sinitdefaultsleepfgfokay2aqos@ffa58000rockchip,rk3399-qossyscon oqos@ffa5c000rockchip,rk3399-qossyscon pqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon sqos@ffa70080rockchip,rk3399-qossyscon tqos@ffa74000rockchip,rk3399-qossyscon@ qqos@ffa76000rockchip,rk3399-qossyscon` rqos@ffa90000rockchip,rk3399-qossyscon uqos@ffa98000rockchip,rk3399-qossyscon hqos@ffaa0000rockchip,rk3399-qossyscon vqos@ffaa0080rockchip,rk3399-qossyscon wqos@ffaa8000rockchip,rk3399-qossyscon xqos@ffaa8080rockchip,rk3399-qossyscon yqos@ffab0000rockchip,rk3399-qossyscon iqos@ffab0080rockchip,rk3399-qossyscon jqos@ffab8000rockchip,rk3399-qossyscon kqos@ffac0000rockchip,rk3399-qossyscon lqos@ffac0080rockchip,rk3399-qossyscon mqos@ffac8000rockchip,rk3399-qossyscon zqos@ffac8080rockchip,rk3399-qossyscon {qos@ffad0000rockchip,rk3399-qossyscon |qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon npower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerM+ power-domain@34"ahMpower-domain@33!aijMpower-domain@31akMpower-domain@32  almMpower-domain@35#anMpower-domain@25lMpower-domain@23aoMpower-domain@22fapMpower-domain@27LaqMpower-domain@28arMpower-domain@8~}Mpower-domain@9 Mpower-domain@24astMpower-domain@15M+power-domain@21rauMpower-domain@19avwMpower-domain@20axyMpower-domain@16M+power-domain@17az{Mpower-domain@18a|Msyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayh}spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5~~spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7~~"baudclkapb_pclkfdefault disabledi2c@ff3c0000rockchip,rk3399-i2c<~  ~ ~ i2cpclk9default+okaypmic@1brockchip,rk808xin32krk808-clkout2  defaultwF   FBregulatorsDCDC_REG1 -vdd_center < P b q zp qregulator-state-mem DCDC_REG2 -vdd_cpu_l < P b q zp q regulator-state-mem DCDC_REG3 -vcc_ddr < Pregulator-state-mem DCDC_REG4 -vcc_1v8 < P bw@ zw@Gregulator-state-mem  w@LDO_REG1LDO_REG2LDO_REG3 -vcc1v8_pmupll < P bw@ zw@regulator-state-mem  w@LDO_REG4 -vcc_sdio < P bw@ z-+regulator-state-mem  -LDO_REG5 -vcca3v0_codec < P b- z-regulator-state-mem LDO_REG6 -vcc_1v5 < P b` z`regulator-state-mem  `LDO_REG7 -vcca1v8_codec < P bw@ zw@regulator-state-mem LDO_REG8 -vcc_3v0 < P b- z-}regulator-state-mem  -SWITCH_REG1 -vcc3v3_s3 < Pregulator-state-mem SWITCH_REG2 -vcc3v3_s0 < Pregulator-state-mem regulator@40silergy,syr827@ default -vdd_cpu_b < P b 4 z`  Gregulator-state-mem regulator@41silergy,syr828A default -vdd_gpu < P b 4 z`  Gregulator-state-mem i2c@ff3d0000rockchip,rk3399-i2c=~  ~ ~ i2cpclk8default+okayXfusb30x@22 fcs,fusb302" default connectorusb-c-connector (dual 2USB-C 8B@ Jdual U _ ksinkports+port@0endpointCport@1endpointCport@2endpointCcw2015@62cellwise,cw2015b@ zgsnlkcwQ\XPLH6 [}oii[ ) @RYWVTO;0Z-HwR/d   i2c@ff3e0000rockchip,rk3399-i2c>~  ~ ~ i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB default~okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB default~ disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  default~okaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 default~ disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 4vepuvdpu aclkhclk A iommu@ff650800rockchip,iommue@s aclkiface A video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore A iommu@ff660480rockchip,iommu f@f@u aclkifaceA  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahbA !efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclk\dma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkKclock-controller@ff750000rockchip,rk3399-pmucruuxin24mO ~(J~clock-controller@ff760000rockchip,rk3399-cruvxin24mO! @BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+!io-domains"rockchip,rk3399-io-voltage-domainokay } ,} <+mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrfA  I disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay-host-port I 4linestateokay T.otg-port I0ghj4otg-bvalidotg-idlinestateokay1portendpointCusb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay/host-port I 4linestateokay T0otg-port I0lmo4otg-bvalidotg-idlinestateokay3phy@f780rockchip,rk3399-emmc-phy$emmcclk _2 Iokay,pcie-phyrockchip,rk3399-pcie-phyrefclk Iphyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~A Luphyuphy-pipeuphy-tcphyO!okaydp-port I5portendpointCusb3-port I2portendpointCphy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refA Muphyuphy-pipeuphy-tcphyO!okaydp-port I6usb3-port I4watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBB\Gtx mclkhclkUdefaultA 2 disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2sO!'B\\Gtxrxi2s_clki2s_hclkVbclk_onbclk_offA 2 disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(B\\Gtxrxi2s_clki2s_hclkWdefaultA 2okay s i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)B\\Gtxrxi2s_clki2s_hclkXA 2 disabledvop@ff8f0000rockchip,rk3399-vop-lit wׄaclk_vopdclk_vophclk_vop A  axiahbdclkokayport+endpoint@0Cendpoint@1Cendpoint@2Cendpoint@3Cendpoint@4C8iommu@ff8f3f00rockchip,iommu?w aclkifaceA  okayvop@ff900000rockchip,rk3399-vop-big vׄaclk_vopdclk_vophclk_vop A  axiahbdclkokayport+endpoint@0Cendpoint@1Cendpoint@2Cendpoint@3Cendpoint@4C7iommu@ff903f00rockchip,iommu?v aclkifaceA  okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk |dphyA  disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface A  isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk |dphyA  disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface A  hdmi-soundsimple-audio-card i2s  hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi(tqpoiahbisfrcecgrfrefA O!2 disabledports+port@0+endpoint@0Cendpoint@1Cport@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfA apbO!+ disabledports+port@0+endpoint@0Cendpoint@1Cport@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfA apbO!+ I disabledports+port@0+endpoint@0Cendpoint@1Cport@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultA dpO!okay ports+port@0+endpoint@0Cendpoint@1Cport@1+endpoint@0Cgpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 4jobmmugpu&5 PA #okay !epinctrlrockchip,rk3399-pinctrlO!+gpio@ff720000rockchip,gpio-bankr~ - = &gpio@ff730000rockchip,gpio-banks~ - = gpio@ff780000rockchip,gpio-bankxP - = gpio@ff788000rockchip,gpio-bankxQ - = gpio@ff790000rockchip,gpio-bankyR - = pcfg-pull-up Ipcfg-pull-down Vpcfg-pull-none epcfg-pull-none-12ma e r pcfg-pull-none-13ma e r pcfg-pull-none-18ma e rpcfg-pull-none-20ma e rpcfg-pull-up-2ma I rpcfg-pull-up-8ma I rpcfg-pull-up-18ma I rpcfg-pull-up-20ma I rpcfg-pull-down-4ma V rpcfg-pull-down-8ma V rpcfg-pull-down-12ma V r pcfg-pull-down-18ma V rpcfg-pull-down-20ma V rpcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  Ipcfg-input-pull-down  Vclockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer 9i2c2i2c2-xfer :i2c3i2c3-xfer ;i2c4i2c4-xfer   i2c5i2c5-xfer   <i2c6i2c6-xfer   =i2c7i2c7-xfer >i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP i2s-8ch-mclk-pin sdio0sdio0-bus1 sdio0-bus4@ #sdio0-cmd $sdio0-clk %sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    )sdmmc-clk  'sdmmc-cmd  (sdmmc-cd sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Lspi0-cs0 Ospi0-cs1 spi0-tx Mspi0-rx Nspi1spi1-clk  Pspi1-cs0  Sspi1-rx Rspi1-tx Qspi2spi2-clk  Tspi2-cs0  Wspi2-rx  Vspi2-tx  Uspi3spi3-clk spi3-cs0 spi3-rx spi3-tx spi4spi4-clk Xspi4-cs0 [spi4-rx Zspi4-tx Yspi5spi5-clk ]spi5-cs0 `spi5-rx _spi5-tx ^testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin fotp-out guart0uart0-xfer ?uart0-cts @uart0-rts Auart1uart1-xfer   Huart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Iuart3uart3-xfer Juart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm buttonspwrbtn-pin lidbtn-pin dc-chargerdc-det-pin es8316hp-det-pin fusb302xfusb0-int-pin lcd-panellcdvcc-en-pin panel-en-pin lcd-panel-reset-pin ledspwr-led-pin slp-led-pin pmicpmic-int-l-pin  vsel1-pin vsel2-pin sdcardsdmmc0-pwr-h-pin sdio-pwrseqwifi-enable-h-pin usb-typecvcc5v0-typec0-en-pin usb2pwr-5v-pin  vcc5v0-host-en-pin wireless-bluetoothbt-wake-pin Dbt-host-wake-pin Cbt-reset-pin Eopp-table-0operating-points-v2  opp00 Q  @opp01 #F opp02 0, P Popp03 < HHopp04 G B@B@opp05 Tfr **opp-table-1operating-points-v2 opp00 Q  @opp01 #F opp02 0, opp03 < Y Yopp04 G ~~opp05 Tfr opp06 _" opp07 kI OOopp-table-2operating-points-v2opp00  0opp01 @ 0opp02 ׄ 0opp03 e Y Y0opp04 #F HH0opp05 / 0chosen serial2:1500000n8edp-backlightpwm-backlight  Hbatterysimple-battery  $B`0 A-edp-panelboe,nv140fhmn49 ^ hdefault portendpointCgpio-key-lid gpio-keysdefaultswitch-lid u  2Lid   gpio-key-power gpio-keysdefaultkey-power u & 2Power tleds gpio-ledsdefaultled-0  on power &  2green:powerled-1  off standby & 2red:standby  sdio-pwrseqmmc-pwrseq-simpleB ext_clockdefault d  %& "es8316-soundsimple-audio-carddefault rockchip,es8316-codec i2s 91MicrophoneMic JackHeadphoneHeadphonesSpeakerSpeakerKMIC1Mic JackHeadphonesHPOLHeadphonesHPORSpeaker Amplifier INLHPOLSpeaker Amplifier INRHPORSpeakerSpeaker Amplifier OUTLSpeakerSpeaker Amplifier OUTR e&Speakersimple-audio-card,cpu simple-audio-card,codec speaker-amplifiersimple-audio-amplifier hSpeaker Amplifiervcc-sysinregulator-fixed -vcc_sysin < Pvcc-12vregulator-fixed -vcc_12v < P b z regulator-state-mem vcc3v3-sysregulator-fixed -vcc3v3_sys < P b2Z z2Z Fregulator-state-mem vcc5v0-usb-regulatorregulator-fixed ~ default -vcc5v0_usb < bLK@ zLK@ regulator-state-mem vdd-logpwm-regulator a -vdd_log < P b 5 z\regulator-state-mem vcc-0v9regulator-fixed -vcc_0v9 < P b  z  Fvcc1v8-s3regulator-fixed -vcca1v8_s3 < P bw@ zw@ Fvcc3v0-sdregulator-fixed ~&default -vcc3v0_sd < b- z- F*regulator-state-mem vcc3v3-panelregulator-fixed ~default -vcc3v3_panel < b2Z z2Z Fregulator-state-mem vcc3v3-ssdregulator-fixed -vcc3v3_ssd b2Z z2Z Fvcc5v0-otgregulator-fixed ~default -vcc5v0_otg < bLK@ zLK@ regulator-state-mem vbus-5voutregulator-fixed ~default -vbus_5vout bLK@ zLK@ regulator-state-mem vcca0v9-s3regulator-fixed -vcc0v9_s3 bLK@ zLK@ Gregulator-state-mem dc-charger gpio-chargermains default compatibleinterrupt-parent#address-cells#size-cellsmodelchassis-typegpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesep-gpiosnum-lanespinctrl-namespinctrl-0vpcie0v9-supplyvpcie1v8-supplyvpcie3v3-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clocksassigned-clock-ratescap-mmc-highspeedcd-gpiosdisable-wpsd-uhs-sdr50vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-falling-time-nsi2c-scl-rising-time-nsreg-shiftreg-io-widthuart-has-rtsctsdevice-wakeup-gpioshost-wakeup-gpiosmax-speedshutdown-gpiosvbat-supplyvddio-supplydmasdma-namesmax-freqm25p,fast-readspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supplyvbus-supplydata-rolelabelop-sink-microwattpower-rolesink-pdossource-pdostry-power-rolecellwise,battery-profilecellwise,monitor-interval-msmonitored-batterypower-supplies#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplygpio1830-supplysdmmc-supply#phy-cellsphy-supplydrive-impedance-ohmrockchip,capture-channelsrockchip,playback-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiforce-hpdmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathpower-supplypwmscharge-full-design-microamp-hoursvoltage-max-design-microvoltvoltage-min-design-microvoltbacklightenable-gpiosdebounce-intervallinux,codelinux,input-typewakeup-event-actioncolordefault-statefunctionpanic-indicatorretain-state-suspendedpost-power-on-delay-mspower-off-delay-usreset-gpiossimple-audio-card,widgetssimple-audio-card,routingsimple-audio-card,hp-det-gpiosimple-audio-card,aux-devssimple-audio-card,pin-switchessound-name-prefixVCC-supplyenable-active-highpwm-supplyregulator-enable-ramp-delaycharger-type 8( %pine64,pinephone-prorockchip,rk3399 +7Pine64 PinePhone Pro=handsetaliasesJ/pinctrl/gpio@ff720000P/pinctrl/gpio@ff730000V/pinctrl/gpio@ff780000\/pinctrl/gpio@ff788000b/pinctrl/gpio@ff790000h/i2c@ff3c0000m/i2c@ff110000r/i2c@ff120000w/i2c@ff130000|/i2c@ff3d0000/i2c@ff140000/i2c@ff150000/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/mmc@fe310000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci &5dO _l@~@   cpu@1cpuarm,cortex-a53psci &5dO _l@~@   cpu@2cpuarm,cortex-a53psci &5dO _l@~@   cpu@3cpuarm,cortex-a53psci &5dO _l@~@   cpu@100cpuarm,cortex-a72psci  &5O _l@~@thermal-idle&'cpu@101cpuarm,cortex-a72psci  &5O _l@~@thermal-idle&'l2-cache-cluster0cache an@ l2-cache-cluster1cache an@idle-states%pscicpu-sleeparm,idle-state2CZxk cluster-sleeparm,idle-state2CZk display-subsystemrockchip,display-subsystem|memory-controllerrockchip,rk3399-dmcdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+ * Gaclkaclk-perfhclkpm01234syslegacyclientD`Wet |,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controller pcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk |,pcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 4macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmaceth# disabledmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@.р Mbiuciuciu-driveciu-sample<yresetokayGQbozdefault  mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@A.р  Lbiuciuciu-driveciu-sample<zresetokayGQ !odefault"#$%&'mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 N Nclk_xinclk_ahbemmc_cardclock|( phy_arasanokayG%usb@fe380000 generic-ehci8)|*usb disabledusb@fe3a0000 generic-ohci:)|*usb disabledusb@fe3c0000 generic-ehci<+|,usb disabledusb@fe3e0000 generic-ohci> +|,usb disableddebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otg disabledusb@fe800000 snps,dwc3irefbus_earlysuspend4otg|-.usb2-phyusb3-phy Pesaradcapb_pclk saradc-apbokay05crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2cA AU i2cpclk;default6+ disabledi2c@ff120000rockchip,rk3399-i2cB BV i2cpclk#default7+ disabledi2c@ff130000rockchip,rk3399-i2cC CW i2cpclk"default8+okay<Stouchscreen@14goodix,gt1158 9  k9  u9 ::i2c@ff140000rockchip,rk3399-i2cD DX i2cpclk&default;+ disabledi2c@ff150000rockchip,rk3399-i2cE EY i2cpclk%default<+ disabledi2c@ff160000rockchip,rk3399-i2cF FZ i2cpclk$default=+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcdefault >?@okaybluetoothbrcm,bcm4345c5Alpo B !`default CDE ! (&4Fserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbdefaultG disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkddefaultHokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkedefaultI disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDAJ J FtxrxdefaultKLMN+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5AJ J FtxrxdefaultOPQR+okayflash@0jedec,spi-norPspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4AJJFtxrxdefaultSTUV+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCAJJFtxrxdefaultWXYZ+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkA[[ Ftxrxdefault\]^_+ disabledthermal-zonescpu-thermalbdx`tripscpu_alert0Epassiveacpu_alert1 Epassivebcpu_crits Ecriticalcooling-mapsmap0amap1bHgpu-thermalbdx`tripsgpu_alert0$Epassivecgpu_crits Ecriticalcooling-mapsmap0c dtsadc@ff260000rockchip,rk3399-tsadc&aO qOdtsadcapb_pclk tsadc-apbsinitdefaultsleepefeokay`qos@ffa58000rockchip,rk3399-qossyscon nqos@ffa5c000rockchip,rk3399-qossyscon oqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon rqos@ffa70080rockchip,rk3399-qossyscon sqos@ffa74000rockchip,rk3399-qossyscon@ pqos@ffa76000rockchip,rk3399-qossyscon` qqos@ffa90000rockchip,rk3399-qossyscon tqos@ffa98000rockchip,rk3399-qossyscon gqos@ffaa0000rockchip,rk3399-qossyscon uqos@ffaa0080rockchip,rk3399-qossyscon vqos@ffaa8000rockchip,rk3399-qossyscon wqos@ffaa8080rockchip,rk3399-qossyscon xqos@ffab0000rockchip,rk3399-qossyscon hqos@ffab0080rockchip,rk3399-qossyscon iqos@ffab8000rockchip,rk3399-qossyscon jqos@ffac0000rockchip,rk3399-qossyscon kqos@ffac0080rockchip,rk3399-qossyscon lqos@ffac8000rockchip,rk3399-qossyscon yqos@ffac8080rockchip,rk3399-qossyscon zqos@ffad0000rockchip,rk3399-qossyscon {qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon mpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller4+power-domain@34"Hg4power-domain@33!Hhi4power-domain@31Hj4power-domain@32  Hkl4power-domain@35#Hm4power-domain@25l4power-domain@23Hn4power-domain@22fHo4power-domain@27LHp4power-domain@28Hq4power-domain@8~}4power-domain@9 4power-domain@24Hrs4power-domain@154+power-domain@21rHt4power-domain@19Huv4power-domain@20Hwx4power-domain@164+power-domain@17Hyz4power-domain@18H{4syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayOFspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5||spiclkapb_pclk<default}~+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7||"baudclkapb_pclkfdefault disabledi2c@ff3c0000rockchip,rk3399-i2c<|  | | i2cpclk9default+okay<Spmic@1crockchip,rk818 xin32krk808-clkout2default^&&AregulatorsDCDC_REG1 vdd_cpu_l  " Y : Rq regulator-state-mem gDCDC_REG2 vdd_center  " 5 :B@ Rqregulator-state-mem gDCDC_REG3vcc_ddr regulator-state-mem DCDC_REG4vcc_1v8  "w@ :w@Fregulator-state-mem LDO_REG1vcca3v0_codec "- :-LDO_REG2 vcc3v0_touch "- :-:LDO_REG3vcca1v8_codec "w@ :w@LDO_REG4 rk818_pwr_on  "2Z :2Zregulator-state-mem LDO_REG5vcc_3v0  "- :-regulator-state-mem LDO_REG6vcc_1v5  "` :`regulator-state-mem LDO_REG7 vcc1v8_dvp "w@ :w@LDO_REG8 vcc3v3_s3  "2Z :2Zregulator-state-mem gLDO_REG9 vccio_sd "w@ :2Z'SWITCH_REG vcc3v3_s0 regulator-state-mem regulator@40silergy,syr827@ default vdd_cpu_b " Y :0 R regulator-state-mem gregulator@41silergy,syr828A defaultvdd_gpu " Y : R regulator-state-mem gi2c@ff3d0000rockchip,rk3399-i2c=|  | | i2cpclk8default+okay<XSmpu6500@68invensense,mpu6500h 4Fi2c@ff3e0000rockchip,rk3399-i2c>|  | | i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB default|okaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB default| disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  default| disabledpwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 default| disableddfi@ff630000c@rockchip,rk3399-dfiy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq 4vepuvdpu aclkhclk iommu@ff650800rockchip,iommue@s aclkiface video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore  iommu@ff660480rockchip,iommu f@f@u aclkiface  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclk[dma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkJclock-controller@ff750000rockchip,rk3399-pmucruuxin24m |(J|clock-controller@ff760000rockchip,rk3399-cruvxin24m @BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay   ' *mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf : disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480m disabled)host-port : 4linestate disabled*otg-port :0ghj4otg-bvalidotg-idlinestate disabled-usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480m disabled+host-port : 4linestate disabled,otg-port :0lmo4otg-bvalidotg-idlinestate disabled/phy@f780rockchip,rk3399-emmc-phy$emmcclk E2 :okay(pcie-phyrockchip,rk3399-pcie-phyrefclk :phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref~Luphyuphy-pipeuphy-tcphy disableddp-port :1usb3-port :.phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref Muphyuphy-pipeuphy-tcphy disableddp-port :2usb3-port :0watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBA[Ftx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'A[[Ftxrxi2s_clki2s_hclkVbclk_onbclk_off disabledi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(A[[Ftxrxi2s_clki2s_hclkWdefault disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)A[[Ftxrxi2s_clki2s_hclkX disabledvop@ff8f0000rockchip,rk3399-vop-lit w ׄaclk_vopdclk_vophclk_vop  axiahbdclkokay Yport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@44iommu@ff8f3f00rockchip,iommu?w aclkiface okayvop@ff900000rockchip,rk3399-vop-big v ׄaclk_vopdclk_vophclk_vop  axiahbdclkokay Yport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@43iommu@ff903f00rockchip,iommu?v aclkiface okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk |dphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface  pisp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk |dphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface  phdmi-soundsimple-audio-card i2s  hdmi-sound disabledsimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi(tqpoiahbisfrcecgrfref disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+okay ports+port@0+endpoint@0endpoint@1port@1+endpointpanel@0hannstar,hsd060bhw4  u  defaultportendpointdsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+ : disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 4jobmmugpu&5 P#okay dpinctrlrockchip,rk3399-pinctrl+gpio@ff720000rockchip,gpio-bankr|  * !gpio@ff730000rockchip,gpio-banks|  * gpio@ff780000rockchip,gpio-bankxP  * Bgpio@ff788000rockchip,gpio-bankxQ  * 9gpio@ff790000rockchip,gpio-bankyR  * pcfg-pull-up 6pcfg-pull-down Cpcfg-pull-none Rpcfg-pull-none-12ma R _ pcfg-pull-none-13ma R _ pcfg-pull-none-18ma R _pcfg-pull-none-20ma R _pcfg-pull-up-2ma 6 _pcfg-pull-up-8ma 6 _pcfg-pull-up-18ma 6 _pcfg-pull-up-20ma 6 _pcfg-pull-down-4ma C _pcfg-pull-down-8ma C _pcfg-pull-down-12ma C _ pcfg-pull-down-18ma C _pcfg-pull-down-20ma C _pcfg-output-high npcfg-output-low zpcfg-input-enable pcfg-input-pull-up  6pcfg-input-pull-down  Cclockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer i2c1i2c1-xfer 6i2c2i2c2-xfer 7i2c3i2c3-xfer 8i2c4i2c4-xfer   i2c5i2c5-xfer   ;i2c6i2c6-xfer   <i2c7i2c7-xfer =i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk  sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    %sdmmc-clk  "sdmmc-cmd  #sdmmc-cd $sdmmc-wp suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Kspi0-cs0 Nspi0-cs1 spi0-tx Lspi0-rx Mspi1spi1-clk  Ospi1-cs0  Rspi1-rx Qspi1-tx Pspi2spi2-clk  Sspi2-cs0  Vspi2-rx  Uspi2-tx  Tspi3spi3-clk }spi3-cs0 spi3-rx spi3-tx ~spi4spi4-clk Wspi4-cs0 Zspi4-rx Yspi4-tx Xspi5spi5-clk \spi5-cs0 _spi5-rx ^spi5-tx ]testclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin eotp-out fuart0uart0-xfer >uart0-cts ?uart0-rts @uart1uart1-xfer   Guart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Huart3uart3-xfer Iuart3-cts uart3-rts uart4uart4-xfer uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm buttonspwrbtn-pin ledsred-led-pin green-led-pin blue-led-pin pmicpmic-int-l vsel1-pin vsel2-pin sdio-pwrseqwifi-enable-h-pin soundvcc1v8-codec-en wireless-bluetoothbt-wake-pin Dbt-host-wake-pin Cbt-reset-pin Eopp-table-0operating-points-v2  opp00 Q  @opp01 #F opp02 0, P Popp03 < HHopp04 G B@B@ disabledopp05 Tfr ** disabledopp-table-1operating-points-v2 opp00 Q  @opp01 #F opp02 0, opp03 < Y Yopp04 G ~~opp05 Tfr opp06 Yh/ 0opp07 kI OO disabledopp-table-2operating-points-v2opp00  0opp01 @ 0opp02 ׄ 0opp03 e Y Y0opp04 #F HH0opp05 / 0chosen serial2:115200n8adc-keys adc-keys  buttons j dbutton-up "Volume Up (s 3button-down "Volume Down (r 3 'backlightpwm-backlight MPgpio-keys gpio-keysdefaultkey-power R ! "Power (tleds gpio-ledsdefault led-0 d led-1 d led-2 d multi-ledleds-group-multicolor d  jindicator svcc-sys-regulatorregulator-fixedvcc_sys vcc3v3-sys-regulatorregulator-fixed vcc3v3_sys  "2Z :2Z x&vcc1v8-s3-regulatorregulator-fixed vcca1v8_s3 "w@ :w@ x& 5vcc1v8-codec-regulatorregulator-fixed  9default vcc1v8_codec "w@ :w@ x&sdio-wifi-pwrseqmmc-pwrseq-simpleA ext_clockdefault n ' u! vcc1v8-lcdregulator-fixed  vcc1v8_lcd "w@ :w@ x& 9vcc2v8-lcdregulator-fixed  vcc2v8_lcd "* :* x& 9vibratorgpio-vibrator 9  & compatibleinterrupt-parent#address-cells#size-cellsmodelchassis-typegpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5mmc0mmc1mmc2cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblmax-frequencyfifo-depthbus-widthcap-sd-highspeedcap-sdio-irqdisable-wpkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clocksassigned-clock-ratescd-gpiosvmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs200-1_8vdr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsirq-gpiosreset-gpiosAVDD28-supplyVDDIO-supplytouchscreen-size-xtouchscreen-size-yreg-shiftreg-io-widthuart-has-rtsctsdevice-wakeup-gpioshost-wakeup-gpiosmax-speedshutdown-gpiosvbat-supplyvddio-supplydmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendfcs,suspend-voltage-selector#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmassigned-clock-parentsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiclock-masterbacklightvcc-supplyiovcc-supplymali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltpwmsdebounce-intervalcolorfunctionledsvin-supplyenable-active-highgpiopost-power-on-delay-mspower-off-delay-usenable-gpios &8(( 'tsd,rk3399-puma-haikourockchip,rk3399 + 7Theobroma Systems RK3399-Q7 SoMaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe330000/mmc@fe320000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci-dG Wd@v@   cpu@1cpuarm,cortex-a53psci-dG Wd@v@   cpu@2cpuarm,cortex-a53psci-dG Wd@v@   cpu@3cpuarm,cortex-a53psci-dG Wd@v@   cpu@100cpuarm,cortex-a72psci -G Wd@v@thermal-idle'cpu@101cpuarm,cortex-a72psci -G Wd@v@thermal-idle'l2-cache-cluster0cacheYf@x l2-cache-cluster1cacheYf@xidle-statespscicpu-sleeparm,idle-state*;Rxc cluster-sleeparm,idle-state*;Rc display-subsystemrockchip,display-subsystemtmemory-controllerrockchip,rk3399-dmczdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+" Gaclkaclk-perfhclkpm0123,syslegacyclient<`O]l t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclkokay defaultinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3+ default  disabledethernet@fe300000rockchip,rk3399-gmac0 ,macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_macI! stmmacethW"dokayo#input$rgmiidefault% & 'Pmmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleI!yreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@AbZo  Lbiuciuciu-driveciu-sampleI!zresetokay2'?I[ l(udefault)*+,mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 "oN Nclk_xinclk_ahbemmc_cardclockt- yphy_arasanI!okay?usb@fe380000 generic-ehci8.t/yusbokayusb@fe3a0000 generic-ohci:.t/yusbokayusb@fe3c0000 generic-ehci<0t1yusbokayusb@fe3e0000 generic-ohci> 0t1yusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendotgt23yusb2-phyusb3-phy utmi_wide4MnI!okay4usb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhostt56yusb2-phyusb3-phy utmi_wide4MnI!okaydp@fec00000rockchip,rk3399-cdn-dp or  ruocore-clkpclkspdifgrft78I! HJspdifdptxapbcoreW" disabledportsport+endpoint@09endpoint@1:interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apb disabledcrypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2coA AU i2cpclk;default;+okayi2c@ff120000rockchip,rk3399-i2coB BV i2cpclk#default<+okayi2c@ff130000rockchip,rk3399-i2coC CW i2cpclk"default=+okayi2c@ff140000rockchip,rk3399-i2coD DX i2cpclk&default>+ disabledi2c@ff150000rockchip,rk3399-i2coE EY i2cpclk%default?+okayi2c@ff160000rockchip,rk3399-i2coF FZ i2cpclk$default@+okayfan@18 ti,amc6821rtc@6f isil,isl1208oserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc&defaultAokayserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb&defaultB disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd&defaultCokay 3Dserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke&defaultE disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkD=F F BtxrxdefaultGHIJ+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5=F F BtxrxdefaultKLMN+okayflash@0jedec,spi-norLspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4=FFBtxrxdefaultOPQR+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkC=FFBtxrxdefaultSTUV+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk=WW BtxrxdefaultXYZ[I!+okaythermal-zonescpu-thermal^dt\tripscpu_alert0ppassive]cpu_alert1$passive^cpu_crits criticalcooling-mapsmap0]map1^Hgpu-thermal^dt\tripsgpu_alert0$passive_gpu_crits criticalcooling-mapsmap0_ `tsadc@ff260000rockchip,rk3399-tsadc&aoO qOdtsadcapb_pclk tsadc-apbW"sinitdefaultsleepabaokay\qos@ffa58000rockchip,rk3399-qossyscon jqos@ffa5c000rockchip,rk3399-qossyscon kqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon nqos@ffa70080rockchip,rk3399-qossyscon oqos@ffa74000rockchip,rk3399-qossyscon@ lqos@ffa76000rockchip,rk3399-qossyscon` mqos@ffa90000rockchip,rk3399-qossyscon pqos@ffa98000rockchip,rk3399-qossyscon cqos@ffaa0000rockchip,rk3399-qossyscon qqos@ffaa0080rockchip,rk3399-qossyscon rqos@ffaa8000rockchip,rk3399-qossyscon sqos@ffaa8080rockchip,rk3399-qossyscon tqos@ffab0000rockchip,rk3399-qossyscon dqos@ffab0080rockchip,rk3399-qossyscon eqos@ffab8000rockchip,rk3399-qossyscon fqos@ffac0000rockchip,rk3399-qossyscon gqos@ffac0080rockchip,rk3399-qossyscon hqos@ffac8000rockchip,rk3399-qossyscon uqos@ffac8080rockchip,rk3399-qossyscon vqos@ffad0000rockchip,rk3399-qossyscon wqos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon ipower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller0+!power-domain@34"Dc0power-domain@33!Dde0power-domain@31Df0power-domain@32  Dgh0power-domain@35#Di0power-domain@25l0power-domain@23Dj0power-domain@22fDk0power-domain@27LDl0power-domain@28Dm0power-domain@8~}0power-domain@9 0power-domain@24Dno0power-domain@150+power-domain@21rDp0power-domain@19Dqr0power-domain@20Dst0power-domain@160+power-domain@17Duv0power-domain@18Dw0syscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayKxspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5yyspiclkapb_pclk<defaultz{|}+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7yy"baudclkapb_pclkf&default~ disabledi2c@ff3c0000rockchip,rk3399-i2c<oy  y y i2cpclk9default+okaypmic@1brockchip,rk808 xin32krk808-clkout2defaultZ{  regulatorsDCDC_REG1 vdd_center , q Dp \q q regulator-state-mem DCDC_REG2 vdd_cpu_l , q Dp \q q  regulator-state-mem DCDC_REG3 vcc_ddr q regulator-state-mem DCDC_REG4 vcc_1v8 ,w@ Dw@ q xregulator-state-mem  w@LDO_REG1 vcc_ldo1 ,w@ Dw@ regulator-state-mem LDO_REG2 vcc1v8_hdmi ,w@ Dw@ q regulator-state-mem LDO_REG3 vcc1v8_pmu ,w@ Dw@ q regulator-state-mem  w@LDO_REG4 vcc_sd ,w@ D- q 'regulator-state-mem  -LDO_REG5 vcc_ldo5 ,- D- regulator-state-mem LDO_REG6 vcc_ldo6 ,` D` regulator-state-mem LDO_REG7 vcc0v9_hdmi ,  D  q regulator-state-mem LDO_REG8 vcc_efuse ,w@ Dw@ q regulator-state-mem SWITCH_REG1 vcc3v3_s3 q regulator-state-mem SWITCH_REG2 vcc3v3_s0 q regulator-state-mem regulator@60 fcs,fan53555`  vdd_gpu , ' Dİ \ q  i2c@ff3d0000rockchip,rk3399-i2c=oy  y y i2cpclk8default+okaycodec@a fsl,sgtl5000    %okayi2c@ff3e0000rockchip,rk3399-i2c>oy  y y i2cpclk:default+okayregulator@60 fcs,fan53555`  vdd_cpu_b , ' Dİ \  q pwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB 1defaultyokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB 1defaulty disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  1defaultyokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 1defaulty disableddfi@ff630000c@rockchip,rk3399-dfizy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq ,vepuvdpu aclkhclk <I!iommu@ff650800rockchip,iommue@s aclkiface CI!video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore <I! iommu@ff660480rockchip,iommu f@f@u aclkifaceI!  Ciommu@ff670800rockchip,iommug@* aclkiface C disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahbI!!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  P [ apb_pclkWdma-controller@ff6e0000arm,pl330arm,primecelln@  P [ apb_pclkFclock-controller@ff750000rockchip,rk3399-pmucruuxin24mW roy(Jyclock-controller@ff760000rockchip,rk3399-cruvxin24mW" ro@BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+"io-domains"rockchip,rk3399-io-voltage-domainokay x x ' xmipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrfI!  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay.host-port  ,linestateokay/otg-port 0ghj,otg-bvalidotg-idlinestate disabled2usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay0host-port  ,linestateokay1otg-port 0lmo,otg-bvalidotg-idlinestateokay5phy@f780rockchip,rk3399-emmc-phy$emmcclk ! okay-pcie-phyrockchip,rk3399-pcie-phyrefclk phyokayphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-refo~I!Luphyuphy-pipeuphy-tcphyW"okaydp-port 7usb3-port 3phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-refoI! Muphyuphy-pipeuphy-tcphyW"okaydp-port 8usb3-port 6watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB=WBtx mclkhclkUdefaultI! disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2sW"'=WWBtxrxi2s_clki2s_hclkVbclk_onbclk_offI!okay  i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(=WWBtxrxi2s_clki2s_hclkWdefaultI! disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)=WWBtxrxi2s_clki2s_hclkXI! disabledvop@ff8f0000rockchip,rk3399-vop-lit woׄaclk_vopdclk_vophclk_vop <I! axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@4:iommu@ff8f3f00rockchip,iommu?w aclkifaceI! Cokayvop@ff900000rockchip,rk3399-vop-big voׄaclk_vopdclk_vophclk_vop <I! axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@49iommu@ff903f00rockchip,iommu?v aclkifaceI! Cokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk <tydphyI! disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface CI! isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk <tydphyI! disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface CI! hdmi-soundsimple-audio-card %i2s > Xhdmi-sound disabledsimple-audio-card,cpu osimple-audio-card,codec ohdmi@ff940000rockchip,rk3399-dw-hdmi&(tqpoiahbisfrcecgrfrefI!W"okay yports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfI!apbW"+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfI!apbW"+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultI!dpW" disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ,jobmmugpu- PI!#okay `pinctrlrockchip,rk3399-pinctrlW"z+defaultgpio@ff720000rockchip,gpio-bankry  (bios-disable-hog   bios_disablegpio@ff730000rockchip,gpio-banksy  gpio@ff780000rockchip,gpio-bankxP  Dgpio@ff788000rockchip,gpio-bankxQ  &bios-disable-override-hog  bios_disable_override gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low pcfg-input-enable pcfg-input-pull-up  pcfg-input-pull-down  clockclk-32k "cifcif-clkin " cif-clkouta " edpedp-hpd "gmacrgmii-pins "    %rmii-pins "     i2c0i2c0-xfer "i2c1i2c1-xfer ";i2c2i2c2-xfer "<i2c3i2c3-xfer "=i2c4i2c4-xfer "  i2c5i2c5-xfer "  >i2c6i2c6-xfer "  ?i2c7i2c7-xfer "@i2c8i2c8-xfer "i2s0i2s0-2ch-bus@ "i2s0-2ch-bus-bclk-off@ "i2s0-8ch-bus "i2s0-8ch-bus-bclk-off "i2s1i2s1-2ch-busP "i2s1-2ch-bus-bclk-offP "sdio0sdio0-bus1 "sdio0-bus4@ "sdio0-cmd "sdio0-clk "sdio0-cd "sdio0-pwr "sdio0-bkpwr "sdio0-wp "sdio0-int "sdmmcsdmmc-bus1 "sdmmc-bus4@ "   ,sdmmc-clk " )sdmmc-cmd " *sdmmc-cd "+sdmmc-wp "suspendap-pwroff "ddrio-pwroff "spdifspdif-bus "spdif-bus-1 "spi0spi0-clk "Gspi0-cs0 "Jspi0-cs1 "spi0-tx "Hspi0-rx "Ispi1spi1-clk " Kspi1-cs0 " Nspi1-rx "Mspi1-tx "Lspi2spi2-clk " Ospi2-cs0 " Rspi2-rx " Qspi2-tx " Pspi3spi3-clk "zspi3-cs0 "}spi3-rx "|spi3-tx "{spi4spi4-clk "Sspi4-cs0 "Vspi4-rx "Uspi4-tx "Tspi5spi5-clk "Xspi5-cs0 "[spi5-rx "Zspi5-tx "Ytestclktest-clkout0 "test-clkout1 "test-clkout2 "tsadcotp-pin "aotp-out "buart0uart0-xfer "Auart0-cts "uart0-rts "uart1uart1-xfer "  Buart2auart2a-xfer " uart2buart2b-xfer "uart2cuart2c-xfer "Cuart3uart3-xfer "Euart3-cts "uart3-rts "uart4uart4-xfer "~uarthdcpuarthdcp-xfer "pwm0pwm0-pin "pwm0-pin-pull-down "vop0-pwm-pin "vop1-pwm-pin "pwm1pwm1-pin "pwm1-pin-pull-down "pwm2pwm2-pin "pwm2-pin-pull-down "pwm3apwm3a-pin "pwm3bpwm3b-pin "hdmihdmi-i2c-xfer "hdmi-cec "pciepci-clkreqn-cpm "pci-clkreqnb-cpm " gpiosbios-disable-override-hog-pin "q7-thermal-pin "ledsmodule-led-pin "sd-card-led-pin "pmicpmic-int-l "usb2vcc5v0-host-en "otg-vbus-drv "usb3usb3-id "buttonshaikou-keys-pin@ " opp-table-0operating-points-v2 0 opp00 ;Q B  P@opp01 ;#F B opp02 ;0, B P Popp03 ;< BHHopp04 ;G BB@B@opp05 ;Tfr B**opp-table-1operating-points-v2 0opp00 ;Q B  P@opp01 ;#F B opp02 ;0, B opp03 ;< B Y Yopp04 ;G B~~opp05 ;Tfr Bopp06 ;_" Bopp07 ;kI BOOopp-table-2operating-points-v2opp00 ;  B 0opp01 ;@ B 0opp02 ;ׄ B 0opp03 ;e B Y Y0opp04 ;#F BHH0opp05 ;/ B0leds gpio-ledsdefaultled-0 amodule_led D gheartbeat }led-1 asd_card_led  gmmc0extcon-usb3linux,extcon-usb-gpio default4external-gmac-clock fixed-clocksY@ clkin_gmac#vcc1v2-phyregulator-fixed vcc1v2_phy q  ,O DO $vcc3v3-sysregulator-fixed vcc3v3_sys q  ,2Z D2Z vcc5v0-host-regulatorregulator-fixed default vcc5v0_host q vcc5v0-sysregulator-fixed vcc5v0_sys q  ,LK@ DLK@vcca-0v9-regulatorregulator-fixed vcca_0v9 q  ,  D  xvcca-1v8-regulatorregulator-fixed vcca_1v8 q  ,w@ Dw@ vdd-logpwm-regulator a  vdd_log , 5 D\ q chosen serial0:115200n8gpio-keys gpio-keysdefaultbutton-batlow-n (  aBATLOW# button-slp-btn-n (  aSLP_BTN# button-wake-n (  aWAKE# {switch-lid-btn-n ( aLID_BTN#  i2s0-soundsimple-audio-card %i2s XHaikou,I2S-codec >simple-audio-card,codec osimple-audio-card,cpu   osgtl5000-oscillator fixed-clockwdc-12vregulator-fixed dc_12v q  , Dvcc3v3-baseboardregulator-fixed vcc3v3_baseboard q  ,2Z D2Z vcc5v0-baseboardregulator-fixed vcc5v0_baseboard q  ,LK@ DLK@ vcc5v0-otg-regulatorregulator-fixed  (default vcc5v0_otg qvdda-codecregulator-fixed vdda_codec  ,2Z D2Z vddd-codecregulator-fixed vddd_codec  ,j Dj  compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesvpcie0v9-supplyvpcie1v8-supplyep-gpiosnum-lanespinctrl-namespinctrl-0vpcie3v3-supplyvpcie12v-supplyinterrupt-controllermax-functionsrockchip,max-outbound-regionspower-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthassigned-clock-ratesvqmmc-supplybus-widthcap-mmc-highspeedcap-sd-highspeedcd-gpiosdisable-wpvmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobenon-removabledr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirkextcon#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthrts-gpiosdmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-always-onregulator-boot-onregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supplyVDDA-supplyVDDIO-supplyVDDD-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsbt656-supplyaudio-supplysdmmc-supplygpio1830-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiddc-i2c-busmali-supplygpio-controller#gpio-cellsgpio-hoginputline-nameoutput-highbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nslabellinux,default-triggerpanic-indicatorid-gpiospwmspwm-supplystdout-pathlinux,codelinux,input-typebitclock-masterframe-masterenable-active-high 8( ~L+firefly,roc-rk3399-pc-plusrockchip,rk3399 +!7Firefly ROC-RK3399-PC-PLUS Boardaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci-dG Wd@v@   cpu@1cpuarm,cortex-a53psci-dG Wd@v@   cpu@2cpuarm,cortex-a53psci-dG Wd@v@   cpu@3cpuarm,cortex-a53psci-dG Wd@v@   cpu@100cpuarm,cortex-a72psci -G Wd@v@thermal-idle'cpu@101cpuarm,cortex-a72psci -G Wd@v@thermal-idle'l2-cache-cluster0cacheYf@x l2-cache-cluster1cacheYf@xidle-statespscicpu-sleeparm,idle-state*;Rxc cluster-sleeparm,idle-state*;Rc display-subsystemrockchip,display-subsystemtmemory-controllerrockchip,rk3399-dmczdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+" Gaclkaclk-perfhclkpm0123,syslegacyclient<`O]l t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 ,macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmacethokay&6MinputZergmiidefault n ~ 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр&  Lbiuciuciu-driveciu-samplezresetokay ! default "#$&%2&mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 ?&N Nclk_xinclk_ahbemmc_cardclockt' yphy_arasanUokayfusb@fe380000 generic-ehci8(t)yusbokayusb@fe3a0000 generic-ohci:(t)yusbokayusb@fe3c0000 generic-ehci<*t+yusbokayusb@fe3e0000 generic-ohci> *t+yusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendthostt,-yusb2-phyusb3-phy |utmi_wideokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendthostt./yusb2-phyusb3-phy |utmi_wideokaydp@fec00000rockchip,rk3399-cdn-dp &r  ruocore-clkpclkspdifgrft01 HJspdifdptxapbcore disabledportsport+endpoint@0+2endpoint@1+3interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-its;Jppi-partitionsinterrupt-partition-0Uinterrupt-partition-1Usaradc@ff100000rockchip,rk3399-saradc>^Pesaradcapb_pclk saradc-apbokayp4crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c&A AU i2cpclk;default5+okay|,es8388@11everest,es8388Yi2c@ff120000rockchip,rk3399-i2c&B BV i2cpclk#default6+ disabledi2c@ff130000rockchip,rk3399-i2c&C CW i2cpclk"default7+okay|i2c@ff140000rockchip,rk3399-i2c&D DX i2cpclk&default8+ disabledi2c@ff150000rockchip,rk3399-i2c&E EY i2cpclk%default9+ disabledi2c@ff160000rockchip,rk3399-i2c&F FZ i2cpclk$default:+okay|Xusb-typec@22 fcs,fusb302" ;default<=okayserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkcdefault >?@okayserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkbdefaultA disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkddefaultBokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclkedefaultC disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDD D txrxdefaultEFGH+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5D D txrxdefaultIJKL+okayflash@0jedec,spi-norÀspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4DDtxrxdefaultMNOP+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCDDtxrxdefaultQRST+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkUU txrxdefaultVWXY+ disabledthermal-zonescpu-thermaldZtripscpu_alert0#p/passive[cpu_alert1#$/passive\cpu_crit#s/ criticalcooling-mapsmap0:[?map1:\H?gpu-thermaldZtripsgpu_alert0#$/passive]gpu_crit#s/ criticalcooling-mapsmap0:] ?^tsadc@ff260000rockchip,rk3399-tsadc&a&O qOdtsadcapb_pclk tsadc-apbNsinitdefaultsleep_e`o_yokayZqos@ffa58000rockchip,rk3399-qossyscon hqos@ffa5c000rockchip,rk3399-qossyscon iqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon lqos@ffa70080rockchip,rk3399-qossyscon mqos@ffa74000rockchip,rk3399-qossyscon@ jqos@ffa76000rockchip,rk3399-qossyscon` kqos@ffa90000rockchip,rk3399-qossyscon nqos@ffa98000rockchip,rk3399-qossyscon aqos@ffaa0000rockchip,rk3399-qossyscon oqos@ffaa0080rockchip,rk3399-qossyscon pqos@ffaa8000rockchip,rk3399-qossyscon qqos@ffaa8080rockchip,rk3399-qossyscon rqos@ffab0000rockchip,rk3399-qossyscon bqos@ffab0080rockchip,rk3399-qossyscon cqos@ffab8000rockchip,rk3399-qossyscon dqos@ffac0000rockchip,rk3399-qossyscon eqos@ffac0080rockchip,rk3399-qossyscon fqos@ffac8000rockchip,rk3399-qossyscon sqos@ffac8080rockchip,rk3399-qossyscon tqos@ffad0000rockchip,rk3399-qossyscon uqos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon gpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controller+power-domain@34"apower-domain@33!bcpower-domain@31dpower-domain@32  efpower-domain@35#gpower-domain@25lpower-domain@23hpower-domain@22fipower-domain@27Ljpower-domain@28kpower-domain@8~}power-domain@9 power-domain@24lmpower-domain@15+power-domain@21rnpower-domain@19oppower-domain@20qrpower-domain@16+power-domain@17stpower-domain@18usyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayvspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5wwspiclkapb_pclk<defaultxyz{+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7ww"baudclkapb_pclkfdefault| disabledi2c@ff3c0000rockchip,rk3399-i2c<&w  w w i2cpclk9default}+okay|pmic@1brockchip,rk808 ;xin32krk808-clkout2default~ &2>JVbnzvregulatorsDCDC_REG1 vdd_center qp qregulator-state-mem (DCDC_REG2 vdd_cpu_l qp q regulator-state-mem (DCDC_REG3vcc_ddrregulator-state-mem ADCDC_REG4vcc_1v8w@w@regulator-state-mem A Yw@LDO_REG1vcca1v8_codecw@w@regulator-state-mem (LDO_REG2 vcca1v8_hdmiw@w@regulator-state-mem (LDO_REG3 vcc1v8_pmuw@w@regulator-state-mem A Yw@LDO_REG4 vcc_sdiow@-&regulator-state-mem A Y-LDO_REG5vcca3v0_codec--regulator-state-mem (LDO_REG6vcc_1v5``regulator-state-mem A Y`LDO_REG7 vcca0v9_hdmi  regulator-state-mem (LDO_REG8vcc_3v0--vregulator-state-mem A Y-SWITCH_REG1 vcc3v3_s3regulator-state-mem (SWITCH_REG2 vcc3v3_s0regulator-state-mem (regulator@40silergy,syr827@ udefault vdd_cpu_b 4`  regulator-state-mem (regulator@41silergy,syr828A udefaultvdd_gpu 4`  regulator-state-mem (rtc@51haoyu,hym8563Q !xin32kdefaulti2c@ff3d0000rockchip,rk3399-i2c=&w  w w i2cpclk8default+okay|Xi2c@ff3e0000rockchip,rk3399-i2c>&w  w w i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultwokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultw disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  defaultwokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 defaultw disableddfi@ff630000c@rockchip,rk3399-dfizy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq ,vepuvdpu aclkhclk iommu@ff650800rockchip,iommue@s aclkiface video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore  iommu@ff660480rockchip,iommu f@f@u aclkiface  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclkUdma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkDclock-controller@ff750000rockchip,rk3399-pmucruuxin24m &w(Jwclock-controller@ff760000rockchip,rk3399-cruvxin24m &@BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay  v v &mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf " disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay(host-port " ,linestateokayZ)otg-port "0ghj,otg-bvalidotg-idlinestateokayZ=,usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay*host-port " ,linestateokayZ+otg-port "0lmo,otg-bvalidotg-idlinestateokayZ.phy@f780rockchip,rk3399-emmc-phy$emmcclk -2 "okay'pcie-phyrockchip,rk3399-pcie-phyrefclk "phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref&~Luphyuphy-pipeuphy-tcphyokaydp-port "0usb3-port "-phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref& Muphyuphy-pipeuphy-tcphyokaydp-port "1usb3-port "/watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBUtx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'UUtxrxi2s_clki2s_hclkVbclk_onbclk_offeokay A \i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(UUtxrxi2s_clki2s_hclkWdefaultokay A \i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)UUtxrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w&ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0+endpoint@1+endpoint@2+endpoint@3+endpoint@4+3iommu@ff8f3f00rockchip,iommu?w aclkiface okayvop@ff900000rockchip,rk3399-vop-big v&ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0+endpoint@1+endpoint@2+endpoint@3+endpoint@4+2iommu@ff903f00rockchip,iommu?v aclkiface okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk tydphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface  visp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk tydphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface  vhdmi-soundsimple-audio-card i2s  hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi(tqpoiahbisfrcecgrfrefokay   defaultports+port@0+endpoint@0+endpoint@1+port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0+endpoint@1+port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+ " disabledports+port@0+endpoint@0+endpoint@1+port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0+endpoint@1+port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ,jobmmugpu- P#okay ^pinctrlrockchip,rk3399-pinctrlz+gpio@ff720000rockchip,gpio-bankrw  -!gpio@ff730000rockchip,gpio-banksw  -;gpio@ff780000rockchip,gpio-bankxP  -gpio@ff788000rockchip,gpio-bankxQ  - gpio@ff790000rockchip,gpio-bankyR  -pcfg-pull-up 9pcfg-pull-down Fpcfg-pull-none Upcfg-pull-none-12ma U b pcfg-pull-none-13ma U b pcfg-pull-none-18ma U bpcfg-pull-none-20ma U bpcfg-pull-up-2ma 9 bpcfg-pull-up-8ma 9 bpcfg-pull-up-18ma 9 bpcfg-pull-up-20ma 9 bpcfg-pull-down-4ma F bpcfg-pull-down-8ma F bpcfg-pull-down-12ma F b pcfg-pull-down-18ma F bpcfg-pull-down-20ma F bpcfg-output-high qpcfg-output-low }pcfg-input-enable pcfg-input-pull-up  9pcfg-input-pull-down  Fclockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer }i2c1i2c1-xfer 5i2c2i2c2-xfer 6i2c3i2c3-xfer 7i2c4i2c4-xfer   i2c5i2c5-xfer   8i2c6i2c6-xfer   9i2c7i2c7-xfer :i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP i2s-8ch-mclk-pin sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    $sdmmc-clk  "sdmmc-cmd  #sdmmc-cd sdmmc-wp vcc3v0-sd-en suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Espi0-cs0 Hspi0-cs1 spi0-tx Fspi0-rx Gspi1spi1-clk  Ispi1-cs0  Lspi1-rx Kspi1-tx Jspi2spi2-clk  Mspi2-cs0  Pspi2-rx  Ospi2-tx  Nspi3spi3-clk xspi3-cs0 {spi3-rx zspi3-tx yspi4spi4-clk Qspi4-cs0 Tspi4-rx Sspi4-tx Rspi5spi5-clk Vspi5-cs0 Yspi5-rx Xspi5-tx Wtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin _otp-out `uart0uart0-xfer >uart0-cts ?uart0-rts @uart1uart1-xfer   Auart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Buart3uart3-xfer Cuart3-cts uart3-rts uart4uart4-xfer |uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm buttonspwr-key-l irir-int lcd-panellcd-panel-reset ledsdiy-led-pin work-led-pin yellow-led-pin pmicvsel1-pin vsel2-pin pmic-int-l ~sdio-pwrseqwifi-enable-h usb2vcc5v0-host-en usb-typecvcc-vbus-typec1-en  fusb30xfusb0-int <fusb1-int es8388ear-ctl-pin hp-det-pin hym8563hym8563-int opp-table-0operating-points-v2  opp00 Q  @opp01 #F opp02 0, P Popp03 < HHopp04 G B@B@opp05 Tfr **opp-table-1operating-points-v2 opp00 Q  @opp01 #F opp02 0, opp03 < Y Yopp04 G ~~opp05 Tfr opp06 _" opp07 kI OOopp-table-2operating-points-v2opp00  0opp01 @ 0opp02 ׄ 0opp03 e Y Y0opp04 #F HH0opp05 / 0chosen serial2:1500000n8backlightpwm-backlight aexternal-gmac-clock fixed-clocksY@ clkin_gmacadc-keys adc-keys  buttons ` dbutton-recovery *Recovery 0h ;FPir-receivergpio-ir-receiver !default Urc-khadasleds gpio-ledsdefaultled-0 *green:work  gon uheartbeatled-1 *red:diy !  goff ummc2sdio-pwrseqmmc-pwrseq-simple ext_clockdefault ! sys-12vregulator-fixedsys_12v vcc1v8-s3regulator-fixed vcc1v8_s3w@w@ 4vcc3v0-sdregulator-fixed  ydefault vcc3v0_sd-- %vcc3v3-sysregulator-fixed vcc3v3_sys2Z2Z vcca-0v9regulator-fixed vcca_0v9   vcc5v0-host-regulatorregulator-fixed  y;default vcc5v0_host vcc-vbus-typec1regulator-fixed  y; defaultvcc_vbus_typec1 =vcc-sysregulator-fixed vcc_sysLK@LK@ vdd-logpwm-regulator avdd_log\ dc-12vregulator-fixeddc_12ves8388-soundsimple-audio-carddefault rockchip,es8388-codec i2s ) MicrophoneMic JackHeadphoneHeadphones} LINPUT1Mic JackHeadphone Amp INLLOUT2Headphone Amp INRROUT2HeadphonesHeadphone Amp OUTLHeadphonesHeadphone Amp OUTR   "Headphonessimple-audio-card,codec simple-audio-card,cpu gpio-fan gpio-fan A  ;headphones-ampsimple-audio-amplifierdefault T! aHeadphone Amp s compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthassigned-clock-ratesbus-widthcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdnon-removabledr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsvbus-supplyreg-shiftreg-io-widthdmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-nameregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-ramp-delayregulator-off-in-suspendregulator-on-in-suspendregulator-suspend-microvoltfcs,suspend-voltage-selectorvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiavdd-0v9-supplyavdd-1v8-supplyddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathpwmsio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltlinux,rc-map-namedefault-statelinux,default-triggerreset-gpiosenable-active-highpwm-supplysimple-audio-card,widgetssimple-audio-card,routingsimple-audio-card,hp-det-gpiosimple-audio-card,aux-devssimple-audio-card,pin-switchesgpio-fan,speed-mapenable-gpiossound-name-prefixVCC-supply h8( p&firefly,roc-rk3399-pcrockchip,rk3399 +7Firefly ROC-RK3399-PC Boardaliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe320000/mmc@fe330000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci-dG Wd@v@   cpu@1cpuarm,cortex-a53psci-dG Wd@v@   cpu@2cpuarm,cortex-a53psci-dG Wd@v@   cpu@3cpuarm,cortex-a53psci-dG Wd@v@   cpu@100cpuarm,cortex-a72psci -G Wd@v@thermal-idle'cpu@101cpuarm,cortex-a72psci -G Wd@v@thermal-idle'l2-cache-cluster0cacheYf@x l2-cache-cluster1cacheYf@xidle-statespscicpu-sleeparm,idle-state*;Rxc cluster-sleeparm,idle-state*;Rc display-subsystemrockchip,display-subsystemtmemory-controllerrockchip,rk3399-dmczdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+" Gaclkaclk-perfhclkpm0123,syslegacyclient<`O]l t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 ,macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmacethokay&6MinputZergmiidefault n ~ 'P(mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyreset disabledmmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр&  Lbiuciuciu-driveciu-samplezresetokay ! default "#$&%2&mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 ?&N Nclk_xinclk_ahbemmc_cardclockt' yphy_arasanUokayfusb@fe380000 generic-ehci8(t)yusbokayusb@fe3a0000 generic-ohci:(t)yusbokayusb@fe3c0000 generic-ehci<*t+yusbokayusb@fe3e0000 generic-ohci> *t+yusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokayusb@fe800000 snps,dwc3irefbus_earlysuspendtotgt,-yusb2-phyusb3-phy |utmi_wideokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendthostt./yusb2-phyusb3-phy |utmi_wideokaydp@fec00000rockchip,rk3399-cdn-dp &r  ruocore-clkpclkspdifgrft01 HJspdifdptxapbcore disabledportsport+endpoint@0+2endpoint@1+3interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-its;Jppi-partitionsinterrupt-partition-0Uinterrupt-partition-1Usaradc@ff100000rockchip,rk3399-saradc>^Pesaradcapb_pclk saradc-apbokayp4crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c&A AU i2cpclk;default5+okay|,i2c@ff120000rockchip,rk3399-i2c&B BV i2cpclk#default6+ disabledi2c@ff130000rockchip,rk3399-i2c&C CW i2cpclk"default7+okay|i2c@ff140000rockchip,rk3399-i2c&D DX i2cpclk&default8+ disabledi2c@ff150000rockchip,rk3399-i2c&E EY i2cpclk%default9+ disabledi2c@ff160000rockchip,rk3399-i2c&F FZ i2cpclk$default:+okay|Xusb-typec@22 fcs,fusb302" ;default<=okayregulator@66 mps,mp8859fmp8859_dcdcdc_12v =regulator-state-mem'?serial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc[edefault>?okayserial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb[edefault@ disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd[edefaultAokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke[edefaultB disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDrC C wtxrxdefaultDEFG+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5rC C wtxrxdefaultHIJK+okayflash@0jedec,spi-norÀspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4rCCwtxrxdefaultLMNO+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCrCCwtxrxdefaultPQRS+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclkrTT wtxrxdefaultUVWX+ disabledthermal-zonescpu-thermaldYtripscpu_alert0ppassiveZcpu_alert1$passive[cpu_crits criticalcooling-mapsmap0Zmap1[Hgpu-thermaldYtripsgpu_alert0$passive\gpu_crits criticalcooling-mapsmap0\ ]tsadc@ff260000rockchip,rk3399-tsadc&a&O qOdtsadcapb_pclk tsadc-apbsinitdefaultsleep^ _^okay3JYqos@ffa58000rockchip,rk3399-qossyscon gqos@ffa5c000rockchip,rk3399-qossyscon hqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon kqos@ffa70080rockchip,rk3399-qossyscon lqos@ffa74000rockchip,rk3399-qossyscon@ iqos@ffa76000rockchip,rk3399-qossyscon` jqos@ffa90000rockchip,rk3399-qossyscon mqos@ffa98000rockchip,rk3399-qossyscon `qos@ffaa0000rockchip,rk3399-qossyscon nqos@ffaa0080rockchip,rk3399-qossyscon oqos@ffaa8000rockchip,rk3399-qossyscon pqos@ffaa8080rockchip,rk3399-qossyscon qqos@ffab0000rockchip,rk3399-qossyscon aqos@ffab0080rockchip,rk3399-qossyscon bqos@ffab8000rockchip,rk3399-qossyscon cqos@ffac0000rockchip,rk3399-qossyscon dqos@ffac0080rockchip,rk3399-qossyscon eqos@ffac8000rockchip,rk3399-qossyscon rqos@ffac8080rockchip,rk3399-qossyscon sqos@ffad0000rockchip,rk3399-qossyscon tqos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon fpower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllere+power-domain@34"y`epower-domain@33!yabepower-domain@31ycepower-domain@32  ydeepower-domain@35#yfepower-domain@25lepower-domain@23ygepower-domain@22fyhepower-domain@27Lyiepower-domain@28yjepower-domain@8~}epower-domain@9 epower-domain@24yklepower-domain@15e+power-domain@21rymepower-domain@19ynoepower-domain@20ypqepower-domain@16e+power-domain@17yrsepower-domain@18ytesyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokayuspi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5vvspiclkapb_pclk<defaultwxyz+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7vv"baudclkapb_pclkf[edefault{ disabledi2c@ff3c0000rockchip,rk3399-i2c<&v  v v i2cpclk9default|+okay|pmic@1brockchip,rk808 ;xin32krk808-clkout2default}~~~~~~ ~ ~ ~ +~ 8~ EuregulatorsDCDC_REG1 vdd_center  qp Rqregulator-state-mem gDCDC_REG2 vdd_cpu_l  qp Rq regulator-state-mem gDCDC_REG3vcc_ddr regulator-state-mem'DCDC_REG4vcc_1v8 w@w@regulator-state-mem'?w@LDO_REG1vcca1v8_codec w@w@regulator-state-mem gLDO_REG2 vcca1v8_hdmi w@w@regulator-state-mem gLDO_REG3 vcc1v8_pmu w@w@regulator-state-mem'?w@LDO_REG4 vcc_sdio w@-&regulator-state-mem'?-LDO_REG5vcca3v0_codec --regulator-state-mem gLDO_REG6vcc_1v5 ``regulator-state-mem'?`LDO_REG7 vcca0v9_hdmi   regulator-state-mem gLDO_REG8vcc_3v0 --uregulator-state-mem'?-SWITCH_REG1 vcc3v3_s3 regulator-state-mem gSWITCH_REG2 vcc3v3_s0 regulator-state-mem gregulator@40silergy,syr827@ default vdd_cpu_b 4` R ~regulator-state-mem gregulator@41silergy,syr828A defaultvdd_gpu 4` R ~regulator-state-mem gi2c@ff3d0000rockchip,rk3399-i2c=&v  v v i2cpclk8default+okay|Xusb-typec@22 fcs,fusb302" ;defaultokayi2c@ff3e0000rockchip,rk3399-i2c>&v  v v i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultvokaypwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB defaultv disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  defaultvokaypwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 defaultv disableddfi@ff630000c@rockchip,rk3399-dfizy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq ,vepuvdpu aclkhclk iommu@ff650800rockchip,iommue@s aclkiface video-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore  iommu@ff660480rockchip,iommu f@f@u aclkiface  iommu@ff670800rockchip,iommug@* aclkiface  disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@    apb_pclkTdma-controller@ff6e0000arm,pl330arm,primecelln@    apb_pclkCclock-controller@ff750000rockchip,rk3399-pmucruuxin24m &v(Jvclock-controller@ff760000rockchip,rk3399-cruvxin24m &@BCxD#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay  u u &mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf " disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay(host-port " ,linestateokayZ)otg-port "0ghj,otg-bvalidotg-idlinestateokayZ=,usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay*host-port " ,linestateokayZ+otg-port "0lmo,otg-bvalidotg-idlinestateokayZ.phy@f780rockchip,rk3399-emmc-phy$emmcclk -2 "okay'pcie-phyrockchip,rk3399-pcie-phyrefclk "phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref&~Luphyuphy-pipeuphy-tcphyokaydp-port "0usb3-port "-phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref& Muphyuphy-pipeuphy-tcphyokaydp-port "1usb3-port "/watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifBrTwtx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'rTTwtxrxi2s_clki2s_hclkVbclk_onbclk_off okay A \i2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(rTTwtxrxi2s_clki2s_hclkWdefaultokay A \i2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)rTTwtxrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w&ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0+endpoint@1+endpoint@2+endpoint@3+endpoint@4+3iommu@ff8f3f00rockchip,iommu?w aclkiface okayvop@ff900000rockchip,rk3399-vop-big v&ׄaclk_vopdclk_vophclk_vop  axiahbdclkokayport+endpoint@0+endpoint@1+endpoint@2+endpoint@3+endpoint@4+2iommu@ff903f00rockchip,iommu?v aclkiface okayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk tydphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface  visp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk tydphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface  vhdmi-soundsimple-audio-card i2s  hdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmie(tqpoiahbisfrcecgrfrefokay   defaultports+port@0+endpoint@0+endpoint@1+port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0+endpoint@1+port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+ " disabledports+port@0+endpoint@0+endpoint@1+port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0+endpoint@1+port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ,jobmmugpu- P#okay ]pinctrlrockchip,rk3399-pinctrlz+gpio@ff720000rockchip,gpio-bankrv  -!gpio@ff730000rockchip,gpio-banksv  -;gpio@ff780000rockchip,gpio-bankxP  -gpio@ff788000rockchip,gpio-bankxQ  - gpio@ff790000rockchip,gpio-bankyR  -pcfg-pull-up 9pcfg-pull-down Fpcfg-pull-none Upcfg-pull-none-12ma U b pcfg-pull-none-13ma U b pcfg-pull-none-18ma U bpcfg-pull-none-20ma U bpcfg-pull-up-2ma 9 bpcfg-pull-up-8ma 9 bpcfg-pull-up-18ma 9 bpcfg-pull-up-20ma 9 bpcfg-pull-down-4ma F bpcfg-pull-down-8ma F bpcfg-pull-down-12ma F b pcfg-pull-down-18ma F bpcfg-pull-down-20ma F bpcfg-output-high qpcfg-output-low }pcfg-input-enable pcfg-input-pull-up  9pcfg-input-pull-down  Fclockclk-32k cifcif-clkin  cif-clkouta  edpedp-hpd gmacrgmii-pins     rmii-pins      i2c0i2c0-xfer |i2c1i2c1-xfer 5i2c2i2c2-xfer 6i2c3i2c3-xfer 7i2c4i2c4-xfer   i2c5i2c5-xfer   8i2c6i2c6-xfer   9i2c7i2c7-xfer :i2c8i2c8-xfer i2s0i2s0-2ch-bus` i2s0-2ch-bus-bclk-off` i2s0-8ch-bus i2s0-8ch-bus-bclk-off i2s1i2s1-2ch-busP i2s1-2ch-bus-bclk-offP sdio0sdio0-bus1 sdio0-bus4@ sdio0-cmd sdio0-clk sdio0-cd sdio0-pwr sdio0-bkpwr sdio0-wp sdio0-int sdmmcsdmmc-bus1 sdmmc-bus4@    $sdmmc-clk  "sdmmc-cmd  #sdmmc-cd sdmmc-wp vcc3v0-sd-en suspendap-pwroff ddrio-pwroff spdifspdif-bus spdif-bus-1 spi0spi0-clk Dspi0-cs0 Gspi0-cs1 spi0-tx Espi0-rx Fspi1spi1-clk  Hspi1-cs0  Kspi1-rx Jspi1-tx Ispi2spi2-clk  Lspi2-cs0  Ospi2-rx  Nspi2-tx  Mspi3spi3-clk wspi3-cs0 zspi3-rx yspi3-tx xspi4spi4-clk Pspi4-cs0 Sspi4-rx Rspi4-tx Qspi5spi5-clk Uspi5-cs0 Xspi5-rx Wspi5-tx Vtestclktest-clkout0 test-clkout1 test-clkout2 tsadcotp-pin ^otp-out _uart0uart0-xfer >uart0-cts ?uart0-rts uart1uart1-xfer   @uart2auart2a-xfer  uart2buart2b-xfer uart2cuart2c-xfer Auart3uart3-xfer Buart3-cts uart3-rts uart4uart4-xfer {uarthdcpuarthdcp-xfer pwm0pwm0-pin pwm0-pin-pull-down vop0-pwm-pin vop1-pwm-pin pwm1pwm1-pin pwm1-pin-pull-down pwm2pwm2-pin pwm2-pin-pull-down pwm3apwm3a-pin pwm3bpwm3b-pin hdmihdmi-i2c-xfer hdmi-cec pciepci-clkreqn-cpm pci-clkreqnb-cpm buttonspwr-key-l irir-int lcd-panellcd-panel-reset ledsdiy-led-pin work-led-pin yellow-led-pin pmicvsel1-pin vsel2-pin pmic-int-l }sdio-pwrseqwifi-enable-h usb2vcc5v0-host-en vcc-sys-en hub-rst usb-typecvcc-vbus-typec1-en  fusb30xfusb0-int <fusb1-int opp-table-0operating-points-v2  opp00 Q  @opp01 #F opp02 0, P Popp03 < HHopp04 G B@B@opp05 Tfr **opp-table-1operating-points-v2 opp00 Q  @opp01 #F opp02 0, opp03 < Y Yopp04 G ~~opp05 Tfr opp06 _" opp07 kI OOopp-table-2operating-points-v2opp00  0opp01 @ 0opp02 ׄ 0opp03 e Y Y0opp04 #F HH0opp05 / 0chosen serial2:1500000n8backlightpwm-backlight aexternal-gmac-clock fixed-clocksY@ clkin_gmacadc-keys adc-keys  buttons ` dbutton-recovery *Recovery 0h ;FPgpio-keys gpio-keys Udefaultkey-power `d ! *GPIO Key Power 0tir-receivergpio-ir-receiver !defaultleds gpio-ledsdefault led-0 *green:work  ron heartbeatled-1 *red:diy !  roff mmc2led-2 *yellow:yellow-led ! roff mmc1sdio-pwrseqmmc-pwrseq-simple ext_clockdefault ! vcc-vbus-typec0regulator-fixedvcc_vbus_typec0 LK@LK@=sys-12vregulator-fixedsys_12v vcc1v8-s3regulator-fixed vcc1v8_s3 w@w@4vcc3v0-sdregulator-fixed  ydefault vcc3v0_sd --~%vcc3v3-sysregulator-fixed vcc3v3_sys 2Z2Z~vcca-0v9regulator-fixed vcca_0v9   ~vcc5v0-host-regulatorregulator-fixed  y;default vcc5v0_hostvcc-vbus-typec1regulator-fixed  y; defaultvcc_vbus_typec1vcc-sysregulator-fixed  ydefaultvcc_sys LK@LK@vdd-logpwm-regulator avdd_log \ ~ compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthassigned-clock-ratesbus-widthcap-sd-highspeedcd-gpiosdisable-wpsd-uhs-sdr104vmmc-supplyvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdnon-removabledr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsvbus-supplyregulator-nameregulator-min-microvoltregulator-max-microvoltregulator-always-onregulator-boot-onvin-supplyregulator-on-in-suspendregulator-suspend-microvoltreg-shiftreg-io-widthdmasdma-namesspi-max-frequencypolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyvcc10-supplyvcc11-supplyvcc12-supplyvddio-supplyregulator-ramp-delayregulator-off-in-suspendfcs,suspend-voltage-selector#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,playback-channelsrockchip,capture-channelsrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiavdd-0v9-supplyavdd-1v8-supplyddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathpwmsio-channelsio-channel-nameskeyup-threshold-microvoltpoll-intervallabellinux,codepress-threshold-microvoltautorepeatdebounce-intervaldefault-statelinux,default-triggerreset-gpiosenable-active-highpwm-supply *8\( $#radxa,rock-4c-plusrockchip,rk3399 +7Radxa ROCK 4C+aliases=/pinctrl/gpio@ff720000C/pinctrl/gpio@ff730000I/pinctrl/gpio@ff780000O/pinctrl/gpio@ff788000U/pinctrl/gpio@ff790000[/i2c@ff3c0000`/i2c@ff110000e/i2c@ff120000j/i2c@ff130000o/i2c@ff3d0000t/i2c@ff140000y/i2c@ff150000~/i2c@ff160000/i2c@ff3e0000/serial@ff180000/serial@ff190000/serial@ff1a0000/serial@ff1b0000/serial@ff370000/spi@ff1c0000/spi@ff1d0000/spi@ff1e0000/spi@ff350000/spi@ff1f0000/spi@ff200000/ethernet@fe300000/mmc@fe330000/mmc@fe320000cpus+cpu-mapcluster0core0core1core2core3cluster1core0core1cpu@0cpuarm,cortex-a53psci-dG Wd@v@   cpu@1cpuarm,cortex-a53psci-dG Wd@v@   cpu@2cpuarm,cortex-a53psci-dG Wd@v@   cpu@3cpuarm,cortex-a53psci-dG Wd@v@   cpu@100cpuarm,cortex-a72psci -G Wd@v@thermal-idle'cpu@101cpuarm,cortex-a72psci -G Wd@v@thermal-idle'l2-cache-cluster0cacheYf@x l2-cache-cluster1cacheYf@xidle-statespscicpu-sleeparm,idle-state*;Rxc cluster-sleeparm,idle-state*;Rc display-subsystemrockchip,display-subsystemtmemory-controllerrockchip,rk3399-dmczdmc_clk disabledpmu_a53arm,cortex-a53-pmupmu_a72arm,cortex-a72-pmupsci arm,psci-1.0smctimerarm,armv8-timer@   xin24m fixed-clockn6xin24mpcie@f8000000rockchip,rk3399-pcie axi-baseapb-basepci+" Gaclkaclk-perfhclkpm0123,syslegacyclient<`O]l t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-388(coremgmtmgmt-stickypipepmpclkaclk disabledinterrupt-controllerpcie-ep@f8000000rockchip,rk3399-pcie-ep apb-basemem-base Gaclkaclk-perfhclkpm8(coremgmtmgmt-stickypipepmpclkaclk t,ypcie-phy-0pcie-phy-1pcie-phy-2pcie-phy-3 default disabledethernet@fe300000rockchip,rk3399-gmac0 ,macirq8ighfjfMstmmacethmac_clk_rxmac_clk_txclk_mac_refclk_mac_refoutaclk_macpclk_mac stmmacethokay&6MinputZergmiidefault n ~ 'P*!mmc@fe3100000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc1@@р Mbiuciuciu-driveciu-sampleyresetokay+!default "#$+wifi@1brcm,bcm4329-fmac % ,host-wakedefault&mmc@fe3200000rockchip,rk3399-dw-mshcrockchip,rk3288-dw-mshc2@Aр&9  Lbiuciuciu-driveciu-samplezresetokayN` rdefault '() }%*mmc@fe330000+rockchip,rk3399-sdhci-5.1arasan,sdhci-5.13 &N9 Nclk_xinclk_ahbemmc_cardclockt+ yphy_arasanokayрusb@fe380000 generic-ehci8,t-yusbokayusb@fe3a0000 generic-ohci:,t-yusbokayusb@fe3c0000 generic-ehci<.t/yusbokayusb@fe3e0000 generic-ohci> .t/yusbokaydebug@fe430000&arm,coresight-cpu-debugarm,primecellCM apb_pclkdebug@fe432000&arm,coresight-cpu-debugarm,primecellC M apb_pclkdebug@fe434000&arm,coresight-cpu-debugarm,primecellC@M apb_pclkdebug@fe436000&arm,coresight-cpu-debugarm,primecellC`M apb_pclkdebug@fe610000&arm,coresight-cpu-debugarm,primecellaL apb_pclkdebug@fe710000&arm,coresight-cpu-debugarm,primecellqL apb_pclkusb@fe800000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk% usb3-otgokay,usb@fe800000 snps,dwc3irefbus_earlysuspendhostt01yusb2-phyusb3-phy utmi_wide4Mnokayusb@fe900000rockchip,rk3399-dwc3+0Gref_clksuspend_clkbus_clkaclk_usb3_rksoc_axi_perfaclk_usb3grf_clk& usb3-otgokayusb@fe900000 snps,dwc3nrefbus_earlysuspendhostt23yusb2-phyusb3-phy utmi_wide4Mnokaydp@fec00000rockchip,rk3399-cdn-dp &r9  ruocore-clkpclkspdifgrft45 HJspdifdptxapbcore disabledportsport+endpoint@06endpoint@17interrupt-controller@fee00000 arm,gic-v3+P  msi-controller@fee20000arm,gic-v3-itsppi-partitionsinterrupt-partition-0interrupt-partition-1saradc@ff100000rockchip,rk3399-saradc>Pesaradcapb_pclk saradc-apbokay8crypto@ff8b0000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rstcrypto@ff8b8000rockchip,rk3399-crypto@hclk_masterhclk_slavesclkmasterslavecrypto-rsti2c@ff110000rockchip,rk3399-i2c&A9 AU i2cpclk;default9+ disabledi2c@ff120000rockchip,rk3399-i2c&B9 BV i2cpclk#default:+ disabledi2c@ff130000rockchip,rk3399-i2c&C9 CW i2cpclk"default;+okay i2c@ff140000rockchip,rk3399-i2c&D9 DX i2cpclk&default<+ disabledi2c@ff150000rockchip,rk3399-i2c&E9 EY i2cpclk%default=+ disabledi2c@ff160000rockchip,rk3399-i2c&F9 FZ i2cpclk$default>+ disabledserial@ff180000&rockchip,rk3399-uartsnps,dw-apb-uartQ`baudclkapb_pclkc!+default ?@Aokaybluetoothbrcm,bcm4345c5Blpo 8C L% ^% m`default DEFwG8serial@ff190000&rockchip,rk3399-uartsnps,dw-apb-uartRabaudclkapb_pclkb!+defaultH disabledserial@ff1a0000&rockchip,rk3399-uartsnps,dw-apb-uartSbbaudclkapb_pclkd!+defaultIokayserial@ff1b0000&rockchip,rk3399-uartsnps,dw-apb-uartTcbaudclkapb_pclke!+defaultJ disabledspi@ff1c0000(rockchip,rk3399-spirockchip,rk3066-spiG[spiclkapb_pclkDK K txrxdefaultLMNO+ disabledspi@ff1d0000(rockchip,rk3399-spirockchip,rk3066-spiH\spiclkapb_pclk5K K txrxdefaultPQRS+ disabledspi@ff1e0000(rockchip,rk3399-spirockchip,rk3066-spiI]spiclkapb_pclk4KKtxrxdefaultTUVW+ disabledspi@ff1f0000(rockchip,rk3399-spirockchip,rk3066-spiJ^spiclkapb_pclkCKKtxrxdefaultXYZ[+ disabledspi@ff200000(rockchip,rk3399-spirockchip,rk3066-spi K_spiclkapb_pclk\\ txrxdefault]^_`+ disabledthermal-zonescpu-thermaldatripscpu_alert0ppassivebcpu_alert1$passiveccpu_crits criticalcooling-mapsmap0bmap1cHgpu-thermaldatripsgpu_alert0$passivedgpu_crits criticalcooling-mapsmap0d etsadc@ff260000rockchip,rk3399-tsadc&a&O9 qOdtsadcapb_pclk tsadc-apbsinitdefaultsleepfgf)okay?Vaqos@ffa58000rockchip,rk3399-qossyscon oqos@ffa5c000rockchip,rk3399-qossyscon pqos@ffa60080rockchip,rk3399-qossyscon qos@ffa60100rockchip,rk3399-qossyscon qos@ffa60180rockchip,rk3399-qossyscon qos@ffa70000rockchip,rk3399-qossyscon sqos@ffa70080rockchip,rk3399-qossyscon tqos@ffa74000rockchip,rk3399-qossyscon@ qqos@ffa76000rockchip,rk3399-qossyscon` rqos@ffa90000rockchip,rk3399-qossyscon uqos@ffa98000rockchip,rk3399-qossyscon hqos@ffaa0000rockchip,rk3399-qossyscon vqos@ffaa0080rockchip,rk3399-qossyscon wqos@ffaa8000rockchip,rk3399-qossyscon xqos@ffaa8080rockchip,rk3399-qossyscon yqos@ffab0000rockchip,rk3399-qossyscon iqos@ffab0080rockchip,rk3399-qossyscon jqos@ffab8000rockchip,rk3399-qossyscon kqos@ffac0000rockchip,rk3399-qossyscon lqos@ffac0080rockchip,rk3399-qossyscon mqos@ffac8000rockchip,rk3399-qossyscon zqos@ffac8080rockchip,rk3399-qossyscon {qos@ffad0000rockchip,rk3399-qossyscon |qos@ffad8080rockchip,rk3399-qossyscon qos@ffae0000rockchip,rk3399-qossyscon npower-management@ff310000&rockchip,rk3399-pmusysconsimple-mfd1power-controller!rockchip,rk3399-power-controllerq+power-domain@34"hqpower-domain@33!ijqpower-domain@31kqpower-domain@32  lmqpower-domain@35#nqpower-domain@25lqpower-domain@23oqpower-domain@22fpqpower-domain@27Lqqpower-domain@28rqpower-domain@8~}qpower-domain@9 qpower-domain@24stqpower-domain@15q+power-domain@21ruqpower-domain@19vwqpower-domain@20xyqpower-domain@16q+power-domain@17z{qpower-domain@18|qsyscon@ff320000)rockchip,rk3399-pmugrfsysconsimple-mfd2io-domains&rockchip,rk3399-pmu-io-voltage-domainokay}spi@ff350000(rockchip,rk3399-spirockchip,rk3066-spi5~~spiclkapb_pclk<default+ disabledserial@ff370000&rockchip,rk3399-uartsnps,dw-apb-uart7~~"baudclkapb_pclkf!+default disabledi2c@ff3c0000rockchip,rk3399-i2c<&~ 9 ~ ~ i2cpclk9default+okay pmic@20rockchip,rk809  mclkYrk808-clkout1rk808-clkout2default   G *BregulatorsDCDC_REG1 6 J \ q tp  vdd_centerregulator-state-mem  DCDC_REG2 6 J \ q tp q  vdd_cpu_l regulator-state-mem DCDC_REG3 6 J vcc_ddr regulator-state-mem DCDC_REG4 6 J \2Z t2Z  vcc3v3_sysGregulator-state-mem  2ZDCDC_REG5 6 J \2Z t2Z vcc_buck5_s3regulator-state-mem  2ZLDO_REG1 6 J \  t  vcc_0v9_s3regulator-state-mem LDO_REG2 6 J \w@ tw@ vcc_1v8_s38regulator-state-mem  w@LDO_REG3 6 J \  t  vcc_0v9_s0regulator-state-mem  LDO_REG4 6 J \w@ tw@ vcc_1v8_s0regulator-state-mem LDO_REG5 6 J \- t- vcc_mipiregulator-state-mem LDO_REG6 6 J \` t` vcc_1v5_s0regulator-state-mem LDO_REG7 6 J \- t- vcc_3v0_s0}regulator-state-mem LDO_REG8 6 J \w@ t2Z vcc_sdio_s0*regulator-state-mem LDO_REG9 6 J \2Z t2Z vcc_camregulator-state-mem SWITCH_REG1 6 J vcc5v0_host0_s0regulator-state-mem SWITCH_REG2 6 J lcd_3v3regulator-state-mem regulator@40silergy,syr827@  1fan53555-reg F vdd_cpu_b \ 4 t`  6 J Qregulator-state-mem regulator@41silergy,syr828A  1fan53555-reg F vdd_gpu \ 4 t`  6 J Q regulator-state-mem i2c@ff3d0000rockchip,rk3399-i2c=&~ 9 ~ ~ i2cpclk8default+ disabledi2c@ff3e0000rockchip,rk3399-i2c>&~ 9 ~ ~ i2cpclk:default+ disabledpwm@ff420000(rockchip,rk3399-pwmrockchip,rk3288-pwmB \default~ disabledpwm@ff420010(rockchip,rk3399-pwmrockchip,rk3288-pwmB \default~ disabledpwm@ff420020(rockchip,rk3399-pwmrockchip,rk3288-pwmB  \default~ disabledpwm@ff420030(rockchip,rk3399-pwmrockchip,rk3288-pwmB0 \default~ disableddfi@ff630000c@rockchip,rk3399-dfizy pclk_ddr_monvideo-codec@ff650000rockchip,rk3399-vpue rq ,vepuvdpu aclkhclk giommu@ff650800rockchip,iommue@s aclkiface nvideo-codec@ff660000rockchip,rk3399-vdecft axiahbcabaccore g iommu@ff660480rockchip,iommu f@f@u aclkiface  niommu@ff670800rockchip,iommug@* aclkiface n disabledrga@ff680000rockchip,rk3399-rgah7maclkhclksclkjgi coreaxiahb!efuse@ff690000rockchip,rk3399-efusei+} pclk_efusecpu-id@7cpu-leakage@17gpu-leakage@18center-leakage@19cpu-leakage@1alogic-leakage@1bwafer-info@1cdma-controller@ff6d0000arm,pl330arm,primecellm@  {  apb_pclk\dma-controller@ff6e0000arm,pl330arm,primecelln@  {  apb_pclkKclock-controller@ff750000rockchip,rk3399-pmucruuxin24m &~9(J~clock-controller@ff760000rockchip,rk3399-cruvxin24m &@BCxD9#g/;рxh<4`#Fׄׄ ׄsyscon@ff770000&rockchip,rk3399-grfsysconsimple-mfdw+io-domains"rockchip,rk3399-io-voltage-domainokay  } } *mipi-dphy-rx0rockchip,rk3399-mipi-dphy-rx0wodphy-refdphy-cfggrf  disabledusb2phy@e450rockchip,rk3399-usb2phyP{phyclkclk_usbphy0_480mokay,host-port  ,linestateokayZ-otg-port 0ghj,otg-bvalidotg-idlinestateokay0usb2phy@e460rockchip,rk3399-usb2phy`|phyclkclk_usbphy1_480mokay.host-port  ,linestateokayZ/otg-port 0lmo,otg-bvalidotg-idlinestateokay2phy@f780rockchip,rk3399-emmc-phy$emmcclk 2 okay +pcie-phyrockchip,rk3399-pcie-phyrefclk phy disabledphy@ff7c0000rockchip,rk3399-typec-phy|~}tcpdcoretcpdphy-ref&~9Luphyuphy-pipeuphy-tcphyokaydp-port 4usb3-port 1phy@ff800000rockchip,rk3399-typec-phytcpdcoretcpdphy-ref&9 Muphyuphy-pipeuphy-tcphyokaydp-port 5usb3-port 3watchdog@ff848000 rockchip,rk3399-wdtsnps,dw-wdt|xrktimer@ff850000rockchip,rk3399-timerQhZ pclktimerspdif@ff870000rockchip,rk3399-spdifB\tx mclkhclkUdefault disabledi2s@ff880000(rockchip,rk3399-i2srockchip,rk3066-i2s'\\txrxi2s_clki2s_hclkVbclk_onbclk_offokayi2s@ff890000(rockchip,rk3399-i2srockchip,rk3066-i2s(\\txrxi2s_clki2s_hclkWdefault disabledi2s@ff8a0000(rockchip,rk3399-i2srockchip,rk3066-i2s)\\txrxi2s_clki2s_hclkXokayvop@ff8f0000rockchip,rk3399-vop-lit w&9ׄaclk_vopdclk_vophclk_vop g axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@47iommu@ff8f3f00rockchip,iommu?w aclkiface nokayvop@ff900000rockchip,rk3399-vop-big v&9ׄaclk_vopdclk_vophclk_vop g axiahbdclkokayport+endpoint@0endpoint@1endpoint@2endpoint@3endpoint@46iommu@ff903f00rockchip,iommu?v aclkiface nokayisp0@ff910000rockchip,rk3399-cif-isp@+nispaclkhclk gtydphy disabledports+port@0+iommu@ff914000rockchip,iommu @P+ aclkiface n isp1@ff920000rockchip,rk3399-cif-isp@,oispaclkhclk gtydphy disabledports+port@0+iommu@ff924000rockchip,iommu @P, aclkiface n hdmi-soundsimple-audio-card ;i2s T nhdmi-soundokaysimple-audio-card,cpu simple-audio-card,codec hdmi@ff940000rockchip,rk3399-dw-hdmi+(tqpoiahbisfrcecgrfrefokay   defaultports+port@0+endpoint@0endpoint@1port@1dsi@ff960000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi- porefpclkphy_cfggrfapb+ disabledports+port@0+endpoint@0endpoint@1port@1dsi@ff968000*rockchip,rk3399-mipi-dsisnps,dw-mipi-dsi. qorefpclkphy_cfggrfapb+  disabledports+port@0+endpoint@0endpoint@1port@1dp@ff970000rockchip,rk3399-edp jlo dppclkgrfdefaultdp disabledports+port@0+endpoint@0endpoint@1port@1gpu@ff9a0000#rockchip,rk3399-maliarm,mali-t8600 ,jobmmugpu- P#okay epinctrlrockchip,rk3399-pinctrlz+gpio@ff720000rockchip,gpio-bankr~  %gpio@ff730000rockchip,gpio-banks~  gpio@ff780000rockchip,gpio-bankxP  Cgpio@ff788000rockchip,gpio-bankxQ   gpio@ff790000rockchip,gpio-bankyR  pcfg-pull-up pcfg-pull-down pcfg-pull-none pcfg-pull-none-12ma  pcfg-pull-none-13ma  pcfg-pull-none-18ma  pcfg-pull-none-20ma  pcfg-pull-up-2ma  pcfg-pull-up-8ma  pcfg-pull-up-18ma  pcfg-pull-up-20ma  pcfg-pull-down-4ma  pcfg-pull-down-8ma  pcfg-pull-down-12ma  pcfg-pull-down-18ma  pcfg-pull-down-20ma  pcfg-output-high pcfg-output-low 'pcfg-input-enable 2pcfg-input-pull-up 2 pcfg-input-pull-down 2 clockclk-32k ?cifcif-clkin ? cif-clkouta ? edpedp-hpd ?gmacrgmii-pins ?    rmii-pins ?     i2c0i2c0-xfer ?i2c1i2c1-xfer ?9i2c2i2c2-xfer ?:i2c3i2c3-xfer ?;i2c4i2c4-xfer ?  i2c5i2c5-xfer ?  <i2c6i2c6-xfer ?  =i2c7i2c7-xfer ?>i2c8i2c8-xfer ?i2s0i2s0-2ch-bus` ?i2s0-2ch-bus-bclk-off` ?i2s0-8ch-bus@ ?i2s0-8ch-bus-bclk-off@ ?i2s-8ch-mclk ?i2s1i2s1-2ch-busP ?i2s1-2ch-bus-bclk-offP ?sdio0sdio0-bus1 ?sdio0-bus4@ ?"sdio0-cmd ?#sdio0-clk ?$sdio0-cd ?sdio0-pwr ?sdio0-bkpwr ?sdio0-wp ?sdio0-int ?sdmmcsdmmc-bus1 ?sdmmc-bus4@ ?   )sdmmc-clk ? 'sdmmc-cmd ? (sdmmc-cd ?sdmmc-wp ?suspendap-pwroff ?ddrio-pwroff ?spdifspdif-bus ?spdif-bus-1 ?spi0spi0-clk ?Lspi0-cs0 ?Ospi0-cs1 ?spi0-tx ?Mspi0-rx ?Nspi1spi1-clk ? Pspi1-cs0 ? Sspi1-rx ?Rspi1-tx ?Qspi2spi2-clk ? Tspi2-cs0 ? Wspi2-rx ? Vspi2-tx ? Uspi3spi3-clk ?spi3-cs0 ?spi3-rx ?spi3-tx ?spi4spi4-clk ?Xspi4-cs0 ?[spi4-rx ?Zspi4-tx ?Yspi5spi5-clk ?]spi5-cs0 ?`spi5-rx ?_spi5-tx ?^testclktest-clkout0 ?test-clkout1 ?test-clkout2 ?tsadcotp-pin ?fotp-out ?guart0uart0-xfer ??uart0-cts ?@uart0-rts ?Auart1uart1-xfer ?  Huart2auart2a-xfer ? uart2buart2b-xfer ?uart2cuart2c-xfer ?Iuart3uart3-xfer ?Juart3-cts ?uart3-rts ?uart4uart4-xfer ?uarthdcpuarthdcp-xfer ?pwm0pwm0-pin ?pwm0-pin-pull-down ?vop0-pwm-pin ?vop1-pwm-pin ?pwm1pwm1-pin ?pwm1-pin-pull-down ?pwm2pwm2-pin ?pwm2-pin-pull-down ?pwm3apwm3a-pin ?pwm3bpwm3b-pin ?hdmihdmi-i2c-xfer ?hdmi-cec ?pciepci-clkreqn-cpm ?pci-clkreqnb-cpm ?btbt-enable-h ? Fbt-host-wake-l ?Dbt-wake-l ?Eledsuser-led1 ?user-led2 ?pmicpmic-int-l ?vsel1-gpio ?vsel2-gpio ?usb-typecvcc5v0-typec-en ?usb2vcc5v0-host-en ?wifiwifi-enable-h ? wifi-host-wake-l ?&opp-table-0operating-points-v2 M opp00 XQ _ Y Y m@opp01 X#F _ Y Yopp02 X0, _ opp03 X< _opp-table-1operating-points-v2 Mopp00 XQ _ Y Y m@opp01 X#F _ Y Yopp02 X0, _ Y Yopp03 X< _HHopp04 XG _B@B@opp05 XTfr _g8g8opp06 XZJ _00opp-table-2operating-points-v2opp00 X  _ Y Y0opp01 X _ Y Y0opp02 Xׄ _ Y Y0opp03 X#F _0chosen ~serial2:1500000n8external-gmac-clock fixed-clocksY@ clkin_gmacleds gpio-ledsdefaultled-0 power    default-onled-1 status    heartbeatrk809-soundsimple-audio-card ;i2s nAnalog RK809 Tsimple-audio-card,cpu simple-audio-card,codec Bsdio-pwrseqmmc-pwrseq-simpleB ext_clockdefault % !vcc-3v3-regulatorregulator-fixed vcc_3v3 6 J \2Z t2Z QGvcc3v3-phy1-regulatorregulator-fixed vcc3v3_phy1 6 J \2Z t2Z Qvcc5v0-host-regulatorregulator-fixed  y default vcc5v0_host1 6 J Qvcc5v0-sys-regulatorregulator-fixed vcc5v0_sys 6 J \LK@ tLK@vcc5v0-typec-regulatorregulator-fixed  ydefault vcc5v0_typec 6 J Qvdd-log-regulatorregulator-fixed vdd_log 6 J \~ t~ Q compatibleinterrupt-parent#address-cells#size-cellsmodelgpio0gpio1gpio2gpio3gpio4i2c0i2c1i2c2i2c3i2c4i2c5i2c6i2c7i2c8serial0serial1serial2serial3serial4spi0spi1spi2spi3spi4spi5ethernet0mmc0mmc1cpudevice_typeregenable-methodcapacity-dmips-mhzclocks#cooling-cellsdynamic-power-coefficientcpu-idle-statesi-cache-sizei-cache-line-sizei-cache-setsd-cache-sized-cache-line-sized-cache-setsnext-level-cacheoperating-points-v2cpu-supplyphandleduration-usexit-latency-uscache-levelcache-unifiedentry-methodlocal-timer-stoparm,psci-suspend-paramentry-latency-usmin-residency-usportsrockchip,pmudevfreq-eventsclock-namesstatusinterruptsarm,no-tick-in-suspendclock-frequencyclock-output-names#clock-cellsreg-names#interrupt-cellsaspm-no-l0sbus-rangeinterrupt-namesinterrupt-map-maskinterrupt-mapmax-link-speedmsi-mapphysphy-namesrangesresetsreset-namesinterrupt-controllermax-functionsnum-lanesrockchip,max-outbound-regionspinctrl-namespinctrl-0power-domainsrockchip,grfsnps,txpblassigned-clocksassigned-clock-parentsclock_in_outphy-supplyphy-modesnps,reset-gpiosnps,reset-active-lowsnps,reset-delays-ustx_delayrx_delaymax-frequencyfifo-depthbus-widthcap-sdio-irqcap-sd-highspeedkeep-power-in-suspendmmc-pwrseqnon-removablesd-uhs-sdr104assigned-clock-ratescap-mmc-highspeedcard-detect-delaydisable-wpcd-gpiosvqmmc-supplyarasan,soc-ctl-syscondisable-cqe-dcmdmmc-hs400-1_8vmmc-hs400-enhanced-strobeextcondr_modephy_typesnps,dis_enblslpm_quirksnps,dis-u2-freeclk-exists-quirksnps,dis_u2_susphy_quirksnps,dis-del-phy-power-chg-quirksnps,dis-tx-ipgap-linecheck-quirk#sound-dai-cellsremote-endpointmsi-controller#msi-cellsaffinity#io-channel-cellsvref-supplyi2c-scl-rising-time-nsi2c-scl-falling-time-nsreg-shiftreg-io-widthdevice-wakeup-gpioshost-wakeup-gpiosshutdown-gpiosmax-speedvbat-supplyvddio-supplydmasdma-namespolling-delay-passivepolling-delaythermal-sensorstemperaturehysteresistripcooling-devicerockchip,hw-tshut-temppinctrl-1pinctrl-2#thermal-sensor-cellsrockchip,hw-tshut-moderockchip,hw-tshut-polarity#power-domain-cellspm_qospmu1830-supplyrockchip,system-power-controllerwakeup-sourcevcc1-supplyvcc2-supplyvcc3-supplyvcc4-supplyvcc5-supplyvcc6-supplyvcc7-supplyvcc8-supplyvcc9-supplyregulator-always-onregulator-boot-onregulator-min-microvoltregulator-max-microvoltregulator-initial-moderegulator-nameregulator-off-in-suspendregulator-suspend-microvoltregulator-ramp-delayregulator-on-in-suspendfcs,suspend-voltage-selectorregulator-compatiblevsel-gpiosvin-supply#pwm-cellsiommus#iommu-cells#dma-cellsarm,pl330-periph-burst#reset-cellsaudio-supplybt656-supplygpio1830-supplysdmmc-supply#phy-cellsdrive-impedance-ohmrockchip,enable-strobe-pulldownrockchip,disable-mmu-resetsimple-audio-card,formatsimple-audio-card,mclk-fssimple-audio-card,namesound-daiavdd-0v9-supplyavdd-1v8-supplyddc-i2c-busmali-supplygpio-controller#gpio-cellsbias-pull-upbias-pull-downbias-disabledrive-strengthoutput-highoutput-lowinput-enablerockchip,pinsopp-sharedopp-hzopp-microvoltclock-latency-nsstdout-pathfunctioncolorlinux,default-triggerreset-gpiosenable-active-high$snd-soc-meson-axg-pdm.ko.gz(snd-soc-meson-card-utils.ko.gz(snd-soc-meson-codec-glue.ko.gz,!snd-soc-meson-g12a-toacodec.ko.gz`snd-soc-meson-t9015.ko.gzsnd-soc-meson-aiu.ko.gz@@5.apk.a0acbfbd3e3196f166c598c185239ba3795aa1e8f7f43b2f@@5.apk.8fd3e407967cc42b0bef3363bae50ffd9519b11a1fae7512@t5.apk.3b26c03f990a28271008c2fc8011eea731f506cbcd9583cc ޳6 . ..6firecaiaqhifaceline6 misc snd-usbmidi-lib.ko.gzsnd-usb-audio.ko.gz m4 .L..snd-usb-6fire.ko.gz M, . ... rxvt-256color-\rxvt Y6/ . ..1screen-256color2st-0.63st-0.74st-0.85 st-16color6 st-256color7 st-direct8sun0screen ޶Z9 . ..; terminology<terminology-0.6.1=terminology-1.0.0>terminology-1.8.1? tmux@L tmux-256color: terminator |A . ..Cvt102Dvt200Evt220F vt52G vteHx vte-256colorBvt100 eI . ..Kxterm-256colorL xterm-colorM xterm-xfree86Jxterm [N . ..PT ssh_configS sshd_config.dR sshd_configQ ssh_config.dOHmoduli ^Q .N.. 3dS .N.. @iwjNRh * rv?:}hoTyq/ J!^*],v.LDK24Ne2P9JP@@@@|rOFxxG HKVNJRXR ` Vd_lX#XbЍc(j:hj)(Wp.qD (yt j$P .~ ..Qcloudn initotiny-cloud.confp user-datamcommon Q .P ..R awsUazureX gcp[hetzner_incusbnocloudf ociixscaleway A`DR .Q ..TimdsS\ autodetect F{U .Q ..WimdsV\ autodetect )Y(X .Q ..ZimdsY\ autodetect U[ .Q ..] imds^ imds copy\ autodetect ލ6:_ .Q ..aimds`\ autodetect ޳_ELFu@@8 @@@@888  ( ((9C TTT$$Ptd   ,,QtdRtd( ((88/lib/ld-musl-aarch64.so.1GNU/BȎ̹L>`JDAv剠 2( \  j4\ 7 U W+q  *JUEO_$ dc ]\  e  W  n X   zN E> #\y8:w@SR4 "   LD  (d jJ1 H *yc ! q $ LQ#u  i m Q C \x* t  *O y  /@ p   ? e q f !{ T   ;  1 kF W % u|/ A> / 7  A#J  0   6  0&~Gl ! fB s  !D ` _  g- a  >Oc ]`3 u 1v ? nb P*Bp) L  I W  k   /    m] X9 ' 9 Q    24 GN x <-  \c t ,        D   )  Tklogctldprintfsetuidchrootstrcasestrsocketputchar_unlockedmkdtempgetspnam_rputc_unlockedfflushstrcpyshmgetsigsuspendgethostidvasprintffchmodgmtime_rfnmatchreaddirexecvsetlocalesrandttyname_rfopenstrsignalstrncmpftruncateinet_atonoptindgetpwentstrrchrregexecpipetcdraincfmakerawshmatperrorwcrtombconnectfileno_unlockedgetpwuidstpncpysendfilesemctlmbsrtowcsclosedirinitgroupsinet_ntoananosleepfchdirfeof_unlockedmknodgetusershellgetgrgidftellinet_ntopstrncpypersonalitymbstowcsgetprioritytcgetsidsigprocmaskregfreesigfillset__stack_chk_faildaemonshmctlinotify_rm_watchunlinklistenfgets_unlockediswprintmkdirshmdtreallocfsyncstdinstrtoll_exitsocketpairmemchrmemrchrstrpbrkpopengetpidkillstrspnstrdupgetc_unlockedinet_ptonstrftimemkstempflockstatvfsrewindlocaltime_rstrtodsetutxentgmtime__ctype_get_mb_cur_maxendpwentstrtolisattylchownmmapsetmntentsched_yieldns_name_uncompressclearenvswapoffstrchrnulsyslogsymlinkisprintexeclecfsetispeedrebootexeclpfdatasyncsigsetjmpgetpwnamgetppidfutimensstrlenungetccospivot_rootpowprctlunsharesendsetitimersigemptysetopenloggetaddrinfogetchar_unlockeddirnamememsetcfgetospeedstrstrsinstrcspntcsendbreakns_initparseutimensatrmdir__errno_locationbindtcsetattrmemcmpgetpagesizegetnameinfostrndupendgrentgetsockoptsetgroupsmempcpygetoptgetlogin_rmsggetdup2clearerrpausefstatunsetenvsqrtstrptimeshutdownsetnsvsnprintfsigaddsetctimegetgrnamadjtimexsethostnameputenvfchownstdoutgethostbyaddrfputcrecvmktempfputsstrtok_rregerrorstrnlenlseekmemcpyfclosetcsetpgrpgetmntentstrtoulvprintfsetsockoptmallocsiglongjmpkillpgstrcatumaskstrcasecmprealpathlstatftellotimegmsetegidraiseremovesetpgidgetpeernamegetgidtzsetres_mkqueryhasmntopt__libc_current_sigrtmaxopendirgetenvsched_getaffinitysscanfrecvfromregcompoptarggetservbynamewcwidthmsgctlstderrsigdelsetioctlsyncfsns_parserralarmsysteminotify_initmunmapwait3gethostbynameseteuidpututxlineclock_settimegetgroupsgetuidreadlinkfscanfether_aton_rreadaheadexecvegetegidsetrlimitgetopt_longsettimeofdayexecvpfreeifaddrsfreopenstrncasecmpgetifaddrsif_nametoindexsendmsgstrtoullpcloseutimesusleepgetcwdcryptupdwtmpxfwritefreadgettimeofdayrenamesigactionscandirgeteuidstatfsgetresgidether_hosttonatofclock_gettimeatoitcflushwaitpidstrverscmplocaltimeendutxentswaponferror_unlockedstrchrcapsetendmntentgetsockname_finisendtovforkmktimeatan2alphasortgetlinefdopenqsortexpwcstombsacceptgetresuidhstrerrortcgetattrinotify_add_watchgetutxent__cxa_finalize__libc_current_sigrtminumount2syscallbsearchfreeaddrinfocapgetsetsidcfsetspeedfcntl__stack_chk_guardcfsetospeedcfgetispeedatoll__h_errno_locationgetmntent_rns_get16getrlimitmountmemmoveunamesigtimedwaitpreadstrsepaccesssysinfogetgrouplistopterrsetgidmkfifosetbufstrcmpns_get32recvmsgtcgetpgrp__libc_start_mainsetpwentsemopstpcpyppollsetprioritygetservbyportposix_fallocatefseekostrcollvfprintfcloseloggetopt_long_onlysysconffputs_unlockedsemget___environlibc.musl-aarch64.so.1__deregister_frame_info_ITM_registerTMCloneTable_ITM_deregisterTMCloneTable__register_frame_info.Rcot HPX`hpx3HU  ( 0 8 @ HPX`hpx !"#$%&'() *(+0,8-@/H0P1X2`3h4p5x6789:;<=>?@ABCDEFGHIJ K(L0M8N@OHPPQXR`ShTpUxVWXYZ[\]^_`abdefghijk l(m0n8p@qHrPsXt`uhvpwxxy{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (08@HPX`hp x!"#$%&'()*+,-./012456 7(8098:@;H<P=X>`?h@pAxBCDEFGHIJKLMNOPQRSTUV W(X0Y8Z@[H\P]X^`_h`paxbcdefghijklmnopqrstuv w(x0y8z@{H|P}X~`hpx(UUUUUEUUUY 6o3?"?73333gfff˶$UUUTUU3333333gfUx@6{{_{PvA    PzA P~A PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PA PA" PAB PAb PA PA PA PA PB PB" P BB PBb PB PB PB PB P"B P&B" P*BB P.Bb P2B P6B P:B P>B PBB PFB" PJBB PNBb PRB PVB PZB P^B PbB PfB" PjBB PnBb PrB PvB PzB P~B PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PB PB" PBB PBb PB PB PB PB PC PC" P CB PCb PC PC PC PC P"C P&C" P*CB P.Cb P2C P6C P:C P>C PBC PFC" PJCB PNCb PRC PVC PZC P^C PbC PfC" PjCB PnCb PrC PvC PzC P~C PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PC PC" PCB PCb PC PC PC PC PD PD" P DB PDb PD PD PD PD P"D! P&D"! P*DB! P.Db! P2D! P6D! P:D! P>D! PBD" PFD"" PJDB" PNDb" PRD" PVD" PZD" P^D" PbD# PfD"# PjDB# PnDb# PrD# PvD# PzD# P~D# PD$ PD"$ PDB$ PDb$ PD$ PD$ PD$ PD$ PD% PD"% PDB% PDb% PD% PD% PD% PD% PD& PD"& PDB& PDb& PD& PD& PD& PD& PD' PD"' PDB' PDb' PD' PD' PD' PD' PE( PE"( P EB( PEb( PE( PE( PE( PE( P"E) P&E") P*EB) P.Eb) P2E) P6E) P:E) P>E) PBE* PFE"* PJEB* PNEb* PRE* PVE* PZE* P^E* PbE+ PfE"+ PjEB+ PnEb+ PrE+ PvE+ PzE+ P~E+ PE, PE", PEB, PEb, PE, PE, PE, PE, PE- PE"- PEB- PEb- PE- PE- PE- PE- PE. PE". PEB. PEb. PE. PE. PE. PE. PE/ PE"/ PEB/ PEb/ PE/ PE/ PE/ PE/ PF0 PF"0 P FB0 PFb0 PF0 PF0 PF0 PF0 P"F1 P&F"1 P*FB1 P.Fb1 P2F1 P6F1 P:F1 P>F1 PBF2 PFF"2 PJFB2 PNFb2 PRF2 PVF2 PZF2 P^F2 PbF3 PfF"3 PjFB3 PnFb3 PrF3 PvF3 PzF3 P~F3 PF4 PF"4 PFB4 PFb4 PF4 PF4 PF4 PF4 PF5 PF"5 PFB5 PFb5 PF5 PF5 PF5 PF5 PF6 PF"6 PFB6 PFb6 PF6 PF6 PF6 PF6 PF7 PF"7 PFB7 PFb7 PF7 PF7 PF7 PF7 PG8 PG"8 P GB8 PGb8 PG8 PG8 PG8 PG8 P"G9 P&G"9 P*GB9 P.Gb9 P2G9 P6G9 P:G9 P>G9 PBG: PFG": PJGB: PNGb: PRG: PVG: PZG: P^G: PbG; @A!?TA!Ga_@A!!"A !ABBGb_{ S`A97@|G@@@G@$ R`9 @{¨_@G@{A@! ${A!|DGA@CcG@G "@ C_! O RWu_@y6 sqTs~S@9@5!5*WA_BOè_Ҁja8ja8kTHT@85sOR"r TAR@3޳>@qd@Ta@85Q5\?z`'w`@9 qT`'q`,(m>@k`@94(qTdb`@O<@qTO3RO_OWA @@!h<ROO R* RO_@85sQ5q!RBzT qBRBz T @@9lqT @`a!P(]5@9A__O*WBUA<I 4JR!kbc$b8a#DZcxS(cqT4`l(;5I6!!"s@?A 92OWa!(_g#@@@RFAR*w RQssR\?y`'`)`@95`R#KkT w1R ~@s4a!1 7sֆRxAR R`@9 4@@9@4~S@j`8|S z``@85@a!15; @@9qT`11 @Ua!825@G8sR S?@j`8@|SB B{b?4@@@@Dq`TV+`@859?qaTGa!P({5 @@ <@7@9@"<=p7 @<@#`D2 RZO`( S@`>@9?qaT`>`>RA `>@#hb8c5_Bhb8k TOWWTdTs&qsWAO¨_RC@95_c4Ehc8$hc8k`TBC@85OW_, 5*WA_BOè_5`jw841AT*s`@95|@R*A5_@85@94!QO sjR;@9?qT!Bh @BO¨7OR@O_ORaT@9A4O_OR O8@9?qATaT@9"4@95@9_!k_A!tGO @'CG@@@@@4<=<=?A!tG'@"@ҀT)OE_O@tG@'CG@@@@`4w<=<= ?`l `l g YO tGW_o@g #@ 4\R?@=9*@s @3 R!K?qcC-T~@!|@<3z~@==<<=8/{ RKK@kLT~@===*7{ /@a ! ! !|@~@`/@ARRh"8 #@6/@~@@Rx #@6@a/@!l $@B3/@@Tc tGg@@B Tz~@3/?@/@/@BRR8/@84@94/@`b;8{ /@A 8/@;{ g@v /@@;]@OMWN_OgPoQ_!!tG+"@'<CG=<=9kO3avG"@'<CG=<=svG'@a@@TOE_OSRa&C^|@=?=`R`&Oè_O3avG"@'<CG=<=svG'@a@@TOE_`l `l `l y@H@@?@@9OaR *O*X72R*I @*O¨_OaR *@*X6xR*: @*O¨_"RAR3*4ER@R*RAsrd*h5?qATBqT8!qaT_R46KBQR#8_I)+bR 9 A_I)+bR 9 A_*;aTD#_%hc8cDӥ @hg8he82$828C@"h@@R$@9$4TAR_փQc$q T2dQq(Tc\Qc%@9f SQ$qT*9! 2QqT\Q*95!#@9qAT!q@zTR"9@R`B_Og ROO_@ROW* OtG_@ҿ1T R3RI5@RF*`5C5R@2B***aR7R5@yq@@y2*QR_kR@@y2t`*QR_k Ru7*y tG@@BҠT*SRRROA*WB_C_O3avG"@svG@@b@!@TOA_18 A!2qA*_RRR%OOW*_=_|_<^@r@B  =c <}ra@~ =" ! ‚ =v@@`~v =@85BRҊ @@@4=t@@`R~v =!!tG'@"@cT;q`"TA!(;qT@9?q T`@qT` @\qlT`@|q T`@,qT@9`5 Rqa2aTA!;q"qbBTA!;{ qT`@Q`*qTAbR!;iqT`@Q`qT Rb@ QkBTQk`J!LqAT9`@qTC@OEWF_GC_OT>vO_W"O*BtGA@Ҁo*BB;y"BtG@C@!@TOAWB_W"O*BtGA@ҀL*BB;V"BtG@C@!@TyOAWB_O3`vG@# @}svGH! @@b@!@T^OB_O3`vG@# @H}svG! @@b@!@TDOB_O3`vG@#ssvG@@b@!@T0OB_OWR6Е^oB@@qT@;@WAOè_n@WAOèC!@9!4#Q"cB@@$q T!2!Q!?dqiTA@4@R@_RA#ctGOa@S`!@9$@@aQ!?$q)Tc2cQcdqT@R#ctG@b@!Tya@OA_#ctGOa@S`@9qAT@9!$@@aQ!?$q)Tc2cQcdqT@R#ctG@b@!Ta@OA_#ctGOa@S`!@94@@aQ!?$q)Tc2cQcdqT@R#ctG@b@!`Tv@Ta@g@OA_#ctGOa@S`@9qAT@9!4@@aQ!?$q)Tc2cQcdqT@R#ctG@b@!TCT{@ TaTa@1@OA_W 5vGO _ g o @G6R@; #@(('HS(6 @@(> 7@H>+ @`Q*@?.@A!>@< J!87(6 R|R;+}R;Rvr@;@86Q!kT@R =h;;@?@1`TD@+@> G)@@> 7Ҙ0R!r@?@@P?ً @@=/!?3@?cRX07'@=R,4 @@@DqT'@u 7@A!>?@?A;@?@1!T;@?@@A!<@?3?@7?;@ G)@?/@?34'@7?S@7"@RKQ R"R'@ G)5'@R4@5 R3R1OIWJ_K_O3`vGW_go@@U4=I#B!T^*@@GWXS?@[vG@@TAR]@8 P7V6@C : q T T`R@#@sJ@>aRA#q+TT@ R@#OCRWD_EgFoG_Cc3W4BvGO_@'@!X]G}`ajw@a@ @@ab@R^`jw <@@9qATR4@$NvG'@@TcG@[OERWF_G_"BtGO W _ *@@G <@ @9qTB!hF]* K4=wR@ q Tq Tq T @ORSTA< <q!TO4@#5@ @qT@RĄTAR? >6RY1TTq@TR"BtGG@C@!`TEa@@?kATa@@P@<41T `L ROIWJ_K_@RDBR8`7AA_ D@N6@A_ RRD@`@pA9"*!*4q9!`l@bGR!*laRxAR9RyA@"BtGOW_go;@@$ D@(`@T`Re"dcBb!`r9Z\6`@`%}"BGV}Ӗjb`@@9Q$qhTajbTC= @ @`1*6G*R(kT@ Xw2@zw76`2@a !4@6@`2(qmT@xAR@2*7!*?AR*_* R6AR`<!R**AR qT!63 H!> R>@!R) aR `@@9_qT@95RqT@\Q**_qT@<5`R`@ARRRR2RR`@z@">R7!RRARRR7q@zT"RR 6@}R@`*R6@0qxR6@Xid A*RCct6@!RRR-RARR4*7`j@iRRJr R**_`jb 62`j`2 Rn9`yJ`6`@|J86tr9MRu*qMT` !p9T@9!Q!?$qT*qmT R`9R!7l`@nJH7J@ P7ԐRZtrZ rR@)RRJ(7a@`@uu @@R`"RNT|`@QqTIC@9(qMzT"R&T/C@9q T` 87Tq TT4qT(T(qTT qT$q@T4 QqTP9C@9`r9`rB94RGa@҂B?a@@`9T@!џCT˟ `2@q T6`64@X|qTqHT"*C@9`8O RsGMa>@@ RctGO W _ g s`@O@pa`)cG`<`uq*'R!c9A!tZ @7cG`az`!RsG (7 R'4R!`>@Rm @ @ @@0 R<@aRUgvR}GRRcA95ZR u1aTr4@#@cc@|(qTZqT`$Q\qDz)T"@Rc9pAR@@9?qT9cIT} *@YOqlT@AR@@9qAzAT @x K@3@cAR!%q@Tc9@7@@4@@@9`5R@@4@Pъ@R4RR/*1T5 Rc@4*qT**/@ @+@qcROq@4T P9+@_RctGO@b@!Ҁ T@!@!@)0RRa'@4@( X' @W +V֪ @U T S@s& @@@@@@#@'L@!R~R!@@H@RT [@5@@4@Rl@@R@ *@7!R*4*@AR! k Rs@OJWK_LgM_RO`vGW_go<@@ `R# <@BCA! Y*sGue* r }ӠTs5ju@*KejuJ34@kT@ #@@c@ ;5?5@@ @)4@qT@c>R?t @ @"@9BQB 5q@@zT@ @@  @s4@@94@ ;J@}@4@A!( RPJ@ @ #J u@4s5@J 4@`uuu R#@@}}657Bh@,x@,@@ RR?!RRIRҴqLTTu>ҫ6@<~64bB' }sjssJ@PsvG@a@@T:@ROYWZ_[g\o]_WvGO_g S@/g*#CA!WG*t`z`@9?qT@9`52"@"R`! c4*>@KRR:<@ I5RAbR @5J@rRq! @ l@*+sjMqTqTm5ARRNI  4 < i@@V x5@ BRRRRJqRtGO W +_ W6g v X@Os 9yI!(XWR!@r@R!pu!0Rq@R#FRDAR 2RH!RR;!RRB@ R#9@RcrARRRCr@c} ="A&~<p!x=!2'@ <&`@@ vG@@@T@@ @@] `@OBRWC_DgE_OWzu`5Zus@WAOè_OavG#W_"@K*"B((TqT`G@/ LRR/@-*4qT1T(qVzTrT@@*H48} @H48@RO+O@`R3s Z44@"B!B!=`5@!!(4@ @+@-q~qZ4&g4p@@ "!B!`"!B!(Y !-SJJ` 6*`5o@k@R@ d@ ` @ \@  X@P9xk@o@҆!ҠR@ @!% 5@R`G@ۅJ`6ҠR*rTPsvG@b@!ҀT@@@` @!!4 @!!04 @ D``@9q!T`@9qT#@` 4%S@KG@sK@ |@aa8?qT`@9qTYTROYWZ_[_C_зvGOW@j ҪD C!@0U6GjvG@@!ҀTGOBWC_DC_OW4_*gcGx@R`!7G@ @4RK T`@9qTF@*c4R!kA:T*WA_BgCOĨ_O@94 qT OO_*ҰOW5j@9A4 Q$qIT"2BQB_dqTK@ 9WAO¨_֔O `T_8qTR`8 @O¨OW_RR R@9T5?q`TWA_BOèqR$WzaTq_jT8**TR{S[cksрvG@ҿ<}D ` ,+` aRRI`R[``"Ѹd!5%WR]R@9$Q\qDz⇟AR[@4qjTw qTR=&5@4! _!R[]l"xz_lyRSA[BcCkDsE{ƨ_O8qT@t)=D@`@4s"RqMT@<BQ_qT 5rT~N9 @O¨_@@? q(T!Q? qTT@ _@O`@OO``B``OOD@``b``O@OR D@``Ҋ`b҆`ҁ҂t2 @`.O¨_OW_@TWA_BOè_@sAӁ@`~!h`@q@4kTuO @!?HTa@`@~`t @O¨_֔O@ Ta@`@~`t @O¨_O?@ 3 @T@ @O¨_9O Bҁ@ @ ` š#8$T @O¨__OW_@ITc@`@| wWA_BOè_!O`vG{@oD@`svGo@a@@T{@ON_CBtGOWa@@@?T`@#TBtG@A@@T!R `@TOCWDC_O!6BҦ!OBA@cB@T_!O A_BTQa@b @ E`@R`@!` @O¨__OWTu@_T!` @`Jt9WAO¨_AO!BGW!#_BX NJ*  $AJ2 6<@ X$RBGA`@WAO¨_րF@@ @OW_D@@" v@ &>@>~~@=?=g@`>@0v>WA_BOŨ_!tGO"@'bJR_jT<CG=<=`J6D@A5 R9R!tG'@"@cҀT ROE_OavG"@'<CG=<=D@A4svG'@a@ҀT ROE R_ctGO*W_+`@ҖbET#BR@@5@kT! !L&l RctG@b@!ҠTB+@OBWC_D_@OB{_)T! !&l RO_@_TBbR!R_@FҿTR"_@cфh8D_ DIT! !'l jA R_@9B7! !'l \A R_?|q$IzT?4q$JzTR_R?q T 'IA R__O!@ a@!! @aO¨O!D@W_3,@w@v@CtWA_BOè_`TO! @ `@9a@b @9`@@T?T} ԉT# @O¨._O@ ` @`@9R`9 @RO¨_!@@9a9@@_C cbT%h@AT@ˀ@cT _ BRLRhTcDRT5` Eh8 i#8cc  i8h8   `i$8Bi8B A"bi 8i 8b OW@{` @`@9R`9WARO¨_"@j @9+@9?99L99A@9@ `TU@9 Tu9a@@ TA˯c@@` @duJ O!@ T @O¨1OW@T`@@aT?T} ԉTc_@@T?TV@WAOèT"9Oc`nG@[4 \(,sG`@T@5O_G@L4 (R%OD@`R?T RC@RAO_OWD@6R4`@`;hu8,`@aWAO¨_OSW_@RR 3D@@B?HTX!T@WA_BOĨ_s~ Ӛ@s ؚOD@@@AO_tG "@RNtG"D@A(ABA|CAhac @@@!@T @_!WOWCa@TT} ԉTWAO¨O D@R @B@hs8QQc!dq IziT|qaTssр @ @O¨_OWD@ @As@sa ?ւ@WAO¨OD@ O! !(l ! !)l rT! !)l  )O D@ @ARK @ O¨ * @O¨ l OWBtG_3@@TTBT} TbcTz@b@x8R?*x4@BtG@A@TRUaTTTT`Tz@`@z3@*OCWD_E_A  '@9@960k@#@˥˿ c c#҇A  wuA @g$@@|@=`OW!tG"@T9#!tG@"@TNRTH!Q!$Q9 9sHsOAWB_OavG"@9D@,@svG@a@@T!OA_OOD@,@tGO@D@`@Z<@@9?qT`.@`RtG@@BҀT` OA_O_ _Q#j`8:D@WDsRsg Y@g@T@qATs#@WA_BgCOƨ_րQj`8 kTq@zTQ^@RqGzˠW@tGO_'g8C*o3@bv@ 4`G@@TD@ A@4`G@T A RZ_ vGR!h_*q,TsvG@a@@T{OA_CWBgDoE3@@94 5`vG@@BaT_C!@oEgDWBbGOA3@R@`5*`41T4 (T*@*9*qT4!@! *OD@` @@9A5a@`y`O`?HT@9O_rT"D@A@!AA_C_ORtGW#@D@u9<@@9q@ RߺqR`` @@9T4rqT` @@9?(qTa@!aQ$q)TqTz'TqaTX5*a @*` @` ߺqaTuH`@`vtG@@B@T#@OAWB_CC_'@9@906k@#@˥˿ c cҬOW_gotG@+C@s@9RtG@@cTAT@@9qT?T?T@@9qATJ~iT?|hT!!@R@5 )'@KR @T @@i8h8 ` ` @i!8@A@Hi8(T Hi!8 @5qB! Rs")#%!Cc   a@`A@@B*5 @;*5I*5@D*`5>*5H*5A*5@& 4!R@ @@@o@@[@G@3@@ @' 5*5*!RC*+@WA_BgCoDOƨ__O!tGWg # @/@@_T  _C B_W"9C948R@T@R!tG/@"@ҀTn5*`5a @` @BTc@Rb@B`` @` Â@9@9tOF*WG_HgI__OtGWgo@` @5R !*l tG@@BT( @C_9RT`@`@9qATc@9@9\  @u @hT@a@?T!*@a@?T!! @a@?Ta@!h8!4@Tj@@zk$8b9@R@BF'TRc@9@9  G @@5Rh8a@"5Dh8%h8ck4BT@'h&8@a55ROC*WD_EgFoG__OtGWg;@ @3R !*l atG@@BTo @Re9a @O*5*5*5@?T @u@9‚@9@99@;@*OCWD_EgF_WO_gvG3@C@@s"*@vG@@@TWD*OC_EgF_WOBtG_g5@C@@"TTTTBT} ԟz@9R@`zC*y4@BtG@A@TRKWD*OC_EgF_WO*tG_go@Ҁ @RR`?tG@@B T# +#@cuCq@!kc9@  9;*/G@*5 K@cdT@` R @@hT5 @43R@$k@"W@ C@c'K@7`5@ @5Ac''@cC`@ R`?@ @c˄@z5@@9`?@`4*@*OTWU_VgWoX_WOtG_go@Ҡ@!! Au @9R @966R !'l tG@@B`T@T@!9?q!T@99s"9Rc 99g@c99@!T?@R@R@!!!@9'@x##*5*5@*5~@ځ @_@!@A @?@BAhT-@T!o@2[@03@.@,u@*OQWR_SgToU_WOBtG_ g [A@7@_!T@a@ ҟ9 9RBtG7@A@T@ch84 !0+l 3R!c @9@9?T@B9_qaT7@c99l*#_`5Cy@U7@" ycT֒@U6A5@?T @T989*5A9*`556Z*@5A@+ 'c99*`4 @{x!@!h8a4R[@*OGWH_IgJ_OWu@!TJ R@WAOè_`@a@~!h`@4` @T!u @`@AB˕VaB|b@C!tGOW# @#D@@*`5 @@@@5L !tG@"@ҀT/#@OBWCC_!tGOW3"@@R>@!@9?qKqT?q3D@t ``B @``  9 ҟBpaA 9`bһ`ҷ>@@9qTh; 7`Ҥ`BҠ`Ҝ` `" Ғ` Ҏ`"tB0C`>@@9qTl+f``# @%m@95!, i @ R44Rt@R!*!tG@"@cҠTBRq!@@!@5^GF >@l@9493@ODWE_BtGOW*_A@'3D@55tsB #@C* 4q_@`@s@~w4 @`j5@@@BtG'@C@!ҠT.ts OEWF_G_3vOSctGWb@ AR q @zTR@R?@ hT RctG@b@!ҀT`@``@@C v7#D@ RR `@3@ODWE_C_W!tGOgo @wҡ@?,q%Th%T?(q T?$q#T QqT"R!tGw@"@c $TУ @D@<@@9qT\@P@c"t@ R"9 @9 4_qT5#R!ZAfAQQB_$qYzT!+ l x R@9qTR @9 4q!Bz`T*q`T@95R! R`@94qAz`TT@9 Q$qTv @ 9!QBR@ң@` `9!Rjv8c@Qb @$q`h"8` @` рjv8qTcC1CWC7*QK@94qTqQQn`5kO4@S@9@  9jy8 4QQq9H@5@k(57@4#@R5@5` @a@?T!9@?qc@ qaT`@T`@ `@ @T`@a@D@ D@ +Y֞@9@OOWP_QgRoSC_O_ЗWD@@T^4R; A`!=5`@*`5b@@B@@?k T@@ QqIT@@ @d4?q`T.!Q?qTz5$5a@!@!Q?qITb @*WA_BOè_O D@@ R @O¨_ X5@!@!Q?qTa@"@! @_OtGWgo@D@`@T5R2x"ߞqT@RqT* 5@Q?q T@@`@  @R4`@`RߞqT@R,5<@@9qT` ߞq TRtG@@B T`@@9(T@4R`@` @р @ѿT@!h84R`@`9a@?@ T QDR*B$qTc*9"c qT @|@ߪqTl a@ `AR`.@@@95<@@9q`TRߞqT@Rrq`T*`@`@95@9 5/*@zT R`@`45aTaj`8;/,OA*WB_CgDoE_c#!tGW jqO_ [ @?C 5c@@@qT q`T R!tG?@"@c@ T)*@R~ @/K6D@@?T3R*"#*qAzT(,Ajq!Tq#HzT@q!Tz@5@'@!Q"qaT@D@TCxRRQuD@@?֠5_TXal D@qT|[@OHWI_J_OW@T@@`~!h`@qsWAO¨_W*O!tG_ g o @7D@@@`g R!tG7@"@c TY#M@qq?kaTM*@q!T5C @;'4R#5*@5S$`@aTqTqBzTR q#4@AR *T CvA3AB?As@s!@;Rb@qBzT`@k!R.a @Ҋ#@x@'`@T~OGWH_IgJoK_OD@W_vuR`@.`vr`@`` @@94a @a<@@9q`Tb@҃j`8_k+TJ)06 @9$Q\qDz)TA` @` a@rATR*?q#TH&T?q#T?q #T?xqT? qI%T#$QTq$TXcxc` !Q!?dq#Tw @B,Rj`8Ch`8d4kT4!B ?PqT.`@iTAR-K/B`@ qaTbR`@PqT#c"B-!--.5R4;rT!.l W6q*T(qT`@`a @/` @` @B`.!- 5 BR` @@9q!Tc.B-!--5` @` R`u R`R)! R@WA_BOĨ_! QafR` @@9?qT` R@bR`R` @@9?qT` R`R` @@9Q$qTR@R`B.!-@` @@9qT`R`` @` qTa @ ` @9q!T`@!a `v^5!.x(q!T`@`"R*R!RRAR!Q` @@9?(qTaRa`  RRs Tj`8*`Q$qT`2Qdq T|qT `*6` @Q` !-H/Y5!XQta @!@9?qTc0B-!--H5` @` RR R`*tHa @ ` QRB4TU"QCdq)T?qT?qT?qT?q(T?q T?q@T?qTT?qT?q`T?qT?4qT?(qT?$qT?(qT!Rab8b_qT?lqaTR8 rTlqTa @` @` `@`@R` @@9?qT?q@T?q@T RgaRa` b!RARa @!@9!Q!?$q)TWtqATTa@av` (qT`@`D@`0@d`,`A!tGOWR_RgRo:RKR @D@R'`@vf@`0x@ a+ ؚ@TQqHT@ X`xa ִ6(,1'@pQQ?qCzT{q*'****5.{q'5@`@!qT TqTTqTQ?qT<Qn2m4 Rz5`@qT0@R\*Z**4R!I564*`5R7dR7'@qR Q/'Lq`T`<'@@qRTRR*u'@pQQ?qCzT#QqQ9'*d+@Pq RRRSqT7`@Pq@T0v'@Dq`T77'@5`7'@DqT5xR`f@HT'@Dq`T@T5757R!tG@"@c@T`f@"Tt@qT RQ**`Q@SqdGz`f@T7|7'@5z*'@Rq@R/7<7'@5`R'@R R7|7'@u5?Q'7<7'@k55`@q@T@;R@R RS5r2*`5`@qTqRR'y77'@G@55`@qT@;RR'*@5`@qTR`77'@. 5*5`@q T@R'Q@RR' 5y5`@qT@X;R*@0`@R`b5`@q!T5`@q TR* R5`@qaT@5`.@  `@q@ T R`5`@qT5@Rvb RC`.@ `@qTR@5`@qT RR#`.@w `.@-*5 @R@YQOBB!-H3Z5`bB !B,2!-H3KB!-H3C5`RY= 5`@qT5 R 5`@qT`.@#HRZ.*5v@߲qaT`.@C8* J@ @`-n`4*3@03[`5`@qAT5R`@qTRRE(`6@!p6l 'A 5t@QqBzTRR/5qT`@qaTR!6T2 5&5`@qAT! 5`.@vbCw # `.@ R@5`@qT @R@/*5@R @?O D@5@qT5@q!Tt7 @ RO¨_ @RO¨/OavGW_go+ "@7Ҿ*@58/F@@4?@!@9?qTqT5@qT7@!48*5S 5@q T53R@qT@B2f.@9`5֚-R@qT5@5@qT6@6 R6@!с65RK@@xq$@z!TI 58@9'8@+@!@GTk`8 qT'@X{xa R<qTX 5/@  5XR@qT.@ d@ d@E*5@qTqs<5@q T7 )R/@5@q`T.@*8 54H8@5!8T25@qaT 5@qT!9l F@`2@`.@`.@`@`` @Ya @!a `b`z R@tG7A@B`TR95d2,4?@@9qT@s!F@"@kqT* #5@S\V+@/@TR@C9k @sAFF\5@b ";3"F@I4Rm">!#@|!@ h`"40L@!:l b3Rvg@TL:XF@# f+@z7@AT:`/@?CT(e @|@@"_⇟q_k`The59@@A @@@ 89ZC!RM43R?` Q_qTs@k`R;F@ e{ RRK*@)5_qTYCRx5s@OqaTF@Ja  @ KqTF@Ja  @ C9 9@+q`T'qTqT#qTqTGǟ ן@G@ җF@ @5?@@9qaTR*5@xrT;3R@o@q@{Rj fRR"n"5{qTRkF@ S;5_@@5@{@)T!`;l ^@NC`Rk[ R #"`kQkF@qaTz@Z`"qaTz@z@F@`@`$ `  j*5A@@QqT@@ @q`T  /@qaT @@b@,*k435@\T;[qT@@qT@@qT@"@b# @c!@?Ta?@!@9?q@@@c Ch84!@R" @"T**RCRK5F@e/Q!@$es@@?*4@W 5C@b @ 9 9# j m5@D@CF9RC9k*[F@@@iT#R @5A@#U@5A@ QqiT?@`@``@ QqITG@ A @lA @`@C@@`@@!0+7@@?k@T;@B@@_kT 5 @5!*3Rl F@96!' @#CA @<#@@7#@@39C ARC 9 @C9 9* 5@#@#g@`@_@K@5@B@#@`5@Te@55@@@9qT @R5 @@4*C#R^@5 s@a @F@ @_@D@*4@@@#;NF@ @`X:#qT" k@ @k`85`@ @ATR8RQy8 4@@@ @@u3R.G@@@?qT@x _@a@x@4A?qT*5@@a @a*5@R: @4;R0L{5 RR/*@5Z@_T" F@z@k@`"@3 ?(qT? qT?qHTT4!Q?qT@ C# C_T_BT} _T?cT<_=@@ >|@T"#3iTTTCT!=t@=tTT=t@=tTTiT#T=t@=tNTF@@@@#@5`@Q?q)T_@`@``@`@C  \@*`5;*5@C9CGABKAAT@9s@# qrRk@qT` @r@@9_@@`xs@9kaT@9`4sF@@ L`5`@Q?qiT@@a @+@" RqT` @I@@@q"R"R*84@HT;@A {5@*`z5F@"@@cT`T@@8<?@@!@9@?qTl<``.d5b@@" @ +@WA_BgCoDOƨ_OSD@WujGa ``v-@b@_`TWAO¨_O_JW 6$/RD@AA(T<@@9q`TJ(6@GWA_BOĨ@{ta*@*WA_BOĨ_Oq  D<*34J7<@X$ @O¨OgW_*qoG<{:G"=+R*WqTqTTqTqT@@@5R G@hap*f*@2G @`WA J_B*gC oDOŨmG@3 @ 1RWA_BgCoDOŨ_O3RoWRR_Rg9>+Rg\r7-[G*7@g@*qTTqT4eR**!*eRbsqT*!3RRRRTqTqTqTT1@Tq`T@G@Cb `@?b*@G@:b*`@6b*1aT+@RWA_BgCoDOǨ_"tG;C@7CG<gFoG@C@C"je8`4b3A 5c 6_q RZ?qT`BRC@sQR!Rs!qeaT*38BqTkT`@9qTc* R 5G@qT @qTG @js8slATvG@@ҡTOC@RWD_EgFoGC@CvG@@TC@OCWD_EgFoGC_OW@@@`WAO¨tG;"@7CG<<G<<@qT(?==tG7@@B@T;@_"tG;C@7CG<@J2q9 @O¨_W vGO_ g o k@?)ID f#b! '(*#@!pF@@Rk"9 r c/@*6/@ 3@&qT t4 +[&qmT @F5~F`@@2%*`:@@ 4R!/7c:@B` HA RF`>aR*a:@c@y*% RC@rSRy`>@ARγ`!Ry`>@Rȳ`>@! v`>@"RAgR@AR!*bRlARb*ha^@?q TT?`qTT? q T?@q T / R`>*aj@RKa>av@KaBa@K`F`^@|S`:`R@@5`J@aA*#RBR|D`T [ d:AbJ)cAB|!a* '@ @4`>@!, !`@@9?q!T@95G@ׂG9 a?qTa@H OR7`6`@YW aR9* qT/@qTD)Y 9@:a.@b&@`F@4 4Kq@ TC qcKtRt6KRB _kITK`R{*@!`J@?q`Tb ?qBK[ ?kITK <R k Tö'@@R'@XG@T'@!R19:R@Rk%`:@ 5 @ 4A R!\ bKTC K{A !B@?AT+eTaA Rh@ @|a:A~_kT!@9J" @9 5@8}*`:A@@9*BQB_$qhTq(T@R:`A9`7*@RRSԐR rK`>@"RR`>@RAgRy`>@CAR`>@(aR*Dc@y`:@?kT@*m$b:*RvG?@@@TNk@ROHWI_JgKoL_ѢO*@tGW_g o @/Ҁ@` @A6 3ARRR9A@8A5@*@6 @!#{*"9R@Rr!~w Q R+y I5C!qT@@@qTvG I/@@! TT@3aR@qmT|@@q,TGTGb @y"4҂6ka8C48!B|S?@!T9@a@@9_qbT@95zb?q@cBnG@n`@x6QqTa@@a@@!@Ks!zb?q`BcWOFWG_HgIoJ_֠D@J"@#@86 RkT (@b!C)_ ?k_ @B _k7*D@@@kHTQR7@(@Xa__q Tq@TtqTlqTqT RQ_QD@ (@ (_RAD@@D@ @` !D@@aX7@AO**#OOD@$@!QdOW*D@`RA4uBv`@kT@WAOè_`*@RXt5b A`~@4"ha?kTR[a A`~"b !OgD@WϒR_ro4@+?kT6'@@J@6"Q7_A~@7 @r!T!+@7X`7԰ѭWR`GC9??_ CkTR w?@@@C@R @,qaTҵ`TqdTGRG@? w@RR= @? T7RaG!h`8? qT" @b_8$qTB"  9BJ@6?lqT"WA"4"QB_qTb$š6?q !W?W" @?$qE }k+T" ?(qaT R? _ +@R"@xZ +`ї!+@"@$x"!@ _A`4!!!@ϒRr?kT? @ T@@@,qT *! +@WA_BgCoDOɨ_@R?q!89h5!A A?kT*!A A4@?kT @T @ 7@L? K@/T @ {O *D@qT @O¨_`*@axaB__kTxaB_kT!"_q Ta`a*@`@!`!_kTa@kT`@ TD@J"@#@$ @@86_kiT*# @!(@!b!_ ?kTKAc@ kiTbK"B6?_{S[ckstG@ҠD@&@ |@<|pc c TC@ <@c CTCJ@69#Q*@RRR@_<)@9a94"?$qp`?kLT9s`s|@C^b~@@GT@T} ԂT`_^R*YX6?kT@kT_C*R~}kz4@k^@kcTC^\@_kT!^*^~@Е tGR_@B@T5SA[BcCkDsE{ƨ_=O W_c-tG@GҠD@z@1cT {*`6z@1`T@ztGGH@B@T6@Ri*@7#*d*5@  @q!TϒR#r*Tz*jb8?(qTkTBTT c-WA_BOè_֠O D@@@ 66@ b@_qTf@ @*Q*Ђ"@J86@b ks**, z@7` %4p b@?q)Tf@?kT:@!X` @O¨, &*z@qT| Rs s kaЮ @O¨_֠OD@`@6Jr`TO;`@45O@Ra6@cb@q)Tbf@O !t O<O_{RS[RcksCtG@xD@Ё"@?kT`J"Rj@T@_TR@07@@K?kT| {~}`J6&@.@hu? T_d]l&@RAhu&@!4<p|@pc c TC@ <@c CTC@95eX ck9R"B~_JT4_A!h!  .ij]\Qk`84YiTT#RZTT} _K_$R\s<p|@pc c TC@ <@c CTC9C)`@95îz`j`84ѭ޲cdja8RqTbRlq@TbHd8k!8!Tk 8s<tG_@B@TkSA[BcCkDsE{ƨ_֠СD@!J@@'a86|} 4C(@dha! cha_c_kTC @RD@kBTk#T@$@D,@X!!QID`|@_&Y!kT4x` _kT!kT OD@`*@ @``6@ RR `z R`^$`ZA4  Y @O¨Xta@`*@?k"T*Rt-T R!ҫttvGI@@!`T,RRARRӭ4!!`qT"*m#@7!ҎF5R R AR*Ri@4ARR@OPWQ_RgSoT_ѣctGO*W*_C+֚`@`Rr @k(T<@@9qT@* *`4?@@9qT*@s ctG@a@@Té+@*OBWC_D_{S[*ctG`@҃@*@<p|@pc c TC@<@c CT3QcQs*RsCR]k#TctG_a@T@ Rs4@ Rn@ @SA[B{Ĩ_ѠO tGW _ g o{"@O!4'A!l)+#>@!@9?q!\A TcC!X*@>@G"@9}`_qT@@++@@9_qaT@9b4!@9?q!HR!ҳ>@!@9?q>@@9q`jv!xSų*!Rr6*baR '@R@N*>@@9q!T 6/@R7NS @!K?k>@sZ@9qT(63@C40>`4s!L[R@*QjTL/;R@ @@ )@;@K _ jT***kT>@@9qT*@kR֒r;_kBT>@@9qT@K ?_ jT***?@>@@9q T@*k T*R*@@ ?T>@@9qTX:qTwK k!K RkBTqTk!K`K@ kZk*֒7 @"R6@@V>@@9qaTU6;@*kD@@@H@Z ?T>@@9q@T7@R_X@tGO@@B@TC{@ROJWK_LgMoN_OW!!hGДn `@WAO¨_Rd@KR**ERҁ"RAR_OW @{R*7BRR***~V*@`@*WAOè_5RRCрtGOW_ g o 4@c@7Ҵ5@ @@H!1 *4!T@55!L5VR"RR!l4!@4έ*6 M****66RXR*v 69s*ҟ TtG7@@B T34@9kT7#@kaT6@#@ qIT} !P8Z@@Rr@@%858#@?Z@9qA @9qAX@t5@!k5@7`R997@R#9*9 c@ROGWH_IgJoKC_OWR`@95*WAO¨_R 4csR5A_O`vGW_g o [@/!4*sGv}Ӗ@2 q9@ARVq*D@z`Tԭ@/7j`ARH*7CR7U 6#9Sa@*჊R6v R:@9_{q!1@T,X@Q_qTb @"$`(=s"_{q#TQ_$qTp#@! #!!`x#@*! `x#@ #`@}`@y`@u+z@$X1T`@d/`@`cyz@!R@4!*4O*sy*჊Rv7*aRr@7*Rm6`>Q*RjTsvG/@a@T'7CRS*6`#*7@?Lql T$iq TlT q@ TqTW5C),K3sj#@RR k TlT@qT TqTT@qTqTrT{ {dxj@TrT$QqT*4@@#c@ATaT3sjB@`4C)s V!C)/@34sj<@B)E)c@yXs@y4R?kTĤs  4 գRˣ#caRR!RARR_{qTsB\qT![`xbA! [@ROFWG_HgIoJ_O`vGW_goK@D* >!+@sG!Rs@jJ*|@@"@9BQB_PqT (š`7 @9@4v~}s3jv `t<s"`Q\+`@I`~@@+R £Q*xqIzTk;TL?K68T @@6a@H@R?jT@A7k(T?1T`@@!@R'@9R ROW_@ hqTP9aT@!*@Rܥ!`Rإ@ @R*kTf@!AK@  1!TB@@qT @R`RWA_BOĨ__O!tGWgo @`K`(#c!#i!G6@6!6!"SR 6~!HR@r"!*~}6*!RI@Z+@<BQ_q(T D}R@4R!@} š&qiTTR  R9!~Z?a5r T"h"k5G @kT 9$Xy`O@9q`T@zO<kT*@X@@5K@ (@qaT"R`@`f@qAT@Tk!T @[ @|`@`9ʦ@K@@OLWM_NgOoP_WvGO_@B`@$9`Ga@ @)#vG@@TBOARWB_C_рtGOW@RaRՠ5@y@y`@@** ߠ@RԭtG@@B TaR R 4aR@R4R R!@9?qT*àa@!?qaT* ֲ @ROAWB_CрtGO#@ @!@Φl#RR*g#*L<#tG@@B@TF#@ROCC_"ҁ`R!#A`R#4HтCBtGO!#@@#LR*s7 RE6 @!>GS7@s~SRr!-!RBG@z`aR!R4aR@}RBjRr`RʮRr`RŮ#y4"`R<*|@!G*CтBtGOW_@#7tA@!#?`sG` #$ @(ѠcTBtG@A@`Ts"ЁbB=ss`].3$s*!\$~@!l$4$"#@ ROAWB_CC_OWWAO¨_a@SEA,"(.@ @ (.s@Ob  hD@J(7!.lG@@3 @O¨_OW_goBB@94$kRD@DR`@*Ht88 : u4jz8?kTbZ`@@4b tB`@  C"T!C BT} L0HTaB `Q`@ `Rh;8yz5jz8T4Q~qT$&tN4 @b( B90`WAgC`"_BoDOŨ-уctGOWR_Rg#:@`@A{v?{6q {62߂T*@@94V2Rq`TK~@5BT} 2 K7҂@ -R!Z"t@R2@~-@[Y ZctG@b@!ҠTt@! Z"ҁV@֠R@@OYWZ_[g\_Cт_*AtGOW#@ҁ@ !J(7%#(Dbҁ$qGD@BDZ)bҁ 4~T<[s>aڪvG@@@TOBWC_DC_O TW_g#c-`vG@O > D#!D%sG@su}ӓju !6[ q!Tjus"c%7ΫR`@U`3R\:`@@99kҺ@+lzwT%!R@+_%^zusx-CڟKB`3!R$94:a@b@+v*@T` @^s@@E ,(Zp,a @N`"@@s@AT%R%&zux"W,a @5`&@@s@!TR& F&4@Cc*c&jR8F&RsvGOMa@@TF Tc-R#@WA_BgCOŨ_O 4@TR P*4& @*O¨_с!tGOW_ @'Ҡ&/.?!'0'N|'844@ RR!RRb~` Rc'9R7j`r@/5!tG'@"@cTߞ4(t@@9468a@c?d@#@bRf@PqBKB0t(OEWF_G_OWJB|S@QjaTJWABRO¨@B$*>q,TsR۩W_CvGOgo;"@ҁ;J p`@9q` T!|%(p@(LvG@@`Tmv8֢  -URR`+6@+@6ׂ_5"BqT- @B@9<@9?qaT!_8?@T~9 WC_DOBgEoF;@vG@@T;@OBWC_DgEoF_O`vGW_g# @_ 9aCc!#4rT J02 G@c|+!|%(5!.7@ Rjr@.`5R`ZuvG_A@T؝@ARt9R@HX}`jy@R5A@%wj9@9a4A R#@WA_BgCOŨ_рtGOW_@Ҡ|+!L.D@@ Rcr@`5N.tG@@BT@P. 4@AR$`9@k(@6BJ_r@T"2(6 @@`@!Q6*@@BOCWD_E_OWt*_<7A@9?qTHT?qT?qT4#$Qcq(T@@9`483@9qATSRZ@@9`4BBWA_BOè_ց"D@@O (@JrT R?jaTt!2a*D@)@!*` @` R @O¨_OW_go(@+J7`7_|Р!* +@A @4+@*WA_BgCoDOƨ_ր(7@)икb++9RR@)EJ(6`*@7RR` @R.* 44a@Aa @@,Y`*@x`*a @`@IT!D@!@J06D@!|%Bh՚k`*@7Dqa4u@Uu @*,P`*@2`*!RBp 6тBtGOW_go@@آ@9?qAT!RBtG@C@ҀTS@AR_qT"5!P,R`@RеC%r@- 5,!(7 @e@5@@D@@@Ra @5@Ҥ`(`+@6x`+@Q(@7!2(@@!-7`5@@@@"!<-(5@z!\- 5@(@!2(OS*WT_UgVoW_CWvGO_go@4DbB $a!`$G*|%`b`j} 6!|+Y,@@ Rr@g,5RvG@@!ҀT RR@AR.@9@@a@RK`5@"6AR j{/6R 4-!S&,Z R`r@$,5,!SD&, Rr@,*5,RjT@0@`@@--`@4&`@4%}зй6.9=!.c(qy@(@!2(@(@!2(j{!R`(@!2(@ '(@7A6x4*ž@`t4*@7*OTWU_VgWoXC_OWWAO¨*|@'!!|?%WAO¨_!B@9C5_kAT9ORW~0 Rs8a~@35@WAOè__qT_lqTsj!8s OWR__B*WAOĨ_a@94ͤS'؝ !tG"@҃@# Rbha8"4_qT_qBh!8!?Th!8#AT!tG@"@cҀTQ@_WO!tG_*"@#R@@854}ӳjtw4 w` jtj4`sN!tG@"@`T#!  ` @U@4s@WROQ_S