€•ÃGŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ+/translations/zh_CN/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ+How CPU topology info is exported via sysfs”h]”hŒ+How CPU topology info is exported via sysfs”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒE/var/lib/git/docbuild/linux/Documentation/admin-guide/cputopology.rst”h´KubhŒ paragraph”“”)”}”(hŒþCPU topology info is exported via sysfs. Items (attributes) are similar to /proc/cpuinfo output of some architectures. They reside in /sys/devices/system/cpu/cpuX/topology/. Please refer to the ABI file: Documentation/ABI/stable/sysfs-devices-system-cpu.”h]”hŒþCPU topology info is exported via sysfs. Items (attributes) are similar to /proc/cpuinfo output of some architectures. They reside in /sys/devices/system/cpu/cpuX/topology/. Please refer to the ABI file: Documentation/ABI/stable/sysfs-devices-system-cpu.”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒéArchitecture-neutral, drivers/base/topology.c, exports these attributes. However the die, cluster, book, and drawer hierarchy related sysfs files will only be created if an architecture provides the related macros as described below.”h]”hŒéArchitecture-neutral, drivers/base/topology.c, exports these attributes. However the die, cluster, book, and drawer hierarchy related sysfs files will only be created if an architecture provides the related macros as described below.”…””}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhÌ)”}”(hŒpFor an architecture to support this feature, it must define some of these macros in include/asm-XXX/topology.h::”h]”hŒoFor an architecture to support this feature, it must define some of these macros in include/asm-XXX/topology.h:”…””}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ literal_block”“”)”}”(hXœ#define topology_physical_package_id(cpu) #define topology_die_id(cpu) #define topology_cluster_id(cpu) #define topology_core_id(cpu) #define topology_book_id(cpu) #define topology_drawer_id(cpu) #define topology_sibling_cpumask(cpu) #define topology_core_cpumask(cpu) #define topology_cluster_cpumask(cpu) #define topology_die_cpumask(cpu) #define topology_book_cpumask(cpu) #define topology_drawer_cpumask(cpu)”h]”hXœ#define topology_physical_package_id(cpu) #define topology_die_id(cpu) #define topology_cluster_id(cpu) #define topology_core_id(cpu) #define topology_book_id(cpu) #define topology_drawer_id(cpu) #define topology_sibling_cpumask(cpu) #define topology_core_cpumask(cpu) #define topology_cluster_cpumask(cpu) #define topology_die_cpumask(cpu) #define topology_book_cpumask(cpu) #define topology_drawer_cpumask(cpu)”…””}”hhùsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h÷h³hÊh´Khh·h²hubhÌ)”}”(hŒÿThe type of ``**_id macros`` is int. The type of ``**_cpumask macros`` is ``(const) struct cpumask *``. The latter correspond with appropriate ``**_siblings`` sysfs attributes (except for topology_sibling_cpumask() which corresponds with thread_siblings).”h]”(hŒ The type of ”…””}”(hj h²hh³Nh´NubhŒliteral”“”)”}”(hŒ``**_id macros``”h]”hŒ **_id macros”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ is int. The type of ”…””}”(hj h²hh³Nh´Nubj)”}”(hŒ``**_cpumask macros``”h]”hŒ**_cpumask macros”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ is ”…””}”(hj h²hh³Nh´Nubj)”}”(hŒ``(const) struct cpumask *``”h]”hŒ(const) struct cpumask *”…””}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ). The latter correspond with appropriate ”…””}”(hj h²hh³Nh´Nubj)”}”(hŒ``**_siblings``”h]”hŒ **_siblings”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒa sysfs attributes (except for topology_sibling_cpumask() which corresponds with thread_siblings).”…””}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒ¬To be consistent on all architectures, include/linux/topology.h provides default definitions for any of the above macros that are not defined by include/asm-XXX/topology.h:”h]”hŒ¬To be consistent on all architectures, include/linux/topology.h provides default definitions for any of the above macros that are not defined by include/asm-XXX/topology.h:”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K$hh·h²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ topology_physical_package_id: -1”h]”hÌ)”}”(hjxh]”hŒ topology_physical_package_id: -1”…””}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒtopology_die_id: -1”h]”hÌ)”}”(hjh]”hŒtopology_die_id: -1”…””}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒtopology_cluster_id: -1”h]”hÌ)”}”(hj¦h]”hŒtopology_cluster_id: -1”…””}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒtopology_core_id: 0”h]”hÌ)”}”(hj½h]”hŒtopology_core_id: 0”…””}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒtopology_book_id: -1”h]”hÌ)”}”(hjÔh]”hŒtopology_book_id: -1”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K,hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒtopology_drawer_id: -1”h]”hÌ)”}”(hjëh]”hŒtopology_drawer_id: -1”…””}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ,topology_sibling_cpumask: just the given CPU”h]”hÌ)”}”(hjh]”hŒ,topology_sibling_cpumask: just the given CPU”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ)topology_core_cpumask: just the given CPU”h]”hÌ)”}”(hjh]”hŒ)topology_core_cpumask: just the given CPU”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ,topology_cluster_cpumask: just the given CPU”h]”hÌ)”}”(hj0h]”hŒ,topology_cluster_cpumask: just the given CPU”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K0hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ(topology_die_cpumask: just the given CPU”h]”hÌ)”}”(hjGh]”hŒ(topology_die_cpumask: just the given CPU”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ*topology_book_cpumask: just the given CPU”h]”hÌ)”}”(hj^h]”hŒ*topology_book_cpumask: just the given CPU”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)”}”(hŒ,topology_drawer_cpumask: just the given CPU ”h]”hÌ)”}”(hŒ+topology_drawer_cpumask: just the given CPU”h]”hŒ+topology_drawer_cpumask: just the given CPU”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K3hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1johh·h²hh³hÊh´K(ubhÌ)”}”(hŒ¥Additionally, CPU topology information is provided under /sys/devices/system/cpu and includes these files. The internal source for the output is in brackets ("[]").”h]”hŒ©Additionally, CPU topology information is provided under /sys/devices/system/cpu and includes these files. The internal source for the output is in brackets (“[]â€).”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hh·h²hubhŒ block_quote”“”)”}”(hX =========== ========================================================== kernel_max: the maximum CPU index allowed by the kernel configuration. [NR_CPUS-1] offline: CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS] online: CPUs that are online and being scheduled [cpu_online_mask] possible: CPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask] present: CPUs that have been identified as being present in the system. [cpu_present_mask] =========== ========================================================== ”h]”hŒtable”“”)”}”(hhh]”hŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j´hj±ubjµ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K:uh1j´hj±ubhŒtbody”“”)”}”(hhh]”(hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hÌ)”}”(hŒ kernel_max:”h]”hŒ kernel_max:”…””}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑubjÕ)”}”(hhh]”hÌ)”}”(hŒFthe maximum CPU index allowed by the kernel configuration. [NR_CPUS-1]”h]”hŒFthe maximum CPU index allowed by the kernel configuration. [NR_CPUS-1]”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)”}”(hhh]”(jÕ)”}”(hhh]”hÌ)”}”(hŒoffline:”h]”hŒoffline:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K=hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj ubjÕ)”}”(hhh]”hÌ)”}”(hŒ·CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS]”h]”hŒ·CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS]”…””}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K=hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)”}”(hhh]”(jÕ)”}”(hhh]”hÌ)”}”(hŒonline:”h]”hŒonline:”…””}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjAubjÕ)”}”(hhh]”hÌ)”}”(hŒ:CPUs that are online and being scheduled [cpu_online_mask]”h]”hŒ:CPUs that are online and being scheduled [cpu_online_mask]”…””}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)”}”(hhh]”(jÕ)”}”(hhh]”hÌ)”}”(hŒ possible:”h]”hŒ possible:”…””}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjxubjÕ)”}”(hhh]”hÌ)”}”(hŒjCPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask]”h]”hŒjCPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask]”…””}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)”}”(hhh]”(jÕ)”}”(hhh]”hÌ)”}”(hŒpresent:”h]”hŒpresent:”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj¯ubjÕ)”}”(hhh]”hÌ)”}”(hŒQCPUs that have been identified as being present in the system. [cpu_present_mask]”h]”hŒQCPUs that have been identified as being present in the system. [cpu_present_mask]”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊhj±ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j¯hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªhj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³hÊh´K9hh·h²hubhÌ)”}”(hŒrThe format for the above output is compatible with cpulist_parse() [see ]. Some examples follow.”h]”hŒrThe format for the above output is compatible with cpulist_parse() [see ]. Some examples follow.”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KKhh·h²hubhÌ)”}”(hX In this example, there are 64 CPUs in the system but cpus 32-63 exceed the kernel max which is limited to 0..31 by the NR_CPUS config option being 32. Note also that CPUs 2 and 4-31 are not online but could be brought online as they are both present and possible::”h]”hXIn this example, there are 64 CPUs in the system but cpus 32-63 exceed the kernel max which is limited to 0..31 by the NR_CPUS config option being 32. Note also that CPUs 2 and 4-31 are not online but could be brought online as they are both present and possible:”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhh·h²hubhø)”}”(hŒ[kernel_max: 31 offline: 2,4-31,32-63 online: 0-1,3 possible: 0-31 present: 0-31”h]”hŒ[kernel_max: 31 offline: 2,4-31,32-63 online: 0-1,3 possible: 0-31 present: 0-31”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jjuh1h÷h³hÊh´KShh·h²hubhÌ)”}”(hŒÝIn this example, the NR_CPUS config option is 128, but the kernel was started with possible_cpus=144. There are 4 CPUs in the system and cpu2 was manually taken offline (and is the only CPU that can be brought online.)::”h]”hŒÜIn this example, the NR_CPUS config option is 128, but the kernel was started with possible_cpus=144. There are 4 CPUs in the system and cpu2 was manually taken offline (and is the only CPU that can be brought online.):”…””}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KYhh·h²hubhø)”}”(hŒ_kernel_max: 127 offline: 2,4-127,128-143 online: 0-1,3 possible: 0-127 present: 0-3”h]”hŒ_kernel_max: 127 offline: 2,4-127,128-143 online: 0-1,3 possible: 0-127 present: 0-3”…””}”hj7sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1h÷h³hÊh´K^hh·h²hubhÌ)”}”(hŒSee Documentation/core-api/cpu_hotplug.rst for the possible_cpus=NUM kernel start parameter as well as more information on the various cpumasks.”h]”hŒSee Documentation/core-api/cpu_hotplug.rst for the possible_cpus=NUM kernel start parameter as well as more information on the various cpumasks.”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kdhh·h²hubeh}”(h]”Œ+how-cpu-topology-info-is-exported-via-sysfs”ah ]”h"]”Œ+how cpu topology info is exported via sysfs”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”jÔŒfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j}Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jXjUsŒ nametypes”}”jX‰sh}”jUh·sŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.