From eb0069ccb666ef975e7f3be97fa1f5c0fdf3ef6c Mon Sep 17 00:00:00 2001 From: PRADEEP BG Date: Fri, 6 Sep 2024 06:13:25 -0700 Subject: [PATCH] uploading v1.10 spec html contents --- level-zero/1.10/.buildinfo | 4 + level-zero/1.10/.nojekyll | 0 .../1.10/_images/A21_Subvertex+Remote.png | Bin 0 -> 377420 bytes level-zero/1.10/_images/A21_Subvertex.png | Bin 0 -> 302784 bytes .../_images/A21_Vertex+Subvertex+Remote.png | Bin 0 -> 363751 bytes level-zero/1.10/_images/A21_Vertex.png | Bin 0 -> 156766 bytes level-zero/1.10/_images/DGXA100_Vertex.png | Bin 0 -> 268047 bytes level-zero/1.10/_images/core_device.png | Bin 0 -> 38066 bytes level-zero/1.10/_images/core_event.png | Bin 0 -> 82213 bytes level-zero/1.10/_images/core_fence.png | Bin 0 -> 9285 bytes level-zero/1.10/_images/core_module.png | Bin 0 -> 47570 bytes level-zero/1.10/_images/core_queue.png | Bin 0 -> 31757 bytes .../_images/core_reserved_suballocations.png | Bin 0 -> 26647 bytes level-zero/1.10/_images/one_api_sw_stack.png | Bin 0 -> 117604 bytes .../1.10/_images/tools_metric_hierarchy.png | Bin 0 -> 16247 bytes .../1.10/_images/tools_metric_query.png | Bin 0 -> 88662 bytes .../1.10/_images/tools_metric_streamer.png | Bin 0 -> 92077 bytes .../1.10/_images/tools_sysman_fabric.png | Bin 0 -> 55610 bytes .../1.10/_images/tools_sysman_freq_flow.png | Bin 0 -> 42915 bytes .../_images/tools_sysman_freq_subdevices.png | Bin 0 -> 78434 bytes level-zero/1.10/_sources/api.rst | 10 + level-zero/1.10/_sources/core/EXT.rst | 160 + .../_sources/core/EXT_Bfloat16Conversions.rst | 16 + .../_sources/core/EXT_CacheReservation.rst | 25 + .../_sources/core/EXT_DeviceIpVersion.rst | 15 + .../1.10/_sources/core/EXT_DeviceLUID.rst | 22 + level-zero/1.10/_sources/core/EXT_EUCount.rst | 15 + .../_sources/core/EXT_EXP_BindlessImages.rst | 278 + .../core/EXT_EventQueryKernelTimestamps.rst | 95 + .../core/EXT_Exp_BandwidthProperties.rst | 107 + .../core/EXT_Exp_CommandListClone.rst | 53 + .../core/EXT_Exp_CounterBasedEventPools.rst | 62 + .../core/EXT_Exp_EventQueryTimestamps.rst | 24 + .../1.10/_sources/core/EXT_Exp_Fabric.rst | 149 + .../_sources/core/EXT_Exp_GlobalOffset.rst | 23 + .../core/EXT_Exp_ImageMemoryProperties.rst | 27 + .../1.10/_sources/core/EXT_Exp_ImageView.rst | 28 + .../_sources/core/EXT_Exp_ImageViewPlanar.rst | 29 + .../EXT_Exp_ImmediateCommandListAppend.rst | 25 + .../_sources/core/EXT_Exp_ModuleProgram.rst | 22 + .../core/EXT_Exp_MutableCommandList.rst | 287 + .../_sources/core/EXT_Exp_PowerSavingHint.rst | 21 + .../_sources/core/EXT_Exp_RTASBuilder.rst | 340 + .../core/EXT_Exp_RelaxedAllocLimits.rst | 23 + .../_sources/core/EXT_Exp_SchedulingHints.rst | 31 + .../core/EXT_Exp_SubAllocationProperties.rst | 63 + .../1.10/_sources/core/EXT_FloatAtomics.rst | 23 + .../1.10/_sources/core/EXT_ImageCopy.rst | 66 + .../core/EXT_ImageQueryAllocProperties.rst | 24 + .../1.10/_sources/core/EXT_ImageView.rst | 23 + .../_sources/core/EXT_ImageViewPlanar.rst | 24 + .../core/EXT_KernelMaxGroupSizeProperties.rst | 24 + .../1.10/_sources/core/EXT_LinkOnceODR.rst | 16 + .../_sources/core/EXT_LinkageInspection.rst | 63 + .../core/EXT_MemoryCompressionHints.rst | 23 + .../_sources/core/EXT_MemoryFreePolicies.rst | 26 + .../_sources/core/EXT_MemoryProperties.rst | 52 + .../1.10/_sources/core/EXT_PCIProperties.rst | 67 + .../1.10/_sources/core/EXT_Raytracing.rst | 26 + level-zero/1.10/_sources/core/EXT_SRGB.rst | 50 + .../1.10/_sources/core/EXT_Subgroups.rst | 17 + level-zero/1.10/_sources/core/INTRO.rst | 211 + level-zero/1.10/_sources/core/PROG.rst | 2369 ++ level-zero/1.10/_sources/core/SPIRV.rst | 687 + level-zero/1.10/_sources/core/api.rst | 5853 ++++ level-zero/1.10/_sources/index.rst | 21 + .../_sources/sysman/EXT_EngineActivity.rst | 69 + .../EXT_Exp_FirmwareSecurityVersion.rst | 36 + .../sysman/EXT_Exp_MemPageOfflineState.rst | 23 + .../1.10/_sources/sysman/EXT_Exp_RasState.rst | 76 + .../EXT_Exp_VirtualFunctionManagement.rst | 68 + .../_sources/sysman/EXT_Exp_power_domain.rst | 19 + .../sysman/EXT_MemoryBwCounterValidBits.rst | 19 + .../1.10/_sources/sysman/EXT_PowerLimits.rst | 27 + .../sysman/EXT_SysmanDeviceMapping.rst | 67 + level-zero/1.10/_sources/sysman/PROG.rst | 2426 ++ level-zero/1.10/_sources/sysman/api.rst | 3827 ++ .../_sources/tools/EXT_Exp_APITracing.rst | 33 + .../tools/EXT_Exp_ConcurrentMetricGroup.rst | 60 + .../tools/EXT_Exp_GlobalTimestamps.rst | 19 + .../tools/EXT_Exp_MetricExportData.rst | 54 + .../tools/EXT_Exp_MetricProgrammable.rst | 115 + .../_sources/tools/EXT_Exp_MetricTracer.rst | 193 + .../tools/EXT_Exp_MultiMetricValues.rst | 60 + level-zero/1.10/_sources/tools/PROG.rst | 1001 + level-zero/1.10/_sources/tools/api.rst | 1647 + level-zero/1.10/_sources/versions.rst | 6 + level-zero/1.10/_static/basic.css | 925 + level-zero/1.10/_static/doctools.js | 156 + .../1.10/_static/documentation_options.js | 13 + level-zero/1.10/_static/file.png | Bin 0 -> 286 bytes .../1.10/_static/images/logo_binder.svg | 19 + level-zero/1.10/_static/images/logo_colab.png | Bin 0 -> 7601 bytes .../1.10/_static/images/logo_deepnote.svg | 1 + .../1.10/_static/images/logo_jupyterhub.svg | 1 + level-zero/1.10/_static/language_data.js | 199 + .../locales/ar/LC_MESSAGES/booktheme.mo | Bin 0 -> 1541 bytes .../locales/ar/LC_MESSAGES/booktheme.po | 75 + .../locales/bg/LC_MESSAGES/booktheme.mo | Bin 0 -> 1708 bytes .../locales/bg/LC_MESSAGES/booktheme.po | 75 + .../locales/bn/LC_MESSAGES/booktheme.mo | Bin 0 -> 1646 bytes .../locales/bn/LC_MESSAGES/booktheme.po | 63 + .../locales/ca/LC_MESSAGES/booktheme.mo | Bin 0 -> 1246 bytes .../locales/ca/LC_MESSAGES/booktheme.po | 66 + .../locales/cs/LC_MESSAGES/booktheme.mo | Bin 0 -> 1405 bytes .../locales/cs/LC_MESSAGES/booktheme.po | 75 + .../locales/da/LC_MESSAGES/booktheme.mo | Bin 0 -> 1304 bytes .../locales/da/LC_MESSAGES/booktheme.po | 75 + .../locales/de/LC_MESSAGES/booktheme.mo | Bin 0 -> 1388 bytes .../locales/de/LC_MESSAGES/booktheme.po | 75 + .../locales/el/LC_MESSAGES/booktheme.mo | Bin 0 -> 1722 bytes .../locales/el/LC_MESSAGES/booktheme.po | 75 + .../locales/eo/LC_MESSAGES/booktheme.mo | Bin 0 -> 1337 bytes .../locales/eo/LC_MESSAGES/booktheme.po | 75 + .../locales/es/LC_MESSAGES/booktheme.mo | Bin 0 -> 1396 bytes .../locales/es/LC_MESSAGES/booktheme.po | 75 + .../locales/et/LC_MESSAGES/booktheme.mo | Bin 0 -> 1341 bytes .../locales/et/LC_MESSAGES/booktheme.po | 75 + .../locales/fi/LC_MESSAGES/booktheme.mo | Bin 0 -> 1368 bytes .../locales/fi/LC_MESSAGES/booktheme.po | 75 + .../locales/fr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1412 bytes .../locales/fr/LC_MESSAGES/booktheme.po | 75 + .../locales/hr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1402 bytes .../locales/hr/LC_MESSAGES/booktheme.po | 75 + .../locales/id/LC_MESSAGES/booktheme.mo | Bin 0 -> 1323 bytes .../locales/id/LC_MESSAGES/booktheme.po | 75 + .../locales/it/LC_MESSAGES/booktheme.mo | Bin 0 -> 1403 bytes .../locales/it/LC_MESSAGES/booktheme.po | 75 + .../locales/iw/LC_MESSAGES/booktheme.mo | Bin 0 -> 1445 bytes .../locales/iw/LC_MESSAGES/booktheme.po | 75 + .../locales/ja/LC_MESSAGES/booktheme.mo | Bin 0 -> 1471 bytes .../locales/ja/LC_MESSAGES/booktheme.po | 75 + .../locales/ko/LC_MESSAGES/booktheme.mo | Bin 0 -> 1375 bytes .../locales/ko/LC_MESSAGES/booktheme.po | 75 + .../locales/lt/LC_MESSAGES/booktheme.mo | Bin 0 -> 1413 bytes .../locales/lt/LC_MESSAGES/booktheme.po | 75 + .../locales/lv/LC_MESSAGES/booktheme.mo | Bin 0 -> 1404 bytes .../locales/lv/LC_MESSAGES/booktheme.po | 75 + .../locales/ml/LC_MESSAGES/booktheme.mo | Bin 0 -> 1883 bytes .../locales/ml/LC_MESSAGES/booktheme.po | 66 + .../locales/mr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1674 bytes .../locales/mr/LC_MESSAGES/booktheme.po | 66 + .../locales/ms/LC_MESSAGES/booktheme.mo | Bin 0 -> 1213 bytes .../locales/ms/LC_MESSAGES/booktheme.po | 66 + .../locales/nl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1356 bytes .../locales/nl/LC_MESSAGES/booktheme.po | 75 + .../locales/no/LC_MESSAGES/booktheme.mo | Bin 0 -> 1317 bytes .../locales/no/LC_MESSAGES/booktheme.po | 75 + .../locales/pl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1371 bytes .../locales/pl/LC_MESSAGES/booktheme.po | 75 + .../locales/pt/LC_MESSAGES/booktheme.mo | Bin 0 -> 1364 bytes .../locales/pt/LC_MESSAGES/booktheme.po | 75 + .../locales/ro/LC_MESSAGES/booktheme.mo | Bin 0 -> 1390 bytes .../locales/ro/LC_MESSAGES/booktheme.po | 75 + .../locales/ru/LC_MESSAGES/booktheme.mo | Bin 0 -> 1722 bytes .../locales/ru/LC_MESSAGES/booktheme.po | 75 + .../locales/sk/LC_MESSAGES/booktheme.mo | Bin 0 -> 1393 bytes .../locales/sk/LC_MESSAGES/booktheme.po | 75 + .../locales/sl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1374 bytes .../locales/sl/LC_MESSAGES/booktheme.po | 75 + .../locales/sr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1679 bytes .../locales/sr/LC_MESSAGES/booktheme.po | 75 + .../locales/sv/LC_MESSAGES/booktheme.mo | Bin 0 -> 1365 bytes .../locales/sv/LC_MESSAGES/booktheme.po | 75 + .../locales/ta/LC_MESSAGES/booktheme.mo | Bin 0 -> 1928 bytes .../locales/ta/LC_MESSAGES/booktheme.po | 66 + .../locales/te/LC_MESSAGES/booktheme.mo | Bin 0 -> 1806 bytes .../locales/te/LC_MESSAGES/booktheme.po | 66 + .../locales/tg/LC_MESSAGES/booktheme.mo | Bin 0 -> 1628 bytes .../locales/tg/LC_MESSAGES/booktheme.po | 75 + .../locales/th/LC_MESSAGES/booktheme.mo | Bin 0 -> 1766 bytes .../locales/th/LC_MESSAGES/booktheme.po | 75 + .../locales/tl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1273 bytes .../locales/tl/LC_MESSAGES/booktheme.po | 66 + .../locales/tr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1373 bytes .../locales/tr/LC_MESSAGES/booktheme.po | 75 + .../locales/uk/LC_MESSAGES/booktheme.mo | Bin 0 -> 1681 bytes .../locales/uk/LC_MESSAGES/booktheme.po | 75 + .../locales/ur/LC_MESSAGES/booktheme.mo | Bin 0 -> 1462 bytes .../locales/ur/LC_MESSAGES/booktheme.po | 66 + .../locales/vi/LC_MESSAGES/booktheme.mo | Bin 0 -> 1431 bytes .../locales/vi/LC_MESSAGES/booktheme.po | 75 + .../locales/zh_CN/LC_MESSAGES/booktheme.mo | Bin 0 -> 1310 bytes .../locales/zh_CN/LC_MESSAGES/booktheme.po | 75 + .../locales/zh_TW/LC_MESSAGES/booktheme.mo | Bin 0 -> 1341 bytes .../locales/zh_TW/LC_MESSAGES/booktheme.po | 75 + level-zero/1.10/_static/minus.png | Bin 0 -> 90 bytes level-zero/1.10/_static/plus.png | Bin 0 -> 90 bytes level-zero/1.10/_static/pygments.css | 152 + .../1.10/_static/sbt-webpack-macros.html | 11 + level-zero/1.10/_static/scripts/bootstrap.js | 3 + .../_static/scripts/bootstrap.js.LICENSE.txt | 5 + .../1.10/_static/scripts/bootstrap.js.map | 1 + .../_static/scripts/pydata-sphinx-theme.js | 2 + .../scripts/pydata-sphinx-theme.js.map | 1 + .../1.10/_static/scripts/sphinx-book-theme.js | 2 + .../_static/scripts/sphinx-book-theme.js.map | 1 + level-zero/1.10/_static/searchtools.js | 619 + level-zero/1.10/_static/sphinx_highlight.js | 154 + level-zero/1.10/_static/styles/bootstrap.css | 6 + .../1.10/_static/styles/bootstrap.css.map | 1 + .../_static/styles/pydata-sphinx-theme.css | 2 + .../styles/pydata-sphinx-theme.css.map | 1 + .../1.10/_static/styles/sphinx-book-theme.css | 8 + level-zero/1.10/_static/styles/theme.css | 2 + .../vendor/fontawesome/6.5.1/LICENSE.txt | 165 + .../vendor/fontawesome/6.5.1/css/all.min.css | 5 + .../vendor/fontawesome/6.5.1/js/all.min.js | 2 + .../6.5.1/js/all.min.js.LICENSE.txt | 5 + .../6.5.1/webfonts/fa-brands-400.ttf | Bin 0 -> 207972 bytes .../6.5.1/webfonts/fa-brands-400.woff2 | Bin 0 -> 117372 bytes .../6.5.1/webfonts/fa-regular-400.ttf | Bin 0 -> 68004 bytes .../6.5.1/webfonts/fa-regular-400.woff2 | Bin 0 -> 25452 bytes .../6.5.1/webfonts/fa-solid-900.ttf | Bin 0 -> 419720 bytes .../6.5.1/webfonts/fa-solid-900.woff2 | Bin 0 -> 156496 bytes .../6.5.1/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../6.5.1/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes level-zero/1.10/_static/webpack-macros.html | 31 + level-zero/1.10/api.html | 7793 +++++ level-zero/1.10/core/EXT.html | 636 + .../1.10/core/EXT_Bfloat16Conversions.html | 421 + .../1.10/core/EXT_CacheReservation.html | 437 + level-zero/1.10/core/EXT_DeviceIpVersion.html | 421 + level-zero/1.10/core/EXT_DeviceLUID.html | 429 + level-zero/1.10/core/EXT_EUCount.html | 421 + .../1.10/core/EXT_EXP_BindlessImages.html | 691 + .../core/EXT_EventQueryKernelTimestamps.html | 504 + .../core/EXT_Exp_BandwidthProperties.html | 504 + .../1.10/core/EXT_Exp_CommandListClone.html | 465 + .../core/EXT_Exp_CounterBasedEventPools.html | 471 + .../core/EXT_Exp_EventQueryTimestamps.html | 428 + level-zero/1.10/core/EXT_Exp_Fabric.html | 546 + .../1.10/core/EXT_Exp_GlobalOffset.html | 428 + .../core/EXT_Exp_ImageMemoryProperties.html | 435 + level-zero/1.10/core/EXT_Exp_ImageView.html | 429 + .../1.10/core/EXT_Exp_ImageViewPlanar.html | 429 + .../EXT_Exp_ImmediateCommandListAppend.html | 442 + .../1.10/core/EXT_Exp_ModuleProgram.html | 428 + .../1.10/core/EXT_Exp_MutableCommandList.html | 688 + .../1.10/core/EXT_Exp_PowerSavingHint.html | 428 + level-zero/1.10/core/EXT_Exp_RTASBuilder.html | 733 + .../1.10/core/EXT_Exp_RelaxedAllocLimits.html | 429 + .../1.10/core/EXT_Exp_SchedulingHints.html | 437 + .../core/EXT_Exp_SubAllocationProperties.html | 470 + level-zero/1.10/core/EXT_FloatAtomics.html | 429 + level-zero/1.10/core/EXT_ImageCopy.html | 468 + .../core/EXT_ImageQueryAllocProperties.html | 435 + level-zero/1.10/core/EXT_ImageView.html | 428 + level-zero/1.10/core/EXT_ImageViewPlanar.html | 428 + .../EXT_KernelMaxGroupSizeProperties.html | 428 + level-zero/1.10/core/EXT_LinkOnceODR.html | 421 + .../1.10/core/EXT_LinkageInspection.html | 469 + .../1.10/core/EXT_MemoryCompressionHints.html | 429 + .../1.10/core/EXT_MemoryFreePolicies.html | 437 + .../1.10/core/EXT_MemoryProperties.html | 459 + level-zero/1.10/core/EXT_PCIProperties.html | 474 + level-zero/1.10/core/EXT_Raytracing.html | 431 + level-zero/1.10/core/EXT_SRGB.html | 458 + level-zero/1.10/core/EXT_Subgroups.html | 421 + level-zero/1.10/core/INTRO.html | 675 + level-zero/1.10/core/PROG.html | 3258 ++ level-zero/1.10/core/SPIRV.html | 1224 + level-zero/1.10/core/api.html | 28764 ++++++++++++++++ level-zero/1.10/genindex.html | 6395 ++++ level-zero/1.10/index.html | 8088 +++++ level-zero/1.10/objects.inv | Bin 0 -> 143801 bytes level-zero/1.10/search.html | 352 + level-zero/1.10/searchindex.js | 1 + .../1.10/sysman/EXT_EngineActivity.html | 479 + .../EXT_Exp_FirmwareSecurityVersion.html | 447 + .../sysman/EXT_Exp_MemPageOfflineState.html | 438 + level-zero/1.10/sysman/EXT_Exp_RasState.html | 512 + .../EXT_Exp_VirtualFunctionManagement.html | 482 + .../1.10/sysman/EXT_Exp_power_domain.html | 428 + .../sysman/EXT_MemoryBwCounterValidBits.html | 428 + level-zero/1.10/sysman/EXT_PowerLimits.html | 441 + .../1.10/sysman/EXT_SysmanDeviceMapping.html | 476 + level-zero/1.10/sysman/PROG.html | 3172 ++ level-zero/1.10/sysman/api.html | 18964 ++++++++++ level-zero/1.10/tools/EXT_Exp_APITracing.html | 439 + .../tools/EXT_Exp_ConcurrentMetricGroup.html | 468 + .../1.10/tools/EXT_Exp_GlobalTimestamps.html | 428 + .../1.10/tools/EXT_Exp_MetricExportData.html | 456 + .../tools/EXT_Exp_MetricProgrammable.html | 529 + .../1.10/tools/EXT_Exp_MetricTracer.html | 613 + .../1.10/tools/EXT_Exp_MultiMetricValues.html | 464 + level-zero/1.10/tools/PROG.html | 1411 + level-zero/1.10/tools/api.html | 7702 +++++ level-zero/1.10/versions.html | 395 + 289 files changed, 141735 insertions(+) create mode 100644 level-zero/1.10/.buildinfo create mode 100644 level-zero/1.10/.nojekyll create mode 100644 level-zero/1.10/_images/A21_Subvertex+Remote.png create mode 100644 level-zero/1.10/_images/A21_Subvertex.png create mode 100644 level-zero/1.10/_images/A21_Vertex+Subvertex+Remote.png create mode 100644 level-zero/1.10/_images/A21_Vertex.png create mode 100644 level-zero/1.10/_images/DGXA100_Vertex.png create mode 100644 level-zero/1.10/_images/core_device.png create mode 100644 level-zero/1.10/_images/core_event.png create mode 100644 level-zero/1.10/_images/core_fence.png create mode 100644 level-zero/1.10/_images/core_module.png create mode 100644 level-zero/1.10/_images/core_queue.png create mode 100644 level-zero/1.10/_images/core_reserved_suballocations.png create mode 100644 level-zero/1.10/_images/one_api_sw_stack.png create mode 100644 level-zero/1.10/_images/tools_metric_hierarchy.png create mode 100644 level-zero/1.10/_images/tools_metric_query.png create mode 100644 level-zero/1.10/_images/tools_metric_streamer.png create mode 100644 level-zero/1.10/_images/tools_sysman_fabric.png create mode 100644 level-zero/1.10/_images/tools_sysman_freq_flow.png create mode 100644 level-zero/1.10/_images/tools_sysman_freq_subdevices.png create mode 100644 level-zero/1.10/_sources/api.rst create mode 100644 level-zero/1.10/_sources/core/EXT.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Bfloat16Conversions.rst create mode 100644 level-zero/1.10/_sources/core/EXT_CacheReservation.rst create mode 100644 level-zero/1.10/_sources/core/EXT_DeviceIpVersion.rst create mode 100644 level-zero/1.10/_sources/core/EXT_DeviceLUID.rst create mode 100644 level-zero/1.10/_sources/core/EXT_EUCount.rst create mode 100644 level-zero/1.10/_sources/core/EXT_EXP_BindlessImages.rst create mode 100644 level-zero/1.10/_sources/core/EXT_EventQueryKernelTimestamps.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_BandwidthProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_CommandListClone.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_CounterBasedEventPools.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_EventQueryTimestamps.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_Fabric.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_GlobalOffset.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_ImageMemoryProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_ImageView.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_ImageViewPlanar.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_ImmediateCommandListAppend.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_ModuleProgram.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_MutableCommandList.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_PowerSavingHint.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_RTASBuilder.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_RelaxedAllocLimits.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_SchedulingHints.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Exp_SubAllocationProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_FloatAtomics.rst create mode 100644 level-zero/1.10/_sources/core/EXT_ImageCopy.rst create mode 100644 level-zero/1.10/_sources/core/EXT_ImageQueryAllocProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_ImageView.rst create mode 100644 level-zero/1.10/_sources/core/EXT_ImageViewPlanar.rst create mode 100644 level-zero/1.10/_sources/core/EXT_KernelMaxGroupSizeProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_LinkOnceODR.rst create mode 100644 level-zero/1.10/_sources/core/EXT_LinkageInspection.rst create mode 100644 level-zero/1.10/_sources/core/EXT_MemoryCompressionHints.rst create mode 100644 level-zero/1.10/_sources/core/EXT_MemoryFreePolicies.rst create mode 100644 level-zero/1.10/_sources/core/EXT_MemoryProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_PCIProperties.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Raytracing.rst create mode 100644 level-zero/1.10/_sources/core/EXT_SRGB.rst create mode 100644 level-zero/1.10/_sources/core/EXT_Subgroups.rst create mode 100644 level-zero/1.10/_sources/core/INTRO.rst create mode 100644 level-zero/1.10/_sources/core/PROG.rst create mode 100644 level-zero/1.10/_sources/core/SPIRV.rst create mode 100644 level-zero/1.10/_sources/core/api.rst create mode 100644 level-zero/1.10/_sources/index.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_EngineActivity.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_Exp_FirmwareSecurityVersion.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_Exp_MemPageOfflineState.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_Exp_RasState.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_Exp_VirtualFunctionManagement.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_Exp_power_domain.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_MemoryBwCounterValidBits.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_PowerLimits.rst create mode 100644 level-zero/1.10/_sources/sysman/EXT_SysmanDeviceMapping.rst create mode 100644 level-zero/1.10/_sources/sysman/PROG.rst create mode 100644 level-zero/1.10/_sources/sysman/api.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_APITracing.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_ConcurrentMetricGroup.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_GlobalTimestamps.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_MetricExportData.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_MetricProgrammable.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_MetricTracer.rst create mode 100644 level-zero/1.10/_sources/tools/EXT_Exp_MultiMetricValues.rst create mode 100644 level-zero/1.10/_sources/tools/PROG.rst create mode 100644 level-zero/1.10/_sources/tools/api.rst create mode 100644 level-zero/1.10/_sources/versions.rst create mode 100644 level-zero/1.10/_static/basic.css create mode 100644 level-zero/1.10/_static/doctools.js create mode 100644 level-zero/1.10/_static/documentation_options.js create mode 100644 level-zero/1.10/_static/file.png create mode 100644 level-zero/1.10/_static/images/logo_binder.svg create mode 100644 level-zero/1.10/_static/images/logo_colab.png create mode 100644 level-zero/1.10/_static/images/logo_deepnote.svg create mode 100644 level-zero/1.10/_static/images/logo_jupyterhub.svg create mode 100644 level-zero/1.10/_static/language_data.js create mode 100644 level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/bn/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/bn/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ca/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ca/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/cs/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/cs/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/da/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/da/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/de/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/de/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/el/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/el/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/eo/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/eo/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/hr/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/hr/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/id/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/id/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/it/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/it/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/iw/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/iw/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ja/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ja/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ko/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ko/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/no/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/no/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/pl/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/pl/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/sv/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/sv/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ta/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ta/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/uk/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/uk/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/ur/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/ur/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/vi/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/vi/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/zh_CN/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/zh_CN/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/locales/zh_TW/LC_MESSAGES/booktheme.mo create mode 100644 level-zero/1.10/_static/locales/zh_TW/LC_MESSAGES/booktheme.po create mode 100644 level-zero/1.10/_static/minus.png create mode 100644 level-zero/1.10/_static/plus.png create mode 100644 level-zero/1.10/_static/pygments.css create mode 100644 level-zero/1.10/_static/sbt-webpack-macros.html create mode 100644 level-zero/1.10/_static/scripts/bootstrap.js create mode 100644 level-zero/1.10/_static/scripts/bootstrap.js.LICENSE.txt create mode 100644 level-zero/1.10/_static/scripts/bootstrap.js.map create mode 100644 level-zero/1.10/_static/scripts/pydata-sphinx-theme.js create mode 100644 level-zero/1.10/_static/scripts/pydata-sphinx-theme.js.map create mode 100644 level-zero/1.10/_static/scripts/sphinx-book-theme.js create mode 100644 level-zero/1.10/_static/scripts/sphinx-book-theme.js.map create mode 100644 level-zero/1.10/_static/searchtools.js create mode 100644 level-zero/1.10/_static/sphinx_highlight.js create mode 100644 level-zero/1.10/_static/styles/bootstrap.css create mode 100644 level-zero/1.10/_static/styles/bootstrap.css.map create mode 100644 level-zero/1.10/_static/styles/pydata-sphinx-theme.css create mode 100644 level-zero/1.10/_static/styles/pydata-sphinx-theme.css.map create mode 100644 level-zero/1.10/_static/styles/sphinx-book-theme.css create mode 100644 level-zero/1.10/_static/styles/theme.css create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/LICENSE.txt create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/css/all.min.css create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/js/all.min.js create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/js/all.min.js.LICENSE.txt create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.ttf create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2 create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.ttf create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2 create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.ttf create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2 create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.ttf create mode 100644 level-zero/1.10/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.woff2 create mode 100644 level-zero/1.10/_static/webpack-macros.html create mode 100644 level-zero/1.10/api.html create mode 100644 level-zero/1.10/core/EXT.html create mode 100644 level-zero/1.10/core/EXT_Bfloat16Conversions.html create mode 100644 level-zero/1.10/core/EXT_CacheReservation.html create mode 100644 level-zero/1.10/core/EXT_DeviceIpVersion.html create mode 100644 level-zero/1.10/core/EXT_DeviceLUID.html create mode 100644 level-zero/1.10/core/EXT_EUCount.html create mode 100644 level-zero/1.10/core/EXT_EXP_BindlessImages.html create mode 100644 level-zero/1.10/core/EXT_EventQueryKernelTimestamps.html create mode 100644 level-zero/1.10/core/EXT_Exp_BandwidthProperties.html create mode 100644 level-zero/1.10/core/EXT_Exp_CommandListClone.html create mode 100644 level-zero/1.10/core/EXT_Exp_CounterBasedEventPools.html create mode 100644 level-zero/1.10/core/EXT_Exp_EventQueryTimestamps.html create mode 100644 level-zero/1.10/core/EXT_Exp_Fabric.html create mode 100644 level-zero/1.10/core/EXT_Exp_GlobalOffset.html create mode 100644 level-zero/1.10/core/EXT_Exp_ImageMemoryProperties.html create mode 100644 level-zero/1.10/core/EXT_Exp_ImageView.html create mode 100644 level-zero/1.10/core/EXT_Exp_ImageViewPlanar.html create mode 100644 level-zero/1.10/core/EXT_Exp_ImmediateCommandListAppend.html create mode 100644 level-zero/1.10/core/EXT_Exp_ModuleProgram.html create mode 100644 level-zero/1.10/core/EXT_Exp_MutableCommandList.html create mode 100644 level-zero/1.10/core/EXT_Exp_PowerSavingHint.html create mode 100644 level-zero/1.10/core/EXT_Exp_RTASBuilder.html create mode 100644 level-zero/1.10/core/EXT_Exp_RelaxedAllocLimits.html create mode 100644 level-zero/1.10/core/EXT_Exp_SchedulingHints.html create mode 100644 level-zero/1.10/core/EXT_Exp_SubAllocationProperties.html create mode 100644 level-zero/1.10/core/EXT_FloatAtomics.html create mode 100644 level-zero/1.10/core/EXT_ImageCopy.html create mode 100644 level-zero/1.10/core/EXT_ImageQueryAllocProperties.html create mode 100644 level-zero/1.10/core/EXT_ImageView.html create mode 100644 level-zero/1.10/core/EXT_ImageViewPlanar.html create mode 100644 level-zero/1.10/core/EXT_KernelMaxGroupSizeProperties.html create mode 100644 level-zero/1.10/core/EXT_LinkOnceODR.html create mode 100644 level-zero/1.10/core/EXT_LinkageInspection.html create mode 100644 level-zero/1.10/core/EXT_MemoryCompressionHints.html create mode 100644 level-zero/1.10/core/EXT_MemoryFreePolicies.html create mode 100644 level-zero/1.10/core/EXT_MemoryProperties.html create mode 100644 level-zero/1.10/core/EXT_PCIProperties.html create mode 100644 level-zero/1.10/core/EXT_Raytracing.html create mode 100644 level-zero/1.10/core/EXT_SRGB.html create mode 100644 level-zero/1.10/core/EXT_Subgroups.html create mode 100644 level-zero/1.10/core/INTRO.html create mode 100644 level-zero/1.10/core/PROG.html create mode 100644 level-zero/1.10/core/SPIRV.html create mode 100644 level-zero/1.10/core/api.html create mode 100644 level-zero/1.10/genindex.html create mode 100644 level-zero/1.10/index.html create mode 100644 level-zero/1.10/objects.inv create mode 100644 level-zero/1.10/search.html create mode 100644 level-zero/1.10/searchindex.js create mode 100644 level-zero/1.10/sysman/EXT_EngineActivity.html create mode 100644 level-zero/1.10/sysman/EXT_Exp_FirmwareSecurityVersion.html create mode 100644 level-zero/1.10/sysman/EXT_Exp_MemPageOfflineState.html create mode 100644 level-zero/1.10/sysman/EXT_Exp_RasState.html create mode 100644 level-zero/1.10/sysman/EXT_Exp_VirtualFunctionManagement.html create mode 100644 level-zero/1.10/sysman/EXT_Exp_power_domain.html create mode 100644 level-zero/1.10/sysman/EXT_MemoryBwCounterValidBits.html create mode 100644 level-zero/1.10/sysman/EXT_PowerLimits.html create mode 100644 level-zero/1.10/sysman/EXT_SysmanDeviceMapping.html create mode 100644 level-zero/1.10/sysman/PROG.html create mode 100644 level-zero/1.10/sysman/api.html create mode 100644 level-zero/1.10/tools/EXT_Exp_APITracing.html create mode 100644 level-zero/1.10/tools/EXT_Exp_ConcurrentMetricGroup.html create mode 100644 level-zero/1.10/tools/EXT_Exp_GlobalTimestamps.html create mode 100644 level-zero/1.10/tools/EXT_Exp_MetricExportData.html create mode 100644 level-zero/1.10/tools/EXT_Exp_MetricProgrammable.html create mode 100644 level-zero/1.10/tools/EXT_Exp_MetricTracer.html create mode 100644 level-zero/1.10/tools/EXT_Exp_MultiMetricValues.html create mode 100644 level-zero/1.10/tools/PROG.html create mode 100644 level-zero/1.10/tools/api.html create mode 100644 level-zero/1.10/versions.html diff --git a/level-zero/1.10/.buildinfo b/level-zero/1.10/.buildinfo new file mode 100644 index 0000000..e92d80b --- /dev/null +++ b/level-zero/1.10/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: b82cb7b7318798c29b05c0790c724298 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/level-zero/1.10/.nojekyll b/level-zero/1.10/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/level-zero/1.10/_images/A21_Subvertex+Remote.png b/level-zero/1.10/_images/A21_Subvertex+Remote.png new file mode 100644 index 0000000000000000000000000000000000000000..8767b563aed96357714b68f8c0c7ee6abea17142 GIT binary patch literal 377420 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%0Aie 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

YGTLE>>WF2Mw*md33rMX6M5t8A*r^-fdZaeyq+j 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¨hy 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%0A9y%{eWJjOD5QR> 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

mX$-ipc@Go6bh{kLJ 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 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/A21_Vertex.png b/level-zero/1.10/_images/A21_Vertex.png new file mode 100644 index 0000000000000000000000000000000000000000..b136ea3e2af4001617ece9885ff44017c6d6efd2 GIT binary patch literal 156766 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 z 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 TSE+9g`O;2(BfX4m)<69ZWTs&# literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/DGXA100_Vertex.png b/level-zero/1.10/_images/DGXA100_Vertex.png new file mode 100644 index 0000000000000000000000000000000000000000..a87dd815a48d163dbfe85d496cdee2f3793cb4a6 GIT binary patch literal 268047 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

(VT6wS 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 ?eo4D@O~5F|VxwRRYjag;~~n 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 QX7hmfH09Z{RE;+HR#vO7;e|GG2s0mqCJl-F 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

6OoV`20>oE5dfV;*)C&VLf(t8l>&tY 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 PP3O*BGR)Jree%BmQ(*L@ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/tools_metric_query.png b/level-zero/1.10/_images/tools_metric_query.png new file mode 100644 index 0000000000000000000000000000000000000000..f221da3b404b66eee35dd80f51bcce90aa799e1c GIT binary patch literal 88662 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�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 wXKpGx_01XrsO$5)!Rf#Jqm+wmpg$ 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 G|NjHV0vFQ& literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/tools_metric_streamer.png b/level-zero/1.10/_images/tools_metric_streamer.png new file mode 100644 index 0000000000000000000000000000000000000000..3604df02eb2806d418a00f8271d3cbed6667b421 GIT binary patch literal 92077 zcmZ^~2UJsAv;`UjgFp}zlwOqHq@xHSgkDV)EQoXvkf!t=B#4M2UFie?0UJnDdXo}r zC`zwVLN5uOB>!;ledE9P$M^#ngpza4US+Pe=bHN!@|G?mJtsW~1Y*?J)4Br!Q9lQP z&TyPN1N`QF^j9k28cCXM7cxUtW$SnI|M zj^Qk~!Wb)`3vr+`o`IG!<^{0{QfA6#W;;Q*GCyq?Ob*He9|^0f(+=&qsadI?JTeK( zD=Qn6z5upskA6O#ZGOSPc5R2t1~RsEwWujbl(q@hsC^afcPAW;y3K}Vn9`&>Pu8{& zl=Bx6x^ckf6W=kDX&=#y@zM1Q4cMm;vQ@|pw@4aRj3npPQ91U2T8bRKO#4(-pR>8I zL8($~6?#W%vpKx2s;r>#<=Ay^gVI|b$Je^@F4%FCb}ZIcm4(bcXVu`^{U?Wn6dp4y}W^SdC*gtXp{V0I?s>OIo(nSK&LtM$?A=9v)=mxqo1Q8@}(g z^>UYqVz64@Oy9$@!ngWUiDZ{1(gFJz&`h#R5y1g3zK~^mSmv{RS}4<+UBc)948dRI z^0lL*KtCfCeuf1$7+6wLnl3T~OBKlmQBoG^c4KX`o&qnvAGJT>Ww!oxXlbOz!InAl zp?LGr-O(TW!k;~#Ulq=NO0mxhK6CPaZ^yNHjQW8H+6wkyf&@>!;zirauC7a&9dF0R zT7FSTnh_IsNIyvBa_10Np;KO{P`WS-SK()s)}U-#8gL)Kz;-`TepKE{XSR_iJ*ryepws{fk5yI|d}AOJq=zrJ!nZf$6MR{`!Wkn13a7C432yq&^Pxw@^N z8-+aurRQD`2I=;Z1=}zUYtUg3&r5--Fe*s@phcbEWcAD4^F3udX{45uMD0DMJ>a2b zDD08_G?2ij+w6LrB}|EC15pwq=bsMm745TSz*|UvQ$;3#cv=JEDX|ll70`U@`w>`V zz`z!hjFX28k2MWztj0!52~WzOLEZbTX>emgo}^_~z#Xv%_+GE+hAq_Ag@=ZVy78qA zV~STstu~@G98jwuC0!3NbqWpSs3(MNU+Ml|Q>Ugbb;SMM4aHU7ff_}aTsO-M;54e! z6*j{bky4NLV)1*#6~ccuOK81*JfsIR+BtGY}|w z#8}7wQb(7d9~TEt|MZkkC#_Rly-|1H`$rO=7%O^AMnHS#zX&Y+Hx!dvyW|l+QQict zJtjH)ubet5AAfEgJEZkM{l?pbWQJpDG#FFxG&1c`@N4#K7j$MVg>fV^R}uB zVs)ZZQ?kngg=-89jV3IAVa)5-REEz5UE)Y$Q9qYKyYAEjL$@W67V44JjqG)^#JHDh zd`e+4&pEI4V!lAE_b-(|!WQD-_ltu>i}k7hg^{-jB=o6!Cjj@JA?2n3e*PFBclvm= zxq;@Z&*61NQOz{0ncv=?$QMqk=8&Br(ap}%O4ZJKc^ zcc{+|3Xq0}c{_+jtVknpz3~6JgWNuF;dITwbQkLxCT?&tLxMfSECkE_QQP%y^#6ef zQTwWbO%Zo7DGBV<++G5AB;@EXTisX2RAXm7$dTg#@~e&46+2?I`#_-XChOYUEvgKg zJtp49QF{uGDkES|nb8g`@i-Bd_quBpk zwN1HV!AJwv);x#MtBlLIlG?KWa`s}YM5M(}y9np<+LlQHh<%`5WxTEMqR8l-iMvX6 z&U<%^+d|$2gJY6NzrWF8$)36qj;MwnH|mkG+CNko&-VISLBg$Fn9Q#+HIHHAgQHpf zzMfqez=Wsn{$GB-M|eO=e6|2UxzuLTPy73@2ht8`TGm91JhNT6Blk5}$)c6>1 z=cxTOKa7C?&mHBr1Fk(j9q{3Eg)9rDF~}2(QR>!<5B|qNL$FW(ddgvY=M;b^Rksfd zQ1VWoKzheQZ0nDx*^4%;8<$3}r8(PAr)=DYXeGG*gD0OIOFx(Y`n4{^Eu3n!Z)VG( z@NP|d|HZ)BHaug&OI3SH36<-c7RgH@=)K)c74yAT3rd4=@#Mtd=(|vDEFJp8sV{hj zZ=hRT(v4pXv5S*-PS zD*qH9@?lMdvqkz^Yb(Z-y7%roNj@?`iir|DSeRa|(wo2hA%#OBat#(jm6dtFZf1?Z zRw)vP+bC9!a!!%=}jKa7KzS31XZDL*`q{j3X!6YLV`u}-a| z`P?HB$@2RPC*S3q z{CDW~VtX&fN8is`G}fY1xrdqioz2e5XoD5QLk79)VJX`7??o+T*P3|*j0BE#d}5#Q z-`RK{l%__|iZleF->zBnNfr?&#*ct%Q2bw(-D3LlM+v+o<>NT}`fD-7{ejpq)2FWq zsJ8_^mj+I&1}|7ftTF&;f3CKXS4PzJoee$)x@_a53VG5;mY)9eFvcoBh~)MWB}ka~ z^G4d-iqhPQ&vwp$f6i(cap$c;xw~1PSLTw@i&>-Gk$3sHsNJlJc|{m`@WAh881H#C zwL;FX6&p!CFkUDt7nHYn&KB9mY%%_Eipj@eKNn_k+(EhLeyjwA^hCkA-b>*Nuf6EA z7GFOg?>!CN0^&UT<`!ap-fJ=U@T((f6IZ?XhdHohVGlF^mw}{7=Q#bk8Fr7z?fowG z)0>38pBXixm%-YJ#JRf{tX)csf8iXzt-F3RY>6v*b>kEx^tL})lwvZ4giL*$j}yi< zqVLbo=ia-vk^TPRNI|*eyM(^H!z7zty+zp*&0QCZ7e2!d;dh!(<~8MxZu;(0gNPW-%tlf$^Y-q7e2d(+xH{=b;q3I!QSg|z zz43FYwA$d-0Zji!L6y+!X&sTBowf&Ud6d{A2NXNvE5QmMGtl!E*C-W`>c!MIU+!>L&~k zJ5?_!VySX`s6+DM?(uBQ>gTNb7tk4xFX=SK2B6O0-=8p7F8z9+*6N#fpD_VkV#GxL za*3~T>XsnHI;~<%rTB>loqNF(i{CfI!Ndn|s-Ho!$RbK+22ekkdkcUBMlnQ!Uav10zz^;Td}s~7MJ637e*BnJ~-cB`_a z@*%GtHyqj~;*Z*r(dVCn7M@5~ry_zq8NNykJ}zmiL*8xua#nhZYpMKR24w8_cekCo zUl>feqvqgaBr5j45~62Zb-et8`Jd|vFFwYyn%v7@Uv;-ztooW-AfTtRnqFWPd=zj7 zd5y>46%wY=R`atwV1b_s^JsnMs(Vg= zqZrnSA=LAoeRz`A|L)clj)?tE-~<_p^m^gSp_R`(@g)uq6~`w1sk_7*$7NtZUB)Yn@a=KI*> zf)pRA4~r$*4jgqBcoaSIW~f{j)S+`+O13pTZ_6HC6Z-`^n*Hf1c(vo@>P$=z-vg0v zNdg5w|B5nM8!SYfzxuT+cE7$ca)NL+{NQjSRmU&fYchCZzG>iH`37*W>#m9ObW z-R_$1kC_{p&7~)!hYL59=ro&PwICTnw>0{8Rh05CmBn7&t7c9-m&1U{ntfn)_Ez}2 za)uV};FDJ2U@DcxT`KpS?U0fcm(%^~kwl`t^xUk_jV`_Bp(oe9=gy&vR1^g)Ibg$q2qiG}_=P(rnf5Ku z3Q709Cf@S3r8U>ufm5O`aXJbcd{zWOmHp}?j_VYr>F|eCf_w%lLcdvl-P)XD8~yV8 zb<9>uLf^5c-0dZJ2;1!)n?C9{J0j5GQLwx%RD3`IN(v%hjJ8}5|}L>d2oEvmX>3a~9~ zlKhZUu$ipT&ysXGFx+2mXXk=}2I7?(bVKkgMx;aJmf0+Rxo2eICEN|VuzNwauz17g zhfP70i6*|}Y(WIuwZ*R8^Kb0e`y}8(_9!Nvl7&MI6m9&KX{J~4M~Uy_zrGYh5#hm$ zsRK7P5JfhlnEaN@3fo~du_KXhRL1W&SqhZTzP|BhUE-UnZDY%2|9K7GMq$~MSPs9r z`G|d0$H6a23Gnac0%swIx7>J>SUEHWWDB9khISJPB(t{7hkog_nZZ>e(1txF=aZ>6 zIr7m%&dO#zYu+r94Xv^`*F50NfH$2(G@lW)Anm0#?^ z)$eG-j>{5o^`3DErXVXEQ+l96Nu08lZ_->w%B5b+1ZUA1E83~mC&TQlN#ICeGdT@2 z9DRO(7VsfF1xvY^H7CT*@fDuw)(CER?-;7XbOW7#{8EHt!ebUoOZr=Il(=>_C7^tw z{#^EEqnMZUVbULCR)|4R?ZDKg&GrF}J@2kjyj{1c6R(=dc}Qo~;5(x;?4}jSQA>Zu zzqf>*6>Y|Rd_z$$%NN(4SnXc4TGa>fCqN`D zT?^RWyA?8oc4**sH>cM&_ZQW$G(}qgp~9SnbG5lAJk1yR51j&U&(lJDv5d;P86xal zRUqmw$^nJ{GOBuvRDp`twJgC$C(uJ;;qcEFcqH2;9~{Tdo1Dk33Eu?y*`f*Um-c2q#-4;4?ZInvJbhY0+L z777XNPGYi5^Lb!pn42uzTNQBaW|t^oO!CE}I--E)Btms$GdgXc`N5eQ{l+*2Ykh_(hT?^LH0m~1$I0O^c1 z+THIQQJ!i{ zoqrx~+XT7fTA$uec-JJNo7B-{Ub`N+BezF93AoNp!EIwB=WM#RnTas}kYya-0xbuU7Bf zmdcY!tvDb|l&k`Gl z14}jY4Xl`5RwTZGNN4@j{B8^J{Qh9KL4UKvOk(Di>yuaT*1ra-gXi#s%c!bkYb574 zJth|C{dm4g%tD}|#~tdOHPn+cT-7XKI7b}Lq&qN;?jdhu=g4_$C(qS;q68xSq)M7a9h36U4d#5tlje|Cnbr39Jg{w4fvzF&kY0(v}NGo?!vEca6t zH*RCHmfZSx?h6Y&dQQ!#FUKL#))9$(0!d~cx+m;P&RH%*3oPHEOCHqygSgLbYD!h# zTi`y{nsQPwdGBzdbs*kk<7(RR7h#G~j%r_G->6tOEYZUzRX5MiU~R1=Xqx<9h7uMa zT<`t(sw#h9$yr!ZaF|NJYOVQpN{#CN;SHzh;KyF!Ut2EtSyKMa=<9lp^n zjCW_jgL?P97sBCiF&R?_fZ_UkETV9@b&`8E;<|@6dHKx1DG56vt%U% zOZ&uUHd9WCZ{ovW3O2_AtktrlI{pN{qxUXs^sRilB=*F72E17s?D#CTp&e7w(7|bv zA@ZQ&+ak5nl+)LxbOK(`VI=+6#};{`*5?qt!M|Vc?*l8Jb&yu*;L{4Yq9R7XG-9BW zYn<6fX}v#LqjS{IE2o5w(_Vp@mv{Vo(sIgu5o6SmNNUz*-m8~l-Fgq0+-F~tssfO% z{UR#knN0f6^drhvS1!vE)`IBT|NaV?&+zrljA-$1E}DLJ$>WJ80u)iY`hl};Z1?YC ze^KWR67xM?{Q6qmmhC3?hM>HYhsSl9UrjUTG4xoe=98(?-a5 zTXj#2tv)zJjdgfUIcW8jCi2+OM*5MC+G0}>czfMZSR87L=u3&==1H0$69%*izg{S+ z`@1n3sgd}EPR=;-yfg|AA z@%@9hvTu4P*c0s==Ou0ihC8hYS%P2i+42D#K?>1&{ahEQva)Ju%u>ZXeR!wCFVv~sh(#(BUQ_ch&n37`$cfqMveQ+k&u+0a7WGq(xQYL`etK-`804F>Mjef3|5W^}j3v=FuSO}FSyi5667tx}SnCf#r z!o5uB3-gjQdGHZF;F&`(gns(bCQqFSaU&{))Ute~Wlef)&{fA}6&v#rVr>^EXvK-% z^YyFDy2%afE6UW5kzVk@+jblNL#JUKnbN)jj6LAw{?ow@$79OrGMA^x{p{t%pa0J2 z+Woafrt+#%8d1a0BNc{7dhjIW0HJweCq)~d0N7255OJg{3#_wLUybw*e!J3ZT>i2= z(>_xLufk%ME=aR@Pm%Y45w*}0ZSjq9H+$@D#z$T0TlsDW5rY15JB42ACMwZvh zQOCwo_QA{awnZ*?o(*0Bs^>=pPsHGhgbV$zx8@Qmz@25cp52sqOieivLa(QM|3 zs-lX~A?SLbxElo%;a4s=_F?|4#kzHkaf}5I+fnSS3!5>|$=_3fb$&i2hTE%i&8_eu-eS*gTteC$SDLX0CY1eu&V#U;?9w7@9Y)8Ja$J*;f~11Stavj z``@#_1>I{!Cc|?Dv(*8E>08v6&*x?=_5KfSt^S-W`>>c#ObHxw0UGju=X%cSlKV+Q zZ=x)TYwRLuHDJGVI=v%m{95Bv3yWDRzV5m=in4}S->HR&4^mg~mJ2FLx;VP}_A}t5 zgLrG42rk$4*;nM9R7YW_jJgKtugXi-IlzhhgD~ngRg6DJQfm7?lcKPKWQBaWvJaKF z!FD1g*RIeSIimLyC5KQu9dfbE1Mk2v0}s#PM1BSkmNDliBjl~I*4So5TZSCx#|}&I{y*fpi{uh8eMk1eP+GV|7Hbg zpY81q_e$+WU-#){jVts$8>d@xUQ8qvR3YU)Jked$L%so`c6yWbtMr?<=laN@=`N=; zjt>D}8PlKby&rQ^XSBW}33<{(=68DFWdHBdM|8h*VU8=+PRgL0P})kWeGHl%{Vk+} zs~@m+HwzwE&T}%I5|e1<8m#1mg#k$51H3-DsnTJ6?U457i<6d`wIYhyvrX;wiUMT- z$~aR_2M5>xN&c-aEkm{0eg@Tlh3#gqhTaC{?kvUS*3w*F92)-Mo zL5O|MJWIaa1KhL)xG7-F({TfJ7c5o2@J$wHNE*HfSJ0W+EIJ`kYN0UbR6qOY!vAOB zaB857=Ld}*|50YH?s-?Dkx_7n@XA@y{{8lofSo;no~VyLx_N8Gm9;m+$~wp&pgoVv zE3^8Y-c@qSbSA)a%rGH^RhZ>M*&Lgq%$%Mgwv_Sjv6zMuS~HL4u0OC4A4j*tL-)q_ zyzdlloOUuMhwVyAA%w8CMSw)N$)eiGc4Z$jU>YfDR>d6*G1&9sC3l!sdtNK49jzvI zIVN~;=sX2a9*-c(J()dr{?P* zxrsr;4#J0p)_2(zL=W>$hXbc#0=gZ5;0NC9_547@4IBe>A+cGXEP@9|f?K|}Oxg+Z zBf(uzw^y&myXIsRQd0}m@k%x~db~>46$n_eyoD&og*yDWY-7Bv96nwIwYaa{h&P5a zJvL#xcC5?UNP5EYuArNpHLW#`1P#PoD|w8<-@{J}P{^az1>c;c$H&LLFRO7%Gl~Kz z4$K+8`~&$+q7$$`P59D=A_zMxZITRARJSHM$M@Yy%aL9R?a_rmmcYwLeuDxHH_4-U zSw}llUNK0Qk~4JRNdg|xoB+%^Pe)R~Q0rg4MQ*x?JcXG3D2WOPy9gmZr{I;dJ4`+t z-h8XZYtwcJa`5C|l#^O{k?uV77qSU+IyC{x$v%QNfk_kx(^+K{)ONtJ_nY7xE4!eV zm^hT~bk85_8|ybeNc&+Qq<_BbpgZyR)B1JSREb~Vp8z;~c#}cap%(IFFZ^cMa&xbS zqal}??fa#>1*rn|s5+a4HB_2~c6`zy7=-#zn@1_1RK>ZWypvU>w zi>9hQSlhKN?2x6m*Acn@n=sdP^Z=No@=I=eJm_&g9wIKn*9SWdU^td`2Xv%M+}$o< z58JSqq{bHHTvXex?ZkW+${uR%@;i^+kM;H$ssEI)m@Hjt7$m-Uo8)yxIJ*PF8IdI( za)ig?2P3oIs7-nzW??-*xw)$%r>i6DkO4W`%oek-#*$Air}>-bI(oP@8txACXlt3I z=iXN+uCVz!YE_pLKOC3=zoI*s>5QowndDcW`)Kd$;CbQk>k+q}nZZ_{9FJ?}DZ}O& z*yv`UHZh&?(h#sKduXmK@lFryOF+hPWp zLoEkns+uv;6fe(1oF}FR5tA&0xVnD4f12`GuE$Z(J6*~qUQQE%eeI;X(Msgu5J2;i z_xmJs?>h(dVhYS$vK@Y8J0G5Vcu-2K9o{-Nla+APoNonu!-hq zymT>)cfANU>G$n>?AImgO@B!BaesE6ftt;t4KO--D0b44;l)tHVC&2?WoR;y@p#(s zKoi*f8)+SIEl27cFaBQpYk_@RjU(N!8hZ`aU%b5;1*WfvSz%UGY?3F+dAQi5UoCFV zt{oSfl+1cA^~J<}01q$N>yu<{#&oNO?rfiE{vApSHllQ3X~`?pPP^Et#V1B;PzyY_ zD6rFy6amCxxM2|1m09*MOy&@G?b>8wA3`lMpwLxJu|v`v6Lhyh<&6f-hBU(!BF6Auo`)hJO!cQlo=ZRU+}oRU&<3AqU3&-mdZ%2RL_PKUW@>000tL+O z=^ZKkz&6miSsmT$)OoWMpq%3&;l9g-;RjbdM#b`W{GJ`_*jYyPk2_^@1L7`3b2v#6xB z+V|UE^G8^NYEG8tN{lcTF{sB^Bmj>A)oK(rKc=Cf=Ky7fqu2lkf(9+}o=ne_KKLZ|~k+^aCzAVg!%w zJ!-tt2F3((t?yPG7vsY>JbRzg?%#{331ig0Q8@P6ax3u$m&aTbJJ-u#qcq6FI}1EI z1&-Fg#67P6B6nUFjd67LHyk&;uKneWBHGgVG5w}W$uL_PAA6`%Ungc7veZV+_dz+; z;```}&pCc2=_65Lvd!T0d(yj#F)E#8e)g|2p@=*Xa*@9YGu5F;vI9IF7wL#XMz8Uy z5>+W{K`_UEQ~Dm5^pCTFhEhc{-GoghuSM;{H35qCV}61R#hR0C@p(BDS)U5y#Mg_d z;XQmc`Hv3G>qIOvIl*c3{pS8g&~irusm7D1?v+(P}A~ui}3HZ?;)SCq`x>m;zt~E*2=rE(Sagcb>CFP>H6s zJ0iz4Rsa!Gwrc{@xzOY9Oe4>fz9qEn(|(_~TXm2g7v+(9FJ%?@a%bv&od~qj9eIok z7l(p(`xE;M7@-^?)eBj7NYnvB$WP&UBe+2mpk5vzc9n*~GCc}W=5tvO>v+|eWQYeQ zKZXL@CvLCyZtZb%*2eQ1zw~;>+s} zzS_YuhGOa*Ek<)38s^f=tG3kUz2}L~)SC3hheWkdLeo)6ib+emJ9f!fOs3BzE5@d= zxYR$eU+uyUDCRdV_&HM${j9uGR6qnO3C?M^H{6!#@N?lC?cip8c$YmcH@hLWzpnHhof$lWaK(+ zzCPjBwMHt$Dui584-%)I+P}BG_Vk#={<# zm;d3yPq2}pnl+jg6ur33@y})xLJ0dH%%@CwkkEGkchIKE6}tQP$|233+(}~Ky$hR| znez*q$#qMxN)IFn*DNlMejJ&F;m#HLk+dc*CHpLh?xnME*?>s3vB86^rGNJkSN5+; zM?8`G1%Ri4QuKRx9hix|E(3lj^-N^DCh_jK$GSg9Jp1G&Cp9_ZxXL1WZZ@*tSmxPF zFh_Kw@8oW0hH}?=nlHB)A?75@?9%q8H4-fC&TDU`vf>-nCc6Zl-+it>nWXlz$>dEE zd`L>K;g%~d4vVRCGlu#sOgf(TOI}|VA055Rd3Q3uCe1gb#`XZA46Qw2;9SIQUI4K+ zJ0b%bb+F`t5rwwgR8p&qg09s_6oE_XzkC4*3m+eKef&2yy4sPu)rMYrQH`qBm2Q7G zh~K_wk)MCMK&O615X>kG?A;;*g2BH@nq8rLvna7c+;_Hxt6X|awGy!(0!*6|Wt-nC zM8jt*zuyo{xpmd86ICN4U!PT%;%4&w^LC#k%}k+;ldi=4hmFp;4U?e$i;;+M;QC*& zHP>eN!k+JnQL$<`;0jM=fTHq;7}QlkK4NTA@B?Wilzzj3dDW@R^@Wcps(1~${M`pV z_VTi6JiE8Nj8kwIR5>KtZbLZm2@#u_cks$Qx~B78iUQEcYbH9p$|^myr=(s>0yqGm z{rUI`VGL|-p0}euU9V6JOJ2xw_}sq{a%}nG(*2&-BXX#di~i*d>Cfg275O?}ldR@n z){RtQN4#0U-&-tgmoJrHw7S-E@!O8!Z|^=KCJ*wNdW_dZ&y)l@nkp!D9}=YE8eLcC z&)r9^9~s%JA$VWMc=+Vu@Y_ShZh8mk$czyIx1 z(@Bfh`3Ak_19<3;O;?Yi_m)@G(3?`eJQQaooo`gBS?kN3^ts~gh8+9Hd$x)~JH@)2 zG0AXQ0?~WlCks%sMQZhXEtYJ=F@K+@9-%i+Ok`5m5Cpwo1_Zxb*{yNGTI5#=!Sg3A ziG2qFF+ocJGmWK1c}YmrZSi>! z(iQP6()oAw7*p!xeqBV*!Q$(I-GN_c2ZU=!@D{lj5+r%OC}P>q8y)c_{+-^4J1aEj z?+0{EU2f~iCD0rOZ13pIH@)(3+` zG$03^fgCIxyTFrb4meN%-8}q9x7f+@R4gv-fdvJYRHRQo8r!T6O9~A~F2aL?0&{4e zYvl}R*1Nkzd}0cX`WV=8R;sn%r1e~X!@%A=1;aq$k!n=j=+TGJ{vEHwUw77E222(hy`exvuky^-1_Pd9Awk3+bJXuy(!_+QtoMNJJ z@;_?We@NYL{th1tAy2dsx3ZPB0M^b<3t`?&|14_}*y4U->wi1(`o&ZGTFA&{BK6}xYAB#g|3Ol4(6=be13JVfcB79A|Ne^Z$|iA~Z%9$uHD2ECYpR3A0HRwP6m zwzI#w0&s7M0Dh+>*ngfY zhy1Ev^)0;SIFL%;TdxSHEHtH&1j5zk8>j1?fcT25myYEFIun2hH z(<9dQ31i|Aeoz;olieR%)pe=?7nUcm>gfpmf7zmV8SZ(hTPVU(r1SdxN0aYr~t z?6`(%O~M77&mBW)rFA|xJwDn0(3hE=wQX@9F`F4TK!rS)4HtM!`S%2ju1lQ86OfGP z-c@$Ep6?ypyZMf>eufEXWlVN{}-f|GDh77*)CD~l@U!wn5_d0@18f48S2k#nwYqy}l{ zsUP6|&|GR!8u#b&PD0cSJ)+Rb4Z}cS}uLvr42*wpN=((j4|E=zJy5Vm(iUKj7%9Z$vDY=^AP zy#p}M-Q-@_GYK8=`s&J!gIO1mhLk@RW)og}{(&I+CU$QwIXuejluP|5`a|nY-T^YL zpmB4hHz&G;9AiA+$Z^bh4D-*kvG5Q=$0=D0oVVd!%H|g1M6227^d;c~9y2za_^;~1 z@kIkmgA~o{+?y&5_2TT%(Gb5a#pDZbtAZda7FoF(s_6aarVIZs<2tIy_Vn+`1Xe>7 zZ~*C?T;W94A~0hD_*Qq~;yqb8QQq?|E-OVa#U*;J^Ft zNupP)GSk>3-S~1o%L-R-9xaAB9R5SCgG0e!2han^BYH2fq315nzr8opn^kR6=d<81 zeSiniQ%PThq&e(7BV*G)$Q9noo=d5Dl{NLNpc}&*63ORPoWRan|y7k-f_b z>D&yR)z=Z~^I8jKKbWJRRZWCL|LY})>mA%!kBX}nAm16;LZvYIUa~uA$@IIdsPMMC zBsBo$F?U10`fRZmDgeNJ0QtnIb9!Rs>v2zk!PDg&OoR_(t?M~L0F%bdH*2@%gNxRqVG zkX0ZAX4FM^bPi@8NE!{W!3Xv| zbczCRPeti&3fIF3MSvE5dZbI{OeOWD{4%Lb4kUdxyv_z+ifX>Zhn_RNJam!BL>)y0 z+DSVcEmV({-sPFLwRAtF;pOuf-5n>)O|8yV1=Avd-8x zXBpW+<-mNe9?AXm!kYIbX*AIK{-OF3B2kbbUT?R}+zmp~sh?wZ22j!wcbDm;`QH;k zHz@NK&tyd(o`q0XF0bowFFU*sFpvP+UVSy7ID}@Jd;{!oXNPLZ+c6<{=65)J&{(Y( z_Tr8yIOc8ElxH9PD>%?gIttkfW@e%ctX4Um!=KF!*0O-lc|^i{6FHK)b$_(;gQ3iA z80&Vntqr&8`Sed>^wvm9^t001&+XekO!e~&JBghA0Hes%wk1;T;8f@C+1v@yH@P)vp6)FFyE8@y^ytZyw?YN!IJ%BXnPblP_18Ck@fn9z+7f~ ztE}I;LT&=nup;WlIln-4Z#GZnsVMHAg6=>$G03OO8cY&Y%uVr_xfiRPwaSLog_gm*i+CUEpC!?$@G>B2_#w*63q3Q#z*Ipz!jEvfzq7OgYX(M)ab{ z*8|m7D^18JZpZuVL`_sxfnVAM8BtvXsxt)1NcHGb@(W#^i zlGs-Lh4Axr9GycDabfs^TeM%lX`%mXL`LgLx?mWb@5o~u->Tz9edD%)FuHne+6qwI z)=?Vl0W23ZqqD~WVt_-DE76^pdjPjmgb^_g2v-3Aeit;Lzu~}(zNLi+#8csFM2;bI z+qLYKTlmAp*NVrIw574K3~7)RyAO`K9O@MUGk=G6F=H-ws!`k4eJ*GZ}Knnz2`WjHbO|n_R zZYmbF``eWMfBwh%M5<0oQH*^k5}?>QMXI_W24z{|=(*oe!~17tL^GG%W$-qnGuhHg z-`ViC5c*%v-GQ7CdSia%9a>yieg+#2+BZu@ZQ<=l9*LlpUi!PaE70E^-e)T`F|qP{pW|*C z`-RsE=Ur&2?dm3^^yRXodHaXA)zK{i#Z9ZqepwPX&{>Lno_WO4IOi|kJP1+P)0)jUYAxP2ESK~MqG1w6cLt!?E3Nz^cqP+V1z>Z)B}$P3Y+)s`YxL@s8sLzHF-z{Y^^uUDhiA?P`y%`Z&o^!O z+U|iOP~~UBfC0YU>BJvx4_Kt10i-9-B>EF{08B%v<+@Klqk#$Qb@g`|U{Y|fRgf2- zB_nN?=%dEX^$kg@1MeQrSok1qltKa%AvQG_2TKT$B==`f%O%FnXCEXoiC)0c()bhr zr{<&=z|%QlyvE~~EhY!;kee%6N1lin`0t9W8>`BVIBKD2B?M zW2!(f7t@08Izm6U5zG+DhqbA}8T{oBU%aLW4nHb}@895K9I ztxtM%525Q2Y!#PJt z>tq-!t5Py4WoOmh*>>LNM?bN9AOX4&nNKCz_Ouc7*7?YQuMsnIW+rxah??CVVvT$g z6gM=y{aP09GxC??QM~L%*!0w$+J%Fp8gD`h84IZ4DJf?`KnAtX@%1S4mx1)iuNpvM z7fnHWjhMS#1%Le{L^ah*_{Pl1Ow0_}>w?RNfLl{LbLjf*cD5+^ z1%6dUcG3=a=294>{pm$|b<1{{a~#CqFyUNq<9)n~a`oLpgj%%#n{EV2aWhu3CdPL6Q&e(RU})6@^ks~!C4=XD_GhOW#3M=B!`4dliTzh#1=LM$_U4hMz#`>=EAeioo^fZ%@tV*Zww_5 zKS)UWYv7Xvul)qk*XJ&t{pin5JUL_;q`kiW$bqjVl?|j6>2(*BCmVd_5{TIm_e-m* z-|YJlBaVc0f!9rhPWN$hIJ9o%vQ+2S#FQHuHU0Sej|sVvF7>@O&&jbCSqL z2*Ye_Wf`h_m%h+HYpBL?1fbTd@BaFyg3f`(M%wWk8EdV@*irq^HaMg0YBnR(qf z`3yClz(~=@U}Fo=Q;5XbnFEzpyD8^ES^#B!pF!Tt_3wUD$x3~ITo}pT;87{-;c6j+ z-nBigJPXQWw2o5>`z>ok{nOKZ`)9y<@LFldeJYU9d-$L@Xr9jsz8HU!`1wrSchu47 z6oXg}Bn`e3zmTp=0M1S|cPB0q@7`Rb;`j%aU!}KUG`;?XPVnM4F zU&$LATVx0bT}}m|=V@6etNrYfyphyiq80{k1A))JnH}5=NS7LyVzfp<_IL00ny@Rx z+Oa1g!HiTfM`ha%)NAcH_EexZ2y@ELUH>7FY(K!L&ezi3JZhyen=- zHi+-S@I^N{>tJfyeXOVoHt^GyN1JC02c(SMtfrBwi_4t}AEy%hB$l8tkm_CMBbV(R zv`iq^Vv)xvnEGIRKvtfszA7F{Frxl{*n97gx=0Z-}jvJ-TN2ZG42@oK^;QYUVF{5 zp83pYh8amxTs}|PPnGZuY1&79Cwd@Eyc`<4umct1XOpd*8A~3q#o8|av6~A=SGd*l zvzFy7(TArF_5fe$mz<~WcGE$~J-o2V@GCR92=Vgcr?G!PliiG@jEt%8Ojiw4Lb!e% zEFx7bG;}~wMxcj5mKP5@K90hYs)X+w5c>fxWn6BVqg^ihf{b;*)lA*6kWcG8yH}l1UWeBJDF_78^FuhyEZJtjP6kPmsBrj&t}YZfC^Idt6ous&iKEV(s^3kuZG7B z^mXJ!b>e0~>E`H&_|rsG28eY3gP`TZHyd0Q{@5A9N}o7O zb33kbIKk{k*~;gEa^r2$s`p60DAlsBL?0lkDAp!I1AKDPNaJ=ti8fCmqIxEYCb>L69VCH5m9%I zlPJ4gOB7xe-va_Slm7MkC$a z{i#e^aMgC~1g=n1FL0o9FQv;REP1GDD^5!UT&$`8i#iU0%GD*m-;{$>*;b&bSq2Ve<28Yv{cfDyIB1KNdj9)JW?(%!BEf= zxMJPLSXHH0u9jE33$kCX6P4@f39o`rf$q8O<2^YnAkSBTdbOB)b`%>5O?VHM^xvla zT8E3pkBI+<8tGhnt&L$7D2FgV0}*Ezs#t4sYa%&AVcKyV*wDZjSR%K;Ek*Y zncfEZP>D1ww<-d@IgguT0$z+tK;MP=z60uO|4H>;uHH5~E(01CPa3=Fn&HZyttn)0 z!)PREcpv*tclyxIa~vf8JH0J6`x(jPnTg~vUDb>?Y3I@&LMnhz^Fn%&oejq3ZTaOc zlM9VVt^uefu1957d2+0#1|jE6f^}~Ke|1aJT#<}LjCxr$zLpuiYIhxY{PkbPudsk$@4qtb2|9>7CJ3)UBy^F1Id9c$Z+=MRw6~O8yS3m z#6AJXMk6Co=I3>j!et#sBUC-^N5Q`i-Ot{lJ(8b>S7%Dnm~(|AoWkQBbL`6ga5%94 zgpbSlqc3~3HS-@RUF-pXu547_|JVy0>L{-dCv;XjL5pecxYMj5M|Dc0IH1Ft8s?k_ zWhzDWGLM1S`xqx1JH2}Bby~hMQ?S%!nv3OXg66%UqTV%123#|%rzR|OHz?Y0FSc9C zvVIH>{H|PQI{NJLi&;(qKRw3~;3+%8#aq>)U;egd+tmzf%ZXo`_Y`#b_53m((nqWS z+(NT$*xTS!TQ@~+96nsMvDf#xDgUe+win^Db z{&m;Pr9!T;<>7HoCotK0-PzXw?0ni!3&1BFgiY>xk&Help9Uu^WunWf-rLs8@2R~C zJl-RlIutJR3txoA`*MQsMA5Vh=yMgm&U#u^T1+OkBHlQ=Aln+B=%qly1MrCY*8Z8e zv{n}+4`N~up=p|9Y{LB_f<(57LR2|1SfCz|WYwu{N1J+^4O^Ddb#K+bAD*>&BqgZu z!DP8E1rxpm)0W$mEq>f6CmBu+tzUkdz7z_0TeMce_!UB*$a!{0Felzu0`Ch}2cmZb z!uBnK0e|USw`-8As}VZXDaUC5AY>`%BjY*wV<+eKck z+asg)*4U5BpAA#1877}jHrLl*6~h*Z}5+JlUH7AVvaJ)Iqr#@UNjD?(^Kp>G^0dro|6PXgap$ z=|f&v^nD{T8)2(`7#G!s8{CNNx_NAc;=_>~DjV>{J*fyiY^}7phX2rl+gaVdEe2~_ z2JJ9CQNV0+Sd4-ltaN^P3J0SCrBUI75Z`PaKo}2OpOG#P9de`P$6cv|W}Sy&=In2=>r)d=zs}nhiNFklXSPFlUtR#c*l^-b8nVyXvxvV^EhjVXU zvn5CN!>4YjT*7nSb64AEuP%BmdlGLbj@a&X%fg2+FT%$-8GTcG0U~axHmmqg2o#y{T^Xpa_n1yLibW2rOZ{z`3fCCs$xlIm%_*+D~6%?^-W z#{#*vvb=pFHFoyBS+ls*w5YZv%gPOkyZd}b3Obr~bm1pf%hPWl!Kr;nXXKFPzi&UPU%h>p-*sqN3PSd{_1p@*WT*?=hJsDBsEIhHS427;*Cq>Mwi8_+?|fPa^1H(b#era9zfY* z%$3agj)j8*vA>&gpiuQgZEENcOWkj19Qdo0|EZ~9%le+xURc&@@7!pI``lxDh-c$n zJBWbT1K~g_lhZ#ujHC*_v|YIVJtH~%0qxng#hB-|`JIa#3i$B0l;h8q(n!T~yZ<6u zz^V8TqE#9d{(`;leUz6%gyV%>0`)|zKks55Y|}1ohs3{R*N{1z(V@6sr1lIGh-i#L zs-Mhl4g@++yv~z=O2~M~90}q8$Fn;Ch>0DCighb|9IpIDA?tL%_B(ZQD?j`3BMT;> z^TL#K!Thn0wbu&o5}WDPLN8;h44%lix;B&rwgL?BY$Pmq@v99jpgVoEvdJkSW@bq+NpsG+Z#t6d~x^?!emiLuZMuUX{^ zuhkhZ3h%mkoiERBKdIQs`SkgNv#UHsGh#0u$-nr;+7!$<`NZOSP4*XSBhi`<`7FN* z=f4%$jaPwtQiUbzj1OO$jWes4>f2^~zj}CQ=f%P$0HdXb9f!=C_j#}GGAodojEQHB zjX?dYTToM4f2@XO-jciIv!1ski+oV4O?-OPJ@cKRgxOV2A952VU;FYSdP_~#K9Nl= z>*@K<4tl|__k@|(hp4Ytu9;au2VO60Kl>ATt%kFp@}17aoSU2$H0GL4|5c$CF5e~r zAQ4M!#fS4Sv1zbNxW69MIn+>O0vMddyWt|?n;bvoaCi5OxB#gQ(TucX@;}u7uAaDg zI^C)S(=W}oN;1u#JGH9%ZvUEHkPblNau@59_ku#6&UH{d>l|4>8i}m}9dAVynXu0# z8C1E?e7Hq_w?Xwl_zG7;hAVgB8@tZHC<&53#?R|LL!Qxfhnj0j4VnPd-@iR1L=oEc z3{sdRG83hhDuyah;ORqJEGiFT)^&FGgBz=VYTE$A)QlKAZZBa{+U+goV_ znm2`DT)&jf1^Tfm8@MzVRFLbpw6@`9yR;iLB>hcCjvAqEzfGWOW-4nfGwPXA%+dLo z7uk^9;W#JPPEF=`KTn%mSi}Pw&J9)}0R@7y2PbzJg7GQ_obVT`!toLki_qia4J`AiVPk(j0<%z-MHV@F$5;g ztSX9Dd9kUb?u5C0@HAX^@JrC*gUn&5LW&~55n4ZG)Z>v~*qn*EvhWU3J%lbG>lNA6 zI{$7}wYqrFVA@r{)N>gmI~G%bb$;hBD&Ke6*Jtq){KFxRd)u_@GAKVbvPC4ByqQuS z1Cly@dY%Eg1a6*&ybNP)#W|6h^?80EuA5J6jsL^(gx>ec;`V%Yq1e+KOoTaW0ByZD z&~@`LAh~r5xv^(-ab<+i{}=1w1>yovWV4!@{KJed?lw}7M4>}fw;1V#)uYeka@%o7 zm5R`zWb!-Ep`Ctd%f54;! ztGby6G;t*~iO}6FCv0~=2hhmIj(NGv&Z2Q7G?W4@=yAI*Va=0J>>6tam6TwPa%v6 zJZ{aMm73Suc#Qz=(P~p5LfS0~{p$##+TO~ee!b9rCXE<6|u&?C&~^#i%X4^4%)5E5_s}r<+1XIRduVz?;uH zx8hz?Updp?x)CPONih9lxcn~E+~D55-YXt^?r!>)h1)G(IYe%)6izy@!rf;Kk4Tl{ zM-<_Sq-5N&h%DmiEFU54{Uh0H$;AMY;Q^Hs+4}01Afo() zC;P_WFz#M674tqSwTuI0S|U=%k?M!Ee(b!535!H}r;Yo%PtM&9AGEiM(;SimUF~gz z@X{SCUy7vn7wC(4t^@lw_oADdakKBo`HbcmgvG-3s`!7P=4YE#pB^=!K03xdn4M%TdKs?;nr3U7Hl9f&I=gwDT3G%rbW8%mpMa35plhmf;`Pkk68 zkiyl=zG5CKdPrkbWHIQW*(VOZen?)jveA*sFwH(C$jBZm%f!^+`uo$}b{C(kKbos- zZ{+VUIhs;_{UH7*5q*DP-*E)C@jg#g?(FHeD_W9f8i%FY3k5;B#npcfGe@pwfWI0D zlk#CF8;md%hMoP3u9@_O?38$&52R_I@_anF02QTj`ypF&6uPNeYCA)EnFB>jDNX|q z?uerC^rGK1P;k6H_N0ps3lESDcFNhfCbxQ(NfE~rWcX@MRz@X}!*ko!x0xEU0pOjU zj0JbP8lM}vB$la-Bgx=zfgMyd)ev4f*og|y0g4p)2DrN+@lVPXesz#(=2pkE4&QIZ zkvtX^x4uQ9%iQP%VllgmCxUcPc}KBgTCM_3naAXtxRGC#r+Q8^u&PUG=-S6SG|4^@ z1&MW~z#Sg1lVLw%s_nY4^zkI@P7Nwk_SXUB*97P3G|FeuDCTREq{~4eQo)OH45@a) zNn;9SkG|07qrm zoc<4`KxXwVDPW_5f~Ldr+Fb0C=wV+4tR9zyvJ}PF6?BHi%395#fXanLSM8@_zo~NH z$HtNR3C<@dpb2Qia63FhYbTx3A+Va!rE~m+sCP4~QcHTov$M8xvNJxfsEr}b0n-28 zVm_nkmC}(BNnW&f-$ZHK)P(AXA;^<}M1raV`s{%)ANvt06A6@F&Oe`Igro7n!!V8r zRbC(?E@JTYN39hk`%?dy9jqYGi6~YQ03t#w&V3!`Pd%`$ZNsl-rZK~D*v6>tBnqBz zE`B*fX`y6$*Za4+?9)Lf&|W*_W#%ThWi$?1gJ>4tB0h4k%f5Xt zMg@?$uomG(fq8n$(ckd`ccN6?d?V+N&0u4`XQs<~Lh7tnqj6jYdpB>N+UatNFMIy* zNXSa{4XJ@`8onao&L<|Gc{3FgBNlM#28BI@LJ{=mL( zbW{+464$7lAEN&Dy8ERw-Km154p&h;NCCuwvkH3}Dh`e5Dmg}_R7Q2(w7f@j)&$}0 z_J8>}^$zBx7tm89R@4mo!}CD1m}#hts&-x00=vGJG^4sh1m-3XPUqPCTJ^tgc=YI( zBedKM0}%^)&h#R@wM&(0UNIpxri<6h+K7Z^C-@ih0H&Qsc`c>C2#`O#>%le1Ma=^5 zlvlU-hdq}~EG1XU++nLx6~UD~;x$C3k6sG%@*^Ytd-N7ZXP0*sUI6rd2iB^_U>h+^w#>VzST7*ZNQ(T7^22 z^Wt6!C+;q7X~si^9h%})x04tseTo_4Q6l3_5ni@O@i{*-yTPKo4sVa6XF83xucb&2 zT7xG)cY9x+-A+@vNDcn5J};l)=BRo`oqtA%0uE6gdXe!?m({g~o11^$IJJX1XGuUl8vA7%Y3m^_5!9g%Y%26PG<0q_@4s}ov) zy5RWK!LYCW^8Tkpk79k%5+BLUAdMh^cPCnONB4v>gt)HttC%n1H|SZb2uEEDG>-hM zaXxu55X_zdI0Nr6Y}-sPVU#;w&l@1N8I z?+lu?iY@hYvsbDz5s-(08L&hT=nJ<$^-T2`MI&aI&UE&O_qZ~^u$xALZ128_=MwrQ zp0>ax*8WhPDO-tD#@z=`{CILFT+UWqd2+iUbe5^YCe%w1dl=A9auiTFUPm|FL^<*$ zrx!Oti#d|oTx5jAUvtzII%;WnML9P79_>+`oj`tWb4M3Ve?t22qz9uEG?xdTRaF&p zbLGW;`H`b8#3c=8v+iKRFcVak6_hm>h}Ke36~r{2D>;&z17YaX(t|N+3$rQP>2Gh5 z@ab(~56VjhH|+aVS~ojuO7d}j1Z4uwYty4-@iZ^(}NweRY7l!%VGDotV*H^ zn#6PUKndvAPeBSK6`-bSt5|n%DDf4bdf;%xZ|rB+4xq@UW_{z_91)i6eZK1QPMxC5 z3cy86;w$K3y!_RBWhtqsjusI(p8i2$0{H^wnMGf*q5BHm_djWI=NzpVW3SywC%KsN zWNPdHq)EkKzO^9zW6E~}3KI9*vU&`f#S{9PR{6ga5}V?;bcm9?vQq7}_zzVjF%`sD z%7i$1c>eCC4h6D^kDzyY zpckZpfn?Ku1w^<^F>BqOqGKNC3ur6%YzB~ZbgoY(CvA_uh+!huKv^CiF7z*0<-!5X zMes5Rz7!K`D&SJyhD&&>n*ys zSEPPt;Yqs%09Qq!Plk}d9fV8^xPx4@UVr*a8@Rj|{!^|7z?+`$G|>OU$I}q`f02BH zopytZZ~)w$FzgsGz3 zP+V9Q$<^69!w?=~osM|5 zN6VTBq(=#Q*YC^t1Gv3@ibDFLAxpkM9gLc6H0t6VywDi@KLsy`O>UjP-ctbMphf;w z)E_VDO$JfL;~YR^F;BpcFJA4X_KS^tbyma|38@gwo+laTB2nczbf4*>`%hWO5Akh2 z8o1j`syY1iOP1hn*S}>=RWyhWquTN&D%Jqp{R>_In!g9Uw9o%{xh-^Yp5njR^EMAh zgqpnQU#m%hcmzV9u+`!25-Bp*ok1lVLT5C%V-O|$po`j+4(N5pJ2C4n&{fgHyXTp= z{~h=?T%plY6cQb2*7r912a`mJ=vsE+P9ETlUtScbFFwgN9iM@XNkWOK%X7wiz2^Nd zob(j$`?_ZT#XCHb^umt>$0DR!MST&#nx6%k_tn>+ig%Dr#M39y<+Sa%v`j~Kz{r8s zO8=+&LWyZf^a8l9aTi~Gz%(TJuZSCNy81WFMk%Li@%Kai>>1G(-WRv-**5}qR7LwA zXh#oz)6TQ~_dSRMw%o@7q)MT{ih(Z>03B*8GD-Bz1ANeXh=~~hz6LI3;(tMx5kNZ> zxMVk2Gv&kptY4*@J{7z5=db@TJ{LW)+7?;X$MhCpr@WTQl>#202Fl#94Jmwq)Yo3+ zwNBOs=S^)t9)J>-4_I9AzQ8Brp!I9;(;j%@<(CS;zjraxiHp&+ai@6+*Z{qBSpxt5 zm%$ES6@P6~lpn%&FW>n5ByAYxyk22d;G|mf3%<_-mG)j@E-}~0Rq;)a^1sWi$Dn3B z2Q1lFtga>&kF3?4oBUaYr@iuxB|dl2=}e_mb;>gaIFuPV`G@l#j#E%aktS969=dua zdcM-ilCp0#Ip0ewXH9fQu^Yt`>OoH#Upn?CHUd3C)%Kx4uW_-d#(&2`gvbS$^wreV zU<)R{XHWWzPgsS!rAZHXFMid|c&az9tvxWPJ32NwFg)1(Osf1pgCqVL27)y$2l8R*b|e@%l@O`~Y;zm))A8R8XS_P=+FlJStb_5b>g9kwup;eW?# z7|hH5|6lmuUHt#jmdao@WXsu}&JNMI%nwc0)W}ad>)pSnmcL5y$;>;tJn7sXNM}VY zdrn|U9cNbq1~NP!OHKuBuH!Ru2kYFA%=lax4OcZkfLso;X`FO)WN~iqvl*sN{X?I7 zJt^D#i*3fs;>X$rosdm!M#y4lb`<`ohh8&DrW(kiEUY6g7}H^UmW5xgwMN_(Rc z;4V3^dAG+WGw$y0-giIc_wI1o4|z=j)H*R6F8`f= zH#eKRf?e-5+aI%g9O>+PZ`K<_7-09Gn=d!oD$u+6Tk<^1U`|!TvE-XyfkL&zfsS-nBVoI*}VB-8y$R^E{Uf z+wa8Nk}ksr7-|*`M8^m11{N9>O6aLj`vac03CKCoDrLx%iP<}wdj!{eQ`<&@8YWNIRz00Z#kcMe zHUz$yU$9#0fFU6x|Hg(4on2j2nc)Zlr1I(P*!y-1Px30IuC})-xhs&{!%8>8`gO)( z8_d3>tad?bVm-LF8`Ur+S$UQONQZMUcm7BeWjn7X*PUVC0R^Nuk&Sd<%w<^h7YX;B zpR!^0%YRmyK1B2zQ4d|ueQ>T$jj@b4{i#mTd6rHvvH#;m3StHaR)d zQSGe|f{$R}iAwNDG(h|Y9`RUN5*dgtR+Z;FA%Xm!{COFgq}S{endV#nZK1Eiv&HbZ zEC=nh|KoF|hfLJhF&nBh#EgJX<$AQ~ra^vq*O>rT_64i{?hM8!jp%&(3xK zHkbgKRTR+7Yd{4vNP$LA-N1$zY^WiTmH#w>l1jFHQ=nH#jMUc%Kg@&P9?lW2upR%oB$G^Zk5XUQuR-?O z6#0rt^Y^UA$&GVJ-g-}-MGy}otkxIObX}#~{~c4SYMReve@S>6rb~iUj7MHcUh6^? z%oo99_-*CY)e%Y!P-wj6wA?dCq_W!>9hrF_FquK4bS*8I{bVgo6cz!+82uc1M#84E zET#adNH>9WTy)x)X#^a!UbI@-EfyWOUdZDBBX14?VgBc5MBvnYpmN)D>)`Lsyq=Kz8aR_(Y1fu$CCJV4V3}bNwGcen$P8jN$7#*F>%uhFD#ml++ z&95m0b1n4<#Bm_P@h!4{OgyL90{sy~Tms*u{>HdAYHW+r*B%>_#;yr7_Mt}_mVo+!<7;#U{Ou6v$+`<`Tcp?qOf;9knGBdHD)GkvDMV(!Qc7Qjd30uo zxcB3|em)QYDN$@AeE~-DU$wA7pg4B33m682QjzC0>8tpaXGdLA-ezbG`Xg#>rf=`5 zQ@{Ei1}4Sqq`XiO_&%@rhrAQE+jKuFtdkSNepK-7D50l_;uGWEaxbKVF1U?P>-lzcNR+W|u&LfHu73C8k30|6U|M@cOPt8( zV#GmSndaQLMI%eO5syxT5Fahha|t4^;ytsUtU;2Rf6nbR<0LPHjQ%riR5?#f`VtjFHAb3~%QLZZgPD0-XKS_YB8=W0+`sQyQj-1lvpcKLobWjB74^-kA)${_^(t)^rC5VebTJ>o= zKo%+fdw#yGbG&C?3$?QyA(YfU0liK;RVfm)Hn#9S#0{hO>-5ik$yex9dZ0s#fV9`l z#ksifSwU^@I|M{|M2P;8h3zK9|fAk z+Osa!6@BeG=rS?5dSMqX$eVOB^QR2{TzqaUzjH4{--wNGigL5Nz_01b>01O!y(p7G z|Mm3+uksvj^2k~J4Vznh*qr-$s;vLReZN$@NiG2h%k)wzyjx4FBnAbCAoMo(u?4rQ zz1J+hb{|h2wI)_*+bF7x|BsVqKJxp-j3Zt0eEFgaxcS12Q&9>)v)JThhE>Br&SuI^ zK)R#hoxQo%!Rl$=s=MmoH=Qv2EJrIY=<>4P6%hC7>1fFLncOf==loUcvVf-9bghnp zI{Ib1eDvnJD zIkKtHm7$I5o4J5?982737IDOl<6|<;=r#BfmsfA`LMLGf1GHur3kbvxV?p4o?n(G5 zht;3KhQ0*o6RBQ|(tN=^8vZj1k-su<66ZL%rAv5sj0=1Dsv6pTvi8-QgJs^tl=C?b zRdbL_n>H@tcJ{LZEeOyt4qdjH+|?RqHJuW8NSdW+ep6P%9onPoa9{Q6`b2%xO&;21 zJ|rr9l!llZ@AN=u9d^X>U4#ckH^YtN0t)#Tc;btBQ>dF3XDUD&S5`6_c(HVCZuDDQ zUdE_ym87UIjs-J?4|z-|`G_R4rmNAOi;QS=*cSaKLJc1pecGrDKlNevs+Mzc+JO$; z-ltdTz~;$ylYpy>MIaR~DFmvQj+5dawLRU_(Vw(-R;Q@Ly_R(x`7o8Y{ZT5{zLs^n zB|gson}khM&}UY`eL;GRqAY@eFJIpE7;3KZ`!z6HgAKD|>TrX^U_w-y zZ$CecRycwi5ECbJtN!kLb?M~uVqCG6FM{ix2)Zar82mA$7F| zE3W-URdw(i{=AZ!t8eY1o_6& zdhLmsm-lGvRP6Tf<|Oa$lhtrHsp4TNhsnn=Te0J9_bHMWZMxMSA2sWqP2!gX)ZiYW zw+hZ07mHNokFql%=R;ptl6xO`4b~Zf!{HWWzPAe0g^YZnYAp|W8smpchKC&K%RQmz zpHJq+c0-psT?=MWtY@X#cBWP{P8-&QZlmg*%gJY z>wFiD1QV;=cpMaSL*~Qu1LAZvREqa(R3ZRc$_^#$n0}U;6+niyv=~b!=@WYuJ3}|G zHY>6$1v+#*5M>Vuh!S;er(?(X4Kx6P{V zzN~kf3rWh|@72LR7Xy@LrRFo7x}@j6eoU5UCjs$`foon*Rnz#aFGOfp&ZND@wtf-X zK{iCw9NV@WlDD;s@{)2*-dyk`l7f$kY|ecXClcjAtv;|$K@^^!^*HHFNN)tQ7@h8h z7M>mX5BoSb@(P{stS|swZjqet`gttJ!Rt)kns=%Ml|gwcj>tLsmGzH>Kg73TlO$w8~uD-z(PNGla6sjb!e8S4roE$l!{U@0dK><*g7d}ieZgc`9-D({MMel|f zH@6aAbZidb2?-I3sK;E*T{tTSaMrqVOP>VO6ZXZOJ7^%Px^DlFHk16Ol4eKnavCk&|rF#0$i!XonrEVkghdsNV@cPB{9w&Dc0{#q2 zPtSJGhEkI$2B~!k{PQzO{?x(DDMvp|Z0UaG6L*ReJjw5%!~ht|2Tv>#9)Dh&4x=;g z3kXECONU&#C)JDJp_#wY25->x*`erxQ>e+$rX?<>Q6?fjGxJNX9lHVn=#tbXv*&{0 zTp=@|Wz&ImcQx7QeEo6Z>0|l2{ZcDWCUO)a`@q<#a~17gYwcm{scpdZ{4V$o(6(AS%fpy;_bqtsH8L)b zYnEVs4=JNd(!qi0fHn8g4gc{LduxH`n9M1-4u1ckSH^<1$Fk^!0->+eT+sHshb@Ox(8P_NB0BPtVAEno;kZ5_d|mq?i_;5&781G@(~9TPWm ziGtW`Oh0kJDOHKt@yw0oMBykV2!c+hWWlb$!d1xCPOW3}gp8DR4FzVhYBJCfY@J1> zNIzN)-c$Zn6FugZHd5>{yi^umK6Daj4P_1m5*KR{1NPq%aZDZ=_HkDPPQFI8h;_R~ zg~(SpK-~Jhy~4??@?Xt|jrL-v&{OwV%JoMyEZ*1J2~uml=xYJSUxb-#ycloq(k^!+ zm9}DMH&+HI^Ea&e!WTDMg0c)N`=w(mTfYWE&?-XV+QR zA5`>eBF5Y8n%hQxAMToqSzGBSgBM5LUXN|i!D~bub6aq@Kqzx8g5ms8-!II-cupEx zfi#t~B{i0O)Jr;j>C<+&U3RH6y!Sk2@34q54qa8vD1CluWBxE;Pq(ARV`ZWjo+WqA zC2{Cm+zDp{LY-??VoxOHMx|NTLRomt8sIoU#*-)DXjG?R=-LkVfGSJ8r<4ry$*w(QeLyh{F(W}8Q z8APVbm(k3^b<52xF_HZa&39LA3t6}Ml6`PP=h&E|PY{zo`<=d#M+>b3Ga^rPncScH zhks!zEh{UlDL-1&tgW`1{h4U9H6-vY9Hi9Prvd)?phB+hr_=55<@fWs9DRzE%c4Do zhppp>2i%P7jF66%nddYxW$`jz;upRM)##@Z`{l2ifcXrCo2JyG7|7)_Q%V>aW+(Dt z%vOJH`5MvXzG!M}1BqhqOdgeFcmL^}DR+<=k)C2?7jDvXE}{jep(sBgviYk&-nt+# zw{o)Tb(`#wJcReMe?wXWbjXt3M8l?52T#N1na&0!^y+?R`LaCZUb8=YdjyvvT-lbq z+4Q7vi9=~JhUZdLc|4jn#S3R!+yy7WB7$U{it+Z6qwSV5jvl8{QsHN}Rqr9kns}6v z-m`cePBK{H+2O44`QbnzyZ2Id_FhE+Hf&43;vR+(ssKCWlDVx$+s%l%WmTS|nq~t` ziwVYZhTnyu%G;xZu+NSpc;u-Fgt*U3!HD(IG?~DczWlT5qEpggZvv#IR=Q1QMEAo_ z68U{jCiGX^f3vbAK3nS-75)V7^Fa6DD5Wv8!LV8tz3scg>ROhe?PIS}6M{|h_t_sS zxd&9w57C4>Wx<6>66#~^9E3??ez_I5=M8CJE$YGS?d_#}l2uyz-un3xl(`Nkc@F)k z&o=DEIXIrfKjKNW)FgD) zDjfhNB%il6_L*sfUA1zh;n<#h^+F?MGsU?%*AOE7jD|x#c@goL<>7gZeI2`iz}~~( zz#HqrnXu=gLWaA1dA`M46vjYbS^<25Yv-51fXtJtN1~)KZoW5LZr?5{3Z9_6R?TaZ zCcdm2w?u~NI3!PLWGz1Syi+E?XV?uNHWM04bCw%Rd!We=n(oy+go2r(@cT=ewUm6hMA5%!_)o zK{pT90B-xX}uC?q{ z1Wr6J$#^jKh2VMJfv>t`gQgsoVYi#oWQ&&j)lwfnY)@CNw_rfYLGzbK&&Qw4#$hIO zX${iTH>P{YQV>iMUx%f>;*|~*tHsO#&i7?-79VmTWu_AbPVHuLS^9H@rR|(c?TW{1 zwXW+df-II*38&)JpYS-CNji;AZ7L<0?7dlT4~{RICP|r#bppP2n9Xfg{ZS}kFA<#- zCwSn$aI&ypM8+bxo-!rJ5$dv@P?+_T`Gc%-Ni`!DojG@#rmwj?;iE_qTGUVPVfT{U z`G=XqCGie;kgEJ2*JTSvNenx1BV9&yvY>xBpTvUVF%Ql+aiZtRcRa+7Aj-XrK8G}Y z_${P)U$zE#0VH$wyB6-fZJc&SHVllMj96|QbiDi2o4D2{DN_96^7#0OpcR|*WVt;! zEewl&VcvHLz@l^eM##qyAQo`=5NTf2KFWi^x_dmS!)H4iP`RAW_M$K5lo1k zAc0Lex0+=-#&wmC$P98ZnqYOUNeS|PqUVBHR8M4`SguIad0xG>yiWY!=YGreH|(V> z183x)vzG!90T}dTh0LXUFfg0^Qb*tX&EwV-zSh)9vYZ1F5n4|#Bd#>3%4WVT6WUqz z6+en4fkV-K+XtItkE)IJT7+t5jE#egZxan){v4L{`BqxpNp$Hv$!tp_V`efM48i;= z8xqu)vN~vjPu&SiUxMC8qGz=cy=!rv%!D97_ZZL7Yy81uCLS0&*z4lzHhyO>uNLmM zJ%z3BL}kd)DnW0bl=6CI$+jBou75{f5g16k5}J$vw2F9_DO71-2wLyp&rg669h8N8 zvTe)Ew&BZc>Fmz?`q)8|RI84$aXWj@n`6ws1~OlpJ!jUikwMVhbz0IS#d`%lqN7eIUpDR>8Ydexab9-^sjkx^FpNBA7$RY=+w^RO$D@OzRY!ZUJ-Zu zP(J%zG=AWV6{kl_@whk$M#QVK^(YUeQ5A=e+<{?u3<97>U+!m!eJHl+CvI3aPCIF~ zFErj;OYuw^)Vt11hq0_0AN-=l34rX1eZXj;3%S~$n0YI1+kXI4R7_f4mmQfZ5MQtj zrGnR_Fo3e!PX^Db?etIi1e5R18u*UKFD0@^KkWUA9?PGyL`O-}JbwmEOI0jsBY^B5 z=3lnAXas;Y?Sgi%;buHdsByO(w(4m^5;{iD*#Y|y0HXc*`by4^l}-EPP5OG?JBj92 ztj-==O~y7(eKX;;>f>(1ZD-^(!;KaryD(=#ab8*n00RF5fZ_?rbAl}xrinTTRSKVw zKN6c(BZIv;D#ckXcEY@YT!+v{=a^0*akwUYc6QRtw}ddwEOnJ!moGoWZVyizN^OT8 z7%@G_vgucB;Pr|IpnK<&uIsF`S8v#YA9Hy;e|?2-Zvo4B8)@??IHvzK((~HQB7t7@tO+M#^GL86OEk>Vbkw>-TvVJN9)o40c zx@gf;y_?!4H0aICB=@+%yZ)|$s2hD4i;)4&r#(-iyMRdx4%^`ta@iwqt^(i{vR0C& z&Ae}I3DFJ!3zIGxruA|WN4h292~MH@>GGJK8nKWI@d&Z-oWOPf{?+47dpn)x(}CN) zeaBJAd$FfTXR?dB(kc|V1e7Qu(L&;PFfX##-zgdodRTV$|8%4C??{d^9lEJW1R%7U z2jlf~=k6y2#QhIXS{KAGAX)%S@XWhmQ8rHZRzcldRjASBnm7jR5}YMGFLdeUq3^FS zo@2G{1OS=}{k2&F2dH3ocnWf#>QUk?b2dy2Ns#he-#?@S^p+%me4dQbI%s9hL7YW) z)6M=ZxQKrRWHllI&Hpxd!l$n*Ut#U=1mOAb?52D!O26G!W2`2K>xV zxlbo%;=Kw4WUX0W++Oy+j(V+G7sK6s8|B_{q5YVZ!Hy8Lr_h3&wWFJ(o4$_iJ^jZP z+M_hhO1|l?1yt|)tB@h`ZzAh7AZKcJk+(3{9LfPvC#~IC>9$AraA$xO#C3|KqL^+Q zfq!~%@c~HuBQ+BK$5y2yb?s-FQ0UNoAS+{VC0}Kp)ce8_Q0u)uuWlVI@5VM#%@F0bb7AqpKLjw_|Ty2B#^8CnXnYWj(UX$1iNtkYH{d=yD0I zDot~_*KObB`s(Qubh0r3wP!B^@NN5WVc*KWVK6zp#3~ea~ z^fsMHBcC%Z?S#1IhjQ_zGUDRTQy?OHpu zS)#Rou?Pn5^5^?W97lYE1SXA#k~xgTXD3!C4bPaT)vTlp)tCk{On|K6@3{0Q9wx?u z-_XSV>F?Ri@dlu?_7nuh)le5W6pV|Aa}9J*LDl)`XMhbdh>ha-UGcnLGQrav+>O`) z2;9Krf%pF@u=Rp=k!VwmHqA|M{33AIE$z=CgE<3rgAZg(pX<}KQlq&uYEY%T?z3=p49%%=4ag`f+htc=z_3utoNC9J7IjO@6AiynIr^{0|qeP zKFxKXRZ#&`1x~+9kf<|>@H$`p9udx%3ND*!UX*+W8NCg*YVpZVw4V33m6ItE10@ z2h*4`cs}-i>C;XOika?J^x5)@fn2`&E`3J(>ow?Z4aA4zL{*ww^Ps79s+vKSVH$kS z{gPB9SAT;qDhBp6QY$?tsVeh?yEq}LEykc_Ko8{M0hrrns#|P6qo2M!?%Q1ZnU=V} zCEC^0s^VtG@H0N4Pu2$fg|&dbe5-O8DYmzr=n0l(1JEoi-4y9OzHZ0bm=3& zId;qWoJG>^D)hoBtTcFE^7ODW%dhlG)o!F)C3V8YtDCf->+dtztHds26iHv?QiTk@ z>t|IDnLO#(gpZ2E$3i-hB_g?gfO6CCJ~{x?h+w#Yz~Ve#Z`_aDapI2!x)k+~m*kFZ zLv3snvQ~z!ePoV!rdSICY`?dy6Q*hRNYgl)d?VFqVo2CX@Dt3dV%yx_*20!YjI=Wr zpp9P4$g=}VJwRV5*`d{>?jjNW1hr@%yaM%5dhZ_Eyw8Mi|6Bt&T<`C3&!Bux*cQ`6FvX$@Ap;%)KBP? zd(8#+A5pk&#RUQYP&%sDF*}PTi+!D@l$6Gu;-)Iqb}Touj0v^G!u{|6;8D09RxwHE5_Hh*rU2okr z$sLy71IWu`tLyZDL@i)%YYjlG{3F~STLY*@^uf1A$om$xsqF9A8{S@XE~0P0kXHHU zXNKUjQc8qqKHHiA>tI}ynXHAQ<7))1ZP++`93I>oXwM|^#AFtnvRnmaC{_Z&fD)9B8stS zXE&9s$3+)XvwoL6A5qTjhR1E^9=BG8$|eRp4xOtm2lQPjV3tr-$mOaZ%)cY#6!v+Z zoZ>*F6V#EXK^skvdk1X~#g3P?set=VM&xqsKdoy?$n=ry!D4t^c)ywl^&OR*BNT1a5Md{dlL@@ zs;{v^7{zxcxo7%DCkv@&g>stCxXiuj_TLzS@fA7ej6DUXp9Qg=@`<%C2bROxN#v?+ zh8!JGr%_{*KL{Mc)8VHAC#BZf<$UkUG?=~ho_fDesNHJp!F@N|03u-2_rE(F+1#)q zZuVExxTnhEU|irEI9!#6h>8Wdx3Ayz`&r~mkldo%)B~zV;OaL74sfmW%Cwsh%g%5?!=Ye`0(Qlc zJsgpU`eo-Q>}EOqN~|{}ddsjg4xN$4x5GbqGkKab0b$`=M{)Z*pGee65=gd)v4rQ& z^3a*yB|Rp>cZze$MJCAN44~JRSl`unBK`ozlH-x3r74)Nr)!J|tyUh%tJnG{0m|*|81*%pP zy9T_)8)eniu$UqC8;U;k;=lZZvd7v+KppIj6v@s1CJt25|6Qg&HaGk)_TKU<%CHUl zogoH=QIrN1P{0A{mKqq45Ge^!P>@C>rF&oy3WS(-izHf0FuVA<)p zr5*ao?GX-0jClBwv2}_G_4x_Ta8UDjh6633-JPfz6#ac{r*-7iI6iZjl4y;XB*>&^ z%&04${^|$R&3b{p<23$rat4|+k{6ZhW5Y+z{hO*wr~@nYKg%o8y;gC5rhBJJGp=by zi(gk3AZ7n9^;A1V_h>$P-}rFK58XYgWDM&FBwH1J{cvjgYUDY&1w~KT+I0+S@?TdK z-y5A&d2*7LF2MVrgNKd{ga?tR#iu6!-*aBkHYZ9Hy{ad8b87`{rnPib(ivSoaHoaU zHhfQDty@WNJoyGvU>aMRPIZXy&vVlwp`-?bupQ>#;4$mbLLd&8&kKXv02LTm|Xr~ zlUM0kBt1L>PHt5f&KgokD<|G1Z&TL1T+(j%&M}(b3jsYL|=Frst$`M^~4i{Z6Ql_ z{^$>={5DaqS4VxnBIhh_X=*5z;oY}Uec*5e7Q09dxJ^mnNM*qHY%$B{ z*KEGi<4l)}^s_mCF{J$(|bQ- z>L6Cf@xO@3p!h%F?Mw@2O6&e*12T|59%?^VO~a&`u)FV-opuBse0%)+{`FcJ>;Ve; z2B*F?7z@8+)NaRB)$Q#7EEe}ouuQ03)7Kfg&ML7?b+QN};}hJECmtE(_no+T5hi+{NcV8-`S`$ z{rT+c_YU5(Jp?^v-E2N|=EU)@i=2$uC(kMK54GyBuR)(_FEyLE)G`DJlD_yt!j|&x zl)i~+ZC6iRU$-6M0^wuIyVicl%e7c{Lji3dovctpx*=7Z45)Mq!=34 zxcr^SFJ3mHzyzlvTEY^s_fj%A^gdD5j0vZK@r~gY>|y7b-+POJN4mu3cJZkLkc~>q z%hU&Rrd~a9Gb_g03^YQNAV1k#cjj^G6D=7OQ>6aJpz=86j@txsT}Vz-nry3Ac3k{8 z9GFVWo8ma}SA^JguvTb)oJ2fIVlLpD#-OHU{^YMnmTS8jminixab)K-1zblN(%(6Z zp4K=W-uWUigrIU)<DZjb)W==}u z2X=*{YtA~t8p-aI^pGGrUPkxR#)w}x`{fxiZ8Q{0VtHWWMfBF2annN*?c!dPxzoOnlr8>Dd9 z`1=$gr+^9f1EvVnA`-Yw!#rRcOcNqSCwzw3B zi=ngxHlj-LAkyts1y_xg8%TCSI;wBwdMbPsG2OEQiTvZU5t~{SORc6Wu}D^@+D?uO zub$ki8--pC(`Wu=HfAB0r0H|Ccueph@5Jt_HBqM#6N(jao@-}60hwslS?=+}!Knhs zEdvWxIOg4UFL8LlJqzz|T9ij*LR~}QEG(eZ*(`gyWA^7PiViJbyTgnLK5XVlV&{^8 zx2@=JNEuhU_2$&5OKdTc%A8+bI;?Lj{ZMU-d+8yVN;#-8>F6PGgVlk3o=s+Ln{jS6^7daxvab(_Yds9FTnZB>*UG(DcKXzCq;-#dV_}F zxNAmro?7`vK>~ay7sUciCxhC^eKZfw{*Es~VgkOI{MpPgnZ;d}o4!WrOm*5^*rb?X zD{vIP=qKoWXnhb|;Asp0D(IDs{{r(01onpuw12y7%Apc26U{I~H%U{WCZu1c_ zR?J;o%7;T}h|WkZ--G!c7kr!pYPbLBi@|ZO_8FKrQ&vok@2ek<)>y9tf?Za48Jky6 z^4^2>>)!K07Mk>bjg<6-Ovwhq(P=k15?}C`G~>8e47jh2WCz>@+Q%UtONvcKILTKc zx!*MA7h5Awx|F`~w?Pv(No^t9#-9~y-KMDZ;Lki4hq!MEWzwxl)twJLw-RUz8%#12 zPA%4AyA#*eb}dYS+D@`yW{VMH?|Vum=cxf|sBQ406MmNXGk$AvRU{r|0{_bRpQHPm z6GBB^^EHx-qxH_%t1h(so8{aejJz7K1XsoXRs^#OWlLiJoIPnX*P2MUCE$LKyyej| z4y*S8D5xB$G2B{P${;3Oa$dj=(u^^j%k5c|6VM$|?9e2lB5!>_d1}6!8c<=(9dUJY z4>f$}?#+Vy8y*+t6GvES#=!9wtktBu?$6?dbR!l}f|zl^g@RRKIZd&x!|+AEravZO z)g-u`=2UJcCxk-Rc5o^P9v}??NiV7_f$q~;StiP0Q;gjR`_sO@1KIQy@}ec?%A43X z_NMGx8(;I$U3!8=wmZ`fEZ&Qj44;>UGOw>K9te=f1^%5CJQ`57zQy{`x~Oq=vdnu; z&x885(^)h;RfLzkO4y}`1v;6$TRCTDq9x@ONCgTqy7OE#GW~?K=Tjs89&Dye?OUO| zRS^TD3#Xv9R%H2F5<{9ft|frviS{$N;{5k~rRaY8B+Jqn0^uVNg;-7%YRjYe3My@# z(h^#CF-nx24^%!rIQJcmm6bc?bGRD~p2;RJkLL`tDegHC^fn6sd+xl?*I}gLqD2D} z2P^p&N1-n5r(fRZ`(Nd6Iy(qOfuJB97nv@7lZ<>l*K%wa@s(vPU<2gt;f|>Qs%9$m7D^W_uR@icND%@uiD(CYLw_cGBXU%FY|AkwD;TH zf0N8ks>FXZ*kTODh|TI{o^V4L;F70zUQ020t>9mzWPB#@5w3$6IKi{5>OPyL|A33q z`?58b8dEU9bnDW0(IoqL@ARu(E*jKwH>F{h7$U@WhEB}{!MD+%;m6ny?RRv}URzSJ zFo2Mw4CP?HtJ*O>NAIcXvGCVkd+{e%t2OU}uGX9iNw@>kVNGe}S%}kvq%pr&Hw>5V z7bYTdzP8yIbjlf#t_MYoOt@YaGI7^LoTy#FXgm_2R*D}$^K%K%F#ZJ1%;Lg}O-!fc zXDK{HadK+!sooOh4;Cc`NNYVZmj1gF77R?$4T!Y6pbMRVb>uHL8oTBuZ1Pg;vd*kVL{kFmiveL$ z44q>cqN0YydXPyr20&NuBI^Df5p@hAIct=!hGiGQot3q}71SK&)ly?SDI$rMXMle- z9aLm=4+f6&+sOwEG*+mQip`YgtPrhC)@~>bkx`aF=BVp3r78_(UGgVmb+~3yQ@;$# z-}i`qux4}BaPpVS5k1@c9JiQ0<~upu$Z?Mu+a0bE_dt>sOBt!>nAnF~$~WD&HCIZZ zvd|{B6HaXdGhwd_RDT1uq4yyph2?1}Dbv5#dp;;2&KNgz?nurj@t4 zFC5oxaZYka4A$sw${YenF)LBG3FrnJanRHO#`?(&;f)Hk0oeg(%gILxMxQYB&aec( ztnvR?^5+E!aB?IiG>hNFRBt|@mZ=(L8sBS5%jfqq@5<_sODdY#v32&mq2W^>=1!50 zbQE;vw=KlhaGpKy59mJ}gJjbGaI%)OZraN$i4KD~s#xeOC-!tS+!loUUZz(W+g!=t zh&`yVhT9OfXYbSX!zQE8D7|%`XD7w4x-Q6f4esHDGamUk6;E|ub$+0!R}eGJ{h%pS zyJz4{8HdG$@i9}I+jmC6nX0RkA~@l=3F;^9vYqR)d#}ZhX59-Rt^2jLapyC`#dx7g zs$zd$hO?u{RO4c!K}m7o@~TiE`%*IIG!lC-fC)4cSgcoalv)!!SLg$TpxA$nLI5R5 z{lySPO2@pAr1tK5Wg-K9eK{tG&_%RLtmj0*M=0RsSF0&i6g1sn?fmvWhouS=C$k{W z{Gk)J8UJS`n!IEwGx-uf1;1N-PiY>7FqR7SKt8gbnJeM4UcbuY<$$C~Pi5Z%0|Mwf4c zD!{%F*D-KJdvMAcb4rb6V5A}1fu(kZmZS<;ljB{^?gyJ%XidtVOfHjDz878+F~?a~ z@U=?=HiQnC6%Bq^13Nu^vCFiqY3u@0J&hy$aH`dQR6k3W^AcW#N=tI>&#nKt2j;GVS&}?!E?vnYc-@h2XLkWW*P>OKW6JpUaxrZjJnjoavSPi zm*AUbwisPNc8R4*Y{N!!0a+SkWW3i=e)U2^l5f!dk^=5Jv~^YHO#fhU>0wk2@aOQnlzQ&l$LC>m`ti{lk{!PnkyQ`07dHoL0fz$AnI3#TRfGyu z2kRgKO2d*KTyjQfgcoj=c#qQv)^S@JR`qg(!+tQWh7%0K_O8}I&rfC#-yhO;GomLz zd%O6!28-FyQ@1Go{<-7ErOkvo2cLCdW7HWaK;uQmRGIwU@_1{vH1zNk#~2gfc}v(j zmjDad4=Z`OZ6&$r-8^|eqxvxXF}sKZ{HoQwJq)WBF9nvhNBDVhzKI~2mj66%bDkNq z{q(jV=Z73UE=FCoz&7!_S2wg5)qQ7tToEvE3cn;asVuyS1D zl}9hjsk@Am%B)+0R{f;Qvy0X@mz${jc{2h$mV*A+qmq1x`Cie%H=SH!9(0=`^GF_i+^A?dK1o_p9D;eMGs(KR&M=TQ!d)xi6%tbk=RBu-y^);QXEdrHZ@a zz2!%OX`ZatPLDCGi@9EG5^%|*LbAl8DW#4(k1Q;hKdxWbW(NJxDVA~C?zD==sD%Jq zfD8aLM{n(KIxzMJjNiNR7S0DLXtnduO#u9 zJy^!g<{a2E_CqWM}R4X;WnH>yg=5f7Y8^T7F8L^)}~I z-+dJQwan-L&gLic)Jn29drDBfbSy10yJ$q+?=^pwq1JbAS6zCJKO>MBf|65R1$wl z*SYnMOQnS~KvpzCR^9g9It^r2D#jmh07r=KNXjE+q3{(JnM22O>sDnjEEYbKl-Wu~ zBXM}){GJ#k=UW1>p?MP8gdnFS#~{n`;o?<$aW@@|N@wT1oVtc=GDBS&Vdh=+^Q{yD z*y85%52oNs7l=k(|##SmkQ55Bz)( z(4EJRU09tuj7~?~y+I5q7`~juvuBhGFxSmsZ35DT0PvT7NMKj|v(W#z8UD$K{rmu= zA#9+9O-yi6D{>KmjMgFOXx3<8q#t6P=XWSz#OOpjBxw}!WvjushGosO%k-WXTkf#r z$4S_>xfa260aoS%rOaF8MR8Y{X#RTHqo*0pe=nTFziC3{oXX1Yu4b;qiF(xD=-!E( zb{+^#f1(+HUhG<9l6m(i-(ToR59U9kY2hN-ofCM&*C@(Tq{?|nG#y`(v=aZ#uL+CW z(0bS8yCq)l1{y(^rs9qK#K8T~zqZM<8@S6S^L*P>^P&hA-{bU~ zI{8duI?c3NUT~)1MAi>dDCp91tC^P0ni`uEO|^Nb^wx5cB|b5BO_zg@N7jozME<^r z-Le8=@QYW9LOA{BRX)=8mr504I_G9up z2e~4&G!ysaQti}@Cs?$x*Duq>p)MA3F);twliGz(&+kdmY?Zw&xAYGpz~Ob&1_ng^ zOFCZj*PrQ4p_7g$M!FTfqe+jO3-%*?w;!HFdTwu>MqZq`JSj(gukjV~`ZFyiHB z6JDcO&hcGr>Bgmhm-ZpTIHA{P!Ss*N{a}h^Cs91VY|(E1pdwcVF6lAy*#yrBG!@F4 z805p9JTE(U2Fy`!yy=W{pS|f_x08fuk4{EDV~*o`mhM^xHe)4XtMAA`uZTXMqJ>-$SSox^R@V?n%-J~I zE7k0KlR+0OZx(T1J&$t;#_y-Ek$ju5heuvBwxkLe7iasYaIj2+n%6u3l&@q_6?4Sz z*bbjdwv>6wX}M3GQ-Ac~0cDH~e?OPyBqg=;nsG#l+%Y@5!sP?B+r*Fk(TZl{8zQI6 zt)PMZvX2d8Gj{Rak1^p3GQ7=WRl*;vzau)mydnUes3@*5AaouGZ}_zu>#D z=W@WSLx1Wc170T{>U+{Fn~Xf{O?_~7*Yqd}j1th@XEbb7%p>~h{wKMZQth~Ts#X6> zj;uN`Y0aX-q!*6q=yQVN2Jk9oeT(FG1dTI(%t9H&oaoB^FV%M*1As*&7?;BOvlC9# z<;Y{@RDc5~JX%-}UeB+C7&y?ZKf4`=umGm$Yy=M=Pc>w{ti*lfYvV&Ra)RFq5t$Y4 zn(^_aWW@4M3$+L5A}8NhCkzFd%ZW!qY8n)Mx`+FJS`NnStNo%|a(3LTb62m$Hrzf1 zU_8Q;zbb=S5~lS6Kw6Eb63=n*YQ~LPU}wx#LD(r-Y19RF?t4@Pzg*JB$>MUveI1VKF>vR{o;YUU~HPNojmGa#}#7Dbpr1_I&≻CKV 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

R*4WB3?BB~~viJxmXY>IJkw-)9O&i9M)ODGH6 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 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_sources/api.rst b/level-zero/1.10/_sources/api.rst new file mode 100644 index 0000000..03fd8fc --- /dev/null +++ b/level-zero/1.10/_sources/api.rst @@ -0,0 +1,10 @@ + +=================== + API Documentation +=================== + +.. toctree:: + + core/api.rst + tools/api.rst + sysman/api.rst diff --git a/level-zero/1.10/_sources/core/EXT.rst b/level-zero/1.10/_sources/core/EXT.rst new file mode 100644 index 0000000..f54c423 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT.rst @@ -0,0 +1,160 @@ + +============ + Extensions +============ + +Objective +========= + +Features which are device- or vendor-specific can be exposed as extensions. + +There are two types of extensions defined by this specification: + +1. **Standard** - extensions ratified for inclusion into the current and all future versions of the specification. +2. **Experimental** - extensions require additional experimentation and feedback from application vendors + before ratification, therefore applications should not rely on experimental extensions in production. + +In addition to above, an implementation may choose to provide non-standard extensions which are +not defined in this specification. + +It is the responsibility of the implementation to define and document such non-standard extensions +and also to ensure these extensions do not conflict or interfere with any features or extensions of the standard +core or sysman APIs. + +The following table summarizes the APIs to be used for discovery of different types of extensions. Aside +from :ref:`zeDriverGetExtensionProperties` which has been available since inception of this specification, +the other APIs have been added subsequently. The versions of spec in which the APIs were added is also +noted in following table. + +=============== =================== ============================= ======================================== + API Category Version API added Extension Type Extension Discovery API +=============== =================== ============================= ======================================== + Core NA Standard :ref:`zeDriverGetExtensionProperties` + Core NA Experimental :ref:`zeDriverGetExtensionProperties` + Core 1.1 Implementation non-standard :ref:`zeDriverGetExtensionFunctionAddress` + Sysman 1.8 Standard :ref:`zesDriverGetExtensionProperties` + Sysman 1.8 Experimental :ref:`zesDriverGetExtensionProperties` + Sysman 1.8 Implementation non-standard :ref:`zesDriverGetExtensionFunctionAddress` +=============== =================== ============================= ======================================== + +Requirements +============ + +- Extensions must use globally unique names for macros, enums, structures and functions +- Extensions must have globally unique extension names reported from :ref:`zeDriverGetExtensionProperties`\, :ref:`zesDriverGetExtensionProperties` +- All extensions must be defined in this specification +- Extensions must not break backwards compatibility of the standard APIs defined in this specification +- Standard extension versions must be backwards compatible with prior versions + +Naming Convention +----------------- + +The following naming conventions must be followed for **standard** extensions: + + - All extension functions must be postfixed with `Ext` + - All macros must use all caps with the appropriate prefix. Core macros shall use `ZE_NAME_EXT`, Sysman macros shall use `ZES_NAME_EXT` + - All structures, enumerations and other types must follow snake case convention with appropriate prefix. Core structures and enumerations shall use `ze_name_ext_t` and Sysman shall use `zes_name_ext_t` + - All enumerator values must use all caps with appropriate prefix. Core enumerator values shall use `ZE_ENUM_EXT_ETOR_NAME` and Sysman shall use `ZES_ENUM_EXT_ETOR_NAME` + - All handle types must end with `ext_handle_t` + - All descriptor structures must end with `ext_desc_t` + - All property structures must end with `ext_properties_t` + - All flag enumerations must end with `ext_flags_t` + +The following naming conventions must be followed for **experimental** extensions: + + - Experimental extensions may be added and removed from the driver at any time. + - Experimental extensions are not guaranteed to be forward- or backward-compatible between versions. + - Experimental extensions are not guaranteed to be supported in production driver releases; and may appear and disappear from release to release. + - All extension functions must be postfixed with `Exp`. The vendor name must follow the `ze` or `zes` prefix and follow CamelCase convention. + - All macros must use all caps with the appropriate prefix. Core macros shall use `ZE_NAME_EXP`, Sysman macros shall use `ZES_NAME_EXP`. The vendor name must follow `ZE` or `ZES` prefix. + - All structures, enumerations and other types must follow snake case convention with appropriate prefix. Core structures and enumerations shall use `ze_name_exp_t` and Sysman shall use `zes_name_exp_t`. The vendor name must follow `ze` or `ZES` prefix. + - All enumerator values must use all caps with appropriate prefix. Core enumerator values shall use `ZE_ENUM_EXP_ETOR_NAME` and Sysman shall use `ZES_ENUM_EXP_ETOR_NAME`. The vendor name must follow `ZE` or `ZES` prefix. + - All handle types must end with `exp_handle_t` + - All descriptor structures must end with `exp_desc_t` + - All property structures must end with `exp_properties_t` + - All flag enumerations must end with `exp_flags_t` + +Extending Enumerations +---------------------- + +Any existing enumeration may be extended by adding new etors. +Etors must still use extension naming convention and values should be assigned to avoid future compatibility issues. + +Extending Structures +-------------------- + +Any structure derived from base descriptor or base property structure types may be extended using structure chains. +While it is possible to use other methods, this is the required method for extending existing structures. + +A structure chain can contain more than one extension structure, in any order. Therefore, extensions should not be +dependent on their order relative to other extensions and the implementation must be order agnostic. In addition, +the implementation will ignore extended structures that it does not support. + +The extension must document the specific structures and functions that may be extended using the structure chain. + +List of Standard Core Extensions +================================ + + - :ref:`"ZE_extension_eu_count" ` + - :ref:`"ZE_extension_pci_properties" ` + - :ref:`"ZE_extension_srgb" ` + - :ref:`"ZE_extension_bfloat16_conversions" ` + - :ref:`"ZE_extension_cache_reservation" ` + - :ref:`"ZE_extension_device_luid" ` + - :ref:`"ZE_extension_device_ip_version" ` + - :ref:`"ZE_extension_event_query_kernel_timestamps" ` + - :ref:`"ZE_extension_float_atomics" ` + - :ref:`"ZE_extension_image_copy" ` + - :ref:`"ZE_extension_image_query_alloc_properties" ` + - :ref:`"ZE_extension_image_view" ` + - :ref:`"ZE_extension_image_view_planar" ` + - :ref:`"ZE_extension_kernel_max_group_size_properties" ` + - :ref:`"ZE_extension_linkage_inspection" ` + - :ref:`"ZE_extension_linkonce_odr" ` + - :ref:`"ZE_extension_memory_compression_hints" ` + - :ref:`"ZE_extension_memory_free_policies" ` + - :ref:`"ZE_extension_device_memory_properties" ` + - :ref:`"ZE_extension_raytracing" ` + - :ref:`"ZE_extension_subgroups" ` + - :ref:`"ZES_extension_engine_activity" ` + + +List of Experimental Extensions +=============================== + + - :ref:`"ZE_experimental_rtas_builder" ` + - :ref:`"ZE_experimental_bandwidth_properties" ` + - :ref:`"ZE_experimental_bindless_image" ` + - :ref:`"ZE_experimental_command_list_clone" ` + - :ref:`"ZE_experimental_event_pool_counter_based" ` + - :ref:`"ZE_experimental_event_query_timestamps" ` + - :ref:`"ZE_experimental_fabric" ` + - :ref:`"ZE_experimental_global_offset" ` + - :ref:`"ZE_experimental_image_memory_properties" ` + - :ref:`"ZE_experimental_image_view" ` + - :ref:`"ZE_experimental_image_view_planar" ` + - :ref:`"ZE_experimental_immediate_command_list_append" ` + - :ref:`"ZE_experimental_scheduling_hints" ` + - :ref:`"ZE_experimental_mutable_command_list" ` + - :ref:`"ZE_experimental_power_saving_hint" ` + - :ref:`"ZE_experimental_module_program" ` + - :ref:`"ZE_experimental_relaxed_allocation_limits" ` + - :ref:`"ZE_experimental_sub_allocations" ` + - :ref:`"ZET_experimental_global_metric_timestamps" ` + - :ref:`"ZET_experimental_concurrent_metric_groups" ` + - :ref:`"ZET_experimental_metric_export_data" ` + - :ref:`"ZET_experimental_programmable_metrics" ` + - :ref:`"ZET_experimental_metric_tracer" ` + - :ref:`"ZET_experimental_calculate_multiple_metrics" ` + - :ref:`"ZET_experimental_api_tracing" ` + - :ref:`"ZES_experimental_firmware_security_version" ` + - :ref:`"ZES_extension_mem_state" ` + - :ref:`"ZES_extension_power_domain_properties" ` + - :ref:`"ZES_extension_ras_state" ` + - :ref:`"ZES_experimental_sysman_device_mapping" ` + - :ref:`"ZES_experimental_virtual_function_management" ` + +List of Standard Sysman Extensions +================================== + + - :ref:`"ZES_extension_power_limits" ` diff --git a/level-zero/1.10/_sources/core/EXT_Bfloat16Conversions.rst b/level-zero/1.10/_sources/core/EXT_Bfloat16Conversions.rst new file mode 100644 index 0000000..2a6c8ee --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Bfloat16Conversions.rst @@ -0,0 +1,16 @@ + +:orphan: + +.. _ZE_extension_bfloat16_conversions: + +================================ + Bfloat16 Conversions Extension +================================ + +API +---- + +* Enumerations + + + * :ref:`ze-bfloat16-conversions-ext-version-t` diff --git a/level-zero/1.10/_sources/core/EXT_CacheReservation.rst b/level-zero/1.10/_sources/core/EXT_CacheReservation.rst new file mode 100644 index 0000000..f1b5d31 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_CacheReservation.rst @@ -0,0 +1,25 @@ + +:orphan: + +.. _ZE_extension_cache_reservation: + +============================= + Cache Reservation Extension +============================= + +API +---- + +* Functions + + * :ref:`zeDeviceReserveCacheExt` + * :ref:`zeDeviceSetCacheAdviceExt` + +* Enumerations + + * :ref:`ze-cache-reservation-ext-version-t` + * :ref:`ze-cache-ext-region-t` + +* Structures + + * :ref:`ze-cache-reservation-ext-desc-t` diff --git a/level-zero/1.10/_sources/core/EXT_DeviceIpVersion.rst b/level-zero/1.10/_sources/core/EXT_DeviceIpVersion.rst new file mode 100644 index 0000000..235c03a --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_DeviceIpVersion.rst @@ -0,0 +1,15 @@ + +:orphan: + +.. _ZE_extension_device_ip_version: + +====================================== + Device IP Version Extension +====================================== + +API +---- + +* Structures + + * :ref:`ze-device-ip-version-ext-t` diff --git a/level-zero/1.10/_sources/core/EXT_DeviceLUID.rst b/level-zero/1.10/_sources/core/EXT_DeviceLUID.rst new file mode 100644 index 0000000..d82faa0 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_DeviceLUID.rst @@ -0,0 +1,22 @@ + +:orphan: + +.. _ZE_extension_device_luid: + +========================================== + Device Local Identifier (LUID) Extension +========================================== + +API +---- + +* Enumerations + + + * :ref:`ze-device-luid-ext-version-t` + + +* Structures + + * :ref:`ze-device-luid-ext-t` + * :ref:`ze-device-luid-ext-properties-t` diff --git a/level-zero/1.10/_sources/core/EXT_EUCount.rst b/level-zero/1.10/_sources/core/EXT_EUCount.rst new file mode 100644 index 0000000..5fbd3ac --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_EUCount.rst @@ -0,0 +1,15 @@ + +:orphan: + +.. _ZE_extension_eu_count: + +====================================== + EU Count Extension +====================================== + +API +---- + +* Structures + + * :ref:`ze-eu-count-ext-t` diff --git a/level-zero/1.10/_sources/core/EXT_EXP_BindlessImages.rst b/level-zero/1.10/_sources/core/EXT_EXP_BindlessImages.rst new file mode 100644 index 0000000..6f22dc9 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_EXP_BindlessImages.rst @@ -0,0 +1,278 @@ + +:orphan: + +.. _ZE_experimental_bindless_image: + +======================================== + Bindless Image Experimental Extension +======================================== + +API +---- + +* Enumerations + + * :ref:`ze-bindless-image-exp-version-t` + * :ref:`ze-image-bindless-exp-flags-t` + +* Structures + + * :ref:`ze-device-pitched-alloc-exp-properties-t` + * :ref:`ze-image-bindless-exp-desc-t` + * :ref:`ze-image-pitched-exp-desc-t` + +* Functions + + * :ref:`zeMemGetPitchFor2dImage` + * :ref:`zeImageGetDeviceOffsetExp` + +Bindless Images +~~~~~~~~~~~~~~~ + +A bindless image is defined as one which provides access to the underlying data via image reference handles. +At the application level, this allows the user to implement programs where the number of images is not known at +compile-time, and store all handles to images irrespective of varying formats and layouts in some container such as a dynamic array. + +Currently, in Level Zero, `zeImageCreate` performs the image memory allocation and image handle generation. +This function only allows for the allocation of image memory in an implementation-specific layout. + +In this extension, we propose the following additions: + * Provide a new image descriptor and flags for Bindless images. + * Support for creation of images on linearly allocated memory backed by USM. + * Extension API to create an image handle from pitched memory + * Create Bindless sampled images + +A "Bindless image" can be created by passing :ref:`ze-image-bindless-exp-desc-t` to pNext member of +:ref:`ze-image-desc-t` and set the flags value as :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS ` + +A "Bindless sampled image" can be created by passing :ref:`ze-image-bindless-exp-desc-t` to pNext member of +:ref:`ze-image-desc-t` and setting the flags to a combination of :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS ` and :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE ` +When image view is created from bindless sampled image, sampling modes can be redefined by passing sampler descriptor in pNext field of :ref:`ze-image-bindless-exp-desc-t` struct. +Image view created from bindless sampled image without setting :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE ` is an unsampled image. +Sampled image view can be created from bindless unsampled image by setting :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE ` and passing sampler descriptor in pNext field of :ref:`ze-image-bindless-exp-desc-t` struct. + +This extension is complimentary to and may be used in conjunction with the `ZE_extension_image_view `_ extension + +Programming example with Bindless images +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. parsed-literal:: + + // Assumed image data on host + std::vector imageDataHost; + + // 2D image dimensions + size_t imageWidth = 1024; + size_t imageHeight = 1024; + + // Single-precision float image format with one channel + :ref:`ze-image-format-t` imageFormat = { + ZE_IMAGE_FORMAT_LAYOUT_32, ZE_IMAGE_FORMAT_TYPE_FLOAT, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X + } + + // Create an image descriptor for bindless image + :ref:`ze-image-desc-t` imageDesc = { + ZE_STRUCTURE_TYPE_IMAGE_DESC, + nullptr, + 0, + ZE_IMAGE_TYPE_2D, + imageFormat, + 128, 128, 0, 0, 0 + }; + + :ref:`ze-image-bindless-exp-desc-t` bindlessImageDesc = {:ref:`ZE_STRUCTURE_TYPE_BINDLESS_IMAGE_EXP_DESC `\}; + bindlessImageDesc.flags = :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS `\; + imageDesc.pNext = &bindlessImageDesc; + + // A bindless image is valid on both host and device and can be passed into kernels + // When passing :ref:`ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS ` to zeImageCreate, only the backing memory is allocated for Image + ze_image_handle_t hImage; + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hImage); + + //Copy To new bindless image memory + :ref:`zeCommandListAppendImageCopyFromMemory`\(hCommandlist, hImage, imageDataHost.data(), nullptr, nullptr, 0, nullptr); + + // Launch kernel and perform appropriate synchronizations + + // Copy back + :ref:`zeCommandListAppendImageCopyToMemory`\(hCommandlist, imageDataHost.data(), hImage, nullptr, nullptr, 0, nullptr); + + // Further image views can be created from the existing memory allocated using bindless flags + ze_image_handle_t hImageView; + :ref:`zeImageViewCreateExt`\(hContext, hDevice, &imageDesc, hImage, &hImageView); + + // New image view can be separately used by users and destroyed + // ... + + // Once all operations are complete we need destroy bindless image handle(s) + :ref:`zeImageDestroy`\(hImageView); + :ref:`zeImageDestroy`\(hImage); + +Programming example with pitched memory usage +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. parsed-literal:: + + // Retrieve pitched alloc properties specific to device + :ref:`ze-device-image-properties-t` deviceImageProperties = {}; + :ref:`ze-device-pitched-alloc-exp-properties-t` pitchedAllocProperties = {}; + pitchedAllocProperties.stype = :ref:`ZE_STRUCTURE_TYPE_PITCHED_ALLOC_DEVICE_EXP_PROPERTIES ` + + deviceImageProperties.pNext = &pitchedAllocProperties; + :ref:`zeDeviceGetImageProperties`\(hDevice, &deviceImageProperties); + + // Assumed image data on host + std::vector imageDataHost; + + // 2D image dimensions + size_t imageWidth = 1024; + size_t imageHeight = 1024; + + //Pitched memory in linear layout + size_t rowPitch; + unsigned int elementSize = 128; + :ref:`zeMemGetPitchFor2dImage`\(hContext, hDevice, imageWidth, imageHeight, elementSize, &rowPitch); + size_t allocSize = rowPitch * imageHeight; + :ref:`ze-device-mem-alloc-desc-t` allocDesc = {:ref:`ZE_STRUCTURE_TYPE_DEVICE_MEM_ALLOC_DESC `\}; + :ref:`zeMemAllocDevice`\(hContext, &allocDesc, allocSize, allocSize, hDevice, &pitchedPtr); + + // Declare the copy region for copying + :ref:`ze-copy-region-t` copyRegion = {0, 0, 0, imageWidth * sizeof(float), imageHeight, 0}; + + // Copy from host to device + :ref:`zeCommandListAppendMemoryCopyRegion`\(hCommandList, pitchedPtr, ©Region, rowPitch, 0, imageDataHost.data(), ©Region, imageWidth * sizeof(float), 0, nullptr, 0, nullptr); + + // Single-precision float image format with one channel + :ref:`ze-image-format-t` imageFormat = { + ZE_IMAGE_FORMAT_LAYOUT_32, ZE_IMAGE_FORMAT_TYPE_FLOAT, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X + } + + // Create an image descriptor for bindless image + :ref:`ze-image-desc-t` imageDesc = { + ZE_STRUCTURE_TYPE_IMAGE_DESC, + nullptr, + 0, + ZE_IMAGE_TYPE_2D, + imageFormat, + 128, 128, 0, 0, 0 + }; + + :ref:`ze-image-pitched-exp-desc-t` pitchedImageDesc = {:ref:`ZE_STRUCTURE_TYPE_PITCHED_IMAGE_EXP_DESC `\}; + pitchedImageDesc.ptr = pitchedPtr; + imageDesc.pNext = &pitchedImageDesc; + + // A image created out of pitched memory is valid on both host and device and can be passed into kernels + ze_image_handle_t hImage; + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hImage); + + // Launch kernel and perform appropriate synchronizations + + // ... + + // Copy from device to host + :ref:`zeCommandListAppendMemoryCopyRegion`\(hCommandList, imageDataHost.data(), ©Region, imageWidth * sizeof(float), 0, pitchedPtr, ©Region, rowPitch, 0, nullptr, 0, nullptr); + + // Once all operations on the image are complete we need destroy image handle and free memory + :ref:`zeImageDestroy`\(hImage); + :ref:`zeMemFree`\(hContext, pitchedPtr); + +Programming example with Bindless sampled images +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. parsed-literal:: + + // 2D image dimensions + size_t imageWidth = 1024; + size_t imageHeight = 1024; + + // Single-precision float image format with one channel + :ref:`ze-image-format-t` imageFormat = { + ZE_IMAGE_FORMAT_LAYOUT_32, ZE_IMAGE_FORMAT_TYPE_FLOAT, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X + } + + // Define sampler descriptor + :ref:`ze-sampler-desc-t` samplerDesc = { + ZE_STRUCTURE_TYPE_SAMPLER_DESC, + nullptr, + ZE_SAMPLER_ADDRESS_MODE_CLAMP, + ZE_SAMPLER_FILTER_MODE_LINEAR, + true + }; + + // Create an image descriptor for bindless image + :ref:`ze-image-desc-t` imageDesc = { + ZE_STRUCTURE_TYPE_IMAGE_DESC, + nullptr, + 0, + ZE_IMAGE_TYPE_2D, + imageFormat, + imageWidth, imageHeight, 0, 0, 0 + }; + + :ref:`ze-image-bindless-exp-desc-t` bindlessImageDesc = {ZE_STRUCTURE_TYPE_BINDLESS_IMAGE_EXP_DESC}; + bindlessImageDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS | ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE; + imageDesc.pNext = &bindlessImageDesc; + + bindlessImageDesc.pNext = &samplerDesc; + + // Create bindless sampled image + // pass ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS and ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE to zeImageCreate(), + ze_image_handle_t hImage; + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hImage); + + // Create an image view from bindless sampled image + // define sampler descriptor for view + :ref:`ze-sampler-desc-t` samplerDescForView = { + ZE_STRUCTURE_TYPE_SAMPLER_DESC, + nullptr, + ZE_SAMPLER_ADDRESS_MODE_CLAMP, + ZE_SAMPLER_FILTER_MODE_NEAREST, + true + }; + + :ref:`ze-image-format-t` imageViewFormat = { + ZE_IMAGE_FORMAT_LAYOUT_32, ZE_IMAGE_FORMAT_TYPE_UINT, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X, + ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_X + } + + // image descriptor for bindless image view + :ref:`ze-image-desc-t` imageViewDesc = { + ZE_STRUCTURE_TYPE_IMAGE_DESC, + nullptr, + 0, + ZE_IMAGE_TYPE_2D, + imageViewFormat, + 128, 128, 0, 0, 0 + }; + imageViewDesc.pNext = &bindlessImageDesc; + bindlessImageDesc.pNext = &samplerDescForView; + ze_image_handle_t hImageView; + + :ref:`zeImageViewCreateExt`\(hContext, hDevice, &imageViewDesc, hImage, &hImageView); + + // If ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE is not set, unsampled image is created + ze_image_handle_t hUnsampledImageView; + bindlessImageDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS; + bindlessImageDesc.pNext = nullptr; + :ref:`zeImageViewCreateExt`\(hContext, hDevice, &imageViewDesc, hImage, &hUnsampledImageView); + + // Create an image view from bindless unsampled image + ze_image_handle_t hUnsampledImage; + ze_image_handle_t hSampledImageView; + bindlessImageDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS; + bindlessImageDesc.pNext = nullptr; + imageDesc.pNext = &bindlessImageDesc; + + // create unsampled image + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hUnsampledImage); + + bindlessImageDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS | ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE; + bindlessImageDesc.pNext = &samplerDescForView; + :ref:`zeImageViewCreateExt`\(hContext, hDevice, &imageDesc, hUnsampledImage, &hSampledImageView); diff --git a/level-zero/1.10/_sources/core/EXT_EventQueryKernelTimestamps.rst b/level-zero/1.10/_sources/core/EXT_EventQueryKernelTimestamps.rst new file mode 100644 index 0000000..687de79 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_EventQueryKernelTimestamps.rst @@ -0,0 +1,95 @@ + +:orphan: + +.. _ZE_extension_event_query_kernel_timestamps: + +========================================= + Event Query Kernel Timestamps Extension +========================================= + +API +---- + +* Enumerations + + + * :ref:`ze-event-query-kernel-timestamps-ext-version-t` + * :ref:`ze-event-query-kernel-timestamps-ext-flags-t` + + +* Structures + + + * :ref:`ze-event-query-kernel-timestamps-ext-properties-t` + * :ref:`ze-event-query-kernel-timestamps-results-ext-properties-t` + * :ref:`ze-synchronized-timestamp-data-ext-t` + * :ref:`ze-synchronized-timestamp-result-ext-t` + + +* Functions + + + * :ref:`zeEventQueryKernelTimestampsExt` + + +Event Query Kernel Timestamps +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This extension enables the querying of synchronized event timestamps. + +- *Synchronized event timestamps* are device timestamps synchronized to the host time domain. + +**Notes** + +- The querying of synchronized event timestamps has a performance cost. +- This extension is designed to complement and eventually replace all usages of :ref:`zeEventQueryTimestampsExp` and :ref:`zeEventQueryKernelTimestamp`\. +- The value returned by the `pCount` parameter of :ref:`zeEventQueryKernelTimestampsExt` is implementation specific. + +.. parsed-literal:: + + :ref:`ze-device-properties-t` devProps; + :ref:`ze-event-query-kernel-timestamps-ext-properties-t` tsProps; + + devProps.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES `\; + devProps.pNext = &tsProps; + + tsProps.stype = :ref:`ZE_STRUCTURE_TYPE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_PROPERTIES `\; + tsProps.pNext = nullptr; + + // Determine the level of support by getting the module properties + :ref:`zeDeviceGetProperties`\(hDevice, &devProps); + + const bool supportsKernelTimestamps = (0 != (tsProps.flags & :ref:`ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_FLAG_KERNEL `\)); + const bool supportsSynchronizedTimestamps = (0 != (tsProps.flags & :ref:`ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_FLAG_SYNCHRONIZED `\)); + + // Assumption: hEvent was created with :ref:`ZE_EVENT_POOL_FLAG_KERNEL_MAPPED_TIMESTAMP ` + + // ... + // launch kernel + // synchronize host + // ... + + if (supportsKernelTimestamps || supportsSynchronizedTimestamps) { + // Number of event timestamps + uint32_t count = 0; + + // Get the number of timestamps associated with the event. + :ref:`zeEventQueryKernelTimestampsExt`\(hEvent, hDevice, &count, nullptr); + + // Allocate storage for kernel timestamp results + std::vector<:ref:`ze-kernel-timestamp-result-t`\> kernelTimestamps(count); + + // Allocate storage for synchronized timestamp results + std::vector<:ref:`ze-synchronized-timestamp-result-ext-t`\> synchronizedTimestamps(count); + + // Build event query kernel timestamps descriptors + :ref:`ze-event-query-kernel-timestamps-results-ext-properties-t` resultsProps; + + resultsProps.stype = :ref:`ZE_STRUCTURE_TYPE_EVENT_QUERY_KERNEL_TIMESTAMPS_RESULTS_EXT_PROPERTIES `\; + resultsProps.pNext = nullptr; + resultsProps.pKernelTimestampsBuffer = supportsKernelTimestamps ? kernelTimestamps.data() : nullptr; + resultsProps.pSynchronizedTimestampsBuffer = supportsSynchronizedTimestamps ? synchronizedTimestamps.data() : nullptr; + + // Query the event timestamps + :ref:`zeEventQueryKernelTimestampsExt`\(hEvent, hDevice, &count, &resultsProps); + } diff --git a/level-zero/1.10/_sources/core/EXT_Exp_BandwidthProperties.rst b/level-zero/1.10/_sources/core/EXT_Exp_BandwidthProperties.rst new file mode 100644 index 0000000..cd02efe --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_BandwidthProperties.rst @@ -0,0 +1,107 @@ + +:orphan: + +.. _ZE_experimental_bandwidth_properties: + +================================= +Bandwidth Extension Properties +================================= + +API +---- + +* Structures + + + * :ref:`ze-device-p2p-bandwidth-exp-properties-t` + + * :ref:`ze-copy-bandwidth-exp-properties-t` + + +Bandwidth Properties +~~~~~~~~~~~~~~~~~~~~~ + +Properties of interest during data movement and remote access across various accelerators +interconnected via a set of fabrics include the bandwidths and latencies provided by the fabrics, +logical as well as physical, but also the bandwidths that can be driven by the various engines +present in the accelerators, i.e. the copy bandwidth. In order to saturate the interconnecting +fabrics, the copy bandwidth used to drive a transfer must be matched to the bandwidth provided by +the fabric. This may be achieved by utilizing one or more engines to drive the transfer. The +extensions provided here allow users to query both the fabric bandwidth & latencies as well the +copy bandwidth provided by the various engines present on each accelerator. + +Accelerators within a system may be connected using different link technologies as well as differing +numbers of links. Two accelerators may be logically but not physically connected to each other, meaning +that memory accesses and copies between the accelerators have to go over intervening accelerators. +This limits the maximum bandwidth to the lowest bandwidth link along the connection while increasing +the latency to the sum total of the latencies of the links along the connection. The net bandwidth and +latency for two logically connected accelerators accounts for link technology, number of links, number +of hops between the accelerators, etc... The net physical bandwidth & physical latency between two +accelerators are zero unless the accelerators are directly connected to each other by a fabric, and +account for link technology, number of links, etc... + +The following pseudo-code demonstrates a sequence for obtaining the p2p bandwidth & latency between two devices: + +.. parsed-literal:: + + // devCount is the count of the number of devices in the system + uint32_t** bwTable + uint32_t** latTable + + bwTable = (uint32_t**)allocate(devCount*sizeof(uint32_t*)); + latTable = (uint32_t**)allocate(devCount*sizeof(uint32_t*)); + + :ref:`ze-device-p2p-properties-t` P2PProps; + :ref:`ze-device-p2p-bandwidth-exp-properties-t` P2PBandwidthProps; + P2PProps.stype = ZE_STRUCTURE_TYPE_DEVICE_P2P_PROPERTIES + P2Props.pNext = &P2PbandwidthProps; + P2PBandwidthProps = ZE_STRUCTURE_TYPE_DEVICE_P2P_BANDWIDTH_EXT_PROPERTIES; + P2PBandwidthProps = nullptr; + + // Assume devices are stored in array called devices of size devCount + for (uint32_t dev = 0; dev < devCount; ++dev) { + bwTable[dev] = (uint32_t*)allocate(devCount*sizeof(uint32_t)); + latTable[dev] = (uint32_t*)allocate(devCount*sizeof(uint32_t)); + for (uint32_t peer_dev = 0; peer_dev < devCount; ++peer_dev) { + zeDeviceGetP2PProperties(devices[dev], devices[peer_dev], &P2PProps); + bwTable[dev][peer_dev] = P2PProps.pNext->logicalBandwidth; + latTable[dev][peer_dev] = P2PProps.pNext->logicalLatency; + } + } + + +Engines from different command queue groups may drive differing amounts of bandwidth over the same link between two accelerators. The copy bandwidth of the engines within each command queue group is provided to help users determine which command queue group to pick the right types and numbers of engines from the accelerator for driving each copy operation given constraints such as the maximum bandwidth that a link supports, current usage of engines, etc... For example, some command queue groups that support copy may afford engines that support a higher copy bandwidth as compared to those from a different command queue group. For driving copies from local memory to local memory, it may be advisable to use an engine from a higher copy bandwidth group. For performing copies between devices interconnected with a lower bandwidth link, it may suffice to use an engine from a lower copy bandwidth group. + +The following pseudo-code demonstrates a sequence for obtaining the copy bandwidth of the engines in each command queue group: + +.. parsed-literal:: + + // Discover all command queue groups + uint32_t cmdqueueGroupCount = 0; + :ref:`zeDeviceGetCommandQueueGroupProperties`\(hDevice, &cmdqueueGroupCount, nullptr); + + :ref:`ze-command-queue-group-properties-t`\* cmdqueueGroupProperties = (:ref:`ze-command-queue-group-properties-t`\*) + allocate(cmdqueueGroupCount * sizeof(:ref:`ze-command-queue-group-properties-t`\)); + :ref:`ze-copy-bandwidth-exp-properties-t`\* cmdqueueGroupBandwidth = (:ref:`ze-copy-bandwidth-exp-properties-t`\*) + allocate(cmdqueueGroupCount * sizeof(:ref:`ze-copy-bandwidth-exp-properties-t`\)); + for( uint32_t i = 0; i < cmdqueueGroupCount; ++i ) { + cmdqueueGroupProperties[i].stype = :ref:`ZE_STRUCTURE_TYPE_COMMAND_QUEUE_GROUP_PROPERTIES `\; + cmdqueueGroupProperties[i].pNext = &cmdqueueGroupBandwidth[i]; + cmdqueueGroupBandwidth[i].stype = :ref:`ZE_STRUCTURE_TYPE_COPY_BANDWIDTH_EXP_PROPERTIES `\; + cmdqueueGroupBandwidth[i].pNext = nullptr; + } + :ref:`zeDeviceGetCommandQueueGroupProperties`\(hDevice, &cmdqueueGroupCount, cmdqueueGroupProperties); + + + // Find a command queue type that supports copy & print the copy bandwidth + uint32_t computeQueueGroupOrdinal = cmdqueueGroupCount; + for( uint32_t i = 0; i < cmdqueueGroupCount; ++i ) { + if( cmdqueueGroupProperties[ i ].flags & :ref:`ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY ` ) { + computeQueueGroupOrdinal = i; + printf("copyBandwidth: %ul\n", cmdqueueGroupBandwidth[i].copyBandwidth) + break; + } + } + + if(computeQueueGroupOrdinal == cmdqueueGroupCount) + return; // no compute queues found diff --git a/level-zero/1.10/_sources/core/EXT_Exp_CommandListClone.rst b/level-zero/1.10/_sources/core/EXT_Exp_CommandListClone.rst new file mode 100644 index 0000000..92411f9 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_CommandListClone.rst @@ -0,0 +1,53 @@ + +:orphan: + +.. _ZE_experimental_command_list_clone: + +============================== + Command List Clone Extension +============================== + +API +---- + +* Enumerations + + * :ref:`ze-command-list-clone-exp-version-t` + +* Functions + + * :ref:`zeCommandListCreateCloneExp` + + +==================== + Command List Clone +==================== + +A command list created with the cloneable flag may be cloned only after it has been closed. + +.. parsed-literal:: + + // Create a command list that may be cloned + :ref:`ze-command-list-desc-t` commandListDesc = { + :ref:`ZE_STRUCTURE_TYPE_COMMAND_LIST_DESC `\, + nullptr, + 0, + :ref:`ZE_COMMAND_LIST_FLAG_EXP_CLONEABLE ` + }; + ze_command_list_handle_t hCommandList = nullptr; + :ref:`zeCommandListCreate`\(hContext, hDevice, &commandListDesc, &hCommandList); + + // { ...[construct command list]... } + + // Close the command list + :ref:`zeCommandListClose`\(hCommandList); + + // Execute the command list + zeCommandQueueExecuteCommandLists(hCommandQueue, 1, &hCommandList, nullptr); + + // Clone the command list, no synchronization required + ze_command_list_handle_t hClonedCommandList = nullptr; + :ref:`zeCommandListCreateCloneExp`\(hCommandList, &hClonedCommandList); + + // ... + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_CounterBasedEventPools.rst b/level-zero/1.10/_sources/core/EXT_Exp_CounterBasedEventPools.rst new file mode 100644 index 0000000..b5263e7 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_CounterBasedEventPools.rst @@ -0,0 +1,62 @@ + +:orphan: + +.. _ZE_experimental_event_pool_counter_based: + +===================================== + Counter-Based Event Pools Extension +===================================== + +API +---- + +* Enumerations + + * :ref:`ze-event-pool-counter-based-exp-flags-t` + * :ref:`ze-event-pool-counter-based-exp-version-t` + +* Structures + + * :ref:`ze-event-pool-counter-based-exp-desc-t` + +Counter-Based Events +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, events in Level Zero contains one of two states: signaled or not signaled. +Signaling of an event, as well as resetting its state, can be done from either host or +device. + +Another way of tracking the state of an event is by using a counter, which is incremented +every time a task has completed in the device. Using a counter-based event may provide +Level Zero driver implementations with the opportunity for both functional and performance +optimizations. + +The following recommendations and restrictions apply to counter-based events: + +- Counter-based events can be used only with in-orders lists, whether those are regular or immediate. +- Counter-based events must not be reset, i.e., a call to :ref:`zeEventHostReset` or :ref:`zeCommandListAppendEventReset` + is not allowed. +- Counter-based events must not be signaled from host, i.e., a call to :ref:`zeEventHostSignal` is not allowed. +- Counter-based events may be reused multiple times without a need for reset. +- Counter-based events may be used on multiple command lists. +- Querying a counter-based event queries only the last saved counter value from the last command list that incremented it, + i.e., a signaled counter-based event always represents the completion of the last call to which it was passed as signal event. +- Synchronizing on a counter-based event waits only for the last saved counter value from the last command list that incremented it. +- A counter-based event may be passed as signaling event for a new append call without needing to wait for the signaling of + the last call where it was used. + +Counter-based events can be created by passing :ref:`ze-event-pool-counter-based-exp-desc-t` to :ref:`zeEventPoolCreate` +as pNext member of :ref:`ze-event-pool-desc-t`\. + +.. parsed-literal:: + + uint32_t numEvents = 2; + ze_event_pool_handle_t eventPool = {}; + :ref:`ze-event-pool-desc-t` eventPoolDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\}; + eventPoolDesc.count = numEvents; + + :ref:`ze-event-pool-counter-based-exp-desc-t` counterBasedDesc = {:ref:`ZE_STRUCTURE_TYPE_COUNTER_BASED_EVENT_POOL_EXP_DESC `\}; + counterBasedDesc.flags = :ref:`ZE_EVENT_POOL_COUNTER_BASED_EXP_FLAG_IMMEDIATE `\; + eventPoolDesc.pNext = &counterBasedDesc; + + :ref:`ze-result-t` = zeEventPoolCreate(context, &eventPoolDesc, 1, &device, &eventPool)); diff --git a/level-zero/1.10/_sources/core/EXT_Exp_EventQueryTimestamps.rst b/level-zero/1.10/_sources/core/EXT_Exp_EventQueryTimestamps.rst new file mode 100644 index 0000000..a123972 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_EventQueryTimestamps.rst @@ -0,0 +1,24 @@ + +:orphan: + +.. _ZE_experimental_event_query_timestamps: + +==================================== + Event Query Timestamps Extension +==================================== + +API +---- + +* Functions + + + * :ref:`zeEventQueryTimestampsExp` + + +* Enumerations + + + * :ref:`ze-event-query-timestamps-exp-version-t` + + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_Fabric.rst b/level-zero/1.10/_sources/core/EXT_Exp_Fabric.rst new file mode 100644 index 0000000..0371085 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_Fabric.rst @@ -0,0 +1,149 @@ + +:orphan: + +.. _ZE_experimental_fabric: + +==================================== +Fabric Topology Discovery Extension +==================================== + +API +---- + +* Macros + + * ZE_MAX_FABRIC_EDGE_MODEL_EXP_SIZE + +* Enumerations + + * :ref:`ze-fabric-vertex-exp-type-t` + + * :ref:`ze-fabric-edge-exp-duplexity-t` + +* Structures + + * :ref:`ze-fabric-vertex-pci-exp-address-t` + + * :ref:`ze-fabric-vertex-exp-properties-t` + + * :ref:`ze-fabric-edge-exp-properties-t` + +* Functions + + * :ref:`zeFabricVertexGetExp` + + * :ref:`zeFabricVertexGetSubVerticesExp` + + * :ref:`zeFabricVertexGetPropertiesExp` + + * :ref:`zeFabricVertexGetDeviceExp` + + * :ref:`zeDeviceGetFabricVertexExp` + + * :ref:`zeFabricEdgeGetExp` + + * :ref:`zeFabricEdgeGetVerticesExp` + + * :ref:`zeFabricEdgeGetPropertiesExp` + +Fabric Topology Discovery +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The API supports two forms of topology discovery - logical & physical. + +The API architecture exposes both the logical topology as well as the physical topology of the fabrics interconnecting accelerators. Accelerators are logically connected if they are able to access peer memory, even if the access passes through other accelerators. Accelerators are physically connected if there is a direct fabric connection between the two accelerators that allows the accelerators access to peer memory without passing through other accelerators in the fabrics. + +Two accelerators can be checked for logical connectivity using :ref:`zeDeviceCanAccessPeer`\. Support for remote memory access & atomic capabilities can be checked using the :ref:`zeDeviceGetP2PProperties` function. The :ref:`ze-device-p2p-bandwidth-exp-properties-t` extension struct passed to :ref:`zeDeviceGetP2PProperties` as the pNext member of :ref:`ze-device-p2p-properties-t` provides the bandwidth & latency of the connection between the two accelerators both logical as well as physical topology. This bandwidth & latency information can be used to create the logical & physical adjacency matrix representations of the fabric topology. + +The API architecture also exposes the physical topology of scale-up fabrics interconnecting accelerators (exposed as devices and subdevices) and switches in the form of the adjacency graph representation of the fabric topology. Both accelerators and switches are represented as fabric vertices. The physical links that interconnect accelerators and switches are represented as fabric edges. The API supports a hierarchy of fabric vertices and fabric subvertices in keeping with the hierarchy of devices and subdevices. Devices always correspond to fabric vertices while subdevices always correspond to fabric subvertices. Both fabric vertices and fabric subvertices are represented by the same opaque handle. Fabric vertices may be remote, i.e. be associated with accelerator devices on remote nodes. + +Fabric Vertices +--------------- + +A fabric vertex object represents either a physical accelerator or switch in a system that supports Level-Zero. + +- The application may query the number of fabric vertices supported by a driver, and their respective handles, using :ref:`zeFabricVertexGetExp`\. +- The application may also obtain fabric vertex handles directly from the underlying device handles using :ref:`zeDeviceGetFabricVertexExp`\. +- Fabric vertices objects are read-only, global constructs. i.e. multiple calls to :ref:`zeFabricVertexGetExp` or :ref:`zeDeviceGetFabricVertexExp` will return identical fabric vertex handles. +- Fabric vertices may expose sub-vertices that allow finer-grained querying of the topological properties of the system. +- The device represented by a fabric vertex may be obtainable from the fabric vertex handle using :ref:`zeFabricVertexGetDeviceExp`\. +- Fabric vertices may represent remote accelerators or switches, i.e. accelerators or switches on a remote node, that are connected to the accelerators and switches in the local node via scale-out links. Such accelerators cannot be programmed from the local node & the corresponding device handles cannot be obtained from the fabric vertex handles representing the remote accelerator. +- A fabric vertex handle is primarily used for identifying topological properties of the L0 system that can be used for optimization of the algorithm used for compute/communication. + +Fabric Edges +------------ + +A fabric edge object represents one or more physical links between fabric vertices in a system that supports Level-Zero. + +- The application may query the number of fabric edges connected to a fabric vertex, and their respective handles, using :ref:`zeFabricEdgeGetExp`\. +- Fabric edge objects are read-only, global constructs. Multiple calls to :ref:`zeFabricEdgeGetExp` made with the same fabric vertices will return identical fabric edge handles. +- A single fabric edge may represent multiple physical links between two fabric vertices as long as traffic is automatically spread over all links when a single engine is used to drive the transfer. +- A fabric edge handle is primarily used for identifying topological properties of the L0 system that can be used for optimization of the algorithm used for compute/communication. + +Discovery +--------- + +Assuming that the application is using a graph API to construct a graph, the following pseudo-code demonstrates a basic topology discovery sequence: + +.. parsed-literal:: + + // Create graph object + + // Find all fabric vertices & the edges connecting them + ze_fabric_vertex_handle_t* vertices = nullptr; + + uint32_t vertexCount = 0; + :ref:`zeFabricVertexGetExp`\(drivers[0], &vertexCount, nullptr); + + vertices = allocate(vertexCount * sizeof(ze_fabric_vertex_handle_t)); + + :ref:`zeFabricVertexGetExp`\(drivers[0], &vertexCount, vertices); + + // Copy all vertices into graph + + for (u = 0; u < vertexCount; ++u) { + for (v = u + 1; u < vertexCount; ++v) { + + uint32_t edgeCount = 0; + + :ref:`zeFabricEdgeGetExp`\(vertices[u], vertices[v], &edgeCount, nullptr); + + ze_fabric_edge_handle_t* edges = nullptr; + + edges = allocate(edgeCount * sizeof(ze_fabric_edge_handle_t)); + + :ref:`zeFabricEdgeGetExp`\(vertices[u], vertices[v], &edgeCount, edges); + + // Copy edges into graph + + free(edges); + + } + } + + free(vertices); + + ... + +The following diagrams illustrates examples of topologies exposed via the fabric vertex & fabric edge API. + +A six device system with all-to-all connectivity between the devices. + +.. image:: ../images/A21_Vertex.png + +Subvertex discovery reveals that each device in the system is actually composed of two subdevices with two planes of all-to-all connectivity (light-green & dark-green) and one plane of 2-d mesh connectivity (blue) between the subdevices. + +.. image:: ../images/A21_Subvertex.png + +Same as above, but with remote subdevices that manifest as subvertices but do not expose a subdevice handle. + +.. image:: ../images/A21_Subvertex+Remote.png + +The API also supports mixing & matching vertices & subvertices, both local as well as remote in the same set of queries. + +.. image:: ../images/A21_Vertex+Subvertex+Remote.png + +An eight device system with six switches establishing all-to-all connectivity between the devices. + +.. image:: ../images/DGXA100_Vertex.png + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_GlobalOffset.rst b/level-zero/1.10/_sources/core/EXT_Exp_GlobalOffset.rst new file mode 100644 index 0000000..61880bb --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_GlobalOffset.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZE_experimental_global_offset: + +========================= + Global Offset Extension +========================= + +API +---- + +* Functions + + + * :ref:`zeKernelSetGlobalOffsetExp` + + +* Enumerations + + + * :ref:`ze-global-offset-exp-version-t` + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_ImageMemoryProperties.rst b/level-zero/1.10/_sources/core/EXT_Exp_ImageMemoryProperties.rst new file mode 100644 index 0000000..bd29675 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_ImageMemoryProperties.rst @@ -0,0 +1,27 @@ + +:orphan: + +.. _ZE_experimental_image_memory_properties: + +==================================== + Image Memory Properties Extension +==================================== + +API +---- + +* Functions + + * :ref:`zeImageGetMemoryPropertiesExp` + + +* Enumerations + + * :ref:`ze-image-memory-properties-exp-version-t` + + +* Structures + + * :ref:`ze-image-memory-properties-exp-t` + + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_ImageView.rst b/level-zero/1.10/_sources/core/EXT_Exp_ImageView.rst new file mode 100644 index 0000000..6bef6e6 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_ImageView.rst @@ -0,0 +1,28 @@ + + + + +:orphan: + +.. _ZE_experimental_image_view: + +========================= + Image View Extension +========================= + +This experimental extension is deprecated and replaced by the :ref:`ZE_extension_image_view ` standard extension. + +API +---- + +* Functions + + + * :ref:`zeImageViewCreateExp` + + +* Enumerations + + + * :ref:`ze-image-view-exp-version-t` + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_ImageViewPlanar.rst b/level-zero/1.10/_sources/core/EXT_Exp_ImageViewPlanar.rst new file mode 100644 index 0000000..78f59a2 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_ImageViewPlanar.rst @@ -0,0 +1,29 @@ + + + + +:orphan: + +.. _ZE_experimental_image_view_planar: + +============================= + Image View Planar Extension +============================= + +This experimental extension is deprecated and replaced by the :ref:`ZE_extension_image_view_planar ` standard extension. + +API +---- + +* Enumerations + + + * :ref:`ze-image-view-planar-exp-version-t` + + +* Structures + + + * :ref:`ze-image-view-planar-exp-desc-t` + + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_ImmediateCommandListAppend.rst b/level-zero/1.10/_sources/core/EXT_Exp_ImmediateCommandListAppend.rst new file mode 100644 index 0000000..3765359 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_ImmediateCommandListAppend.rst @@ -0,0 +1,25 @@ + +:orphan: + +.. _ZE_experimental_immediate_command_list_append: + +========================================= + Immediate Command List Append Extension +========================================= + +API +---- + +* Enumerations + + * :ref:`ze-immediate-command-list-append-exp-version-t` + +* Functions + + * :ref:`zeCommandListImmediateAppendCommandListsExp` + +=============================== + Immediate Command List Append +=============================== + +This extension allows an application to append one or more command lists to an immediate command list for dispatch. diff --git a/level-zero/1.10/_sources/core/EXT_Exp_ModuleProgram.rst b/level-zero/1.10/_sources/core/EXT_Exp_ModuleProgram.rst new file mode 100644 index 0000000..a7b9b62 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_ModuleProgram.rst @@ -0,0 +1,22 @@ + +:orphan: + +.. _ZE_experimental_module_program: + +========================= + Module Program Extension +========================= + +API +---- + +* Enumerations + + + * :ref:`ze-module-program-exp-version-t` + + +* Structures + + + * :ref:`ze-module-program-exp-desc-t` diff --git a/level-zero/1.10/_sources/core/EXT_Exp_MutableCommandList.rst b/level-zero/1.10/_sources/core/EXT_Exp_MutableCommandList.rst new file mode 100644 index 0000000..48efd8f --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_MutableCommandList.rst @@ -0,0 +1,287 @@ + +:orphan: + +.. _ZE_experimental_mutable_command_list: + +================================ + Mutable Command List Extension +================================ + +API +---- + +* Enumerations + + * :ref:`ze-mutable-command-list-exp-version-t` + * :ref:`ze-mutable-command-exp-flags-t` + * :ref:`ze-mutable-command-list-exp-flags-t` + +* Structures + + * :ref:`ze-mutable-command-id-exp-desc-t` + * :ref:`ze-mutable-command-list-exp-properties-t` + * :ref:`ze-mutable-command-list-exp-desc-t` + * :ref:`ze-mutable-commands-exp-desc-t` + * :ref:`ze-mutable-kernel-argument-exp-desc-t` + * :ref:`ze-mutable-group-count-exp-desc-t` + * :ref:`ze-mutable-group-size-exp-desc-t` + * :ref:`ze-mutable-global-offset-exp-desc-t` + + * :ref:`ze-mutable-graph-argument-exp-desc-t` + +* Functions + + * :ref:`zeCommandListGetNextCommandIdExp` + * :ref:`zeCommandListGetNextCommandIdWithKernelsExp` + * :ref:`zeCommandListUpdateMutableCommandsExp` + * :ref:`zeCommandListUpdateMutableCommandSignalEventExp` + * :ref:`zeCommandListUpdateMutableCommandWaitEventsExp` + * :ref:`zeCommandListUpdateMutableCommandKernelsExp` + + +====================== + Mutable Command List +====================== + +- A mutable command list is created by supplying a :ref:`ze-mutable-command-list-exp-desc-t` object via the `pNext` member of :ref:`ze-command-list-desc-t`\. +- Mutable command lists support mutation to **identified** commands *after* being closed with :ref:`zeCommandListClose`\. +- Implementation support for mutable commands may be discovered by providing a :ref:`ze-mutable-command-list-exp-properties-t` object in the `pNext` member of :ref:`ze-device-properties-t` in a call to :ref:`zeDeviceGetProperties`\. + +.. parsed-literal:: + + // Discover mutable command list properties + :ref:`ze-mutable-command-list-exp-properties-t` mutCmdListProps = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMAND_LIST_EXP_PROPERTIES `\, // stype + nullptr, // pNext + 0, // mutableCommandListFlags + 0 // mutableCommandFlags + }; + + :ref:`ze-device-properties-t` deviceProps = { + :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES ` + }; + deviceProps.pNext = &mutCmdListProps; + + :ref:`zeDeviceGetProperties`\(hDevice, &deviceProps); + + // ... + + // Create a mutable command list + :ref:`ze-mutable-command-list-exp-desc-t` mutCmdListDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMAND_LIST_EXP_DESC `\, + nullptr, + 0 // flags + }; + + :ref:`ze-command-list-desc-t` commandListDesc = { + :ref:`ZE_STRUCTURE_TYPE_COMMAND_LIST_DESC `\, + &mutCmdListDesc, + 0, + 0 // flags + }; + + ze_command_list_handle_t hCommandList = nullptr; + :ref:`zeCommandListCreate`\(hContext, hDevice, &commandListDesc, &hCommandList); + + // [ ...create fence, signal event and wait event objects... ] + // This example assumes hFence, hSignalEvent and hWaitEvent have been created. + + // Create kernel from module + :ref:`ze-kernel-desc-t` kernelDesc = { + :ref:`ZE_STRUCTURE_TYPE_KERNEL_DESC `\, + 0, + "example" + }; + ze_kernel_handle_t hKernel = nullptr; + :ref:`ze-result-t` result = :ref:`zeKernelCreate`\(hModule, &kernelDesc, &hKernel); + + // Set the kernel arguments + :ref:`ze-group-count-t` groupSize = {}; + :ref:`zeKernelSuggestGroupSize`\(hKernel, 1024, 1024, 1, &groupSize.groupCountX, &groupSize.groupCountY, &groupSize.groupCountZ); + + int defaultValue = 0; + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(int), &defaultValue); + + // Get next command identifier + :ref:`ze-mutable-command-id-exp-desc-t` cmdIdDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMAND_ID_EXP_DESC `\, // stype + nullptr, // pNext + 0 // flags + }; + + uint64_t commandId = 0; + :ref:`zeCommandListGetNextCommandIdExp`\(hCommandList, &cmdIdDesc, &commandId); + + // Encode command into command list + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &groupSize, hSignalEvent, 1, &hWaitEvent); + + // Close the command list + :ref:`zeCommandListClose`\(hCommandList); + + // ... + + // Execute the command list + zeCommandQueueExecuteCommandLists(hCommandQueue, 1, &hCommandList, hFence); + + // ... + + +The application may subsequently mutate specific commands, as follows: + +.. parsed-literal:: + + // Prepare to modify group count + :ref:`ze-group-count-t` groupCount = { + 256, // groupCountX + 256, // groupCountY + 1 // groupCountZ + }; + + :ref:`ze-mutable-group-count-exp-desc-t` groupCountDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_GROUP_COUNT_EXP_DESC `\, // stype + nullptr, // pNext + commandId, // commandId + &groupCount // pGroupCount + }; + + // Prepare to modify Kernel Argument + int argValue = 1; + + :ref:`ze-mutable-kernel-argument-exp-desc-t` krnlArgDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_KERNEL_ARGUMENT_EXP_DESC `\, // stype + &groupCountDesc, // pNext + commandId, // commandId + 0, // argIndex + sizeof(int), // argSize + &argValue // pArgValue + }; + + // Prepare to update mutable commands + :ref:`ze-mutable-commands-exp-desc-t` desc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMANDS_EXP_DESC `\, // stype + &krnlArgDesc, // pNext + 0 // flags + }; + + // Synchronize command list execution + :ref:`zeFenceHostSynchronize`\(hFence, UINT64_MAX); + + // Update mutable commands + :ref:`zeCommandListUpdateMutableCommandsExp`\(hCommandList, &desc); + + // Update signal event for the launch kernel command + :ref:`zeCommandListUpdateMutableCommandSignalEventExp`\(hCommandList, commandId, hNewLaunchKernelSignalEvent); + + // Update the wait events for the launch kernel command + :ref:`zeCommandListUpdateMutableCommandWaitEventsExp`\(hCommandList, commandId, 1, &hNewLaunchKernelWaitEvent); + + // Close the command list + :ref:`zeCommandListClose`\(hCommandList); + + // ... + + +Note, the command list must be explicitly closed after updating mutable commands and events. This informs the implementation that the application has finished with updates and is ready to submit the command list. +In preparation for kernel mutation user must provide all possible kernels for the command. + +.. parsed-literal:: + + // define all possible kernels + ze_kernel_handle_t addKernel; + ze_kernel_handle_t mulKernel; + + ze_kernel_handle_t kernels[] = {addKernel, mulKernel}; + + // when users want kernel mutation, they need to explicitly state this, as 0 does not include kernel instruction mutation by default + :ref:`ze-mutable-command-exp-flags-t` mutationFlags = + :ref:`ZE_MUTABLE_COMMAND_EXP_FLAG_KERNEL_ARGUMENTS ` | + :ref:`ZE_MUTABLE_COMMAND_EXP_FLAG_GROUP_COUNT ` | + :ref:`ZE_MUTABLE_COMMAND_EXP_FLAG_GROUP_SIZE ` | + :ref:`ZE_MUTABLE_COMMAND_EXP_FLAG_KERNEL_INSTRUCTION `\; + + // Get next command identifier + :ref:`ze-mutable-command-id-exp-desc-t` cmdIdDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMAND_ID_EXP_DESC `\, // stype + nullptr, // pNext + mutationFlags // flags + }; + + // retrieve id for the append operation and provide all possible kernels for this command + uint64_t mutableKernelCommandId = 0; + :ref:`zeCommandListGetNextCommandIdWithKernelsExp`\(hCommandList, &cmdIdDesc, &mutableKernelCommandId, 2, kernels); + + // Encode command into command list + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, addKernel, &groupSize, nullptr, 0, nullptr); + + // Close the command list + :ref:`zeCommandListClose`\(hCommandList); + +Mutation of kernels must obey two rules: +- kernel handle mutation function must be called as first for a given command id +- kernel mutation invalidates all kernel arguments and dispatch parameters, these must be provided for the new kernel + +.. parsed-literal:: + + // Update mutable kernel for the command, switch from `addKernel` to `mulKernel` + :ref:`zeCommandListUpdateMutableCommandKernelsExp`\(hCommandList, 1, &mutableKernelCommandId, &mulKernel); + + // modify group count + :ref:`ze-group-count-t` groupCount = { + 32, // groupCountX + 1, // groupCountY + 1 // groupCountZ + }; + + :ref:`ze-mutable-group-count-exp-desc-t` groupCountDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_GROUP_COUNT_EXP_DESC `\, // stype + nullptr, // pNext + mutableKernelCommandId, // commandId + &groupCount // pGroupCount + }; + + :ref:`ze-mutable-group-size-exp-desc-t` groupSizeDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_GROUP_SIZE_EXP_DESC `\, // stype + &groupCountDesc, // pNext + mutableKernelCommandId, // commandId + 32, // groupSizeX + 1, // groupSizeY + 1, // groupSizeZ + }; + + // Prepare to modify Kernel Argument + int argValue = 1; + void *usmPointer; + + :ref:`ze-mutable-kernel-argument-exp-desc-t` krnlArgMemoryDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_KERNEL_ARGUMENT_EXP_DESC `\, // stype + &groupSizeDesc, // pNext + mutableKernelCommandId, // commandId + 0, // argIndex + sizeof(void *), // argSize + &usmPointer // pArgValue + }; + + :ref:`ze-mutable-kernel-argument-exp-desc-t` krnlArgScalarDesc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_KERNEL_ARGUMENT_EXP_DESC `\, // stype + &krnlArgMemoryDesc, // pNext + mutableKernelCommandId, // commandId + 1, // argIndex + sizeof(int), // argSize + &argValue // pArgValue + }; + + // Prepare to update mutable commands + :ref:`ze-mutable-commands-exp-desc-t` desc = { + :ref:`ZE_STRUCTURE_TYPE_MUTABLE_COMMANDS_EXP_DESC `\, // stype + &krnlArgScalarDesc, // pNext + 0 // flags + }; + + // Update mutable kernel arguments and dispatch parameters for the command + :ref:`zeCommandListUpdateMutableCommandsExp`\(hCommandList, &desc); + + // Close the command list + :ref:`zeCommandListClose`\(hCommandList); + + +The command list must be explicitly closed after updating mutable commands. diff --git a/level-zero/1.10/_sources/core/EXT_Exp_PowerSavingHint.rst b/level-zero/1.10/_sources/core/EXT_Exp_PowerSavingHint.rst new file mode 100644 index 0000000..7a45343 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_PowerSavingHint.rst @@ -0,0 +1,21 @@ + +:orphan: + +.. _ZE_experimental_power_saving_hint: + +============================ + Power Saving Hint Extension +============================ + +API +---- + +* Enumerations + + * :ref:`ze-power-saving-hint-exp-version-t` + + +* Structures + + + * :ref:`ze-context-power-saving-hint-exp-desc-t` diff --git a/level-zero/1.10/_sources/core/EXT_Exp_RTASBuilder.rst b/level-zero/1.10/_sources/core/EXT_Exp_RTASBuilder.rst new file mode 100644 index 0000000..9893ef3 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_RTASBuilder.rst @@ -0,0 +1,340 @@ + +:orphan: + +.. _ZE_experimental_rtas_builder: + +====================================================== + Ray Tracing Acceleration Structure Builder Extension +====================================================== + +API +---- + +* Enumerations + + + * :ref:`ze-rtas-builder-exp-version-t` + * :ref:`ze-rtas-device-exp-flags-t` + * :ref:`ze-rtas-format-exp-t` + * :ref:`ze-rtas-builder-exp-flags-t` + * :ref:`ze-rtas-parallel-operation-exp-flags-t` + * :ref:`ze-rtas-builder-geometry-exp-flags-t` + * :ref:`ze-rtas-builder-instance-exp-flags-t` + * :ref:`ze-rtas-builder-build-op-exp-flags-t` + * :ref:`ze-rtas-builder-build-quality-hint-exp-t` + * :ref:`ze-rtas-builder-geometry-type-exp-t` + * :ref:`ze-rtas-builder-input-data-format-exp-t` + + +* Structures + + + * :ref:`ze-rtas-builder-exp-desc-t` + + * :ref:`ze-rtas-builder-exp-properties-t` + * :ref:`ze-rtas-parallel-operation-exp-properties-t` + * :ref:`ze-rtas-device-exp-properties-t` + + * :ref:`ze-rtas-float3-exp-t` + * :ref:`ze-rtas-transform-float3x4-column-major-exp-t` + * :ref:`ze-rtas-transform-float3x4-aligned-column-major-exp-t` + * :ref:`ze-rtas-transform-float3x4-row-major-exp-t` + * :ref:`ze-rtas-aabb-exp-t` + * :ref:`ze-rtas-triangle-indices-uint32-exp-t` + * :ref:`ze-rtas-quad-indices-uint32-exp-t` + + * :ref:`ze-rtas-builder-geometry-info-exp-t` + * :ref:`ze-rtas-builder-triangles-geometry-info-exp-t` + * :ref:`ze-rtas-builder-quads-geometry-info-exp-t` + * :ref:`ze-rtas-builder-procedural-geometry-info-exp-t` + * :ref:`ze-rtas-builder-instance-geometry-info-exp-t` + + * :ref:`ze-rtas-builder-build-op-exp-desc-t` + + +* Functions + + + * :ref:`zeRTASBuilderCreateExp` + * :ref:`zeRTASBuilderGetBuildPropertiesExp` + * :ref:`zeRTASBuilderBuildExp` + * :ref:`zeRTASBuilderDestroyExp` + + * :ref:`zeDriverRTASFormatCompatibilityCheckExp` + + * :ref:`zeRTASParallelOperationCreateExp` + * :ref:`zeRTASParallelOperationGetPropertiesExp` + * :ref:`zeRTASParallelOperationJoinExp` + * :ref:`zeRTASParallelOperationDestroyExp` + + +============================================ + Ray Tracing Acceleration Structure Builder +============================================ + +The Ray Tracing Acceleration Structure Builder extension provides the functionality to build ray tracing acceleration structures (RTAS) for 3D scenes on the host for use with GPU devices. + +It is the user's responsibility to manage the acceleration structure buffer and scratch buffer resources. The required sizes may be queried via :ref:`zeRTASBuilderGetBuildPropertiesExp`\. Once built, an acceleration structure is a self-contained entity; any input resources may be released after the successful construction. Note that acceleration structures are non-copyable resources. + +Scene Data +----------- + +To build an acceleration structure, first setup a scene that consists of one or more geometry infos. + + - :ref:`ze-rtas-builder-triangles-geometry-info-exp-t` for triangle meshes, + - :ref:`ze-rtas-builder-quads-geometry-info-exp-t` for quad meshes, + - :ref:`ze-rtas-builder-procedural-geometry-info-exp-t` for procedural primitives with attached axis-aligned bounding-box, and + - :ref:`ze-rtas-builder-instance-geometry-info-exp-t` for instances of other acceleration structures. + +The following example creates a :ref:`ze-rtas-builder-triangles-geometry-info-exp-t` to specify a triangle mesh: + +.. parsed-literal:: + + std::vector<:ref:`ze-rtas-triangle-indices-uint32-exp-t`\> triangleIndexBuffer; + std::vector<:ref:`ze-rtas-float3-exp-t`\> triangleVertexBuffer; + + // Populate vertex and index buffers + { + // ... + } + + :ref:`ze-rtas-builder-triangles-geometry-info-exp-t` mesh; + memset(&mesh, 0, sizeof(mesh)); + + mesh.geometryType = :ref:`ZE_RTAS_BUILDER_GEOMETRY_TYPE_EXP_TRIANGLES `\; + mesh.geometryFlags = 0; + mesh.geometryMask = 0xFF; + + mesh.triangleFormat = :ref:`ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_TRIANGLE_INDICES_UINT32 `\; + mesh.triangleCount = triangleIndexBuffer.size(); + mesh.triangleStride = sizeof(:ref:`ze-rtas-triangle-indices-uint32-exp-t`\); + mesh.pTriangleBuffer = triangleIndexBuffer.data(); + + mesh.vertexFormat = :ref:`ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_FLOAT3 `\; + mesh.vertexCount = triangleVertexBuffer.size(); + mesh.vertexStride = sizeof(:ref:`ze-rtas-float3-exp-t`\); + mesh.pVertexBuffer = triangleVertexBuffer.data(); + +Geometry is considered to be opaque by default, enabling a fast mode where traversal does not return to the caller of ray tracing for each triangle or quad hit. To process each triangle or quad hit by some any-hit shader, the `geometryFlags` member of the geometry infos must include the :ref:`ZE_RTAS_BUILDER_GEOMETRY_EXP_FLAG_NON_OPAQUE ` flag. The proper data formats of the triangle index- and vertex- buffers are specified, including the strides, and a pointer to the first element for each buffer. + +To refer to multiple geometries that make a scene, pointers to geometry info structures can be put into an array as follows: + +.. parsed-literal:: + + std::vector<:ref:`ze-rtas-builder-geometry-info-exp-t`\*> geometries; + geometries.push_back((:ref:`ze-rtas-builder-geometry-info-exp-t`\*)&mesh0); + geometries.push_back((:ref:`ze-rtas-builder-geometry-info-exp-t`\*)&mesh1); + ... + +This completes the definition of the geometry for the scene for which to construct the acceleration structure. + +Device Properties +------------------ + +The next step is to query the target device for acceleration structure properties. + +.. parsed-literal:: + + :ref:`ze-rtas-device-exp-properties-t` rtasDeviceProps; + rtasDeviceProps.stype = :ref:`ZE_STRUCTURE_TYPE_RTAS_DEVICE_EXP_PROPERTIES `\; + rtasDeviceProps.pNext = nullptr; + + :ref:`ze-device-properties-t` deviceProps; + deviceProps.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES `\; + deviceProps.pNext = &rtasDeviceProps; + + :ref:`zeDeviceGetProperties`\(hDevice, &deviceProps); + + +The device properties contain information (a device-specific ray tracing acceleration structure format) that is required to complete an RTAS build operation. + + +Acceleration Structure Builder +------------------------------- + +With the scene data prepared and relevant device properties known, create a ray tracing acceleration structure builder object and query for the necessary build properties. + +.. parsed-literal:: + + :ref:`ze-rtas-builder-exp-desc-t` desc; + desc.stype = :ref:`ZE_STRUCTURE_TYPE_RTAS_BUILDER_EXP_DESC `\; + desc.pNext = nullptr; + desc.builderVersion = :ref:`ZE_RTAS_BUILDER_EXP_VERSION_CURRENT `\; + + ze_rtas_builder_exp_handle_t hBuilder = nullptr; + :ref:`ze-result-t` result = :ref:`zeRTASBuilderCreateExp`\(hDriver, &desc, &hBuilder); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + + :ref:`ze-rtas-builder-exp-properties-t` builderProps; + builderProps.stype = :ref:`ZE_STRUCTURE_TYPE_RTAS_BUILDER_EXP_PROPERTIES `\; + builderProps.pNext = nullptr; + + :ref:`ze-rtas-builder-build-op-exp-desc-t` buildOpDesc; + buildOpDesc.stype = :ref:`ZE_STRUCTURE_TYPE_RTAS_BUILDER_BUILD_OP_EXP_DESC `\; + buildOpDesc.pNext = nullptr; + buildOpDesc.rtasFormat = rtasDeviceProps.rtasFormat; + buildOpDesc.buildQuality = :ref:`ZE_RTAS_BUILDER_BUILD_QUALITY_HINT_EXP_MEDIUM `\; + buildOpDesc.buildFlags = 0; + buildOpDesc.ppGeometries = geometries.data(); + buildOpDesc.numGeometries = geometries.size(); + + result = :ref:`zeRTASBuilderGetBuildPropertiesExp`\(hBuilder, &buildOpDesc, &builderProps); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + +Note, the parameters of the build operation descriptor, such as acceleration structure build quality, affect the buffer requirements, etc. + +An application may create and use a single RTAS builder object, as multiple concurrent build operations may be performed with a single such object. + +Buffers +-------- + +With the builder properties along with everything else known at this point, the resources for the acceleration structure may be allocated. + +Scratch Buffer +^^^^^^^^^^^^^^^ + +A system memory scratch buffer is required to perform the build operation. It is used by the implementation for intermediate storage. + +.. parsed-literal:: + + void* pScratchBuffer = malloc(builderProps.scratchBufferSizeBytes); + +Acceleration Structure Buffer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The acceleration structure buffer is where the ray tracing acceleration structure is written to. It must be accessible on the host as well as the device; consequently, it must be allocated as a USM resource. This example uses the worst-case sizing. + +.. parsed-literal:: + + :ref:`ze-raytracing-mem-alloc-ext-desc-t` rtasMemAllocDesc; + rtasMemAllocDesc.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_RAYTRACING_EXT_PROPERTIES `\; + rtasMemAllocDesc.pNext = nullptr; + rtasMemAllocDesc.flags = 0; + + :ref:`ze-device-mem-alloc-desc-t` deviceMemAllocDesc; + deviceMemAllocDesc.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_MEM_ALLOC_DESC `\; + deviceMemAllocDesc.pNext = &rtasMemAllocDesc; + deviceMemAllocDesc.flags = :ref:`ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_CACHED `\; + deviceMemAllocDesc.ordinal = 0; + + :ref:`ze-host-mem-alloc-desc-t` hostMemAllocDesc; + hostMemAllocDesc.stype = :ref:`ZE_STRUCTURE_TYPE_HOST_MEM_ALLOC_DESC `\; + hostMemAllocDesc.pNext = nullptr; + hostMemAllocDesc.flags = :ref:`ZE_HOST_MEM_ALLOC_FLAG_BIAS_CACHED `\; + + void* pRtasBuffer = nullptr; + result = :ref:`zeMemAllocShared`\(hContext, &deviceMemAllocDesc, &hostMemAllocDesc, builderProps.rtasBufferSizeBytesMaxRequired, rtasDeviceProps.rtasBufferAlignment, hDevice, &pRtasBuffer); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + +Executing an Acceleration Structure Build +------------------------------------------ + +Single-Threaded Build +^^^^^^^^^^^^^^^^^^^^^^ + +A single-threaded acceleration structure build on the host is initiated using :ref:`zeRTASBuilderBuildExp`\. + +.. parsed-literal:: + + result = :ref:`zeRTASBuilderBuildExp`\(hBuilder, &buildOpDesc, pScratchBuffer, builderProps.scratchBufferSizeBytes, pRtasBuffer, builderProps.rtasBufferSizeBytesMaxRequired, nullptr, nullptr, nullptr, nullptr); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + +When the build completes successfully the acceleration structure buffer is ready for use by the ray tracing API. + +Parallel Build +^^^^^^^^^^^^^^^ + +In order to speed up the build operation using multiple worker threads, a parallel operation object can be associated with the build operation and joined with the application-provided worker threads as in the following example: + + **Note** + The following example uses `oneTBB `_ to dispatch worker threads, but this is not a requirement. + +.. parsed-literal:: + + ze_rtas_parallel_operation_exp_handle_t hParallelOperation = nullptr; + result = :ref:`zeRTASParallelOperationCreateExp`\(hDriver, &hParallelOperation); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + + // Initiate the acceleration structure build operation with a handle + // of a parallel operation object. This causes the parallel operation to be + // bound to the build operation and the function returns immediately without + // building any acceleration structure yet. + result = :ref:`zeRTASBuilderBuildExp`\(hBuilder, &buildOpDesc, pScratchBuffer, builderProps.scratchBufferSizeBytes, pRtasBuffer, builderProps.rtasBufferSizeBytesMaxRequired, hParallelOperation, nullptr, nullptr, nullptr); + assert(result == :ref:`ZE_RESULT_EXP_RTAS_BUILD_DEFERRED `\); + + // Once the parallel operation is bound to the build operation the number + // of worker threads to join the parallel operation can be queried. + :ref:`ze-rtas-parallel-operation-exp-properties-t` parallelOpProps; + parallelOpProps.stype = :ref:`ZE_STRUCTURE_TYPE_RTAS_PARALLEL_OPERATION_EXP_PROPERTIES `\; + parallelOpProps.pNext = nullptr; + + result = :ref:`zeRTASParallelOperationGetPropertiesExp`\(hParallelOperation, ¶llelOpProps); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + + // Now worker threads can join the build operation to perform the actual build + // of the acceleration structure. + tbb::parallel_for(0, parallelOpProps.maxConcurrency, 1, [&](uint32_t i) { + :ref:`ze-result-t` buildResult = :ref:`zeRTASParallelOperationJoinExp`\(hParallelOperation); + assert(buildResult == :ref:`ZE_RESULT_SUCCESS `\); + }); + + // With the parallel operation complete, the parallel operation object can be released. + result = :ref:`zeRTASParallelOperationDestroyExp`\(hParallelOperation); + assert(result == :ref:`ZE_RESULT_SUCCESS `\); + +Note that the number of worker threads to be used can only be queried from the parallel operation object after it is bound to the build operation by the call to :ref:`zeRTASBuilderBuildExp`\. + + +Conservative Acceleration Structure Buffer Size +------------------------------------------------ + +Sizing the acceleration structure buffer using the `rtasBufferSizeBytesMaxRequired` member of :ref:`ze-rtas-builder-exp-properties-t` guarantees that the build operation will not fail due to an out-of-memory condition. However, this size represents the memory requirement for the worst-case scenario and is larger than is typically needed. To reduce memory usage, the application may attempt to execute a build using an acceleration structure buffer sized to the `rtasBufferSizeBytesExpected` member of :ref:`ze-rtas-builder-exp-properties-t`\. When using the expected size, however, it is possible for the build operation to fail with :ref:`ZE_RESULT_EXP_RTAS_BUILD_RETRY `\. If this occurs, the application may resize the acceleration structure buffer with an updated size estimate provided by the builder build API. + +.. parsed-literal:: + + :ref:`ze-result-t` result; + + void* pRtasBuffer = nullptr; + size_t rtasBufferSizeBytes = builderProps.rtasBufferSizeBytesExpected; + + while (true) + { + pRtasBuffer = allocate_accel_buffer(rtasBufferSizeBytes); + + result = :ref:`zeRTASBuilderBuildExp`\(hBuilder, &buildOpDesc, pScratchBuffer, builderProps.scratchBufferSizeBytes, pRtasBuffer, rtasBufferSizeBytes, nullptr, nullptr, nullptr, &rtasBufferSizeBytes); + + if (result == :ref:`ZE_RESULT_SUCCESS `\) + { + break; + } + + assert(result == :ref:`ZE_RESULT_EXP_RTAS_BUILD_RETRY `\); + + free_accel_buffer(pRtasBuffer); + } + +The loop starts with the minimum acceleration buffer size for which the build will mostly likely succeed. If the build runs out of memory, :ref:`ZE_RESULT_EXP_RTAS_BUILD_RETRY ` is returned and the build is retried with a larger acceleration structure buffer. + +The example above passes a pointer to the `rtasBufferSizeBytes` variable as a parameter to the build API, which it will update with a larger acceleration structure buffer size estimate to be used in the next attempt should the build operation fail. Alternatively, the application could increase the acceleration buffer size for the next attempt by some percentage, which could fail again, or just use the maximum size from the builder properties for the second attempt. + +Cleaning Up +------------ + +Once the acceleration structure has been built, any resources associated with the build may be released. Additionally, any parallel operation objects should be destroyed as well as any builder objects. + +.. parsed-literal:: + + // Free the scratch buffer + free(pScratchBuffer); + + // Destroy the builder object + :ref:`zeRTASBuilderDestroyExp`\(hBuilder); + + // Use the acceleration structure buffer with the ray tracing API + { + // ... + } + + // Release the acceleration structure buffer once it is no longer needed + :ref:`zeMemFree`\(hContext, pRtasBuffer); + pRtasBuffer = nullptr; diff --git a/level-zero/1.10/_sources/core/EXT_Exp_RelaxedAllocLimits.rst b/level-zero/1.10/_sources/core/EXT_Exp_RelaxedAllocLimits.rst new file mode 100644 index 0000000..8af78e2 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_RelaxedAllocLimits.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZE_experimental_relaxed_allocation_limits: + +===================================== + Relaxed Allocation Limits Extension +===================================== + +API +---- + +* Enumerations + + + * :ref:`ze-relaxed-allocation-limits-exp-version-t` + * :ref:`ze-relaxed-allocation-limits-exp-flags-t` + + +* Structures + + + * :ref:`ze-relaxed-allocation-limits-exp-desc-t` diff --git a/level-zero/1.10/_sources/core/EXT_Exp_SchedulingHints.rst b/level-zero/1.10/_sources/core/EXT_Exp_SchedulingHints.rst new file mode 100644 index 0000000..3a10f35 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_SchedulingHints.rst @@ -0,0 +1,31 @@ + +:orphan: + +.. _ZE_experimental_scheduling_hints: + +=================================== + Kernel Scheduling Hints Extension +=================================== + +API +---- + +* Functions + + + * :ref:`zeKernelSchedulingHintExp` + + +* Enumerations + + + * :ref:`ze-scheduling-hints-exp-version-t` + * :ref:`ze-scheduling-hint-exp-flags-t` + + +* Structures + + + * :ref:`ze-scheduling-hint-exp-properties-t` + * :ref:`ze-scheduling-hint-exp-desc-t` + diff --git a/level-zero/1.10/_sources/core/EXT_Exp_SubAllocationProperties.rst b/level-zero/1.10/_sources/core/EXT_Exp_SubAllocationProperties.rst new file mode 100644 index 0000000..fa48f8c --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Exp_SubAllocationProperties.rst @@ -0,0 +1,63 @@ + +:orphan: + +.. _ZE_experimental_sub_allocations: + +===================================== + Sub-Allocation Properties Extension +===================================== + +API +---- + +* Enumerations + + + * :ref:`ze-sub-allocations-exp-version-t` + + +* Structures + + + * :ref:`ze-memory-sub-allocations-exp-properties-t` + +Sub-Allocation Properties +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Driver implementations may choose to create a device allocation as a series of sub-allocations. For instance, +an allocation created against a parent device may be allocated internally as set of N sub-allocations, with +N being the number of sub-devices associated with the parent device. + +The sub-allocation properties extension may be used to get the properties, i.e. base address and size, for +each of those sub-allocations. The following pseudo-code demonstrates a basic use-case of this extension: + +.. parsed-literal:: + + :ref:`zeMemAllocDevice`\(context, &desc, size, alignment, device, &ptr); + + :ref:`ze-memory-sub-allocations-exp-properties-t` subAllocationDesc {}; + uitn32_t numberOfSuballocations = 0; + subAllocationDesc.stype = :ref:`ZE_STRUCTURE_TYPE_MEMORY_SUB_ALLOCATIONS_EXP_PROPERTIES `\; + subAllocationDesc.pCount = &numberOfSuballocations; + + :ref:`ze-memory-allocation-properties-t` memAllocProperties {}; + memAllocProperties.stype = :ref:`ZE_STRUCTURE_TYPE_MEMORY_ALLOCATION_PROPERTIES `\; + memAllocProperties.pNext = &subAllocationDesc; + + // Get number of sub-allocations + :ref:`zeMemGetAllocProperties`\(context, ptr, &memAllocProperties, nullptr); + + // if more than 1 sub-allocation, then allocation has been split + if (numberOfSuballocations > 1) { + std::vector<:ref:`ze-sub-allocation-t`\> subAllocationMemAllocProperties(numberOfSuballocations); + subAllocationDesc.pSubAllocations = subAllocationMemAllocProperties.data(); + + :ref:`zeMemGetAllocProperties`\(context, ptr, &memAllocProperties, nullptr); + + // retrieve the properties of each sub-allocation + for (auto &subAllocationProperty : subAllocationMemAllocProperties) { + void * base = subAllocationProperty.base; + size_t size = subAllocationProperty.size; + } + } + ... \ No newline at end of file diff --git a/level-zero/1.10/_sources/core/EXT_FloatAtomics.rst b/level-zero/1.10/_sources/core/EXT_FloatAtomics.rst new file mode 100644 index 0000000..258fdec --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_FloatAtomics.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZE_extension_float_atomics: + +========================= + Float Atomics Extension +========================= + +API +---- + +* Enumerations + + + * :ref:`ze-float-atomics-ext-version-t` + * :ref:`ze-device-fp-atomic-ext-flags-t` + + +* Structures + + + * :ref:`ze-float-atomic-ext-properties-t` diff --git a/level-zero/1.10/_sources/core/EXT_ImageCopy.rst b/level-zero/1.10/_sources/core/EXT_ImageCopy.rst new file mode 100644 index 0000000..99d37db --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_ImageCopy.rst @@ -0,0 +1,66 @@ + +:orphan: + +.. _ZE_extension_image_copy: + +====================================== + Image Copy Extension +====================================== + +API +---- + +* Functions + + + * :ref:`zeCommandListAppendImageCopyToMemoryExt` + * :ref:`zeCommandListAppendImageCopyFromMemoryExt` + + +* Enumerations + + + * :ref:`ze-image-copy-ext-version-t` + +Image Copy +~~~~~~~~~~ + +Sometimes it is desired to copy the contents of an image object to a buffer object, i.e., linear un-formatted memory, e.g., for use in a different library. The :ref:`zeCommandListAppendImageCopyToMemory` API call can be used to for this purpose if no padding is desired in the buffer being written into. The :ref:`zeCommandListAppendImageCopyToMemoryExt` call can be used to copy pixel values from an image object into a destination buffer with padding. Padding can be specified in both row pitch as well as slice pitch for 3D images/2D image arrays. The slice pitch must be set to 0 when performing this operation with 2D images. + +The following psuedo-code demonstrates a sequence for copying a 32x32 region out of an image object to a buffer with row pitch set to 64: + +.. parsed-literal:: + + ... + // Create image region descriptor + :ref:`ze-image-region-t` srcReg = { + 0, // originX + 0, // originY + 0, // originZ + 32, // width + 32, // height + 0 // depth + }; + + + :ref:`ze-result-t` result = :ref:`zeCommandListAppendImageCopyToMemoryExt`\(hCmdList, pDstBuffer, hSrcImage, &srcRegion, 64, 0, nullptr, 0, nullptr); + +Similarly, sometimes it is desired to copy the contents of a buffer object, i.e., linear un-formatted memory, to an image object, e.g., if the contents of the image are being imported from a different library. The :ref:`zeCommandListAppendImageCopyFromMemory` API call can be used to for this purpose if no padding is present in the buffer being read from. The :ref:`zeCommandListAppendImageCopyFromMemoryExt` call can be used to copy pixel values from the source buffer with padding into an image object. Padding can be specified in both row pitch as well as slice pitch for 3D images/2D image arrays. The slice pitch must be set to 0 when performing this operation with 2D images. + +The following psuedo-code demonstrates a sequence for copying a 32x32 region from a buffer with row pitch equal to 64 into an image object with row pitch: + +.. parsed-literal:: + + ... + // Create image region descriptor + :ref:`ze-image-region-t` srcReg = { + 0, // originX + 0, // originY + 0, // originZ + 32, // width + 32, // height + 0 // depth + }; + + + :ref:`ze-result-t` result = :ref:`zeCommandListAppendImageCopyFromMemoryExt`\(hCmdList, hDstImage, pSrcBuffer, &srcRegion, 64, 0, nullptr, 0, nullptr); diff --git a/level-zero/1.10/_sources/core/EXT_ImageQueryAllocProperties.rst b/level-zero/1.10/_sources/core/EXT_ImageQueryAllocProperties.rst new file mode 100644 index 0000000..054deb5 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_ImageQueryAllocProperties.rst @@ -0,0 +1,24 @@ + +:orphan: + +.. _ZE_extension_image_query_alloc_properties: + +=============================================== + Querying Image Allocation Properties Extension +=============================================== + +API +---- + +* Functions + + * :ref:`zeImageGetAllocPropertiesExt` + +* Enumerations + + * :ref:`ze-image-query-alloc-properties-ext-version-t` + +* Structures + + * :ref:`ze-image-allocation-ext-properties-t` + diff --git a/level-zero/1.10/_sources/core/EXT_ImageView.rst b/level-zero/1.10/_sources/core/EXT_ImageView.rst new file mode 100644 index 0000000..6eb83ea --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_ImageView.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZE_extension_image_view: + +========================= + Image View Extension +========================= + +API +---- + +* Functions + + + * :ref:`zeImageViewCreateExt` + + +* Enumerations + + + * :ref:`ze-image-view-ext-version-t` + diff --git a/level-zero/1.10/_sources/core/EXT_ImageViewPlanar.rst b/level-zero/1.10/_sources/core/EXT_ImageViewPlanar.rst new file mode 100644 index 0000000..bb62300 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_ImageViewPlanar.rst @@ -0,0 +1,24 @@ + +:orphan: + +.. _ZE_extension_image_view_planar: + +============================= + Image View Planar Extension +============================= + +API +---- + +* Enumerations + + + * :ref:`ze-image-view-planar-ext-version-t` + + +* Structures + + + * :ref:`ze-image-view-planar-ext-desc-t` + + diff --git a/level-zero/1.10/_sources/core/EXT_KernelMaxGroupSizeProperties.rst b/level-zero/1.10/_sources/core/EXT_KernelMaxGroupSizeProperties.rst new file mode 100644 index 0000000..86ac104 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_KernelMaxGroupSizeProperties.rst @@ -0,0 +1,24 @@ + +:orphan: + +.. _ZE_extension_kernel_max_group_size_properties: + +============================================ + Kernel Max Group Size Properties Extension +============================================ + +API +---- + +* Enumerations + + + * :ref:`ze-kernel-max-group-size-properties-ext-version-t` + + +* Structures + + + * :ref:`ze-kernel-max-group-size-properties-ext-t` + + diff --git a/level-zero/1.10/_sources/core/EXT_LinkOnceODR.rst b/level-zero/1.10/_sources/core/EXT_LinkOnceODR.rst new file mode 100644 index 0000000..090d335 --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_LinkOnceODR.rst @@ -0,0 +1,16 @@ + +:orphan: + +.. _ZE_extension_linkonce_odr: + +============================= + Link Once ODR Extension +============================= + +API +---- + +* Enumerations + + + * :ref:`ze-linkonce-odr-ext-version-t` diff --git a/level-zero/1.10/_sources/core/EXT_LinkageInspection.rst b/level-zero/1.10/_sources/core/EXT_LinkageInspection.rst new file mode 100644 index 0000000..28a10ad --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_LinkageInspection.rst @@ -0,0 +1,63 @@ + +:orphan: + +.. _ZE_extension_linkage_inspection: + +====================================== + Linkage Inspection Extension +====================================== + +API +---- + +* Functions + + + * :ref:`zeModuleInspectLinkageExt` + + +* Enumerations + + + * :ref:`ze-linkage-inspection-ext-version-t` + * :ref:`ze-linkage-inspection-ext-flags-t` + + +* Structures + + + * :ref:`ze-linkage-inspection-ext-desc-t` + +Linkage Inspection +~~~~~~~~~~~~~~~~~~ + +Modules support SPIR-V linkage, i.e., modules can import and export global variables and function definitions to/from other modules. This extension provides an API to inspect the linkage properties & requirements of a collection of modules. + +Modules may require global variables & functions to be imported before all dependencies are satisfied. Modules may also export global variables & functions that can be imported by dependent modules. Additionally, a set of modules may have un-satisfiable import dependencies, i.e., import dependencies that are required by one or modules in the set that are not provided as exports by any other module within the set. If the set of modules is to be dynamically linked using :ref:`zeModuleDynamicLink`\, all un-resolvable import dependencies must be eliminated from the set by adding modules to the set that define the missing import dependencies. + +The ze_module_build_log_handle_t log object returned by the call to :ref:`zeModuleInspectLinkageExt` will contain separate lists of the imports, un-resolvable imports, & exports requested via the appropriate combination of :ref:`ze-linkage-inspection-ext-flags-t` flags. + +The following psuedo-code demonstrates a sequence for inspecting the import dependencies, un-resolvable import dependencies, and exports of a set of modules: + +.. parsed-literal:: + + ... + // Create a linkage inspection descriptor + :ref:`ze-linkage-inspection-ext-desc-t` inspectDesc = {:ref:`ZE_STRUCTURE_TYPE_LINKAGE_INSPECTION_EXT_DESC `\, nullptr, + :ref:`ZE_LINKAGE_INSPECTION_EXT_FLAG_IMPORTS ` | :ref:`ZE_LINKAGE_INSPECTION_EXT_FLAG_UNRESOLVABLE_IMPORTS ` | :ref:`ZE_LINKAGE_INSPECTION_EXT_FLAG_EXPORTS ` + }; + ze_module_build_log_handle_t linkLog; + :ref:`ze-result-t` result = :ref:`zeModuleInspectLinkageExt`\(&inspectDesc, numModules, &hModules, &linkLog); + + size_t szLog = 0; + :ref:`zeModuleBuildLogGetString`\(linkLog, &szLog, nullptr); + + char_t* strLog = allocate(szLog); + :ref:`zeModuleBuildLogGetString`\(linkLog, &szLog, strLog); + + // Save log to disk. + ... + + free(strLog); + + :ref:`zeModuleBuildLogDestroy`\(linkLog); diff --git a/level-zero/1.10/_sources/core/EXT_MemoryCompressionHints.rst b/level-zero/1.10/_sources/core/EXT_MemoryCompressionHints.rst new file mode 100644 index 0000000..19ccdca --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_MemoryCompressionHints.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZE_extension_memory_compression_hints: + +===================================== + Memory Compression Hints Extension +===================================== + +API +---- + +* Enumerations + + + * :ref:`ze-memory-compression-hints-ext-version-t` + * :ref:`ze-memory-compression-hints-ext-flags-t` + + +* Structures + + + * :ref:`ze-memory-compression-hints-ext-desc-t` diff --git a/level-zero/1.10/_sources/core/EXT_MemoryFreePolicies.rst b/level-zero/1.10/_sources/core/EXT_MemoryFreePolicies.rst new file mode 100644 index 0000000..072b5da --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_MemoryFreePolicies.rst @@ -0,0 +1,26 @@ + +:orphan: + +.. _ZE_extension_memory_free_policies: + +================================= + Memory Free Policies Extension +================================= + +API +---- + +* Functions + + * :ref:`zeMemFreeExt` + +* Enumerations + + * :ref:`ze-memory-free-policies-ext-version-t` + * :ref:`ze-driver-memory-free-policy-ext-flags-t` + +* Structures + + * :ref:`ze-driver-memory-free-ext-properties-t` + * :ref:`ze-memory-free-ext-desc-t` + diff --git a/level-zero/1.10/_sources/core/EXT_MemoryProperties.rst b/level-zero/1.10/_sources/core/EXT_MemoryProperties.rst new file mode 100644 index 0000000..9b60aad --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_MemoryProperties.rst @@ -0,0 +1,52 @@ + +:orphan: + +.. _ZE_extension_device_memory_properties: + +====================================== + Device Memory Properties Extension +====================================== + +API +---- + +* Enumerations + + + * :ref:`ze-device-memory-properties-ext-version-t` + * :ref:`ze-device-memory-ext-type-t` + + +* Structures + + + * :ref:`ze-device-memory-ext-properties-t` + +Extended Device Memory Properties +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Users may wish to build a cost model for computation on accelerators exposed through 'oneAPI' Level-Zero. Such cost models require detailed information about the properties of the accelerator such as memory bandwidth. This extension provides extended information about the memories exposed as part of a device. The extension introduces the :ref:`ze-device-memory-ext-properties-t` struct which can be passed to :ref:`zeDeviceGetMemoryProperties` via the `pNext` member of :ref:`ze-device-memory-properties-t`\. + +The following psuedo-code demonstrates a sequence for obtaining extended information about the memory properties of a memory module exposed as part of a device: + +.. parsed-literal:: + + ... + // Discover memories on device + uint32_t memCount = 0; + :ref:`zeDeviceGetMemoryProperties`\(hDevice, &memCount, nullptr); + + // Allocate properties structs + :ref:`ze-device-memory-properties-t`\* pMemProps = allocate(memCount*sizeof(:ref:`ze-device-memory-properties-t`\)); + :ref:`ze-device-memory-ext-properties-t`\* pExtMemProps = allocate(memCount*sizeof(:ref:`ze-device-memory-ext-properties-t`\)); + + // Make pNext in memProps point at corresponding extMemProps + for (uint32_t i = 0; i < memCount; ++i) { + pMemProps[i].stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_MEMORY_PROPERTIES `\; + pMemProps[i].pNext = &pExtMemProps[i]; + pExtMemProps[i].stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_MEMORY_EXT_PROPERTIES `\; + pExtMemProps[i].pNext = nullptr; + } + + // Obtain memory & extended memory properties + :ref:`zeDeviceGetMemoryProperties`\(hDevice, &memCount, pMemProps); diff --git a/level-zero/1.10/_sources/core/EXT_PCIProperties.rst b/level-zero/1.10/_sources/core/EXT_PCIProperties.rst new file mode 100644 index 0000000..932227f --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_PCIProperties.rst @@ -0,0 +1,67 @@ + +:orphan: + +.. _ZE_extension_pci_properties: + +====================================== + PCI Properties Extension +====================================== + +API +---- + +* Functions + + + * :ref:`zeDevicePciGetPropertiesExt` + + +* Enumerations + + + * :ref:`ze-pci-properties-ext-version-t` + + +* Structures + + + * :ref:`ze-pci-ext-properties-t` + * :ref:`ze-pci-address-ext-t` + * :ref:`ze-pci-speed-ext-t` + +PCI Properties +~~~~~~~~~~~~~~~~~~ + +Accelerator devices connected to the host CPU over a PCI root complex can be located in the PCI switch fabric using a bus:device:function (BDF) address. This is useful, e.g., to determine which PCI devices are located *close* to each other in the PCI switch fabric. The :ref:`ze-pci-address-ext-t` struct returned via :ref:`ze-pci-ext-properties-t` by the call to :ref:`zeDevicePciGetPropertiesExt` contains the BDF address of the device. + +The choice of the optimal algorithm to use for a given computation may be dependent on the access speed, i.e., bandwidth at which data can be transferred over PCI to the device. The :ref:`ze-pci-speed-ext-t` struct returned via :ref:`ze-pci-ext-properties-t` by the call to :ref:`zeDevicePciGetPropertiesExt` contains the theoretical PCI BW for accessing the device. + +The following psuedo-code demonstrates a sequence for obtaining the BDF address & PCI BW of a device: + +.. parsed-literal:: + + ... + // Create a PCI address struct + :ref:`ze-pci-address-ext-t` devAddr = { + 0, // domain + 0, // bus + 0, // device + 0 // function + }; + // Create a PCI speed struct + :ref:`ze-pci-speed-ext-t` devSpeed = { + 0, // gen + 0, // width + 0 // maxBandwidth + }; + + // Create a PCI Properties struct + :ref:`ze-pci-ext-properties-t` devPCIProps = { + :ref:`ZE_STRUCTURE_TYPE_PCI_EXT_PROPERTIES `\, + nullptr, + devAddr, + devSpeed + }; + + // Get the PCI Address & Speed + :ref:`ze-result-t` result = :ref:`zeDevicePciGetPropertiesExt`\(dev, &devPCIProps); diff --git a/level-zero/1.10/_sources/core/EXT_Raytracing.rst b/level-zero/1.10/_sources/core/EXT_Raytracing.rst new file mode 100644 index 0000000..6d5d42d --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Raytracing.rst @@ -0,0 +1,26 @@ + +:orphan: + +.. _ZE_extension_raytracing: + +========================= + Raytracing Extension +========================= + +API +---- + +* Enumerations + + + * :ref:`ze-raytracing-ext-version-t` + * :ref:`ze-device-raytracing-ext-flags-t` + * :ref:`ze-raytracing-mem-alloc-ext-flags-t` + + +* Structures + + + * :ref:`ze-device-raytracing-ext-properties-t` + * :ref:`ze-raytracing-mem-alloc-ext-desc-t` + diff --git a/level-zero/1.10/_sources/core/EXT_SRGB.rst b/level-zero/1.10/_sources/core/EXT_SRGB.rst new file mode 100644 index 0000000..baa8fea --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_SRGB.rst @@ -0,0 +1,50 @@ + +:orphan: + +.. _ZE_extension_srgb: + +====================================== + sRGB Extension +====================================== + +API +---- + +* Structures + + * :ref:`ze-srgb-ext-desc-t` + +sRGB +~~~~ + +Device capabilities may include native support for sRGB image formats. sRGB images may benefit from hardware acceleration on devices that include native support for sRGB. The following psuedo-code demonstrates a sequence for creating an sRGB image: + +.. parsed-literal:: + + // Specify single component FLOAT32 format + :ref:`ze-image-format-t` format = { + :ref:`ZE_IMAGE_FORMAT_LAYOUT_32 `\, :ref:`ZE_IMAGE_FORMAT_TYPE_FLOAT `\, + :ref:`ZE_IMAGE_FORMAT_SWIZZLE_R `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_0 `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_0 `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_1 ` + }; + + // Specify sRGB image format + :ref:`ze-srgb-ext-desc-t` isSRGB = { + :ref:`ZE_STRUCTURE_TYPE_SRGB_EXT_DESC `\, + nullptr, + true + }; + + :ref:`ze-image-desc-t` imageDesc = { + :ref:`ZE_STRUCTURE_TYPE_IMAGE_DESC `\, + &isSRGB, + 0, // read-only + :ref:`ZE_IMAGE_TYPE_2D `\, + format, + 128, 128, 0, 0, 0 + }; + ze_image_handle_t hImage; + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hImage); + + // upload contents from host pointer + :ref:`zeCommandListAppendImageCopyFromMemory`\(hCommandList, hImage, nullptr, pImageData, nullptr, 0, nullptr); + ... diff --git a/level-zero/1.10/_sources/core/EXT_Subgroups.rst b/level-zero/1.10/_sources/core/EXT_Subgroups.rst new file mode 100644 index 0000000..b1b912b --- /dev/null +++ b/level-zero/1.10/_sources/core/EXT_Subgroups.rst @@ -0,0 +1,17 @@ + +:orphan: + +.. _ZE_extension_subgroups: + +========================= + Subgroups Extension +========================= + +API +---- + +* Enumerations + + + * :ref:`ze-subgroup-ext-version-t` + diff --git a/level-zero/1.10/_sources/core/INTRO.rst b/level-zero/1.10/_sources/core/INTRO.rst new file mode 100644 index 0000000..c71861c --- /dev/null +++ b/level-zero/1.10/_sources/core/INTRO.rst @@ -0,0 +1,211 @@ + + +============== + Introduction +============== + +Objective +========= + +The objective of the 'oneAPI' Level-Zero Application Programming Interface (API) is to provide direct-to-metal interfaces to offload accelerator devices. +Its programming interface can be tailored to any device needs and can be adapted to support broader set of languages features +such as function pointers, virtual functions, unified memory, and I/O capabilities. + +.. image:: ../images/one_api_sw_stack.png + +Most applications should not require the additional control provided by the Level-Zero API. +The Level-Zero API is intended for providing explicit controls needed by higher-level runtime APIs and libraries. + +While initially influenced by other low-level APIs, such as OpenCL and Vulkan, the Level-Zero APIs are designed to evolve independently. +While initially influenced by GPU architecture, the Level-Zero APIs are designed to be supportable across different compute device architectures, such as FPGAs and other types of accelerator architectures. + +Core +---- + +The Level-Zero core APIs provide the lowest-level, fine-grain and most explicit control over: + + - Device Discovery and Partitioning + - Memory Allocation, Visibility and Caching + - Kernel Execution and Scheduling + - Peer-to-Peer Communication + - Inter-Process Sharing + +See the :ref:`core-programming-guide` for more details. + +Tools +----- + +The Level-Zero tool APIs provide low-level access to device capabilities in order to support both +direct application use and 3rd-party tools: + + - Metrics Discovery and Reporting + - Kernel Profiling, Instrumentation and Debug + +See the :ref:`tools-programming-guide` for more details. + +System Management +----------------- + +The Level-Zero Sysman APIs provide in-band access to the following features for each accelerator device: + + - Query the performance, power and health of accelerator resources + - Control the performance and power profile of accelerator resources + - Maintenance facilities such as performing hardware diagnostics, updating firmware or resetting the device + +By default, only administrator users have permissions to perform control operations on resources. +Most queries are available to any user with the exception of those that could be used for side-channel attacks. +The systems administrator can tighten/relax the default permissions. + +See the :ref:`sysman-programming-guide` for more details. + +Fundamentals +============ + +The following section provides fundamentals of the API design. +For more detailed information, refer to the programming guides and detailed specification pages. + +Header files can be found at: https://github.com/oneapi-src/level-zero + +Terminology +----------- + +This specification uses key words based on `RFC2119 `__ to indicate requirement level. +In particular, the following words are used to describe the actions of an implementation of this specification: + + - **May** - the word *may*, or the adjective *optional*, mean that conforming implementations are permitted to, but need not behave as described. + - **Should** - the word *should*, or the adjective *recommended*, mean that there could be reasons for an implementations to deviate from the behavior described, but that such deviation should be avoided. + - **Must** - the word *must*, or the term *required* or *shall*, mean that the behavior described is an absolute requirement of the specification. + +Naming Convention +----------------- + +The following naming conventions must be followed: + + - All functions must be prefixed with `ze` + - All functions must use camel case `zeObjectAction` convention + - All macros must use all caps `ZE_NAME` convention + - All structures, enumerations and other types must follow `ze_name_t` snake case convention + - All structure members and function parameters must use camel case convention + - All enumerator values must use all caps `ZE_ENUM_ETOR_NAME` convention + - All handle types must end with `handle_t` + - All descriptor structures must end with `desc_t` + - All property structures must end with `properties_t` + - All flag enumerations must end with `flags_t` + +The following coding conventions must be followed: + + - All descriptor structures must be derived from `:ref:`ze-base-desc-t`\` + - All property structures must be derived from `:ref:`ze-base-properties-t`\` + - All function input parameters must precede output parameters + - All functions must return :ref:`ze-result-t` + +Versioning +---------- + +There are multiple versions that should be used by the application to determine compatibility: + +**API Version** - this is the version of the API supported by the device. + + - This is typically used to determine if the device supports the minimum set of APIs required by the application + - There is a single 32-bit value that represents an entire collection of APIs + - The value is encoded with 16-bit Major and 16-bit Minor parts + - Major version increment consist of modified functionality, including deprecate features, and may break backwards-compatibility + - Minor version increment consist of additional functionality, including promoted extensions, and must retain backwards-compatibility + - The value is determined from calling :ref:`zeDriverGetApiVersion` + - The value returned will be the minimum of the :ref:`ze-api-version-t` supported by the device and known by the driver + +**Driver Version** - this is the version of the driver installed in the system. + + - This is typically used to mitigate driver implementation issues for a feature + - The value encoding is vendor-specific but must be monotonically increasing + - The value is determined from calling :ref:`zeDriverGetProperties` + +Error Handling +-------------- + +The following design philosophies are adopted in order to reduce Host-side overhead: + + - By default, the driver implementation may not perform parameter validation of any kind + + + This should be handled by validation layer(s) + + - By default, neither the driver nor device provide may provide any protection against the following: + + + Invalid API programming + + Invalid function arguments + + Function infinite loops or recursions + + Synchronization primitive deadlocks + + Non-visible memory access by the Host or device + + Non-resident memory access by the device + + - The driver implementation is **not** required to perform API validation of any kind + + + The driver should ensure well-behaved applications are not burdened with the overhead needed for non-behaving applications + + Unless otherwise specified, the driver behavior is undefined when APIs are improperly used + + For debug purposes, API validation can be enabled via the loader's validation layer(s) + + - All API functions return :ref:`ze-result-t` + + + This enumeration contains error codes for the Level-Zero APIs and validation layers + + This allows for a consistent pattern on the application side for catching errors; especially when validation layer(s) are enabled + +Multithreading and Concurrency +------------------------------ + +The following design philosophies are adopted in order to maximize Host thread concurrency: + + - APIs are free-threaded when the driver's object handle is different. + + + the driver should avoid thread-locks for these API calls + + - APIs are not thread-safe when the driver's object handle is the same, except when explicitly noted. + + + the application must ensure multiple threads do not enter an API when the handle is the same + + - APIs are not thread-safe with other APIs that use the same driver's object handle + + + the application must ensure multiple threads do not enter these APIs when the handle is the same + + - APIs do not support reference counting of handles. + + + the application must track ownership and explicitly free handles and memory + + the application must ensure that all driver objects and memory are no longer in-use by the device before freeing; otherwise the Host or device may fault + + no implicit garbage collection is supported by the driver + +In general, the API is designed to be free-threaded rather than thread-safe. +This provides multithreaded applications with complete control over both threading and locks. +This also eliminates unnecessary driver overhead for single threaded applications and/or very low latency usages. + +The exception to this rule is that all memory allocation APIs are thread-safe since they allocate from a single global memory pool. +If an application needs lock-free memory allocation, then it could allocate a per-thread pool and implement its own sub-allocator. + +An application is in direct control over all Host thread creation and usage. +The driver should never implicitly create threads. +If there is a need for an implementation to use a background thread, then that thread should be created and provided by the application. + +Each API function must document details on the multithreading requirements for that call. + +The primary usage-model enabled by these rules is: + + - multiple, simultaneous threads may operate on independent driver objects with no implicit thread-locks + - driver object handles may be passed between and used by multiple threads with no implicit thread-locks + +Application Binary Interface +---------------------------- + +The Level-Zero C APIs are provided to applications by a shared import library. +C/C++ applications must include "ze_api.h" and link with "ze_api.lib". +The Level-Zero C Device-Driver Interfaces (DDIs) are provided to the import library by the shared loader and driver libraries. +C/C++ loaders and drivers must include "ze_ddi.h". + +The implementation of these libraries must use the default Application Binary Interface (ABI) of the standard C compiler for the platform. +An ABI in this context means the size, alignment, and layout of C data types; the procedure calling convention; +and the naming convention for shared library symbols corresponding to C functions. The ABI is backward-compatible +for API minor version increments such as adding new functions, appending new enumerators, and using reserved +bits in bitfields. ABI is not guaranteed to be backward-compatible for API major version increments such as +modifying existing function signatures and structures, removing functions and structures, etc. + +On platforms where Level-Zero is provided as a shared library, library symbols beginning with "ze", "zet" or "zes" +and followed by a digit or uppercase letter are reserved for use by the implementation. +Applications which use Level-Zero must not provide definitions of these symbols. +This allows the Level-Zero shared library to be updated with additional symbols for new API versions or extensions without causing symbol conflicts with existing applications. \ No newline at end of file diff --git a/level-zero/1.10/_sources/core/PROG.rst b/level-zero/1.10/_sources/core/PROG.rst new file mode 100644 index 0000000..065169a --- /dev/null +++ b/level-zero/1.10/_sources/core/PROG.rst @@ -0,0 +1,2369 @@ + + + + + +.. _core-programming-guide: + +======================== + Core Programming Guide +======================== + +Drivers and Devices +=================== + +The API architecture exposes both physical and logical abstraction of the underlying devices capabilities. +The device, sub-device and memory are exposed at physical level while command queues, events and +synchronization methods are defined as logical entities. +All logical entities will be bound to device level physical capabilities. + +Device discovery APIs enumerate the accelerators functional features. +These APIs provide interface to query information like compute unit count within the device or sub device, +available memory and affinity to the compute, user managed cache size and work submission command queues. + +Drivers +------- + +A driver object represents a collection of physical devices in the system accessed by the same Level-Zero driver. + +- The application may query the number of Level-Zero drivers installed on the system, and their respective handles, using :ref:`zeDriverGet`\. +- More than one driver may be available in the system. For example, one driver may support two GPUs from one vendor, another driver supports a GPU from a different vendor, and finally a different driver may support an FPGA. +- Driver objects are read-only, global constructs. i.e. Multiple calls to :ref:`zeDriverGet` will return identical driver handles. +- A driver handle is primarily used during device discovery and during creation and management of contexts. + +Device +------ + +A device object represents a physical device in the system that supports Level-Zero. + +- The application may query the number devices supported by a driver, and their respective handles, using :ref:`zeDeviceGet`\. +- Device objects are read-only, global constructs. i.e. Multiple calls to :ref:`zeDeviceGet` will return identical device handles. +- A device handle is primarily used during creation and management of resources that are specific to a device. +- The application is responsible for sharing memory and explicit submission and synchronization across multiple devices. +- Device may expose sub-devices that allow finer-grained control of physical or logical partitions of a device. + +The following diagram illustrates the relationship between the driver, device and other objects described in this document. + +.. image:: ../images/core_device.png + +Level Zero device model hierarchy is composed of **Root Devices** and **Sub-Devices**: A root-device may contain two or more sub-devices and a sub-device shall belong to a single root-device. +A root-device may not contain a single sub-device, as that would be the same root-device. A root device may also be a device with no sub-devices. + +Sub-devices belonging to a root-device may be queried using :ref:`zeDeviceGetSubDevices`\. The root-device of a sub-device may be queried using :ref:`zeDeviceGetRootDevice`\. +The definition of what a root-device and a sub-device is for a specific device is implementation specific. + +Initialization and Discovery +---------------------------- + +The Level-Zero API must be initialized by calling :ref:`zeInit` before calling any other API function. +This function will load all Level-Zero driver(s) in the system into memory for the current process, for use by all Host threads. +Simultaneous calls to :ref:`zeInit` are thread-safe and only one instance of each driver will be loaded. + +The following pseudo-code demonstrates a basic initialization and device discovery sequence: + +.. parsed-literal:: + + // Initialize the driver + :ref:`zeInit`\(0); + + // Discover all the driver instances + uint32_t driverCount = 0; + :ref:`zeDriverGet`\(&driverCount, nullptr); + + ze_driver_handle_t* allDrivers = allocate(driverCount * sizeof(ze_driver_handle_t)); + :ref:`zeDriverGet`\(&driverCount, allDrivers); + + // Find a driver instance with a GPU device + ze_driver_handle_t hDriver = nullptr; + ze_device_handle_t hDevice = nullptr; + for(i = 0; i < driverCount; ++i) { + uint32_t deviceCount = 0; + :ref:`zeDeviceGet`\(allDrivers[i], &deviceCount, nullptr); + + ze_device_handle_t* allDevices = allocate(deviceCount * sizeof(ze_device_handle_t)); + :ref:`zeDeviceGet`\(allDrivers[i], &deviceCount, allDevices); + + for(d = 0; d < deviceCount; ++d) { + :ref:`ze-device-properties-t` device_properties {}; + device_properties.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES `\; + :ref:`zeDeviceGetProperties`\(allDevices[d], &device_properties); + + if(:ref:`ZE_DEVICE_TYPE_GPU ` == device_properties.type) { + hDriver = allDrivers[i]; + hDevice = allDevices[d]; + break; + } + } + + free(allDevices); + if(nullptr != hDriver) { + break; + } + } + + free(allDrivers); + if(nullptr == hDevice) + return; // no GPU devices found + + ... + +Contexts +======== + +A context is a logical object used by the driver for managing all memory, command queues/lists, modules, synchronization objects, etc. + +- A context handle is primarily used during creation and management of resources that may be used by multiple devices. +- For example, memory is not implicitly shared across all devices supported by a driver. However, it is available to be explicitly shared. + +The following pseudo-code demonstrates a basic context creation: + +.. parsed-literal:: + + // Create context + :ref:`ze-context-desc-t` ctxtDesc = { + :ref:`ZE_STRUCTURE_TYPE_CONTEXT_DESC `\, + nullptr, + 0 + }; + :ref:`zeContextCreate`\(hDriver, &ctxtDesc, &hContext); + + +An application may optionally create multiple contexts using :ref:`zeContextCreate`\. + +- The primary usage-model for multiple contexts is isolation of memory and objects for multiple libraries within the same process. +- The same context may be used simultaneously on multiple Host threads. + +The following pseudo-code demonstrates a basic context creation and activation sequence: + +.. parsed-literal:: + + // Create context(s) + :ref:`zeContextCreate`\(hDriver, &ctxtDesc, &hContextA); + :ref:`zeContextCreate`\(hDriver, &ctxtDesc, &hContextB); + + :ref:`zeMemAllocHost`\(hContextA, &desc, 80, 0, &ptrA); + :ref:`zeMemAllocHost`\(hContextB, &desc, 88, 0, &ptrB); + + memcpy(ptrA, ptrB, 0xe); // ok + :ref:`zeMemGetAllocProperties`\(hContextA, ptrB, &props, &hDevice); // illegal: Context A has no knowledge of ptrB + + +If a device was hung or reset, then the context is no longer valid and all APIs will return :ref:`ZE_RESULT_ERROR_DEVICE_LOST ` when any object associated with that context is used. +All pointers to memory allocations and handles to objects (including other contexts) created on the context will be invalid and should no longer be used. +An application can use :ref:`zeContextGetStatus` at any time to check the status of a context. + +In order to recover, the context must be destroyed using :ref:`zeContextDestroy`\. +After the device is reset, the application can create a new context and continue operation. +An application must call :ref:`zeDeviceGetStatus` to confirm the device has been reset and update the OS handle attached to the device handle. +Otherwise, even after the device has been reset, the call to :ref:`zeContextCreate` will fail. + +Memory and Images +================= + +Memory is visible to the upper-level software stack as unified memory with a single virtual address space +covering both the Host and a specific device. + +For GPUs, the API exposes two levels of the device memory hierarchy: + +1. Local Device Memory: can be managed at the device and/or sub device level. +2. Device Cache(s): + + + Last Level Cache (L3) can be controlled through memory allocation APIs. + + Low Level Cache (L1) can be controlled through program language intrinsics. + +The API allows allocation of buffers and images at device and sub device granularity with full cacheablity hints. + +- Buffers are transparent memory accessed through virtual address pointers +- Images are opaque objects accessed through handles + +The memory APIs provide allocation methods to allocate either device, host or shared memory. +The APIs enable both implicit and explicit management of the resources by the application or runtimes. +The interface also provides query capabilities for all memory objects. + +There are two types of allocations: + +1. :ref:`LinearMemory` - linear, unformatted allocations for direct access from both the host and device. +2. :ref:`Images` - non-linear, formatted allocations for direct access from the device. + +.. _LinearMemory: + +Memory +------ + +Linear, unformatted memory allocations are represented as pointers in the host application. +A pointer on the Host has the same size as a pointer on the device. + +Types +~~~~~ + +Three types of allocations are supported. +The type of allocation describes the *ownership* of the allocation: + +1. **Host** allocations are owned by the host and are intended to be allocated out of system memory. + + + Host allocations are accessible by the host and one or more devices. + + The same pointer to a host allocation may be used on the host and all supported devices; they have *address equivalence*. + + Host allocations are not expected to migrate between system memory and device local memory. + + Host allocations trade off wide accessibility and transfer benefits for potentially higher per-access costs, such as over PCI express. + +2. **Device** allocations are owned by a specific device and are intended to be allocated out of device local memory, if present. + + + Device allocations generally trade off access limitations for higher performance. + + With very few exceptions, device allocations may only be accessed by the specific device that they are allocated on, + or copied to another device or Host allocation. + + The same pointer to a device allocation may be used on any supported device. + +3. **Shared** allocations share ownership and are intended to migrate between the host and one or more devices. + + + Shared allocations are accessible by at least the host and an associated device. + + Shared allocations may be accessed by other devices in some cases. + + Shared allocations trade off transfer costs for per-access benefits. + + The same pointer to a shared allocation may be used on the host and all supported devices. + +A **Shared System** allocation is a sub-class of a **Shared** allocation, +where the memory is allocated by a *system allocator* (such as ``malloc`` or ``new``) rather than by an allocation API. +Shared system allocations have no associated device; they are inherently cross-device. +Like other shared allocations, shared system allocations are intended to migrate between the host and supported devices, +and the same pointer to a shared system allocation may be used on the host and all supported devices. + +In summary: + ++-------------------+---------------------------------------+-----------------+----------------------------+----------------+----------+ +| Name | Initial Location | Accessible By | | Migratable To | | ++===================+=======================================+=================+============================+================+==========+ +| **Host** | Host | Host | Yes | Host | N/A | +| | +-----------------+----------------------------+----------------+----------+ +| | | Any Device | Yes (perhaps over PCIe) | Device | No | ++-------------------+---------------------------------------+-----------------+----------------------------+----------------+----------+ +| **Device** | Specific Device | Host | No | Host | No | +| | +-----------------+----------------------------+----------------+----------+ +| | | Specific Device | Yes | Device | N/A | +| | +-----------------+----------------------------+----------------+----------+ +| | | Another Device | Optional (may require p2p) | Another Device | No | ++-------------------+---------------------------------------+-----------------+----------------------------+----------------+----------+ +| **Shared** | Host, Specific Device, or Unspecified | Host | Yes | Host | Yes | +| | +-----------------+----------------------------+----------------+----------+ +| | | Specific Device | Yes | Device | Yes | +| | +-----------------+----------------------------+----------------+----------+ +| | | Another Device | Optional (may require p2p) | Another Device | Optional | ++-------------------+---------------------------------------+-----------------+----------------------------+----------------+----------+ +| **Shared System** | Host | Host | Yes | Host | Yes | +| | +-----------------+----------------------------+----------------+----------+ +| | | Device | Yes | Device | Yes | ++-------------------+---------------------------------------+-----------------+----------------------------+----------------+----------+ + +At a minimum, drivers will assign unique physical pages for each device and shared memory allocation. +However, it is undefined behavior for an application to access memory outside of the allocation size requested. +The actual page size used for an allocation can be queried from :ref:`ze-memory-allocation-properties-t`\.pageSize using :ref:`zeMemGetAllocProperties`\. +Applications should implement usage-specific allocators from device memory pools (e.g., small and/or fixed-sized allocations, lock-free, etc.). + +Furthermore, drivers may *oversubscribe* some **shared** allocations. +When and how such oversubscription occurs, including which allocations are evicted when the working set changes, are considered implementation details. + +Access Capabilities +~~~~~~~~~~~~~~~~~~~ + +Devices may support different access capabilities for each type of allocation. Supported capabilities are: + +1. **Host Allocations**: Assume a buffer allocated on the host via :ref:`zeMemAllocHost` that is accessed from device hDevice: + + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_RW `\: Buffer can be accessed (read from as well as written to) from hDevice as well as from the host. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC `\: Buffer can be atomically accessed from hDevice. Atomic operations may include relaxed consistency read-modify-write atomics and atomic operations that enforce memory consistency for non-atomic operations. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT `\: Buffer can be accessed from hDevice concurrently with another device that also supports concurrent access as well as with the host itself. Concurrent access is at the granularity of the whole allocation. This capability makes no guarantees about coherency or memory consistency. Undefined behavior occurs if concurrent accesses are made to an allocation from devices that do not support concurrent access. Devices that support concurrent access but do not support concurrent atomic access must write to unique non-overlapping memory locations to avoid data races and hence undefined behavior. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC `\: Buffer can be atomically accessed from hDevice concurrently with another device that also supports concurrent atomic access as well as with the host itself. Concurrent atomic access is at the granularity of the whole allocation. Memory consistency can be enforced between the host & devices that support concurrent atomic access using atomic operations. Undefined behavior occurs if concurrent atomic accesses are made to an allocation from devices that do not support concurrent atomic access. + +2. **Device Allocations**: Assume a buffer allocated on device hDevice via :ref:`zeMemAllocDevice`\: + + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_RW `\: Buffer can be accessed (read from as well as written to) from hDevice. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC `\: Buffer can be atomically accessed from hDevice. Atomic operations may include relaxed consistency read-modify-write atomics and atomic operations that enforce memory consistency for non-atomic operations. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT `\: Buffer can be accessed from hDevice concurrently with another device that also supports concurrent access. By symmetry, the buffer could be located on either device and be accessed concurrently from both devices. Concurrent access is at the granularity of the whole allocation. This capability makes no guarantees about coherency or memory consistency. Undefined behavior occurs if concurrent accesses are made to an allocation from devices that do not support concurrent access. Devices that support concurrent access but do not support concurrent atomic access must write to unique non-overlapping memory locations to avoid data races and hence undefined behavior. A device can concurrently access a buffer on another device if both devices support concurrent access and both devices also support peer-to-peer access. If one device does not permit concurrent access, but peer-to-peer access is permitted, then the devices support peer-to-peer access but not concurrently to the same buffer. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC `\: Buffer can be atomically accessed from hDevice concurrently with another device that also supports concurrent atomic access. By symmetry, the buffer could be located on either device and be atomically accessed concurrently from both devices. Concurrent atomic access is at the granularity of the whole allocation. Memory consistency can be enforced between devices that support concurrent atomic access using atomic operations. Undefined behavior occurs if concurrent atomic accesses are made to an allocation from devices that do not support concurrent atomic access. A device can concurrently perform atomic access to a device buffer on another device if both devices support concurrent atomic access and both devices also support peer-to-peer atomic access. If one device does not permit concurrent atomic access, but peer-to-peer atomic access is permitted, then the devices support peer-to-peer atomic access but not concurrently to the same buffer. + +3. **Shared Single Device Allocations**: Assume a shared allocation across the host & device hDevice created via :ref:`zeMemAllocShared` + + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_RW `\: Buffer can be accessed (read from as well as written to) from hDevice as well as from the host. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC `\: Buffer can be atomically accessed from hDevice as well as from the host. Atomic operations may include relaxed consistency read-modify-write atomics and atomic operations that enforce memory consistency for non-atomic operations. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT `\: Buffer can be accessed from hDevice concurrently with the host. Concurrent access is at the granularity of the whole allocation. This capability makes no guarantees about coherency or memory consistency. Undefined behavior occurs if concurrent accesses are made to the allocation from the host and from hDevice if it does not support concurrent access. A devices that supports concurrent access but does not support concurrent atomic access must write to unique non-overlapping (with the host) memory locations to avoid data races and hence undefined behavior. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC `\: Buffer can be atomically accessed from hDevice concurrently with the host. Concurrent atomic access is at the granularity of the whole allocation. Memory consistency can be enforced between devices that support concurrent atomic access using atomic operations. Undefined behavior occurs if concurrent atomic accesses are made to the allocation from the host & hDevice if it does not support concurrent atomic access. + +4. **Shared Cross Device Allocations**: Assume a shared allocation across the host & the set of devices that support cross-device shared access capabilities created via :ref:`zeMemAllocShared` that is accessed from device hDevice: + + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_RW `\: Buffer can be accessed (read from as well as written to) from hDevice as well as from the host. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC `\: Buffer can be atomically accessed from hDevice as well as from the host. Atomic operations may include relaxed consistency read-modify-write atomics and atomic operations that enforce memory consistency for non-atomic operations. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT `\: Buffer can be accessed from hDevice concurrently with another device that also supports concurrent access and from the host. Concurrent access is at the granularity of the whole allocation. This capability makes no guarantees about coherency or memory consistency. Undefined behavior occurs if concurrent accesses are made to an allocation from devices that do not support concurrent access. Devices that support concurrent access but do not support concurrent atomic access must write to unique non-overlapping memory locations to avoid data races and hence undefined behavior. + + :ref:`ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC `\: Buffer can be atomically accessed from hDevice concurrently with another device that also supports concurrent atomic access and from the host. Concurrent atomic access is at the granularity of the whole allocation. Memory consistency can be enforced between devices that support concurrent atomic access using atomic operations. Undefined behavior occurs if concurrent atomic accesses are made to an allocation from devices that do not support concurrent atomic access. + +The required matrix of capabilities are: + ++----------------------------------+-----------+---------------+-------------------+--------------------------+ +| Allocation Type | RW Access | Atomic Access | Concurrent Access | Concurrent Atomic Access | ++==================================+===========+===============+===================+==========================+ +| **Host** | Required | Optional | Optional | Optional | ++----------------------------------+-----------+---------------+-------------------+--------------------------+ +| **Device** | Required | Optional | Optional | Optional | ++----------------------------------+-----------+---------------+-------------------+--------------------------+ +| **Shared** | Required | Optional | Optional | Optional | ++----------------------------------+-----------+---------------+-------------------+--------------------------+ +| **Shared** (Cross-Device) | Optional | Optional | Optional | Optional | ++----------------------------------+-----------+---------------+-------------------+--------------------------+ +| **Shared System** (Cross-Device) | Optional | Optional | Optional | Optional | ++----------------------------------+-----------+---------------+-------------------+--------------------------+ + +Cache Hints, Prefetch, and Memory Advice +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Cacheability hints may be provided via separate host and device allocation flags when memory is allocated. + +**Shared** allocations may be prefetched to a supporting device via the :ref:`zeCommandListAppendMemoryPrefetch` API. +Prefetching may allow memory transfers to be scheduled concurrently with other computations and may improve performance. + +Additionally, an application may provide memory advice for a **shared** allocation via the :ref:`zeCommandListAppendMemAdvise` API, +to override driver heuristics or migration policies. +Memory advice may avoid unnecessary or unprofitable memory transfers and may improve performance. + +Both prefetch and memory advice are asynchronous operations that are appended into command lists. + +Reserved Device Allocations +--------------------------- + +If an application needs finer grained control of physical memory consumption for device allocations then it +can reserve a range of the virtual address space and map this to physical memory as needed. This provides +flexibility for applications to manage large dynamic data structures which can grow and shrink over time +while maintaining optimal physical memory usage. + +Reserving Virtual Address Space +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Virtual memory can be reserved using :ref:`zeVirtualMemReserve`\. The reservation starting address +and size must be page aligned. Applications should query the page size for the allocation +using :ref:`zeVirtualMemQueryPageSize`\. + +The following pseudo-code demonstrates a basic sequence for reserving virtual memory: + +.. parsed-literal:: + + // Query page size for our 1MB allocation. + size_t pageSize; + size_t allocationSize = 1048576; + :ref:`zeVirtualMemQueryPageSize`\(hContext, hDevice, allocationSize, &pageSize); + + // Reserve 1MB of virtual address space. + size_t reserveSize = align(allocationSize, pageSize); + + void* ptr = nullptr; + :ref:`zeVirtualMemReserve`\(hContext, nullptr, reserveSize, &ptr); + +Growing Virtual Address Reservations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +An application may wish to reserve an address range starting at a specific virtual address. +This may be useful when there is a need to grow a reservation. However, if the +implementation is not able to reserve the new allocation at the requested starting address +then it will find a new suitable range with a different starting address. If the application +requires a specific starting address then the application should ensure that the return +address from :ref:`zeVirtualMemReserve` matches the starting address it wants. If they +are different then the application may want to create a new larger reservation and remap +the physical memory from the first reservation to this new reservation and free the +old reservation. + +.. parsed-literal:: + + // Reserve another 1MB of virtual address space that is contiguous with previous reservation. + void* newptr = (uint8_t*)ptr + reserveSize; + void* retptr; + :ref:`zeVirtualMemReserve`\(hContext, newptr, reserveSize, &retptr); + + if (retptr != newptr) + { + // Free new reservation as it's not what we want due to incorrect starting address. + :ref:`zeVirtualMemFree`\(hContext, retptr, reserveSize); + + // Make new larger 2MB reservation and remap physical pages to this. + size_t pageSize; + size_t largerAllocationSize = 2097152; + :ref:`zeVirtualMemQueryPageSize`\(hContext, hDevice, largerAllocationSize, &pageSize); + + // Reserve 2MB of virtual address space. + size_t largerReserveSize = align(largerAllocationSize, pageSize); + + void* ptr = nullptr; + :ref:`zeVirtualMemReserve`\(hContext, nullptr, largerReserveSize, &ptr); + + // Remap physical pages from original reservation to our new larger reservation. + ... + + // Free original reservation that we were trying to grow. + :ref:`zeVirtualMemFree`\(hContext, ptr, reserveSize); + } + +Physical Memory +~~~~~~~~~~~~~~~ + +Physical memory is explicitly represented in the API as physical memory objects +that are reservations of physical pages. The application will use :ref:`zePhysicalMemCreate` +to create a physical memory object. + +The following pseudo-code demonstrates a basic sequence for creating a physical memory object: + +.. parsed-literal:: + + // Create 1MB physical memory object + ze_physical_mem_handle_t hPhysicalAlloc; + size_t physicalSize = align(allocationSize, pageSize); + :ref:`ze-physical-mem-desc-t` pmemDesc = { + :ref:`ZE_STRUCTURE_TYPE_PHYSICAL_MEM_DESC `\, + nullptr, + 0, // flags + physicalSize // size + }; + + :ref:`zePhysicalMemCreate`\(hContext, hDevice, &pmemDesc, &hPhysicalAlloc); + +Mapping Virtual Memory Pages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Reserved virtual memory pages can be mapped to physical memory using :ref:`zeVirtualMemMap`\. +An application can map the entire reserved virtual address range or can sparsely map the +reserved virtual address range using one or more physical memory objects. Once mapped, the +physical pages for a physical memory object can be faulted in for devices that support +on-demand paging. In addition, the residency API can be used to control residency of +these physical pages. + +The following pseudo-code demonstrates mapping a 1MB reservation into physical memory: + +.. parsed-literal:: + + // Map entire 1MB reservation and set access to read/write. + :ref:`zeVirtualMemMap`\(hContext, ptr, reserveSize, hPhysicalAlloc, 0, + :ref:`ZE_MEMORY_ACCESS_ATTRIBUTE_READWRITE `\); + + +Access Attributes +~~~~~~~~~~~~~~~~~ +Access attributes can be set for a range of pages when mapping virtual memory +pages with :ref:`zeVirtualMemMap` or with :ref:`zeVirtualMemSetAccessAttribute`\. +In addition, an application can query access attributes for a page aligned +virtual memory range. + +.. parsed-literal:: + + size_t accessRangeSize; + :ref:`ze-memory-access-attribute-t` access; + :ref:`zeVirtualMemGetAccessAttribute`\(hContext, ptr, reserveSize, &access, &accessRangeSize); + + // Expecting entire range to have the same access attribute and it be read/write. + assert(accessRangeSize == reserveSize); + assert(access == :ref:`ZE_MEMORY_ACCESS_ATTRIBUTE_READWRITE `\); + +Sparse Mappings +~~~~~~~~~~~~~~~ + +Applications may desire to reserve large virtual address ranges to make available +to its custom allocators. These ranges can be sparsely mapped using one or more physical +memory objects. It is recommended that the application queries the page size for each +suballocation to ensure the implementation can use an optimal page size for the mappings +based on the alignments used for starting address and size used. + +The following example makes a 1GB reserved allocation and then makes both 128KB and 8MB sub-allocations. + +.. image:: ../images/core_reserved_suballocations.png + +.. parsed-literal:: + + // Reserve 1GB of virtual address space to manage. + size_t pageSize; + size_t allocationSize = 1048576000; + :ref:`zeVirtualMemQueryPageSize`\(hContext, hDevice, allocationSize, &pageSize); + + size_t reserveSize = align(allocationSize, pageSize); + + void* ptr = nullptr; + :ref:`zeVirtualMemReserve`\(hContext, nullptr, reserveSize, &ptr); + + ... + + // Sub-allocate 128KB of our 1GB allocation. + size_t subAllocSize = 131072; + :ref:`zeVirtualMemQueryPageSize`\(hContext, hDevice, subAllocSize, &pageSize); + + // Create physical memory object for our 128KB sub-allocation. + size_t subAllocAlignedSize = align(subAllocSize, pageSize); + :ref:`ze-physical-mem-desc-t` pmemDesc = { + :ref:`ZE_STRUCTURE_TYPE_PHYSICAL_MEM_DESC `\, + nullptr, + 0, // flags + subAllocAlignedSize // size + }; + ze_physical_mem_handle_t hPhysicalAlloc; + :ref:`zePhysicalMemCreate`\(hContext, hDevice, &pmemDesc, &hPhysicalAlloc); + + // Find suitable 128KB sub-allocation that matches page alignments. + ... + + :ref:`zeVirtualMemMap`\(hContext, subAllocPtr, subAllocAlignedSize, hPhysicalAlloc, 0, + :ref:`ZE_MEMORY_ACCESS_ATTRIBUTE_READWRITE `\); + + ... + + // Sub-allocate 8MB of our 1GB allocation. + size_t subAllocDiffSize = 8388608; + :ref:`zeVirtualMemQueryPageSize`\(hContext, hDevice, subAllocDiffSize, &pageSize); + ... + +.. _Images: + +Images +------ + +An image is used to store multi-dimensional and format-defined memory. +An image's contents may be stored in an implementation-specific encoding +and layout in memory for optimal device access +(e.g., tile swizzle patterns, lossless compression, etc.). +There is no support for direct Host access to an image's content. +However, when an image is copied to a Host-accessible memory allocation, +its contents will be implicitly decoded to be implementation-independent. + +.. parsed-literal:: + + // Specify single component FLOAT32 format + :ref:`ze-image-format-t` format = { + :ref:`ZE_IMAGE_FORMAT_LAYOUT_32 `\, :ref:`ZE_IMAGE_FORMAT_TYPE_FLOAT `\, + :ref:`ZE_IMAGE_FORMAT_SWIZZLE_R `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_0 `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_0 `\, :ref:`ZE_IMAGE_FORMAT_SWIZZLE_1 ` + }; + + :ref:`ze-image-desc-t` imageDesc = { + :ref:`ZE_STRUCTURE_TYPE_IMAGE_DESC `\, + nullptr, + 0, // read-only + :ref:`ZE_IMAGE_TYPE_2D `\, + format, + 128, 128, 0, 0, 0 + }; + ze_image_handle_t hImage; + :ref:`zeImageCreate`\(hContext, hDevice, &imageDesc, &hImage); + + // upload contents from host pointer + :ref:`zeCommandListAppendImageCopyFromMemory`\(hCommandList, hImage, nullptr, pImageData, nullptr, 0, nullptr); + ... + +A format descriptor is a combination of a format layout, type, and a swizzle. +The format layout describes the number of components and their corresponding bit +widths. The type describes the data type for all of these components with some +exceptions that are described below. The swizzles associate how the image +components are mapped into XYZW/RGBA channels of the kernel. It is allowed +to replicate components into the channels. + +The following table describes which types are required for each layout. + ++---------------+-------------+-------------+-------------+-------------+-------------+ +| Format layout | UINT | SINT | UNORM | SNORM | FLOAT | ++===============+=============+=============+=============+=============+=============+ +| 8 | Required | Required | Required | Required | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 8_8 | Required | Required | Required | Required | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 8_8_8_8 | Required | Required | Required | Required | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 16 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 16_16 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 16_16_16_16 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 32 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 32_32 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 32_32_32_32 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 10_10_10_2 | Required | Required | Required | Required | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 11_11_10 | Unsupported | Unsupported | Unsupported | Unsupported | Required | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 5_6_5 | Unsupported | Unsupported | Required | Unsupported | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 5_5_5_1 | Unsupported | Unsupported | Required | Unsupported | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ +| 4_4_4_4 | Unsupported | Unsupported | Required | Unsupported | Unsupported | ++---------------+-------------+-------------+-------------+-------------+-------------+ + +Device Cache Settings +--------------------- + +There are two methods for device and kernel cache control: + +1. Cache Size Configuration: Ability to configure larger size for SLM vs Data per Kernel instance. +2. Runtime Hint/preference for application to allow access to be Cached or not in Device Caches. For GPU device this is provided via two ways: + + - During Image creation via Flag + - Kernel instruction + +The following pseudo-code demonstrates a basic sequence for Cache size +configuration: + +.. parsed-literal:: + + // Configure cache to support larger SLM + // Note: The cache setting is applied to each kernel. + :ref:`zeKernelSetCacheConfig`\(hKernel, :ref:`ZE_CACHE_CONFIG_FLAG_LARGE_SLM `\); + + +.. _external-memory: + +External Memory Import and Export +--------------------------------- + +External memory handles may be imported from other APIs, or exported for use in other APIs. +Importing and exporting external memory is an optional feature. +Devices may describe the types of external memory handles they support using :ref:`zeDeviceGetExternalMemoryProperties`\. + +Importing and exporting external memory is supported for device and host memory allocations and images. + +The following pseudo-code demonstrates how to allocate and export an external memory handle for a device memory allocation as a Linux dma_buf: + +.. parsed-literal:: + + // Set up the request for an exportable allocation + :ref:`ze-external-memory-export-desc-t` export_desc = { + :ref:`ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_EXPORT_DESC `\, + nullptr, // pNext + :ref:`ZE_EXTERNAL_MEMORY_TYPE_FLAG_DMA_BUF ` + }; + + // Link the request into the allocation descriptor and allocate + alloc_desc.pNext = &export_desc; + :ref:`zeMemAllocDevice`\(hContext, &alloc_desc, size, alignment, hDevice, &ptr); + + ... + + // Set up the request to export the external memory handle + :ref:`ze-external-memory-export-fd-t` export_fd = { + :ref:`ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_EXPORT_FD `\, + nullptr, // pNext + :ref:`ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_FD `\, + 0 // [out] fd + }; + + // Link the export request into the query + alloc_props.pNext = &export_fd; + :ref:`zeMemGetAllocProperties`\(hContext, ptr, &alloc_props, nullptr); + +The following pseudo-code demonstrates how to import a Linux dma_buf as an external memory handle for a device memory allocation: + +.. parsed-literal:: + + // Set up the request to import the external memory handle + :ref:`ze-external-memory-import-fd-t` import_fd = { + :ref:`ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_FD `\, + nullptr, // pNext + :ref:`ZE_EXTERNAL_MEMORY_TYPE_FLAG_DMA_BUF `\, + fd + }; + + // Link the request into the allocation descriptor and allocate + alloc_desc.pNext = &import_fd; + :ref:`zeMemAllocDevice`\(hContext, &alloc_desc, size, alignment, hDevice, &ptr); + +Another example, which the following pseudo-code demonstrates, is how to import a Linux dma_buf as an external +memory handle for :ref:`Images`: + +.. parsed-literal:: + + // Set up the request to import the external memory handle + :ref:`ze-external-memory-import-fd-t` import_fd = { + :ref:`ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_FD `\, + nullptr, // pNext + :ref:`ZE_EXTERNAL_MEMORY_TYPE_FLAG_DMA_BUF `\, + fd + }; + + // Link the request into the allocation descriptor and allocate + image_desc.pNext = &import_fd; // extend ze_image_desc_t + + // Setup matching image properties for imported image. + image_desc.width = import_width; + ... + + :ref:`zeImageCreate`\(hContext, hDevice, &image_desc, &hImage); + + +Command Queues and Command Lists +================================ + +The following are the motivations for separating a command queue from a command list: + +- Command queues are mostly associated with physical device properties, such as the number of input streams. +- Command queues provide (near) zero-latency access to the device. +- Command lists are mostly associated with Host threads for simultaneous construction. +- Command list construction can occur independently of command queue submission. + +The following diagram illustrates the hierarchy of command lists and command queues to the device: + +.. image:: ../images/core_queue.png + +Command Queue Groups +-------------------- + +A command queue group represents a physical input stream, which represents one or more physical device engines. + + +Discovery +~~~~~~~~~ + +- The number and properties of command queue groups is queried by using :ref:`zeDeviceGetCommandQueueGroupProperties`\. +- The number of physical engines within a group is queried from :ref:`ze-command-queue-group-properties-t`\.numQueues. +- The types of commands supported by the group is queried from :ref:`ze-command-queue-group-properties-t`\.flags. +- For example, if a command list is meant to be submitted to a copy-only engine, + then it must be created using a command queue group ordinal with + :ref:`ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY ` set and :ref:`ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE ` not set, + and submitted to a command queue created using the same ordinal. + +The following pseudo-code demonstrates a basic sequence for discovery of command queue groups: + +.. parsed-literal:: + + // Discover all command queue groups + uint32_t cmdqueueGroupCount = 0; + :ref:`zeDeviceGetCommandQueueGroupProperties`\(hDevice, &cmdqueueGroupCount, nullptr); + + :ref:`ze-command-queue-group-properties-t`\* cmdqueueGroupProperties = (:ref:`ze-command-queue-group-properties-t`\*) + allocate(cmdqueueGroupCount * sizeof(:ref:`ze-command-queue-group-properties-t`\)); + cmdqueueGroupProperties[ i ].stype = :ref:`ZE_STRUCTURE_TYPE_COMMAND_QUEUE_GROUP_PROPERTIES `\; + cmdqueueGroupProperties[ i ].pNext = nullptr; + :ref:`zeDeviceGetCommandQueueGroupProperties`\(hDevice, &cmdqueueGroupCount, cmdqueueGroupProperties); + + + // Find a command queue type that support compute + uint32_t computeQueueGroupOrdinal = cmdqueueGroupCount; + for( uint32_t i = 0; i < cmdqueueGroupCount; ++i ) { + if( cmdqueueGroupProperties[ i ].flags & :ref:`ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE ` ) { + computeQueueGroupOrdinal = i; + break; + } + } + + if(computeQueueGroupOrdinal == cmdqueueGroupCount) + return; // no compute queues found + + +Command Queues +-------------- + +A command queue represents a logical input stream to the device, tied to a physical input stream. + +Creation +~~~~~~~~ + +- At creation time, the command queue is explicitly bound to a command queue group via its ordinal. +- Multiple command queues may be created that use the same command queue group. For example, + an application may create a command queue per Host thread with different scheduling priorities. +- Multiple command queues created for the same command queue group on the same context, + may also share the same physical hardware context. +- The maximum number of command queues an application can create is limited by device-specific + resources; e.g., the maximum number of logical hardware contexts supported by the device. + This can be queried from :ref:`ze-device-properties-t`\.maxHardwareContexts. +- The physical engine within a command queue group on which a command queue executes is virtualized + via its index, limited by the number of physical engines of the type of the command queue group, + i.e. :ref:`ze-command-queue-group-properties-t`\.numQueues. +- The command queue index provides a mechanism for an application to indicate which command queues + can execute concurrently (different indices). +- Command queues that do not share the same index may launch and execute concurrently. +- Command queues that share the same index launch sequentially but may execute concurrently. +- All command lists executed on a command queue are guaranteed to **only** execute on an engine from the + command queue group to which it is assigned; e.g., copy commands in a compute command list / queue will + execute via the compute engine, not the copy engine. +- There is no guarantee that command lists submitted to command queues with different indices will execute concurrently, + only a possibility that they might execute concurrently. + +The following pseudo-code demonstrates a basic sequence for creation of command queues: + +.. parsed-literal:: + + // Create a command queue + :ref:`ze-command-queue-desc-t` commandQueueDesc = { + :ref:`ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC `\, + nullptr, + computeQueueGroupOrdinal, + 0, // index + 0, // flags + :ref:`ZE_COMMAND_QUEUE_MODE_DEFAULT `\, + :ref:`ZE_COMMAND_QUEUE_PRIORITY_NORMAL ` + }; + ze_command_queue_handle_t hCommandQueue; + :ref:`zeCommandQueueCreate`\(hContext, hDevice, &commandQueueDesc, &hCommandQueue); + ... + +Execution +~~~~~~~~~ + +- Command lists submitted to a command queue are **immediately** submitted to the device for execution. +- Submitting multiple commands lists in a single submission allows an implementation the opportunity to optimize across command lists. +- Command queue submission is free-threaded, allowing multiple Host threads to share the same command queue. +- If multiple Host threads enter the same command queue simultaneously, then execution order is undefined. +- Command lists can only be executed on a command queue with an identical command queue group ordinal. +- If a device contains multiple sub-devices, then command lists submitted to a device-level command queue + may be optimized by the driver to fully exploit the concurrency of the sub-devices by distributing command lists across sub-devices. +- If the application prefers to opt-out of these optimizations, such as when the application plans to perform this distribution itself, + then it should use :ref:`ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY `\. Only command lists created using :ref:`ZE_COMMAND_LIST_FLAG_EXPLICIT_ONLY ` + can be executed on a command queue created using :ref:`ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY `\. + + +Destruction +~~~~~~~~~~~ + +- The application is responsible for making sure the device is not currently + executing from a command queue before it is deleted. This is + typically done by tracking command queue fences, but may also be + handled by calling :ref:`zeCommandQueueSynchronize`\. + +Command Lists +------------- + +A command list represents a sequence of commands for execution on a command queue. + +.. _creation-1: + +Creation +~~~~~~~~ + +- A command list is created for a device to allow device-specific appending of commands. +- A command list is created for execution on a specific type of command queue, specified using + the command queue group ordinal. +- A command list can be copied to create another command list. The application may use this + to copy a command list for use on a different device. + +Appending +~~~~~~~~~ + +- There is no implicit binding of command lists to Host threads. Therefore, an + application may share a command list handle across multiple Host threads. However, + the application is responsible for ensuring that multiple Host threads do not access + the same command list simultaneously. +- By default, commands are started in the same order in which they are appended. + However, an application may allow the driver to optimize the ordering by using + :ref:`ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING `\. Reordering is guaranteed to only occur + between barriers and synchronization primitives. +- By default, commands submitted to a command list are optimized for execution by + balancing both device throughput and Host latency. +- For very low-level latency usage-models, applications should use immediate command lists. +- For usage-models where maximum throughput is desired, applications should + use :ref:`ZE_COMMAND_LIST_FLAG_MAXIMIZE_THROUGHPUT `\. This flag will indicate to the driver + it may perform additional device-specific optimizations. +- If a device contains multiple sub-devices, then commands submitted to a device-level + command list may be optimized by the driver to fully exploit the concurrency of the + sub-devices by distributing commands across sub-devices. If the application prefers + to opt-out of these optimizations, such as when the application plans to perform this + distribution itself, then it should use :ref:`ZE_COMMAND_LIST_FLAG_EXPLICIT_ONLY `\. + +The following pseudo-code demonstrates a basic sequence for creation of command lists: + +.. parsed-literal:: + + // Create a command list + :ref:`ze-command-list-desc-t` commandListDesc = { + :ref:`ZE_STRUCTURE_TYPE_COMMAND_LIST_DESC `\, + nullptr, + computeQueueGroupOrdinal, + 0 // flags + }; + ze_command_list_handle_t hCommandList; + :ref:`zeCommandListCreate`\(hContext, hDevice, &commandListDesc, &hCommandList); + ... + +Submission +~~~~~~~~~~ + +- There is no implicit association between a command list and a command queue. + Therefore, a command list may be submitted to any or multiple command queues. +- By definition, a command list cannot be executed concurrently on multiple command queues. +- The application is responsible for calling close before submission to a command queue. +- Command lists do not inherit state from other command lists executed on the same + command queue. i.e. each command list begins execution in its own default state. +- A command list may be submitted multiple times. It is up to the application to ensure + that the command list can be executed multiple times. + For example, events must be explicitly reset prior to re-execution. + +The following pseudo-code demonstrates submission of commands to a command queue, via a command list: + +.. parsed-literal:: + + ... + // finished appending commands (typically done on another thread) + :ref:`zeCommandListClose`\(hCommandList); + + // Execute command list in command queue + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, nullptr); + + // synchronize host and device + :ref:`zeCommandQueueSynchronize`\(hCommandQueue, UINT32_MAX); + + // Reset (recycle) command list for new commands + :ref:`zeCommandListReset`\(hCommandList); + ... + +Recycling +~~~~~~~~~ + +- A command list may be recycled to avoid the overhead of frequent creation and destruction. +- The application is responsible for making sure the device is not currently + executing from a command list before it is reset. This should be + handled by tracking a completion event associated with the command list. +- The application is responsible for making sure the device is not currently + executing from a command list before it is deleted. This should be + handled by tracking a completion event associated with the command list. + +Low-Latency Immediate Command Lists +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A special type of command list can be used for very low-latency submission usage-models. + +- An immediate command list is both a command list and an implicit command queue. +- An immediate command list is created using a command queue descriptor. +- Commands appended into an immediate command list are immediately executed on the device. +- Commands appended into an immediate command list may execute synchronously, by blocking until the command is complete. +- An immediate command list is not required to be closed or reset. However, usage will be honored, and expected behaviors will be followed. + +The following pseudo-code demonstrates a basic sequence for creation and usage of immediate command lists: + +.. parsed-literal:: + + // Create an immediate command list + :ref:`ze-command-queue-desc-t` commandQueueDesc = { + :ref:`ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC `\, + nullptr, + computeQueueGroupOrdinal, + 0, // index + 0, // flags + :ref:`ZE_COMMAND_QUEUE_MODE_DEFAULT `\, + :ref:`ZE_COMMAND_QUEUE_PRIORITY_NORMAL ` + }; + ze_command_list_handle_t hCommandList; + :ref:`zeCommandListCreateImmediate`\(hContext, hDevice, &commandQueueDesc, &hCommandList); + + // Immediately submit a kernel to the device + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + ... + +Synchronization Primitives +========================== + +There are two types of synchronization primitives: + +1. Fences_ - used to communicate to the host that command queue execution has completed. +2. Events_ - used as fine-grain host-to-device, device-to-host or device-to-device execution and memory dependencies. + +The following are the motivations for separating the different types of synchronization primitives: + +- Allows device-specific optimizations for certain types of primitives: + + + Fences may share device memory with all other fences within the same command queue. + + Events may be implemented using pipelined operations as part of the program execution. + + Fences are implicit, coarse-grain execution and memory barriers. + + Events optionally cause fine-grain execution and memory barriers. + +- Allows distinction on which type of primitive may be shared across devices. + +Generally. Events are generic synchronization primitives that can be used across many different usage-models, including those of fences. +However, this generality comes with some cost in memory overhead and efficiency. + +.. _Fences: + +Fences +------ + +A fence is a heavyweight synchronization primitive used to communicate to the host that command list execution has completed. + +- A fence is associated with a single command queue. +- A fence can only be signaled from a device's command queue (e.g. between execution of command lists) and can only be waited upon from the host. +- A fence guarantees both execution completion and memory coherency, across the device and host, prior to being signaled. +- A fence only has two states: not signaled and signaled. +- A fence doesn't implicitly reset. Signaling a signaled fence (or resetting an unsignaled fence) is valid and has no effect on the state of the fence. +- A fence can only be reset from the Host. +- A fence cannot be shared across processes. + +The following pseudo-code demonstrates a sequence for creation, submission and querying of a fence: + +.. parsed-literal:: + + // Create fence + :ref:`ze-fence-desc-t` fenceDesc = { + :ref:`ZE_STRUCTURE_TYPE_FENCE_DESC `\, + nullptr, + 0 // flags + }; + ze_fence_handle_t hFence; + :ref:`zeFenceCreate`\(hCommandQueue, &fenceDesc, &hFence); + + // Execute a command list with a signal of the fence + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, hFence); + + // Wait for fence to be signaled + :ref:`zeFenceHostSynchronize`\(hFence, UINT32_MAX); + :ref:`zeFenceReset`\(hFence); + ... + +The primary usage model for fences is to notify the Host when a command list has finished execution to allow: + +- Recycling of memory and images +- Recycling of command lists +- Recycling of other synchronization primitives +- Explicit memory residency. + +The following diagram illustrates fences signaled after command lists on execution: + +.. image:: ../images/core_fence.png + +.. _Events: + +Events +------ + +An event is used to communicate fine-grain host-to-device, device-to-host or device-to-device dependencies have completed. + +- An event can be: + + + Signaled from within a device's command list and waited upon within the same command list + + Signaled from within a device's command list and waited upon from the host, another command queue or another device + + Signaled from the host, and waited upon from within a device's command list. + +- An event only has two states: not signaled and signaled. +- An event doesn't implicitly reset. Signaling a signaled event (or resetting an unsignaled event) is valid and has no effect on the state of the event. +- An event can be explicitly reset from the Host or device. +- An event can be appended into multiple command lists simultaneously. +- An event can be shared across devices and processes. +- An event can invoke an execution and/or memory barrier; which should be used sparingly to avoid device underutilization. +- There are no protections against events causing deadlocks, such as circular waits scenarios. + + + These problems are left to the application to avoid. + +- An event intended to be signaled by the host, another command queue or another device after command list submission to a command queue may prevent subsequent forward progress within the command queue itself. + + + This can create bubbles in the pipeline or deadlock situations if not correctly scheduled. + +An event pool is used for creation of individual events: + +- An event pool reduces the cost of creating multiple events by allowing underlying device allocations to be shared by events with the same properties +- An event pool can be shared via :ref:`inter-process-communication`; allowing sharing blocks of events rather than sharing each individual event + +The following pseudo-code demonstrates a sequence for creation and submission of an event: + +.. parsed-literal:: + + // Create event pool + :ref:`ze-event-pool-desc-t` eventPoolDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, + nullptr, + :ref:`ZE_EVENT_POOL_FLAG_HOST_VISIBLE `\, // all events in pool are visible to Host + 1 // count + }; + ze_event_pool_handle_t hEventPool; + :ref:`zeEventPoolCreate`\(hContext, &eventPoolDesc, 0, nullptr, &hEventPool); + + :ref:`ze-event-desc-t` eventDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 0, // index + 0, // no additional memory/cache coherency required on signal + :ref:`ZE_EVENT_SCOPE_FLAG_HOST ` // ensure memory coherency across device and Host after event completes + }; + ze_event_handle_t hEvent; + :ref:`zeEventCreate`\(hEventPool, &eventDesc, &hEvent); + + // Append a signal of an event into the command list after the kernel executes + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel1, &launchArgs, hEvent, 0, nullptr); + + // Execute the command list with the signal + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, nullptr); + + // Wait on event to complete + :ref:`zeEventHostSynchronize`\(hEvent, 0); + ... + +The following diagram illustrates a dependency between command lists using events: + +.. image:: ../images/core_event.png + +Kernel Timestamp Events +~~~~~~~~~~~~~~~~~~~~~~~ + +A kernel timestamp event is a special type of event that records device timestamps at the start and end of the execution of kernels. The primary motivation for kernel timestamps is to provide a duration of execution. For consistency and orthogonality, kernel timestamps are also supported for non-kernel operations. Kernel timestamps execute along a device timeline but because of limited range may wrap unexpectedly. Because of this, the temporal order of two kernel timestamps shouldn't be inferred despite coincidental START/END values. :ref:`zeCommandListAppendWriteGlobalTimestamp` provides a similar mechanism but with maximum range. Timestamps from :ref:`zeCommandListAppendWriteGlobalTimestamp` and kernel timestamp events should not be inferred as equivalent even if reported within identical ranges. + +- The duration of a kernel timestamp for :ref:`zeCommandListAppendSignalEvent` and :ref:`zeEventHostSignal` is undefined. However, for consistency and orthogonality the event will report correctly as signaled when used by other event API functionality. +- A kernel timestamp event result can be queried using either :ref:`zeEventQueryKernelTimestamp` or :ref:`zeCommandListAppendQueryKernelTimestamps` +- The :ref:`ze-kernel-timestamp-result-t` contains both the per-context and global timestamp values at the start and end of the kernel's execution +- Since these counters are only 32bits, the application must detect and handle counter wrapping when calculating execution time + +.. parsed-literal:: + + // Get timestamp frequency + const double timestampFreq = NS_IN_SEC / device_properties.timerResolution; + const uint64_t timestampMaxValue = ~(-1L << device_properties.kernelTimestampValidBits); + + // Create event pool + :ref:`ze-event-pool-desc-t` tsEventPoolDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, + nullptr, + :ref:`ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP `\, // all events in pool are kernel timestamps + 1 // count + }; + ze_event_pool_handle_t hTSEventPool; + :ref:`zeEventPoolCreate`\(hContext, &tsEventPoolDesc, 0, nullptr, &hTSEventPool); + + :ref:`ze-event-desc-t` tsEventDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 0, // index + 0, // no additional memory/cache coherency required on signal + 0 // no additional memory/cache coherency required on wait + }; + ze_event_handle_t hTSEvent; + :ref:`zeEventCreate`\(hEventPool, &tsEventDesc, &hTSEvent); + + // allocate memory for results + :ref:`ze-device-mem-alloc-desc-t` tsResultDesc = { + :ref:`ZE_STRUCTURE_TYPE_DEVICE_MEM_ALLOC_DESC `\, + nullptr, + 0, // flags + 0 // ordinal + }; + :ref:`ze-kernel-timestamp-result-t`\* tsResult = nullptr; + :ref:`zeMemAllocDevice`\(hContext, &tsResultDesc, sizeof(:ref:`ze-kernel-timestamp-result-t`\), sizeof(uint32_t), hDevice, &tsResult); + + // Append a signal of a timestamp event into the command list after the kernel executes + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel1, &launchArgs, hTSEvent, 0, nullptr); + + // Append a query of a timestamp event into the command list + :ref:`zeCommandListAppendQueryKernelTimestamps`\(hCommandList, 1, &hTSEvent, tsResult, nullptr, hEvent, 1, &hTSEvent); + + // Execute the command list with the signal + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, nullptr); + + // Wait on event to complete + :ref:`zeEventHostSynchronize`\(hEvent, 0); + + // Calculation execution time(s) + double globalTimeInNs = ( tsResult->global.kernelEnd >= tsResult->global.kernelStart ) + ? ( tsResult->global.kernelEnd - tsResult->global.kernelStart ) * timestampFreq + : (( timestampMaxValue - tsResult->global.kernelStart) + tsResult->global.kernelEnd + 1 ) * timestampFreq; + + double contextTimeInNs = ( tsResult->context.kernelEnd >= tsResult->context.kernelStart ) + ? ( tsResult->context.kernelEnd - tsResult->context.kernelStart ) * timestampFreq + : (( timestampMaxValue - tsResult->context.kernelStart) + tsResult->context.kernelEnd + 1 ) * timestampFreq; + ... + + +Barriers +======== + +There are two types of barriers: + +1. **Execution Barriers** - used to communicate execution dependencies between commands within a command list or across command queues, devices and/or Host. +2. **Memory Barriers** - used to communicate memory coherency dependencies between commands within a command list or across command queues, devices and/or Host. + +The following pseudo-code demonstrates a sequence for submission of a brute-force execution and global memory barrier: + +.. parsed-literal:: + + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + + // Append a barrier into a command list to ensure hKernel1 completes before hKernel2 begins + :ref:`zeCommandListAppendBarrier`\(hCommandList, nullptr, 0, nullptr); + + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + ... + +Execution Barriers +------------------ + +Commands executed on a command list are only guaranteed to start in the same order in which they are submitted; i.e. there is no implicit definition of the order of completion. + +- Fences provide implicit, coarse-grain control to indicate that all previous commands must complete prior to the fence being signaled. +- Events provide explicit, fine-grain control over execution dependencies between commands; allowing more opportunities for concurrent execution and higher device utilization. + +The following pseudo-code demonstrates a sequence for submission of a fine-grain execution-only dependency using events: + +.. parsed-literal:: + + :ref:`ze-event-desc-t` event1Desc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 0, // index + 0, // no additional memory/cache coherency required on signal + 0 // no additional memory/cache coherency required on wait + }; + ze_event_handle_t hEvent1; + :ref:`zeEventCreate`\(hEventPool, &event1Desc, &hEvent1); + + // Ensure hKernel1 completes before signaling hEvent1 + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel1, &launchArgs, hEvent1, 0, nullptr); + + // Ensure hEvent1 is signaled before starting hKernel2 + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel2, &launchArgs, nullptr, 1, &hEvent1); + ... + +Memory Barriers +--------------- + +Commands executed on a command list are *not* guaranteed to maintain memory coherency with other commands; +i.e. there is no implicit memory or cache coherency. + +- Fences provide implicit, coarse-grain control to indicate that all caches and memory are coherent across the device and Host prior to the fence being signaled. +- Events provide explicit, fine-grain control over cache and memory coherency dependencies between commands; allowing more opportunities for concurrent execution and higher device utilization. + +The following pseudo-code demonstrates a sequence for submission of a fine-grain memory dependency using events: + +.. parsed-literal:: + + :ref:`ze-event-desc-t` event1Desc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 0, // index + :ref:`ZE_EVENT_SCOPE_FLAG_DEVICE `\, // ensure memory coherency across device before event signaled + 0 // no additional memory/cache coherency required on wait + }; + ze_event_handle_t hEvent1; + :ref:`zeEventCreate`\(hEventPool, &event1Desc, &hEvent1); + + // Ensure hKernel1 memory writes are fully coherent across the device before signaling hEvent1 + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel1, &launchArgs, hEvent1, 0, nullptr); + + // Ensure hEvent1 is signaled before starting hKernel2 + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel2, &launchArgs, nullptr, 1, &hEvent1); + ... + +Range-based Memory Barriers +--------------------------- + +Range-based memory barriers provide explicit control of which cachelines +require coherency. + +The following pseudo-code demonstrates a sequence for submission of a range-based memory barrier: + +.. parsed-literal:: + + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel1, &launchArgs, nullptr, 0, nullptr); + + // Ensure memory range is fully coherent across the device after hKernel1 and before hKernel2 + :ref:`zeCommandListAppendMemoryRangesBarrier`\(hCommandList, 1, &size, &ptr, nullptr, 0, nullptr); + + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel2, &launchArgs, nullptr, 0, nullptr); + ... + +Modules and Kernels +=================== + +There are multiple levels of constructs needed for executing kernels on the device: + +1. Modules_ represent a single translation unit that consists of kernels that have been compiled together. +2. Kernels_ represent the kernel within the module that will be launched directly from a command list. + +The following diagram provides a high-level overview of the major parts +of the system. + +.. image:: ../images/core_module.png + +.. _Modules: + +Modules +------- + +Modules can be created from an IL or directly from native format using :ref:`zeModuleCreate`\. + +- :ref:`zeModuleCreate` takes a format argument that specifies the input format. +- :ref:`zeModuleCreate` performs a compilation step when format is IL. + +The following pseudo-code demonstrates a sequence for creating a module from an OpenCL kernel: + +.. parsed-literal:: + + __kernel void image_scaling( __read_only image2d_t src_img, + __write_only image2d_t dest_img, + uint WIDTH, // resized width + uint HEIGHT ) // resized height + { + int2 coor = (int2)( get_global_id(0), get_global_id(1) ); + float2 normCoor = convert_float2(coor) / (float2)( WIDTH, HEIGHT ); + + float4 color = read_imagef( src_img, SMPL_PREF, normCoor ); + + write_imagef( dest_img, coor, color ); + } + ... + +.. parsed-literal:: + + // OpenCL C kernel has been compiled to SPIRV IL (pImageScalingIL) + :ref:`ze-module-desc-t` moduleDesc = { + :ref:`ZE_STRUCTURE_TYPE_MODULE_DESC `\, + nullptr, + :ref:`ZE_MODULE_FORMAT_IL_SPIRV `\, + ilSize, + pImageScalingIL, + nullptr, + nullptr + }; + ze_module_handle_t hModule; + :ref:`zeModuleCreate`\(hContext, hDevice, &moduleDesc, &hModule, nullptr); + ... + +Module Build Options +~~~~~~~~~~~~~~~~~~~~ + +Module build options can be passed with :ref:`ze-module-desc-t` as a string. + ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| Build Option | Description | Default | Device Support | ++============================================+======================================================================================================================================================+==========+================+ +| -ze-opt-disable | Disable optimizations. | Disabled | All | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| -ze-opt-level | Specifies optimization level for compiler. Levels are implementation specific. | 2 | All | +| | | | | +| | * 0 is no optimizations (equivalent to ze-opt-disable) | | | +| | * 1 is optimize minimally (may be the same as 2) | | | +| | * 2 is optimize more (default) | | | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| -ze-opt-greater-than-4GB-buffer-required | Use 64-bit offset calculations for buffers. | Disabled | GPU | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| -ze-opt-large-register-file | Increase number of registers available to threads. | Disabled | GPU | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| -ze-opt-has-buffer-offset-arg | Extend stateless to stateful optimization to more cases with the use of additional offset (e.g. 64-bit pointer to binding table with 32-bit offset). | Disabled | GPU | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ +| -g | Include debugging information. | Disabled | GPU | ++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------+ + + +Module Specialization Constants +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +SPIR-V supports specialization constants that allow certain constants to be updated to new +values during runtime execution. Each specialization constant in SPIR-V has an identifier +and default value. The :ref:`zeModuleCreate` function allows for an array of constants and their +corresponding identifiers to be passed in to override the constants in the SPIR-V module. + +.. parsed-literal:: + + // Spec constant overrides for group size. + :ref:`ze-module-constants-t` specConstants = { + 3, + pGroupSizeIds, + pGroupSizeValues + }; + // OpenCL C kernel has been compiled to SPIRV IL (pImageScalingIL) + :ref:`ze-module-desc-t` moduleDesc = { + :ref:`ZE_STRUCTURE_TYPE_MODULE_DESC `\, + nullptr, + :ref:`ZE_MODULE_FORMAT_IL_SPIRV `\, + ilSize, + pImageScalingIL, + nullptr, + &specConstants + }; + ze_module_handle_t hModule; + :ref:`zeModuleCreate`\(hContext, hDevice, &moduleDesc, &hModule, nullptr); + ... + +Note: Specialization constants are only handled at module create time and therefore if +you need to change them then you'll need to compile a new module. + +Module Build Log +~~~~~~~~~~~~~~~~ + +The :ref:`zeModuleCreate` function can optionally generate a build log object ze_module_build_log_handle_t. + +.. parsed-literal:: + + ... + ze_module_build_log_handle_t buildlog; + :ref:`ze-result-t` result = :ref:`zeModuleCreate`\(hContext, hDevice, &desc, &module, &buildlog); + + // Only save build logs for module creation errors. + if (result != :ref:`ZE_RESULT_SUCCESS `\) + { + size_t szLog = 0; + :ref:`zeModuleBuildLogGetString`\(buildlog, &szLog, nullptr); + + char_t* strLog = allocate(szLog); + :ref:`zeModuleBuildLogGetString`\(buildlog, &szLog, strLog); + + // Save log to disk. + ... + + free(strLog); + } + + :ref:`zeModuleBuildLogDestroy`\(buildlog); + +Dynamically Linked Modules +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Modules may be interdependent, i.e., a module may contain functions and global variables that are used and defined by different modules. Such a module is said to have both import as well as export linkage requirements. Private variables are not transferrable between linked modules, i.e., their visibility is limited to the module in which they are defined. Only global variables or static values passed to linked functions are visible between linked modules. All the import linkage requirements of a module must be satisfied before a kernel can be created from that module. Modules that have no imports do not need to be linked. Dynamically linking modules together is performed using :ref:`zeModuleDynamicLink`\. Modules cannot have ambiguous import dependencies, i.e., imported functions and global variables must only be defined once in any given set of modules passed to :ref:`zeModuleDynamicLink`\. Imports are linked only once. Once all the import dependencies of a module have been linked, the use of that fully import-linked module in subsequent calls to :ref:`zeModuleDynamicLink` will not cause the imports of the module to be re-linked. + +The :ref:`zeModuleDynamicLink` function can optionally generate a link log object ze_module_build_log_handle_t. + + + +.. parsed-literal:: + + ... + ze_module_build_log_handle_t linklog; + :ref:`ze-result-t` result = :ref:`zeModuleDynamicLink`\(numModules, &hModules, &hLinklog); + + // Check if there are linking errors + if (result == :ref:`ZE_RESULT_ERROR_MODULE_LINK_FAILURE `\) { + size_t szLog = 0; + :ref:`zeModuleBuildLogGetString`\(linklog, &szLog, nullptr); + + char_t* strLog = allocate(szLog); + :ref:`zeModuleBuildLogGetString`\(linklog, &szLog, strLog); + + // Save log to disk. + ... + + free(strLog); + } + + :ref:`zeModuleBuildLogDestroy`\(linklog); + +Module Caching with Native Binaries +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Disk caching of modules is not supported by the driver. If a disk cache for modules is desired, then it is the +responsibility of the application to implement this using :ref:`zeModuleGetNativeBinary`\. + +.. parsed-literal:: + + ... + // compute hash for pIL and check cache. + ... + + if (cacheUpdateNeeded) + { + size_t szBinary = 0; + :ref:`zeModuleGetNativeBinary`\(hModule, &szBinary, nullptr); + + uint8_t* pBinary = allocate(szBinary); + :ref:`zeModuleGetNativeBinary`\(hModule, &szBinary, pBinary); + + // cache pBinary for corresponding IL + ... + + free(pBinary); + } + +Also, note that the native binary will retain all debug information that is associated with the module. This allows debug +capabilities for modules that are created from native binaries. + +Built-in Kernels +~~~~~~~~~~~~~~~~ + +Built-in kernels are not supported but can be implemented by an upper level runtime or library using the native binary +interface. + +.. _Kernels: + +Kernels +------- + +A Kernel is a reference to a kernel within a module and it supports both explicit and implicit kernel +arguments along with data needed for launch. + +The following pseudo-code demonstrates a sequence for creating a kernel from a module: + +.. parsed-literal:: + + :ref:`ze-kernel-desc-t` kernelDesc = { + :ref:`ZE_STRUCTURE_TYPE_KERNEL_DESC `\, + nullptr, + 0, // flags + "image_scaling" + }; + ze_kernel_handle_t hKernel; + :ref:`ze-result-t` result = :ref:`zeKernelCreate`\(hModule, &kernelDesc, &hKernel); + + // Check if there are unresolved imports + if (result == :ref:`ZE_RESULT_ERROR_INVALID_MODULE_UNLINKED `\) { + // Un-resolvable import dependencies found in module! + ... + } + + // Check to see if the kernel "image_scaling" was found in the supplied module + if (result == :ref:`ZE_RESULT_ERROR_INVALID_KERNEL_NAME `\) { + // Kernel "image_scaling" not found in module! + ... + } + + ... + +Kernel Properties +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use :ref:`zeKernelGetProperties` to query invariant properties from a Kernel object. + +.. parsed-literal:: + + ... + :ref:`ze-kernel-properties-t` kernelProperties; + :ref:`zeKernelGetProperties`\(hKernel, &kernelProperties); + ... + +See :ref:`ze-kernel-properties-t` for more information for kernel properties. + +.. _execution-1: + +Execution +--------- + +Kernel Group Size +~~~~~~~~~~~~~~~~~ + +The group size for a kernel can be set using :ref:`zeKernelSetGroupSize`\. If a group size is not +set prior to appending a kernel into a command list then a default will be chosen. +The group size can be updated over a series of append operations. The driver will copy the +group size information when appending the kernel into the command list. + +.. parsed-literal:: + + :ref:`zeKernelSetGroupSize`\(hKernel, groupSizeX, groupSizeY, 1); + + ... + +The API supports a query for suggested group size when providing the global size. This function ignores the +group size that was set on the kernel using :ref:`zeKernelSetGroupSize`\. + +.. parsed-literal:: + + // Find suggested group size for processing image. + uint32_t groupSizeX; + uint32_t groupSizeY; + :ref:`zeKernelSuggestGroupSize`\(hKernel, imageWidth, imageHeight, 1, &groupSizeX, &groupSizeY, nullptr); + + :ref:`zeKernelSetGroupSize`\(hKernel, groupSizeX, groupSizeY, 1); + + ... + +Kernel Arguments +~~~~~~~~~~~~~~~~ + +Kernel arguments represent only the explicit kernel arguments that are within brackets e.g. func(arg1, arg2, ...). + +- Use :ref:`zeKernelSetArgumentValue` to setup arguments for a kernel launch. +- The :ref:`zeCommandListAppendLaunchKernel` et al. functions will make a copy of the kernel arguments to send to the device. +- Kernel arguments can be updated at any time and used across multiple append calls. + +The following pseudo-code demonstrates a sequence for setting kernel arguments and launching the kernel: + +.. parsed-literal:: + + // Bind arguments + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(ze_image_handle_t), &src_image); + :ref:`zeKernelSetArgumentValue`\(hKernel, 1, sizeof(ze_image_handle_t), &dest_image); + :ref:`zeKernelSetArgumentValue`\(hKernel, 2, sizeof(uint32_t), &width); + :ref:`zeKernelSetArgumentValue`\(hKernel, 3, sizeof(uint32_t), &height); + + :ref:`ze-group-count-t` launchArgs = { numGroupsX, numGroupsY, 1 }; + + // Append launch kernel + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + + // Update image pointers to copy and scale next image. + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(ze_image_handle_t), &src2_image); + :ref:`zeKernelSetArgumentValue`\(hKernel, 1, sizeof(ze_image_handle_t), &dest2_image); + + // Append launch kernel + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + + ... + +Kernel Launch +~~~~~~~~~~~~~ + +In order to launch a kernel on the device an application must call one of the AppendLaunchKernel-style functions for +a command list. The most basic version of these is :ref:`zeCommandListAppendLaunchKernel` which takes a +command list, kernel handle, launch arguments, and an optional synchronization event used to signal completion. +The launch arguments contain thread group dimensions. + +.. parsed-literal:: + + // compute number of groups to launch based on image size and group size. + uint32_t numGroupsX = imageWidth / groupSizeX; + uint32_t numGroupsY = imageHeight / groupSizeY; + + :ref:`ze-group-count-t` launchArgs = { numGroupsX, numGroupsY, 1 }; + + // Append launch kernel + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + +The function :ref:`zeCommandListAppendLaunchKernelIndirect` allows the launch parameters to be supplied indirectly in a +buffer that the device reads instead of the command itself. This allows for the previous operations on the +device to generate the parameters. + +.. parsed-literal:: + + :ref:`ze-group-count-t`\* pIndirectArgs; + + ... + :ref:`zeMemAllocDevice`\(hContext, &desc, sizeof(:ref:`ze-group-count-t`\), sizeof(uint32_t), hDevice, &pIndirectArgs); + + // Append launch kernel - indirect + :ref:`zeCommandListAppendLaunchKernelIndirect`\(hCommandList, hKernel, &pIndirectArgs, nullptr, 0, nullptr); + +Cooperative Kernels +~~~~~~~~~~~~~~~~~~~ + +Cooperative kernels allow sharing of data and synchronization across all launched groups in a safe manner. To support this +there is a :ref:`zeCommandListAppendLaunchCooperativeKernel` that allows launching groups that can cooperate with each other. +The command list must be submitted to a command queue that was created with an ordinal of a command queue group +that has the :ref:`ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS ` flags set. The maximum number of groups for a +cooperative kernel launch may be determined by calling :ref:`zeKernelSuggestMaxCooperativeGroupCount`\. + +.. parsed-literal:: + + // query the maximum cooperative kernel launch for the kernel + uint32_t maxGroupCount; + :ref:`zeKernelSuggestMaxCooperativeGroupCount`\(hKernel, &maxGroupCount); + + // the total group count must be smaller than the queried maximum + assert(numGroupsX * numGroupsY * numGroupsZ < maxGroupCount); + + :ref:`ze-group-count-t` launchArgs = { numGroupsX, numGroupsY, numGroupsZ }; + + // Append launch cooperative kernel + :ref:`zeCommandListAppendLaunchCooperativeKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + + +Sampler +------- + +The API supports Sampler objects that represent state needed for sampling images from within +kernels. The :ref:`zeSamplerCreate` function takes a sampler descriptor (:ref:`ze-sampler-desc-t`\): + ++-----------------------------------+-----------------------------------------+ +| Sampler Field | Description | ++===================================+=========================================+ +| Address Mode | Determines how out-of-bounds | +| | accesses are handled. See | +| | :ref:`ze-sampler-address-mode-t`\. | ++-----------------------------------+-----------------------------------------+ +| Filter Mode | Specifies which filtering mode to | +| | use. See | +| | :ref:`ze-sampler-filter-mode-t`\. | ++-----------------------------------+-----------------------------------------+ +| Normalized | Specifies whether coordinates for | +| | addressing image are normalized | +| | [0,1] or not. | ++-----------------------------------+-----------------------------------------+ + +The following pseudo-code demonstrates the creation of a sampler object and passing it as a kernel argument: + +.. parsed-literal:: + + // Setup sampler for linear filtering and clamp out of bounds accesses to edge. + :ref:`ze-sampler-desc-t` desc = { + :ref:`ZE_STRUCTURE_TYPE_SAMPLER_DESC `\, + nullptr, + :ref:`ZE_SAMPLER_ADDRESS_MODE_CLAMP `\, + :ref:`ZE_SAMPLER_FILTER_MODE_LINEAR `\, + false + }; + ze_sampler_handle_t sampler; + :ref:`zeSamplerCreate`\(hContext, hDevice, &desc, &sampler); + ... + + // The sampler can be passed as a kernel argument. + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(ze_sampler_handle_t), &sampler); + + // Append launch kernel + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + +Formatted Output +---------------- + +The API supports the ability to print formatted output from a kernel using functions such as ``printf``. +Calls to print formatted output will cause data to be written to an internal buffer, where the size of the internal buffer is given by :ref:`ze-device-module-properties-t`\.printfBufferSize. +When the internal buffer becomes full, additional calls to print formatted output will return an error code. + +There is no ordering guarantee for the formatted output. +If multiple work-items make multiple calls to ``printf``, the output from one work-item may appear intermixed with output from other work-items. + +On some devices, the internal buffer may not contain the formatted output itself, and instead the formatting may occur on the host. +Additionally, the final formatting may not occur and the output may not be flushed to the output stream until the event associated with the kernel launch is complete. +To ensure all output has been flushed to the output stream, wait on the event associated with the kernel launch, or wait for the kernel launch to complete using a coarser-grained synchronization method such as :ref:`zeFenceHostSynchronize` or :ref:`zeCommandQueueSynchronize`\. + +Advanced +======== + +Environment Variables +--------------------- + +The following table documents the supported knobs for overriding default functional behavior. + + + ++-----------------+-------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------+ +| Category | Name | Values | Description | ++=================+=====================================+===================================+===================================================================================+ +| Device | ZE_FLAT_DEVICE_HIERARCHY | {**COMPOSITE**, FLAT, COMBINED} | Defines device hierarchy model exposed by Level Zero driver implementation | ++ +-------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------+ +| | ZE_AFFINITY_MASK | list | Forces driver to only report devices (and sub-devices) as specified by values | ++ +-------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------+ +| | ZE_ENABLE_PCI_ID_DEVICE_ORDER | {**0**, 1} | Forces driver to report devices from lowest to highest PCI bus ID | ++-----------------+-------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------+ +| Memory | ZE_SHARED_FORCE_DEVICE_ALLOC | {**0**, 1} | Forces all shared allocations into device memory | ++-----------------+-------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------+ + + +Device Hierarchy +~~~~~~~~~~~~~~~~ + +ZE_FLAT_DEVICE_HIERARCHY allows users to select the device hierarchy model with which the underlying hardware is exposed and the types of devices returned with :ref:`zeDeviceGet`\. + +When setting to `COMPOSITE`, :ref:`zeDeviceGet` returns all the devices that do not have a root-device. Traversing the device hierarchy is possible by querying sub-devices with :ref:`zeDeviceGetSubDevices` and root-devices with :ref:`zeDeviceGetRootDevice`\. Driver implementation may perform implicit optimizations to submissions and allocations done in the root-devices. + +When setting to `FLAT`, :ref:`zeDeviceGet` returns all the devices that do not have sub-devices. Traversing the device hierarchy is **not** possible, with :ref:`zeDeviceGetSubDevices` returning always a count of 0 device handles and :ref:`zeDeviceGetRootDevice` returning nullptr. This mode allows Level Zero driver implementations to optimize execution and memory allocations by removing any overhead required to account for simultaneous use of root-devices and sub-devices in the same application. + +When setting to `COMBINED`, :ref:`zeDeviceGet` returns all the devices that do not have sub-devices. Traversing the device hierarchy is possible by querying sub-devices with :ref:`zeDeviceGetSubDevices` and root-devices with :ref:`zeDeviceGetRootDevice`\. Driver implementation may perform implicit optimizations to submissions and allocations done in the root-devices. + +Devices returned by SYSMAN APIs are not affected by ZE_FLAT_DEVICE_HIERARCHY and always return the top-level device handles corresponding to the physical devices. + + +Affinity Mask +~~~~~~~~~~~~~ + +The affinity mask allows an application or tool to restrict which devices, and sub-devices, are visible to 3rd-party libraries or applications in another process, respectively. +The affinity mask affects the number of handles returned from :ref:`zeDeviceGet` and :ref:`zeDeviceGetSubDevices`\. +The affinity mask is specified via an environment variable as a comma-seperated list of device and/or subdevice ordinals. +The values are specific to system configuration; e.g., the number of devices and the number of sub-devices for each device. +The values are specific to the order in which devices are reported by the driver; i.e., the first device maps to ordinal 0, the second device to ordinal 1, and so forth. +If the affinity mask is not set, then all devices and sub-devices are reported; as is the default behavior. + +The affinity mask masks the devices as defined by value set in the ZE_FLAT_DEVICE_HIERARCHY environment variable, i.e., a Level Zero driver shall read +first ZE_FLAT_DEVICE_HIERARCHY to determine the device handles to be used by the application and then interpret the values passed in ZE_AFFINITY_MASK +based on the device model selected. + +The order of the devices reported by the :ref:`zeDeviceGet` is implementation-specific and not affected by the order of devices in the affinity mask. + +The order of the devices reported by the :ref:`zeDeviceGet` can be forced to be consistent by setting the ZE_ENABLE_PCI_ID_DEVICE_ORDER environment variable. + + +The following examples demonstrate proper usage for a system configuration composed of two physical devices, each of which can be further +sub-divided into four smaller devices. For the purpose of these examples, we will refer to the two physical devices as `parent devices` +and to the smaller sub-devices as `tiles`. + +When setting the ZE_AFFINITY_MASK with different values, and ZE_FLAT_DEVICE_HIERARCHY to `COMPOSITE`, the following scenarios may occur: + +ZE_AFFINITY_MASK = `0, 1`: all parent devices and tiles are reported (same as default): + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | Yes | Device handle 0, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | Yes | Device handle 0, sub-device handle 2 | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | Yes | Device handle 0, sub-device handle 3 | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | Yes | Device handle 1, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | Yes | Device handle 1, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | Yes | Device handle 1, sub-device handle 2 | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | Yes | Device handle 1, sub-device handle 3 | ++---------------+------+---------+----------------------------------------+ + +ZE_AFFINITY_MASK = `0`: only parent device 0 is reported as device handle 0, with all its tiles reported as sub-device handles: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | Yes | Device handle 0, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | Yes | Device handle 0, sub-device handle 2 | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | Yes | Device handle 0, sub-device handle 3 | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `1`: only parent device 1 is reported as device handle 0, with all its tiles reported as sub-device handles: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | Yes | Device handle 0, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | Yes | Device handle 0, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | Yes | Device handle 0, sub-device handle 2 | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | Yes | Device handle 0, sub-device handle 3 | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `0.0`: only tile 0 in parent device 0 is reported as device handle 0: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `1.1, 1.2`: only parent device 1 is reported as device handle 0; with its tiles 1 and 2 reported as its sub-devices 0 and 1, respectively: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | Yes | Device handle 0, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | Yes | Device handle 0, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `0.2, 1.3, 1.0, 0.3`: both parent devices 0 and 1 are reported as device handles 0 and 1, respectively; parent device 0 reports its tiles 2 and 3 as sub-devices 0 and 1, respectively; parent device 1 reports tiles 0 and 3 as sub-devices 0 and 1, respectively; the order is unchanged: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | Yes | Device handle 0, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | Yes | Device handle 0, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | Yes | Device handle 1, sub-device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | Yes | Device handle 1, sub-device handle 1 | ++---------------+------+---------+----------------------------------------+ + + +The following examples show the use of different values in the ZE_AFFINITY_MASK when setting ZE_FLAT_DEVICE_HIERARCHY to `FLAT`, in the +same system with two parent devices and four tiles each. When setting ZE_FLAT_DEVICE_HIERARCHY to `FLAT`, only the tiles are reported by +:ref:`zeDeviceGet`\, which means that in this system :ref:`zeDeviceGet` would report up to 8 device handles, with device handles 0 to 3 corresponding +to the four tiles in parent device 0, and device handles 4 to 5 corresponding to the four tiles in parent device 1: + +ZE_AFFINITY_MASK = `0, 1, 2, 3, 4, 5, 6, 7`: all tiles are reported as device handles by :ref:`zeDeviceGet` (same as default): + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | Yes | Device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | Yes | Device handle 2 | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | Yes | Device handle 3 | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | Yes | Device handle 4 | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | Yes | Device handle 5 | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | Yes | Device handle 6 | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | Yes | Device handle 7 | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `0`: only tile 0 in parent device 0 is reported as device handle 0: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `1`: only tile 1 in parent device 0 is reported as device handle 0. + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `0, 4`: tile 0 from parent device 0 is reported as device handle 0 and tile 0 in parent device 1 is reported as device handle 1: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | Yes | Device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | No | | ++---------------+------+---------+----------------------------------------+ + + +ZE_AFFINITY_MASK = `1, 2, 7`: tile 1 from parent device 0 is reported as device handle 0, tile 2 in parent device 0 is reported as device handle 1, and tile 3 in parent device 1 is reported as device handle 2: + ++---------------+------+---------+----------------------------------------+ +| Parent Device | Tile | Exposed | Device Handle Used | ++===============+======+=========+========================================+ +| 0 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 0 | 1 | Yes | Device handle 0 | ++---------------+------+---------+----------------------------------------+ +| 0 | 2 | Yes | Device handle 1 | ++---------------+------+---------+----------------------------------------+ +| 0 | 3 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 0 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 1 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 2 | No | | ++---------------+------+---------+----------------------------------------+ +| 1 | 3 | Yes | Device handle 2 | ++---------------+------+---------+----------------------------------------+ + +ZE_AFFINITY_MASK = `0.0`: is not valid, as with ZE_FLAT_DEVICE_HIERARCHY set to 1, the device handles reported by :ref:`zeDeviceGet` are those which do not contain further sub-devices. + +Sub-Device Support +------------------ + +The API allows support for sub-devices which can enable finer-grained control of scheduling and memory allocation to a sub-partition of the device. +There are functions to query and obtain sub-devices, but outside of these functions there are no distinctions between sub-devices and devices. +Sub-devices are not required to represent unique partitions of a device; i.e. multiple sub-devices may share the same physical hardware. +Furthermore, a sub-device can be partitioned into more sub-devices; e.g. down to a single slice. + +Use :ref:`zeDeviceGetSubDevices` to confirm sub-devices are supported and to obtain a sub-device handle. +There are additional device properties in :ref:`ze-device-properties-t` for sub-devices. +These can be used to confirm a device is a sub-device and to query the sub-device id. +This may be used by libraries to determine if an input device handle represents a device or sub-device. + +A driver is required to make device memory allocations on the parent device visible to its sub-devices. +However, when using a sub-device handle, the driver will attempt to place any device memory allocations in the local memory that is attached to the sub-device. +These allocations are only visible to the sub-device, its sub-devices, and so forth. +If the API call returns :ref:`ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY `\, then the application may attempt to retry using the parent device. + +When creating command queues for a sub-device, +the application must determine the ordinal from calling :ref:`zeDeviceGetCommandQueueGroupProperties` using the sub-device handle. +See :ref:`ze-command-queue-desc-t` for more details. + +A 16-byte unique device identifier (uuid) can be obtained for a device +or sub-device using :ref:`zeDeviceGetProperties`\. + +.. parsed-literal:: + + // Query for all sub-devices of the device + uint32_t subdeviceCount = 0; + :ref:`zeDeviceGetSubDevices`\(hDevice, &subdeviceCount, nullptr); + + ze_device_handle_t* allSubDevices = allocate(subdeviceCount * sizeof(ze_device_handle_t)); + :ref:`zeDeviceGetSubDevices`\(hDevice, &subdeviceCount, &allSubDevices); + + // Desire is to allocate and dispatch work to sub-device 2. + assert(subdeviceCount >= 3); + ze_device_handle_t hSubdevice = allSubDevices[2]; + + // Query sub-device properties. + :ref:`ze-device-properties-t` subdeviceProps {}; + subDeviceProps.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES `\; + :ref:`zeDeviceGetProperties`\(hSubdevice, &subdeviceProps); + + assert(subdeviceProps.flags & :ref:`ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE `\); // Ensure that we have a handle to a sub-device. + assert(subdeviceProps.subdeviceId == 2); // Ensure that we have a handle to the sub-device we asked for. + + void* pMemForSubDevice2; + :ref:`zeMemAllocDevice`\(hContext, &desc, memSize, sizeof(uint32_t), hSubdevice, &pMemForSubDevice2); + ... + +Device Residency +---------------- + +For devices that do not support page-faults, the driver must ensure that all pages that will be accessed by the kernel are resident before program execution. +This can be determined by checking :ref:`ze-device-properties-t`\.flags for :ref:`ZE_DEVICE_PROPERTY_FLAG_ONDEMANDPAGING `\. + +In most cases, the driver implicitly handles residency of allocations for device access. +This can be done by inspecting API parameters, including kernel arguments. +However, in cases where the devices does **not** support page-faulting *and* the driver is incapable of determining whether an allocation will be accessed by the device, +such as multiple levels of indirection, there are two methods available: + +1. The application may set the :ref:`ZE_KERNEL_FLAG_FORCE_RESIDENCY ` flag during program creation to force all device allocations to be resident during execution. + + + The application should specify which allocation types will be indirectly accessed, using :ref:`zeKernelSetIndirectAccess` and the following flags, to optimize which allocations are made resident. + + * :ref:`ZE_KERNEL_INDIRECT_ACCESS_FLAG_HOST ` + * :ref:`ZE_KERNEL_INDIRECT_ACCESS_FLAG_DEVICE ` + * :ref:`ZE_KERNEL_INDIRECT_ACCESS_FLAG_SHARED ` + + + If the driver is unable to make all allocations resident, then the call to :ref:`zeCommandQueueExecuteCommandLists` will return :ref:`ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY ` + +2. Explicit :ref:`zeContextMakeMemoryResident` APIs are included for the application to dynamically change residency as needed. + + + If the application over-commits device memory, then a call to :ref:`zeContextMakeMemoryResident` will return :ref:`ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY ` + +If the application does not properly manage residency for these cases then the device may experience unrecoverable page-faults. + +The following pseudo-code demonstrates a sequence for using coarse-grain residency control for indirect arguments: + +.. parsed-literal:: + + struct node { + node* next; + }; + node* begin = nullptr; + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin); + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin->next); + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin->next->next); + + // 'begin' is passed as kernel argument and appended into command list + :ref:`zeKernelSetIndirectAccess`\(hKernel, :ref:`ZE_KERNEL_INDIRECT_ACCESS_FLAG_HOST `\); + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(node*), &begin); + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + + ... + + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, nullptr); + ... + +The following pseudo-code demonstrates a sequence for using fine-grain residency control for indirect arguments: + +.. parsed-literal:: + + struct node { + node* next; + }; + node* begin = nullptr; + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin); + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin->next); + :ref:`zeMemAllocHost`\(hContext, &desc, sizeof(node), 1, &begin->next->next); + + // 'begin' is passed as kernel argument and appended into command list + :ref:`zeKernelSetArgumentValue`\(hKernel, 0, sizeof(node*), &begin); + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &launchArgs, nullptr, 0, nullptr); + ... + + // Make indirect allocations resident before enqueuing + :ref:`zeContextMakeMemoryResident`\(hContext, hDevice, begin->next, sizeof(node)); + :ref:`zeContextMakeMemoryResident`\(hContext, hDevice, begin->next->next, sizeof(node)); + + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, hFence); + + // wait until complete + :ref:`zeFenceHostSynchronize`\(hFence, UINT32_MAX); + + // Finally, evict to free device resources + :ref:`zeContextEvictMemory`\(hContext, hDevice, begin->next, sizeof(node)); + :ref:`zeContextEvictMemory`\(hContext, hDevice, begin->next->next, sizeof(node)); + ... + +Interoperability with Other APIs +-------------------------------- +Level-Zero includes general-purpose interoperability mechanisms for +memory allocations (both images and device memory) and modules. + +Memory allocations may be shared between Level-Zero and other APIs via +:ref:`external-memory`. +Level-Zero supports exporting memory allocations for use in other APIs +and importing memory allocations from other APIs. + +Modules may be shared between Level-Zero and other APIs via native +format binaries, see :ref:`zeModuleGetNativeBinary` and :ref:`ZE_MODULE_FORMAT_NATIVE `\. + +The following pseudo-code demonstrates interoperability with OpenCL *from* a OpenCL cl_program *to* a Level-Zero Kernel: + +.. parsed-literal:: + + void* clDeviceBinary; + size_t clDeviceBinarySize; + clGetProgramInfo(cl_program, CL_PROGRAM_BINARIES, clDeviceBinary, &clDeviceBinarySize); + + :ref:`ze-module-desc-t` desc = { + :ref:`ZE_STRUCTURE_TYPE_MODULE_DESC `\, + nullptr, + :ref:`ZE_MODULE_FORMAT_NATIVE `\, + clDeviceBinarySize, + clDeviceBinary + }; + :ref:`zeModuleCreate`\(hContext, hDevice, &desc, &hModule, nullptr); + :ref:`zeKernelCreate`\(hModule, nullptr, hKernel); // same Kernel as OpenCL in Level-Zero + + +.. _inter-process-communication: + +Inter-Process Communication +--------------------------- + +The API allows sharing of memory objects across different device +processes. Since each process has its own virtual address space, there +is no guarantee that the same virtual address will be available when the +memory object is shared in new process. There are a set of APIs that +makes it easier to share the memory objects with ease. + +There are two types of Inter-Process Communication (IPC) APIs for using +Level-Zero allocations across processes: + +1. :ref:`Memory` +2. :ref:`Events` + +.. _memory-1: + +Memory +~~~~~~ + +The following code examples demonstrate how to use the memory IPC APIs: + +1. First, the allocation is made, packaged, and sent on the sending + process: + +.. parsed-literal:: + + void* dptr = nullptr; + :ref:`zeMemAllocDevice`\(hContext, &desc, size, alignment, hDevice, &dptr); + + :ref:`ze-ipc-mem-handle-t` hIPC; + :ref:`zeMemGetIpcHandle`\(hContext, dptr, &hIPC); + + // Method of sending to receiving process is not defined by Level-Zero: + send_to_receiving_process(hIPC); + + +2. Next, the allocation is received and un-packaged on the receiving + process: + +.. parsed-literal:: + + // Method of receiving from sending process is not defined by Level-Zero: + :ref:`ze-ipc-mem-handle-t` hIPC; + hIPC = receive_from_sending_process(); + + void* dptr = nullptr; + :ref:`zeMemOpenIpcHandle`\(hContext, hDevice, hIPC, 0, &dptr); + + +3. Each process may now refer to the same device memory allocation via its ``dptr``. + Note, there is no guaranteed address equivalence for the values of ``dptr`` in each process. + +4. To cleanup, first close the handle in the receiving process: + +.. parsed-literal:: + + :ref:`zeMemCloseIpcHandle`\(hContext, dptr); + + +5. Finally, return the IPC handle to the driver with :ref:`zeMemPutIpcHandle` and + free the device pointer in the sending process. If :ref:`zeMemPutIpcHandle` is not called, + any actions performed by that call are eventually done by :ref:`zeMemFree`\. + +.. parsed-literal:: + + :ref:`zeMemPutIpcHandle`\(hContext, hIpc); + :ref:`zeMemFree`\(hContext, dptr); + +.. _events-1: + +Events +~~~~~~ + +The following code examples demonstrate how to use the event IPC APIs: + +1. First, the event pool is created, packaged, and sent on the sending process: + +.. parsed-literal:: + + // create event pool + :ref:`ze-event-pool-desc-t` eventPoolDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, + nullptr, + :ref:`ZE_EVENT_POOL_FLAG_IPC ` | :ref:`ZE_EVENT_POOL_FLAG_HOST_VISIBLE `\, + 10 // count + }; + ze_event_pool_handle_t hEventPool; + :ref:`zeEventPoolCreate`\(hContext, &eventPoolDesc, 1, &hDevice, &hEventPool); + + // get IPC handle and send to another process + :ref:`ze-ipc-event-pool-handle-t` hIpcEvent; + :ref:`zeEventPoolGetIpcHandle`\(hEventPool, &hIpcEventPool); + send_to_receiving_process(hIpcEventPool); + +2. Next, the event pool is received and un-packaged on the receiving process: + +.. parsed-literal:: + + // get IPC handle from other process + :ref:`ze-ipc-event-pool-handle-t` hIpcEventPool; + receive_from_sending_process(&hIpcEventPool); + + // open event pool + ze_event_pool_handle_t hEventPool; + :ref:`zeEventPoolOpenIpcHandle`\(hContext, hIpcEventPool, &hEventPool); + +3. Each process may now refer to the same device event allocation via its handle: + +Receiving process creates event at location + +.. parsed-literal:: + + ze_event_handle_t hEvent; + :ref:`ze-event-desc-t` eventDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 5, // index + 0, // no additional memory/cache coherency required on signal + :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\, // ensure memory coherency across device and Host after event signaled + }; + :ref:`zeEventCreate`\(hEventPool, &eventDesc, &hEvent); + + // submit kernel and signal event when complete + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hKernel, &args, hEvent, 0, nullptr); + :ref:`zeCommandListClose`\(hCommandList); + :ref:`zeCommandQueueExecuteCommandLists`\(hCommandQueue, 1, &hCommandList, nullptr); + +Sending process creates event at same location + +.. parsed-literal:: + + ze_event_handle_t hEvent; + :ref:`ze-event-desc-t` eventDesc = { + :ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, + nullptr, + 5, + 0, // no additional memory/cache coherency required on signal + :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\, // ensure memory coherency across device and Host after event signaled + }; + :ref:`zeEventCreate`\(hEventPool, &eventDesc, &hEvent); + + :ref:`zeEventHostSynchronize`\(hEvent, UINT32_MAX); + + +Note, there is no guaranteed address equivalence for the values of ``hEvent`` in each process. + +4. To cleanup, first close the pool handle in the receiving process: + +.. parsed-literal:: + + :ref:`zeEventDestroy`\(hEvent); + :ref:`zeEventPoolCloseIpcHandle`\(&hEventPool); + +5. Finally, return the IPC handle to the driver with :ref:`zeEventPoolPutIpcHandle` and + free the event pool in the sending process. If :ref:`zeEventPoolPutIpcHandle` is not called, + any actions performed by that call are eventually done by :ref:`zeEventPoolDestroy`\. + +.. parsed-literal:: + + :ref:`zeEventDestroy`\(hEvent); + :ref:`zeEventPoolPutIpcHandle`\(hContext, hIpcEventPool); + :ref:`zeEventPoolDestroy`\(hEventPool); + +Peer-to-Peer Access and Queries +------------------------------- + +Peer to Peer API's provide capabilities to marshal data across Host to +Device, Device to Host and Device to Device. The data marshalling API +can be scheduled as asynchronous operations or can be synchronized with +kernel execution through command queues. Data coherency is maintained by +the driver without any explicit involvement from the application. + +Cards may be linked together within a node by a scale-up fabric and depending on the configuration, +the fabric can support remote access, atomics, and data copies. + +The following Peer-to-Peer functionalities are provided through the API: + +- Check for remote memory access capability between two devices/subdevices: :ref:`zeDeviceCanAccessPeer` + + The following rules apply to :ref:`zeDeviceCanAccessPeer` queries + + + A device/subdevice is always its own peer, i.e. it can always access itself. + +- Query remote memory access, atomic capabilities, logical & physical bandwidth & latency for peer-to-peer: :ref:`zeDeviceGetP2PProperties` + :ref:`ZE_experimental_bandwidth_properties`. + + The following rules apply to :ref:`zeDeviceGetP2PProperties` queries + + + A device/subdevice is always its own peer, i.e. it can always access itself and also do so atomically. + +- Copy data between devices over peer-to-peer fabric: :ref:`zeCommandListAppendMemoryCopy` + +Both :ref:`zeDeviceCanAccessPeer` & :ref:`zeDeviceGetP2PProperties` return the same information - do two devices support peer-to-peer access? :ref:`zeDeviceGetP2PProperties` provides more detail than :ref:`zeDeviceCanAccessPeer`\, such as support for atomics, bandwidths, latencies, etc... + diff --git a/level-zero/1.10/_sources/core/SPIRV.rst b/level-zero/1.10/_sources/core/SPIRV.rst new file mode 100644 index 0000000..5d40637 --- /dev/null +++ b/level-zero/1.10/_sources/core/SPIRV.rst @@ -0,0 +1,687 @@ + + + + +========================== + SPIR-V Programming Guide +========================== + +Introduction +============ + +`SPIR-V `__ is an open, +royalty-free, standard intermediate language capable of representing +parallel compute kernels. SPIR-V is adaptable to multiple execution +environments: a SPIR-V module is consumed by an execution environment, +as specified by a client API. This document describes the SPIR-V +execution environment for the 'oneAPI' Level-Zero API. The SPIR-V +execution environment describes required support for some SPIR-V +capabilities, additional semantics for some SPIR-V instructions, and +additional validation rules that a SPIR-V binary module must adhere to +in order to be considered valid. + +This document is written for compiler developers who are generating +SPIR-V modules intended to be consumed by the 'oneAPI' Level-Zero API, +for implementors of the 'oneAPI' Level-Zero API, and for software +developers who are using SPIR-V modules with the 'oneAPI' Level-Zero +API. + +Common Properties +================= + +This section describes common properties of all 'oneAPI' Level-Zero +environments that consume SPIR-V modules. + +A SPIR-V module is interpreted as a series of 32-bit words in host +endianness, with literal strings packed as described in the SPIR-V +specification. The first few words of the SPIR-V module must be a magic +number and a SPIR-V version number, as described in the SPIR-V +specification. + +Supported SPIR-V Versions +------------------------- + +The maximum SPIR-V version supported by a device is described by :ref:`ze-device-module-properties-t`\.spirvVersionSupported. + +Extended Instruction Sets +------------------------- + +The **OpenCL.std** `extended instruction set for +OpenCL `__ is supported. + +Source Language Encoding +------------------------ + +The source language version is purely informational and has no semantic +meaning. + +Numerical Type Formats +---------------------- + +Floating-point types are represented and stored using +`IEEE-754 `__ semantics. +All integer formats are represented and stored using 2's-complement +format. + +Supported Types +--------------- + +The following types are supported. Note that some types may require +additional capabilities, and may not be supported by all environments. + +Basic Scalar and Vector Types +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**OpTypeVoid** is supported. + +The following scalar types are supported: + +- **OpTypeBool** +- **OpTypeInt**, with *Width* equal to 8, 16, 32, or 64, and with + *Signedness* equal to zero, indicating no signedness semantics. +- **OpTypeFloat**, with *Width* equal to 16, 32, or 64. + +**OpTypeVector** vector types are supported. The vector *Component Type* +may be any of the scalar types described above. Supported vector +*Component Counts* are 2, 3, 4, 8, or 16. + +**OpTypeArray** array types are supported, **OpTypeStruct** struct types +are supported, **OpTypeFunction** functions are supported, and +**OpTypePointer** pointer types are supported. + +Image-Related Data Types +~~~~~~~~~~~~~~~~~~~~~~~~ + +The following table describes the supported **OpTypeImage** image types: + +========== ======= ========= ======================= +*Dim* *Depth* *Arrayed* **Description** +========== ======= ========= ======================= +**1D** ``0`` ``0`` A 1D image. +**1D** ``0`` ``1`` A 1D image array. +**2D** ``0`` ``0`` A 2D image. +**2D** ``1`` ``0`` A 2D depth image. +**2D** ``0`` ``1`` A 2D image array. +**2D** ``1`` ``1`` A 2D depth image array. +**3D** ``0`` ``0`` A 3D image. +**Buffer** ``0`` ``0`` A 1D buffer image. +========== ======= ========= ======================= + +**OpTypeSampler** sampler typed are supported. + +Kernels +------- + +An **OpFunction** in a SPIR-V module that is identified with +**OpEntryPoint** defines a kernel that may be launched using host API +interfaces. + +Kernel Return Types +------------------- + +The *Result Type* for an **OpFunction** identified with **OpEntryPoint** +must be **OpTypeVoid**. + +Kernel Arguments +---------------- + +An **OpFunctionParameter** for an **OpFunction** that is identified with +**OpEntryPoint** defines a kernel argument. Allowed types for kernel +arguments are: + +- **OpTypeInt** +- **OpTypeFloat** +- **OpTypeStruct** +- **OpTypeVector** +- **OpTypePointer** +- **OpTypeSampler** +- **OpTypeImage** + +For **OpTypeInt** parameters, supported *Widths* are 8, 16, 32, and 64, +and must have no signedness semantics. + +For **OpTypeFloat** parameters, supported *Widths* are 16 and 32. + +For **OpTypeStruct** parameters, supported structure *Member Types* are: + +- **OpTypeInt** +- **OpTypeFloat** +- **OpTypeStruct** +- **OpTypeVector** +- **OpTypePointer** + +For **OpTypePointer** parameters, supported *Storage Classes* are: + +- **CrossWorkgroup** +- **Workgroup** +- **UniformConstant** + +Environments that support extensions or optional features may allow +additional types in an entry point's parameter list. + +Required Capabilities +===================== + +SPIR-V 1.0 +---------- + +An environment that supports SPIR-V 1.0 must support SPIR-V 1.0 modules +that declare the following capabilities: + +- **Addresses** +- **Float16Buffer** +- **Int64** +- **Int16** +- **Int8** +- **Kernel** +- **Linkage** +- **Vector16** +- **GenericPointer** +- **Groups** +- **ImageBasic** (for devices supporting :ref:`ze-device-image-properties-t`\.supported) +- **Float16** (for devices supporting :ref:`ZE_DEVICE_MODULE_FLAG_FP16 `\) +- **Float64** (for devices supporting :ref:`ZE_DEVICE_MODULE_FLAG_FP64 `\) +- **Int64Atomics** (for devices supporting :ref:`ZE_DEVICE_MODULE_FLAG_INT64_ATOMICS `\) + +If the 'oneAPI' environment supports the **ImageBasic** capability, +then the following capabilities must also be supported: + +- **LiteralSampler** +- **Sampled1D** +- **Image1D** +- **SampledBuffer** +- **ImageBuffer** +- **ImageReadWrite** + +SPIR-V 1.1 +---------- + +An environment supporting SPIR-V 1.1 must support SPIR-V 1.1 modules +that declare the capabilities required for SPIR-V 1.0 modules, above. + +SPIR-V 1.1 does not add any new required capabilities. + +SPIR-V 1.2 +---------- + +An environment supporting SPIR-V 1.2 must support SPIR-V 1.2 modules +that declare the capabilities required for SPIR-V 1.1 modules, above. + +SPIR-V 1.2 does not add any new required capabilities. + +Validation Rules +================ + +The following are a list of validation rules that apply to SPIR-V +modules executing in all 'oneAPI' Level-Zero environments: + +The *Execution Model* declared in **OpEntryPoint** must be **Kernel**. + +The *Addressing Model* declared in **OpMemoryModel** must +**Physical64**, indicating that device pointers are 64-bits. + +The *Memory Model* declared in **OpMemoryModel** must be **OpenCL**. + +For all **OpTypeInt** integer type-declaration instructions: + +- *Signedness* must be 0, indicating no signedness semantics. + +For all **OpTypeImage** type-declaration instructions: \* *Sampled Type* +must be **OpTypeVoid**. \* *Sampled* must be 0, indicating that the +image usage will be known at run time, not at compile time. \* *MS* must +be 0, indicating single-sampled content. \* *Arrayed* may only be set to +1, indicating arrayed content, when *Dim* is set to **1D** or **2D**. \* +*Image Format* must be **Unknown**, indicating that the image does not +have a specified format. \* The optional image *Access Qualifier* must +be present. + +The image write instruction **OpImageWrite** must not include any +optional *Image Operands*. + +The image read instructions **OpImageRead** and +**OpImageSampleExplicitLod** must not include the optional *Image +Operand* **ConstOffset**. + +For all *Atomic Instructions*: + +- 32-bit integer types are supported for the *Result Type* and/or type + of *Value*. 64-bit integer types are optionally supported for the + *Result Type* and/or type of *Value* for devices supporting + :ref:`ZE_DEVICE_MODULE_FLAG_INT64_ATOMICS `\. +- The *Pointer* operand must be a pointer to the **Function**, + **Workgroup**, **CrossWorkGroup**, or **Generic** *Storage Classes*. + +Recursion is not supported. The static function call graph for an entry +point must not contain cycles. + +Whether irreducible control flow is legal is implementation defined. + +For the instructions **OpGroupAsyncCopy** and **OpGroupWaitEvents**, +*Scope* for *Execution* must be: + +- **Workgroup** + +For all other instructions, *Scope* for *Execution* must be one of: + +- **Workgroup** +- **Subgroup** + +*Scope* for *Memory* must be one of: + +- **CrossDevice** +- **Device** +- **Workgroup** +- **Invocation** +- **Subgroup** + +Extensions +========== + +Intel Subgroups +--------------- + +'oneAPI' Level-Zero API environments must accept SPIR-V modules that +declare use of the ``SPV_INTEL_subgroups`` extension via +**OpExtension**. + +When use of the ``SPV_INTEL_subgroups`` extension is declared in the +module via **OpExtension**, the environment must accept modules that +declare the following SPIR-V capabilities: + +- **SubgroupShuffleINTEL** +- **SubgroupBufferBlockIOINTEL** +- **SubgroupImageBlockIOINTEL** + +The environment must accept the following types for *Data* for the +**SubgroupShuffleINTEL** instructions: + +- Scalars and **OpTypeVectors** with 2, 4, 8, or 16 *Component Count* + components of the following *Component Type* types: + + - **OpTypeFloat** with a *Width* of 32 bits (``float``) + - **OpTypeInt** with a *Width* of 8 bits and *Signedness* of 0 + (``char`` and ``uchar``) + - **OpTypeInt** with a *Width* of 16 bits and *Signedness* of 0 + (``short`` and ``ushort``) + - **OpTypeInt** with a *Width* of 32 bits and *Signedness* of 0 + (``int`` and ``uint``) + +- Scalars of **OpTypeInt** with a *Width* of 64 bits and *Signedness* + of 0 (``long`` and ``ulong``) + +Additionally, if the **Float16** capability is declared and supported: + +- Scalars of **OpTypeFloat** with a *Width* of 16 bits (``half``) + +Additionally, if the **Float64** capability is declared and supported: + +- Scalars of **OpTypeFloat** with a *Width* of 64 bits (``double``) + +The environment must accept the following types for *Result* and *Data* +for the **SubgroupBufferBlockIOINTEL** and **SubgroupImageBlockIOINTEL** +instructions: + +- Scalars and **OpTypeVectors** with 2, 4, or 8 *Component Count* + components of the following *Component Type* types: + + - **OpTypeInt** with a *Width* of 32 bits and *Signedness* of 0 + (``int`` and ``uint``) + - **OpTypeInt** with a *Width* of 16 bits and *Signedness* of 0 + (``short`` and ``ushort``) + +For *Ptr*, valid *Storage Classes* are: + +- **CrossWorkGroup** (``global``) + +For *Image*: + +- *Dim* must be *2D* +- *Depth* must be 0 (not a depth image) +- *Arrayed* must be 0 (non-arrayed content) +- *MS* must be 0 (single-sampled content) + +For *Coordinate*, the following types are supported: + +- **OpTypeVectors** with two *Component Count* components of *Component + Type* **OpTypeInt** with a *Width* of 32 bits and *Signedness* of 0 + (``int2``) + +Notes and Restrictions +~~~~~~~~~~~~~~~~~~~~~~ + +The **SubgroupShuffleINTEL** instructions may be placed within +non-uniform control flow and hence do not have to be encountered by all +invocations in the subgroup, however *Data* may only be shuffled among +invocations encountering the **SubgroupShuffleINTEL** instruction. +Shuffling *Data* from an invocation that does not encounter the +**SubgroupShuffleINTEL** instruction will produce undefined results. + +There is no defined behavior for out-of-range shuffle indices for the +**SubgroupShuffleINTEL** instructions. + +The **SubgroupBufferBlockIOINTEL** and **SubgroupImageBlockIOINTEL** +instructions are only guaranteed to work correctly if placed strictly +within uniform control flow within the subgroup. This ensures that if +any invocation executes it, all invocations will execute it. If placed +elsewhere, behavior is undefined. + +There is no defined out-of-range behavior for the +**SubgroupBufferBlockIOINTEL** instructions. + +The **SubgroupImageBlockIOINTEL** instructions do support bounds +checking, however they bounds-check to the image width in units of +``uints``, not in units of image elements. This means: + +- If the image has an *Image Format* size equal to the size of a + ``uint`` (four bytes, for example **Rgba8**), the image will be + correctly bounds-checked. In this case, out-of-bounds reads will + return the edge image element (the equivalent of **ClampToEdge**), + and out-of-bounds writes will be ignored. + +- If the image has an *Image Format* size less than the size of a + ``uint`` (such as **R8**), the entire image is addressable, however + bounds checking will occur too late. For this reason, extra care + should be taken to avoid out-of-bounds reads and writes, since + out-of-bounds reads may return invalid data and out-of-bounds writes + may corrupt other images or buffers unpredictably. + +The following restrictions apply to the **SubgroupBufferBlockIOINTEL** +instructions: + +- The pointer *Ptr* must be 32-bit (4-byte) aligned for reads, and must + be 128-bit (16-byte) aligned for writes. + +The following restrictions apply to the **SubgroupImageBlockIOINTEL** +instructions: + +- The behavior of the **SubgroupImageBlockIOINTEL** instructions is + undefined for images with an element size greater than four bytes + (such as **Rgba32f**). + +The following restrictions apply to the +**OpSubgroupImageBlockWriteINTEL** instruction: + +- Unlike the image block read instruction, which may read from any + arbitrary byte offset, the x-component of the byte coordinate for the + image block write instruction must be a multiple of four; in other + words, the write must begin at a 32-bit boundary. There is no + restriction on the y-component of the coordinate. + +Floating-Point Atomics +---------------------- + +'oneAPI' Level-Zero API environments supporting the extension +**ZE_extension_float_atomics** must support additional atomic instructions, capabilities, and types. + +Atomic Load, Store, and Exchange +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the 'oneAPI' Level-Zero API environment supports the extension **ZE_extension_float_atomics** and :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_LOAD_STORE ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_LOAD_STORE `\, then for the **Atomic Instructions** **OpAtomicLoad**, **OpAtomicStore**, and **OpAtomicExchange**: + +- 16-bit floating-point types are supported for the *Result Type* and type of + *Value*. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_LOAD_STORE `\, the *Pointer* operand may be a pointer to the **CrossWorkGroup** *Storage Class*. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_LOAD_STORE `\, the *Pointer* operand may be a pointer to the **Workgroup** *Storage Class*. + +Atomic Add and Subtract +~~~~~~~~~~~~~~~~~~~~~~~ + +If the 'oneAPI' Level-Zero API environment supports the extension **ZE_extension_float_atomics** and :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags include :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_ADD `\, then the environment must accept modules that declare use of the extensions ``SPV_EXT_shader_atomic_float_add`` and ``SPV_EXT_shader_atomic_float16_add``. +Additionally: + +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_ADD `\, the **AtomicFloat16AddEXT** capability must be supported. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_ADD `\, the **AtomicFloat32AddEXT** capability must be supported. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_ADD `\, the **AtomicFloat64AddEXT** capability must be supported. +- For the **Atomic Instruction** **OpAtomicFAddEXT** added by these extensions: + + - When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD `\, the *Pointer* operand may be a pointer to the **CrossWorkGroup** *Storage Class*. + - When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_ADD `\, the *Pointer* operand may be a pointer to the **Workgroup** *Storage Class*. + +Atomic Min and Max +~~~~~~~~~~~~~~~~~~ + +If the 'oneAPI' Level-Zero API environment supports the extension **ZE_extension_float_atomics** and the :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags bitfields include :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX `\, then the environment must accept modules that declare use of the extension ``SPV_EXT_shader_atomic_float_min_max``. +Additionally: + +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX `\, the **AtomicFloat32MinMaxEXT** capability must be supported. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX `\, the **AtomicFloat64MinMaxEXT** capability must be supported. +- When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX ` or :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX `\, the **AtomicFloat16MinMaxEXT** capability must be supported. +- For the **Atomic Instructions** **OpAtomicFMinEXT** and **OpAtomicFMaxEXT** added by this extension: + + - When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX ` , the *Pointer* operand may be a pointer to the **CrossWorkGroup** *Storage Class*. + - When :ref:`ze-device-fp-atomic-ext-flags-t`\.fp16Flags, :ref:`ze-device-fp-atomic-ext-flags-t`\.fp32Flags, or :ref:`ze-device-fp-atomic-ext-flags-t`\.fp64Flags includes :ref:`ZE_DEVICE_FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX `\, the *Pointer* operand may be a pointer to the **Workgroup** *Storage Class*. + + +Extended Subgroups +------------------ + +'oneAPI' Level-Zero API environments supporting the extension +**ZE_extension_subgroups** must support additional subgroup instructions, capabilities, and types. + +Extended Types +~~~~~~~~~~~~~~ + +The following Groups instructions must be supported with *Scope* for *Execution* +equal to **Subgroup**: + +- **OpGroupBroadcast** +- **OpGroupIAdd**, **OpGroupFAdd** +- **OpGroupSMin**, **OpGroupUMin**, **OpGroupFMin** +- **OpGroupSMax**, **OpGroupUMax**, **OpGroupFMax** + +For these instructions, valid types for *Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +Additionally, for **OpGroupBroadcast**, valid types for *Value* are: + +- **OpTypeVectors** with 2, 3, 4, 8, or 16 Component Count components of + supported types: + + - **OpTypeInt** (equivalent to ``charn``, ``ucharn``, ``shortn``, + ``ushortn``, ``intn``, ``uintn``, ``longn``, and ``ulongn``) + - **OpTypeFloat** (equivalent to ``halfn``, ``floatn``, and ``doublen``) + +Vote +~~~~ + +The following capabilities must be supported: + +- **GroupNonUniform** +- **GroupNonUniformVote** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +For the instruction **OpGroupNonUniformAllEqual**, valid types for *Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +Ballot +~~~~~~ + +The following capabilities must be supported: + +- **GroupNonUniformBallot** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +For the non-uniform broadcast instruction **OpGroupNonUniformBroadcast**, valid +types for *Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +- **OpTypeVectors** with 2, 3, 4, 8, or 16 Component Count components of + supported types: + + - **OpTypeInt** (equivalent to ``charn``, ``ucharn``, ``shortn``, + ``ushortn``, ``intn``, ``uintn``, ``longn``, and ``ulongn``) + - **OpTypeFloat** (equivalent to ``halfn``, ``floatn``, and ``doublen``) + +For the instruction **OpGroupNonUniformBroadcastFirst**, valid types for *Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +For the instruction **OpGroupNonUniformBallot**, the valid Result Type is an +OpTypeVector with four Component Count components of **OpTypeInt**, with *Width* +equal to 32 and *Signedness* equal to 0 (equivalent to ``uint4``). + +For the instructions **OpGroupNonUniformInverseBallot**, +**OpGroupNonUniformBallotBitExtract**, **OpGroupNonUniformBallotBitCount**, +**OpGroupNonUniformBallotFindLSB**, and **OpGroupNonUniformBallotFindMSB**, the +valid type for *Value* is an **OpTypeVector** with four *Component Count* +components of **OpTypeInt**, with *Width* equal to 32 and *Signedness* equal to +0 (equivalent to uint4). + +For built-in variables decorated with **SubgroupEqMask**, **SubgroupGeMask**, +**SubgroupGtMask**, **SubgroupLeMask**, or **SubgroupLtMask**, the supported +variable type is an **OpTypeVector** with four *Component Count* components of +**OpTypeInt**, with *Width* equal to 32 and *Signedness* equal to 0 (equivalent +to ``uint4``). + +Non-Uniform Arithmetic +~~~~~~~~~~~~~~~~~~~~~~ + +The following capabilities must be supported: + +- **GroupNonUniformArithmetic** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +For the instructions **OpGroupNonUniformLogicalAnd**, +**OpGroupNonUniformLogicalOr**, and **OpGroupNonUniformLogicalXor**, the valid +type for *Value* is **OpTypeBool**. + +Otherwise, for the **GroupNonUniformArithmetic** scan and reduction +instructions, valid types for *Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +For the **GroupNonUniformArithmetic** scan and reduction instructions, the +optional *ClusterSize* operand must not be present. + +Shuffles +~~~~~~~~ + +The following capabilities must be supported: + +- **GroupNonUniformShuffle** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +For the instructions **OpGroupNonUniformShuffle** and +**OpGroupNonUniformShuffleXor** requiring these capabilities, valid types for +*Value* are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +Relative Shuffles +~~~~~~~~~~~~~~~~~ + +The following capabilities must be supported: + +- **GroupNonUniformShuffleRelative** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +For the **GroupNonUniformShuffleRelative** instructions, valid types for *Value* +are: + +- Scalars of supported types: + + - **OpTypeInt** (equivalent to ``char``, ``uchar``, ``short``, ``ushort``, + ``int``, ``uint``, ``long``, and ``ulong``) + - **OpTypeFloat** (equivalent to ``half``, ``float``, and ``double``) + +Clustered Reductions +~~~~~~~~~~~~~~~~~~~~ + +The following capabilities must be supported: + +- **GroupNonUniformClustered** + +For instructions requiring these capabilities, *Scope* for *Execution* may be: + +- **Subgroup** + +When the **GroupNonUniformClustered** capability is declared, the +**GroupNonUniformArithmetic** scan and reduction instructions may include the +optional *ClusterSize* operand. + + +Linkonce ODR +------------ + +'oneAPI' Level-Zero API environments supporting the extension +**ZE_extension_linkonce_odr** must must accept SPIR-V modules that declare use of the ``SPV_KHR_linkonce_odr`` extension via **OpExtension**. + +When use of the ``SPV_KHR_linkonce_odr`` extension is declared in the +module via **OpExtension**, the environment must accept modules that +include the **LinkOnceODR** linkage type. + + +Bfloat16 Conversions +-------------------- + +'oneAPI' Level-Zero API environments supporting the extension +**ZE_extension_bfloat16_conversions** must must accept SPIR-V modules that declare use of the ``SPV_INTEL_bloat16_conversion`` extension via **OpExtension**. + +When use of the ``SPV_INTEL_bloat16_conversion`` extension is declared in the +module via **OpExtension**, the environment must accept modules that +declare the **Bfloat16ConversionINTEL** capability. + +For the instructions **OpConvertFToBF16INTEL** and **OpConvertBF16ToFINTEL** +added by the extension: + +- Valid types for *Result Type*, *Float Value*, and *Bfloat16 Value* are Scalars + and **OpTypeVectors** with 2, 3, 4, 8, or 16 *Component Count* components + + +Numerical Compliance +==================== + +The 'oneAPI' Level-Zero environment will meet or exceed the numerical +compliance requirements defined in the OpenCL SPIR-V Environment +Specification. See: `Numerical +Compliance `__. + +Image Addressing and Filtering +============================== + +The 'oneAPI' Level-Zero environment image addressing and filtering +behavior is compatible with the behavior defined in the OpenCL SPIR-V +Environment Specification. See: `Image Addressing and +Filtering `__. diff --git a/level-zero/1.10/_sources/core/api.rst b/level-zero/1.10/_sources/core/api.rst new file mode 100644 index 0000000..ea914db --- /dev/null +++ b/level-zero/1.10/_sources/core/api.rst @@ -0,0 +1,5853 @@ + + +============================== +Core API +============================== +oneAPI Level Zero Specification - Version 1.10 + + + + + +Common +============================================================ +* Enumerations + + + * :ref:`ze-result-t` + * :ref:`ze-structure-type-t` + * :ref:`ze-external-memory-type-flags-t` + * :ref:`ze-bandwidth-unit-t` + * :ref:`ze-latency-unit-t` + + +* Structures + + + * :ref:`ze-ipc-mem-handle-t` + * :ref:`ze-ipc-event-pool-handle-t` + * :ref:`ze-uuid-t` + * :ref:`ze-base-cb-params-t` + * :ref:`ze-base-properties-t` + * :ref:`ze-base-desc-t` + + + + +Common Enums +------------------------------------------------------------------------------ + + +.. _ze-result-t: + +ze_result_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_result_t + :project: LevelZero + + +.. _ze-structure-type-t: + +ze_structure_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_structure_type_t + :project: LevelZero + + +.. _ze-external-memory-type-flags-t: + +ze_external_memory_type_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_external_memory_type_flag_t + :project: LevelZero + + +.. _ze-bandwidth-unit-t: + +ze_bandwidth_unit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_bandwidth_unit_t + :project: LevelZero + + +.. _ze-latency-unit-t: + +ze_latency_unit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_latency_unit_t + :project: LevelZero + + +Common Structures +------------------------------------------------------------------------------ + +.. _ze-ipc-mem-handle-t: + +ze_ipc_mem_handle_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_ipc_mem_handle_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-ipc-event-pool-handle-t: + +ze_ipc_event_pool_handle_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_ipc_event_pool_handle_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-uuid-t: + +ze_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-base-cb-params-t: + +ze_base_cb_params_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_base_cb_params_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-base-properties-t: + +ze_base_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_base_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-base-desc-t: + +ze_base_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_base_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Driver +============================================================ +* Functions + + + * :ref:`zeInit` + * :ref:`zeDriverGet` + * :ref:`zeInitDrivers` + * :ref:`zeDriverGetApiVersion` + * :ref:`zeDriverGetProperties` + * :ref:`zeDriverGetIpcProperties` + * :ref:`zeDriverGetExtensionProperties` + * :ref:`zeDriverGetExtensionFunctionAddress` + * :ref:`zeDriverGetLastErrorDescription` + + +* Enumerations + + + * :ref:`ze-init-flags-t` + * :ref:`ze-init-driver-type-flags-t` + * :ref:`ze-api-version-t` + * :ref:`ze-ipc-property-flags-t` + + +* Structures + + + * :ref:`ze-init-driver-type-desc-t` + * :ref:`ze-driver-uuid-t` + * :ref:`ze-driver-properties-t` + * :ref:`ze-driver-ipc-properties-t` + * :ref:`ze-driver-extension-properties-t` + + +Driver Functions +------------------------------------------------------------------------------ + + +.. _zeInit: + +zeInit +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeInit + :project: LevelZero + + +.. _zeDriverGet: + +zeDriverGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGet + :project: LevelZero + + +.. _zeInitDrivers: + +zeInitDrivers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeInitDrivers + :project: LevelZero + + +.. _zeDriverGetApiVersion: + +zeDriverGetApiVersion +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetApiVersion + :project: LevelZero + + +.. _zeDriverGetProperties: + +zeDriverGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetProperties + :project: LevelZero + + +.. _zeDriverGetIpcProperties: + +zeDriverGetIpcProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetIpcProperties + :project: LevelZero + + +.. _zeDriverGetExtensionProperties: + +zeDriverGetExtensionProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetExtensionProperties + :project: LevelZero + + +.. _zeDriverGetExtensionFunctionAddress: + +zeDriverGetExtensionFunctionAddress +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetExtensionFunctionAddress + :project: LevelZero + + +.. _zeDriverGetLastErrorDescription: + +zeDriverGetLastErrorDescription +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverGetLastErrorDescription + :project: LevelZero + + + +Driver Enums +------------------------------------------------------------------------------ + + +.. _ze-init-flags-t: + +ze_init_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_init_flag_t + :project: LevelZero + + +.. _ze-init-driver-type-flags-t: + +ze_init_driver_type_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_init_driver_type_flag_t + :project: LevelZero + + +.. _ze-api-version-t: + +ze_api_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_api_version_t + :project: LevelZero + + +.. _ze-ipc-property-flags-t: + +ze_ipc_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_ipc_property_flag_t + :project: LevelZero + + +Driver Structures +------------------------------------------------------------------------------ + +.. _ze-init-driver-type-desc-t: + +ze_init_driver_type_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_init_driver_type_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-driver-uuid-t: + +ze_driver_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_driver_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-driver-properties-t: + +ze_driver_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_driver_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-driver-ipc-properties-t: + +ze_driver_ipc_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_driver_ipc_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-driver-extension-properties-t: + +ze_driver_extension_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_driver_extension_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Device +============================================================ +* Functions + + + * :ref:`zeDeviceGet` + * :ref:`zeDeviceGetRootDevice` + * :ref:`zeDeviceGetSubDevices` + * :ref:`zeDeviceGetProperties` + * :ref:`zeDeviceGetComputeProperties` + * :ref:`zeDeviceGetModuleProperties` + * :ref:`zeDeviceGetCommandQueueGroupProperties` + * :ref:`zeDeviceGetMemoryProperties` + * :ref:`zeDeviceGetMemoryAccessProperties` + * :ref:`zeDeviceGetCacheProperties` + * :ref:`zeDeviceGetImageProperties` + * :ref:`zeDeviceGetExternalMemoryProperties` + * :ref:`zeDeviceGetP2PProperties` + * :ref:`zeDeviceCanAccessPeer` + * :ref:`zeDeviceGetStatus` + * :ref:`zeDeviceGetGlobalTimestamps` + + +* Enumerations + + + * :ref:`ze-device-type-t` + * :ref:`ze-device-property-flags-t` + * :ref:`ze-device-module-flags-t` + * :ref:`ze-device-fp-flags-t` + * :ref:`ze-command-queue-group-property-flags-t` + * :ref:`ze-device-memory-property-flags-t` + * :ref:`ze-memory-access-cap-flags-t` + * :ref:`ze-device-cache-property-flags-t` + * :ref:`ze-device-p2p-property-flags-t` + + +* Structures + + + * :ref:`ze-device-uuid-t` + * :ref:`ze-device-properties-t` + * :ref:`ze-device-thread-t` + * :ref:`ze-device-compute-properties-t` + * :ref:`ze-native-kernel-uuid-t` + * :ref:`ze-device-module-properties-t` + * :ref:`ze-command-queue-group-properties-t` + * :ref:`ze-device-memory-properties-t` + * :ref:`ze-device-memory-access-properties-t` + * :ref:`ze-device-cache-properties-t` + * :ref:`ze-device-image-properties-t` + * :ref:`ze-device-external-memory-properties-t` + * :ref:`ze-device-p2p-properties-t` + + +Device Functions +------------------------------------------------------------------------------ + + +.. _zeDeviceGet: + +zeDeviceGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGet + :project: LevelZero + + +.. _zeDeviceGetRootDevice: + +zeDeviceGetRootDevice +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetRootDevice + :project: LevelZero + + +.. _zeDeviceGetSubDevices: + +zeDeviceGetSubDevices +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetSubDevices + :project: LevelZero + + +.. _zeDeviceGetProperties: + +zeDeviceGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetProperties + :project: LevelZero + + +.. _zeDeviceGetComputeProperties: + +zeDeviceGetComputeProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetComputeProperties + :project: LevelZero + + +.. _zeDeviceGetModuleProperties: + +zeDeviceGetModuleProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetModuleProperties + :project: LevelZero + + +.. _zeDeviceGetCommandQueueGroupProperties: + +zeDeviceGetCommandQueueGroupProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetCommandQueueGroupProperties + :project: LevelZero + + +.. _zeDeviceGetMemoryProperties: + +zeDeviceGetMemoryProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetMemoryProperties + :project: LevelZero + + +.. _zeDeviceGetMemoryAccessProperties: + +zeDeviceGetMemoryAccessProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetMemoryAccessProperties + :project: LevelZero + + +.. _zeDeviceGetCacheProperties: + +zeDeviceGetCacheProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetCacheProperties + :project: LevelZero + + +.. _zeDeviceGetImageProperties: + +zeDeviceGetImageProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetImageProperties + :project: LevelZero + + +.. _zeDeviceGetExternalMemoryProperties: + +zeDeviceGetExternalMemoryProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetExternalMemoryProperties + :project: LevelZero + + +.. _zeDeviceGetP2PProperties: + +zeDeviceGetP2PProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetP2PProperties + :project: LevelZero + + +.. _zeDeviceCanAccessPeer: + +zeDeviceCanAccessPeer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceCanAccessPeer + :project: LevelZero + + +.. _zeDeviceGetStatus: + +zeDeviceGetStatus +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetStatus + :project: LevelZero + + +.. _zeDeviceGetGlobalTimestamps: + +zeDeviceGetGlobalTimestamps +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetGlobalTimestamps + :project: LevelZero + + + +Device Enums +------------------------------------------------------------------------------ + + +.. _ze-device-type-t: + +ze_device_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_type_t + :project: LevelZero + + +.. _ze-device-property-flags-t: + +ze_device_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_property_flag_t + :project: LevelZero + + +.. _ze-device-module-flags-t: + +ze_device_module_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_module_flag_t + :project: LevelZero + + +.. _ze-device-fp-flags-t: + +ze_device_fp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_fp_flag_t + :project: LevelZero + + +.. _ze-command-queue-group-property-flags-t: + +ze_command_queue_group_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_queue_group_property_flag_t + :project: LevelZero + + +.. _ze-device-memory-property-flags-t: + +ze_device_memory_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_memory_property_flag_t + :project: LevelZero + + +.. _ze-memory-access-cap-flags-t: + +ze_memory_access_cap_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_access_cap_flag_t + :project: LevelZero + + +.. _ze-device-cache-property-flags-t: + +ze_device_cache_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_cache_property_flag_t + :project: LevelZero + + +.. _ze-device-p2p-property-flags-t: + +ze_device_p2p_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_p2p_property_flag_t + :project: LevelZero + + +Device Structures +------------------------------------------------------------------------------ + +.. _ze-device-uuid-t: + +ze_device_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-properties-t: + +ze_device_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-thread-t: + +ze_device_thread_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_thread_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-compute-properties-t: + +ze_device_compute_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_compute_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-native-kernel-uuid-t: + +ze_native_kernel_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_native_kernel_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-module-properties-t: + +ze_device_module_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_module_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-command-queue-group-properties-t: + +ze_command_queue_group_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_command_queue_group_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-memory-properties-t: + +ze_device_memory_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_memory_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-memory-access-properties-t: + +ze_device_memory_access_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_memory_access_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-cache-properties-t: + +ze_device_cache_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_cache_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-image-properties-t: + +ze_device_image_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_image_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-external-memory-properties-t: + +ze_device_external_memory_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_external_memory_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-p2p-properties-t: + +ze_device_p2p_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_p2p_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Context +============================================================ +* Functions + + + * :ref:`zeContextCreate` + * :ref:`zeContextCreateEx` + * :ref:`zeContextDestroy` + * :ref:`zeContextGetStatus` + + +* Enumerations + + + * :ref:`ze-context-flags-t` + + +* Structures + + + * :ref:`ze-context-desc-t` + + +Context Functions +------------------------------------------------------------------------------ + + +.. _zeContextCreate: + +zeContextCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextCreate + :project: LevelZero + + +.. _zeContextCreateEx: + +zeContextCreateEx +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextCreateEx + :project: LevelZero + + +.. _zeContextDestroy: + +zeContextDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextDestroy + :project: LevelZero + + +.. _zeContextGetStatus: + +zeContextGetStatus +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextGetStatus + :project: LevelZero + + + +Context Enums +------------------------------------------------------------------------------ + + +.. _ze-context-flags-t: + +ze_context_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_context_flag_t + :project: LevelZero + + +Context Structures +------------------------------------------------------------------------------ + +.. _ze-context-desc-t: + +ze_context_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_context_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Cmdqueue +============================================================ +* Functions + + + * :ref:`zeCommandQueueCreate` + * :ref:`zeCommandQueueDestroy` + * :ref:`zeCommandQueueExecuteCommandLists` + * :ref:`zeCommandQueueSynchronize` + * :ref:`zeCommandQueueGetOrdinal` + * :ref:`zeCommandQueueGetIndex` + + +* Enumerations + + + * :ref:`ze-command-queue-flags-t` + * :ref:`ze-command-queue-mode-t` + * :ref:`ze-command-queue-priority-t` + + +* Structures + + + * :ref:`ze-command-queue-desc-t` + + +Cmdqueue Functions +------------------------------------------------------------------------------ + + +.. _zeCommandQueueCreate: + +zeCommandQueueCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueCreate + :project: LevelZero + + +.. _zeCommandQueueDestroy: + +zeCommandQueueDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueDestroy + :project: LevelZero + + +.. _zeCommandQueueExecuteCommandLists: + +zeCommandQueueExecuteCommandLists +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueExecuteCommandLists + :project: LevelZero + + +.. _zeCommandQueueSynchronize: + +zeCommandQueueSynchronize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueSynchronize + :project: LevelZero + + +.. _zeCommandQueueGetOrdinal: + +zeCommandQueueGetOrdinal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueGetOrdinal + :project: LevelZero + + +.. _zeCommandQueueGetIndex: + +zeCommandQueueGetIndex +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandQueueGetIndex + :project: LevelZero + + + +Cmdqueue Enums +------------------------------------------------------------------------------ + + +.. _ze-command-queue-flags-t: + +ze_command_queue_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_queue_flag_t + :project: LevelZero + + +.. _ze-command-queue-mode-t: + +ze_command_queue_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_queue_mode_t + :project: LevelZero + + +.. _ze-command-queue-priority-t: + +ze_command_queue_priority_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_queue_priority_t + :project: LevelZero + + +Cmdqueue Structures +------------------------------------------------------------------------------ + +.. _ze-command-queue-desc-t: + +ze_command_queue_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_command_queue_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Cmdlist +============================================================ +* Functions + + + * :ref:`zeCommandListCreate` + * :ref:`zeCommandListCreateImmediate` + * :ref:`zeCommandListDestroy` + * :ref:`zeCommandListClose` + * :ref:`zeCommandListReset` + * :ref:`zeCommandListAppendWriteGlobalTimestamp` + * :ref:`zeCommandListHostSynchronize` + * :ref:`zeCommandListGetDeviceHandle` + * :ref:`zeCommandListGetContextHandle` + * :ref:`zeCommandListGetOrdinal` + * :ref:`zeCommandListImmediateGetIndex` + * :ref:`zeCommandListIsImmediate` + + +* Enumerations + + + * :ref:`ze-command-list-flags-t` + + +* Structures + + + * :ref:`ze-command-list-desc-t` + + +Cmdlist Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListCreate: + +zeCommandListCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListCreate + :project: LevelZero + + +.. _zeCommandListCreateImmediate: + +zeCommandListCreateImmediate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListCreateImmediate + :project: LevelZero + + +.. _zeCommandListDestroy: + +zeCommandListDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListDestroy + :project: LevelZero + + +.. _zeCommandListClose: + +zeCommandListClose +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListClose + :project: LevelZero + + +.. _zeCommandListReset: + +zeCommandListReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListReset + :project: LevelZero + + +.. _zeCommandListAppendWriteGlobalTimestamp: + +zeCommandListAppendWriteGlobalTimestamp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendWriteGlobalTimestamp + :project: LevelZero + + +.. _zeCommandListHostSynchronize: + +zeCommandListHostSynchronize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListHostSynchronize + :project: LevelZero + + +.. _zeCommandListGetDeviceHandle: + +zeCommandListGetDeviceHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListGetDeviceHandle + :project: LevelZero + + +.. _zeCommandListGetContextHandle: + +zeCommandListGetContextHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListGetContextHandle + :project: LevelZero + + +.. _zeCommandListGetOrdinal: + +zeCommandListGetOrdinal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListGetOrdinal + :project: LevelZero + + +.. _zeCommandListImmediateGetIndex: + +zeCommandListImmediateGetIndex +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListImmediateGetIndex + :project: LevelZero + + +.. _zeCommandListIsImmediate: + +zeCommandListIsImmediate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListIsImmediate + :project: LevelZero + + + +Cmdlist Enums +------------------------------------------------------------------------------ + + +.. _ze-command-list-flags-t: + +ze_command_list_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_list_flag_t + :project: LevelZero + + +Cmdlist Structures +------------------------------------------------------------------------------ + +.. _ze-command-list-desc-t: + +ze_command_list_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_command_list_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Barrier +============================================================ +* Functions + + + * :ref:`zeCommandListAppendBarrier` + * :ref:`zeCommandListAppendMemoryRangesBarrier` + * :ref:`zeContextSystemBarrier` + + + + + + +Barrier Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListAppendBarrier: + +zeCommandListAppendBarrier +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendBarrier + :project: LevelZero + + +.. _zeCommandListAppendMemoryRangesBarrier: + +zeCommandListAppendMemoryRangesBarrier +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryRangesBarrier + :project: LevelZero + + +.. _zeContextSystemBarrier: + +zeContextSystemBarrier +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextSystemBarrier + :project: LevelZero + + + + + + + +Copy +============================================================ +* Functions + + + * :ref:`zeCommandListAppendMemoryCopy` + * :ref:`zeCommandListAppendMemoryFill` + * :ref:`zeCommandListAppendMemoryCopyRegion` + * :ref:`zeCommandListAppendMemoryCopyFromContext` + * :ref:`zeCommandListAppendImageCopy` + * :ref:`zeCommandListAppendImageCopyRegion` + * :ref:`zeCommandListAppendImageCopyToMemory` + * :ref:`zeCommandListAppendImageCopyFromMemory` + * :ref:`zeCommandListAppendMemoryPrefetch` + * :ref:`zeCommandListAppendMemAdvise` + + +* Enumerations + + + * :ref:`ze-memory-advice-t` + + +* Structures + + + * :ref:`ze-copy-region-t` + * :ref:`ze-image-region-t` + + +Copy Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListAppendMemoryCopy: + +zeCommandListAppendMemoryCopy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryCopy + :project: LevelZero + + +.. _zeCommandListAppendMemoryFill: + +zeCommandListAppendMemoryFill +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryFill + :project: LevelZero + + +.. _zeCommandListAppendMemoryCopyRegion: + +zeCommandListAppendMemoryCopyRegion +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryCopyRegion + :project: LevelZero + + +.. _zeCommandListAppendMemoryCopyFromContext: + +zeCommandListAppendMemoryCopyFromContext +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryCopyFromContext + :project: LevelZero + + +.. _zeCommandListAppendImageCopy: + +zeCommandListAppendImageCopy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopy + :project: LevelZero + + +.. _zeCommandListAppendImageCopyRegion: + +zeCommandListAppendImageCopyRegion +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopyRegion + :project: LevelZero + + +.. _zeCommandListAppendImageCopyToMemory: + +zeCommandListAppendImageCopyToMemory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopyToMemory + :project: LevelZero + + +.. _zeCommandListAppendImageCopyFromMemory: + +zeCommandListAppendImageCopyFromMemory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopyFromMemory + :project: LevelZero + + +.. _zeCommandListAppendMemoryPrefetch: + +zeCommandListAppendMemoryPrefetch +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemoryPrefetch + :project: LevelZero + + +.. _zeCommandListAppendMemAdvise: + +zeCommandListAppendMemAdvise +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendMemAdvise + :project: LevelZero + + + +Copy Enums +------------------------------------------------------------------------------ + + +.. _ze-memory-advice-t: + +ze_memory_advice_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_advice_t + :project: LevelZero + + +Copy Structures +------------------------------------------------------------------------------ + +.. _ze-copy-region-t: + +ze_copy_region_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_copy_region_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-image-region-t: + +ze_image_region_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_region_t + :project: LevelZero + :members: + :undoc-members: + + + + +Event +============================================================ +* Functions + + + * :ref:`zeEventPoolCreate` + * :ref:`zeEventPoolDestroy` + * :ref:`zeEventCreate` + * :ref:`zeEventDestroy` + * :ref:`zeEventPoolGetIpcHandle` + * :ref:`zeEventPoolPutIpcHandle` + * :ref:`zeEventPoolOpenIpcHandle` + * :ref:`zeEventPoolCloseIpcHandle` + * :ref:`zeCommandListAppendSignalEvent` + * :ref:`zeCommandListAppendWaitOnEvents` + * :ref:`zeEventHostSignal` + * :ref:`zeEventHostSynchronize` + * :ref:`zeEventQueryStatus` + * :ref:`zeCommandListAppendEventReset` + * :ref:`zeEventHostReset` + * :ref:`zeEventQueryKernelTimestamp` + * :ref:`zeCommandListAppendQueryKernelTimestamps` + * :ref:`zeEventGetEventPool` + * :ref:`zeEventGetSignalScope` + * :ref:`zeEventGetWaitScope` + * :ref:`zeEventPoolGetContextHandle` + * :ref:`zeEventPoolGetFlags` + + +* Enumerations + + + * :ref:`ze-event-pool-flags-t` + * :ref:`ze-event-scope-flags-t` + + +* Structures + + + * :ref:`ze-event-pool-desc-t` + * :ref:`ze-event-desc-t` + * :ref:`ze-kernel-timestamp-data-t` + * :ref:`ze-kernel-timestamp-result-t` + + +Event Functions +------------------------------------------------------------------------------ + + +.. _zeEventPoolCreate: + +zeEventPoolCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolCreate + :project: LevelZero + + +.. _zeEventPoolDestroy: + +zeEventPoolDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolDestroy + :project: LevelZero + + +.. _zeEventCreate: + +zeEventCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventCreate + :project: LevelZero + + +.. _zeEventDestroy: + +zeEventDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventDestroy + :project: LevelZero + + +.. _zeEventPoolGetIpcHandle: + +zeEventPoolGetIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolGetIpcHandle + :project: LevelZero + + +.. _zeEventPoolPutIpcHandle: + +zeEventPoolPutIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolPutIpcHandle + :project: LevelZero + + +.. _zeEventPoolOpenIpcHandle: + +zeEventPoolOpenIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolOpenIpcHandle + :project: LevelZero + + +.. _zeEventPoolCloseIpcHandle: + +zeEventPoolCloseIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolCloseIpcHandle + :project: LevelZero + + +.. _zeCommandListAppendSignalEvent: + +zeCommandListAppendSignalEvent +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendSignalEvent + :project: LevelZero + + +.. _zeCommandListAppendWaitOnEvents: + +zeCommandListAppendWaitOnEvents +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendWaitOnEvents + :project: LevelZero + + +.. _zeEventHostSignal: + +zeEventHostSignal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventHostSignal + :project: LevelZero + + +.. _zeEventHostSynchronize: + +zeEventHostSynchronize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventHostSynchronize + :project: LevelZero + + +.. _zeEventQueryStatus: + +zeEventQueryStatus +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventQueryStatus + :project: LevelZero + + +.. _zeCommandListAppendEventReset: + +zeCommandListAppendEventReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendEventReset + :project: LevelZero + + +.. _zeEventHostReset: + +zeEventHostReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventHostReset + :project: LevelZero + + +.. _zeEventQueryKernelTimestamp: + +zeEventQueryKernelTimestamp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventQueryKernelTimestamp + :project: LevelZero + + +.. _zeCommandListAppendQueryKernelTimestamps: + +zeCommandListAppendQueryKernelTimestamps +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendQueryKernelTimestamps + :project: LevelZero + + +.. _zeEventGetEventPool: + +zeEventGetEventPool +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventGetEventPool + :project: LevelZero + + +.. _zeEventGetSignalScope: + +zeEventGetSignalScope +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventGetSignalScope + :project: LevelZero + + +.. _zeEventGetWaitScope: + +zeEventGetWaitScope +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventGetWaitScope + :project: LevelZero + + +.. _zeEventPoolGetContextHandle: + +zeEventPoolGetContextHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolGetContextHandle + :project: LevelZero + + +.. _zeEventPoolGetFlags: + +zeEventPoolGetFlags +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventPoolGetFlags + :project: LevelZero + + + +Event Enums +------------------------------------------------------------------------------ + + +.. _ze-event-pool-flags-t: + +ze_event_pool_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_pool_flag_t + :project: LevelZero + + +.. _ze-event-scope-flags-t: + +ze_event_scope_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_scope_flag_t + :project: LevelZero + + +Event Structures +------------------------------------------------------------------------------ + +.. _ze-event-pool-desc-t: + +ze_event_pool_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_event_pool_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-event-desc-t: + +ze_event_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_event_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-timestamp-data-t: + +ze_kernel_timestamp_data_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_timestamp_data_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-timestamp-result-t: + +ze_kernel_timestamp_result_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_timestamp_result_t + :project: LevelZero + :members: + :undoc-members: + + + + +Fence +============================================================ +* Functions + + + * :ref:`zeFenceCreate` + * :ref:`zeFenceDestroy` + * :ref:`zeFenceHostSynchronize` + * :ref:`zeFenceQueryStatus` + * :ref:`zeFenceReset` + + +* Enumerations + + + * :ref:`ze-fence-flags-t` + + +* Structures + + + * :ref:`ze-fence-desc-t` + + +Fence Functions +------------------------------------------------------------------------------ + + +.. _zeFenceCreate: + +zeFenceCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFenceCreate + :project: LevelZero + + +.. _zeFenceDestroy: + +zeFenceDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFenceDestroy + :project: LevelZero + + +.. _zeFenceHostSynchronize: + +zeFenceHostSynchronize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFenceHostSynchronize + :project: LevelZero + + +.. _zeFenceQueryStatus: + +zeFenceQueryStatus +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFenceQueryStatus + :project: LevelZero + + +.. _zeFenceReset: + +zeFenceReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFenceReset + :project: LevelZero + + + +Fence Enums +------------------------------------------------------------------------------ + + +.. _ze-fence-flags-t: + +ze_fence_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_fence_flag_t + :project: LevelZero + + +Fence Structures +------------------------------------------------------------------------------ + +.. _ze-fence-desc-t: + +ze_fence_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_fence_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Image +============================================================ +* Functions + + + * :ref:`zeImageGetProperties` + * :ref:`zeImageCreate` + * :ref:`zeImageDestroy` + + +* Enumerations + + + * :ref:`ze-image-flags-t` + * :ref:`ze-image-type-t` + * :ref:`ze-image-format-layout-t` + * :ref:`ze-image-format-type-t` + * :ref:`ze-image-format-swizzle-t` + * :ref:`ze-image-sampler-filter-flags-t` + + +* Structures + + + * :ref:`ze-image-format-t` + * :ref:`ze-image-desc-t` + * :ref:`ze-image-properties-t` + + +Image Functions +------------------------------------------------------------------------------ + + +.. _zeImageGetProperties: + +zeImageGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageGetProperties + :project: LevelZero + + +.. _zeImageCreate: + +zeImageCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageCreate + :project: LevelZero + + +.. _zeImageDestroy: + +zeImageDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageDestroy + :project: LevelZero + + + +Image Enums +------------------------------------------------------------------------------ + + +.. _ze-image-flags-t: + +ze_image_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_flag_t + :project: LevelZero + + +.. _ze-image-type-t: + +ze_image_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_type_t + :project: LevelZero + + +.. _ze-image-format-layout-t: + +ze_image_format_layout_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_format_layout_t + :project: LevelZero + + +.. _ze-image-format-type-t: + +ze_image_format_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_format_type_t + :project: LevelZero + + +.. _ze-image-format-swizzle-t: + +ze_image_format_swizzle_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_format_swizzle_t + :project: LevelZero + + +.. _ze-image-sampler-filter-flags-t: + +ze_image_sampler_filter_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_sampler_filter_flag_t + :project: LevelZero + + +Image Structures +------------------------------------------------------------------------------ + +.. _ze-image-format-t: + +ze_image_format_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_format_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-image-desc-t: + +ze_image_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-image-properties-t: + +ze_image_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Memory +============================================================ +* Functions + + + * :ref:`zeMemAllocShared` + * :ref:`zeMemAllocDevice` + * :ref:`zeMemAllocHost` + * :ref:`zeMemFree` + * :ref:`zeMemGetAllocProperties` + * :ref:`zeMemGetAddressRange` + * :ref:`zeMemGetIpcHandle` + * :ref:`zeMemGetIpcHandleFromFileDescriptorExp` + * :ref:`zeMemGetFileDescriptorFromIpcHandleExp` + * :ref:`zeMemPutIpcHandle` + * :ref:`zeMemOpenIpcHandle` + * :ref:`zeMemCloseIpcHandle` + * :ref:`zeMemSetAtomicAccessAttributeExp` + * :ref:`zeMemGetAtomicAccessAttributeExp` + + +* Enumerations + + + * :ref:`ze-device-mem-alloc-flags-t` + * :ref:`ze-host-mem-alloc-flags-t` + * :ref:`ze-memory-type-t` + * :ref:`ze-ipc-memory-flags-t` + * :ref:`ze-memory-atomic-attr-exp-flags-t` + + +* Structures + + + * :ref:`ze-device-mem-alloc-desc-t` + * :ref:`ze-host-mem-alloc-desc-t` + * :ref:`ze-memory-allocation-properties-t` + * :ref:`ze-external-memory-export-desc-t` + * :ref:`ze-external-memory-import-fd-t` + * :ref:`ze-external-memory-export-fd-t` + * :ref:`ze-external-memory-import-win32-handle-t` + * :ref:`ze-external-memory-export-win32-handle-t` + + +Memory Functions +------------------------------------------------------------------------------ + + +.. _zeMemAllocShared: + +zeMemAllocShared +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemAllocShared + :project: LevelZero + + +.. _zeMemAllocDevice: + +zeMemAllocDevice +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemAllocDevice + :project: LevelZero + + +.. _zeMemAllocHost: + +zeMemAllocHost +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemAllocHost + :project: LevelZero + + +.. _zeMemFree: + +zeMemFree +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemFree + :project: LevelZero + + +.. _zeMemGetAllocProperties: + +zeMemGetAllocProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetAllocProperties + :project: LevelZero + + +.. _zeMemGetAddressRange: + +zeMemGetAddressRange +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetAddressRange + :project: LevelZero + + +.. _zeMemGetIpcHandle: + +zeMemGetIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetIpcHandle + :project: LevelZero + + +.. _zeMemGetIpcHandleFromFileDescriptorExp: + +zeMemGetIpcHandleFromFileDescriptorExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetIpcHandleFromFileDescriptorExp + :project: LevelZero + + +.. _zeMemGetFileDescriptorFromIpcHandleExp: + +zeMemGetFileDescriptorFromIpcHandleExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetFileDescriptorFromIpcHandleExp + :project: LevelZero + + +.. _zeMemPutIpcHandle: + +zeMemPutIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemPutIpcHandle + :project: LevelZero + + +.. _zeMemOpenIpcHandle: + +zeMemOpenIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemOpenIpcHandle + :project: LevelZero + + +.. _zeMemCloseIpcHandle: + +zeMemCloseIpcHandle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemCloseIpcHandle + :project: LevelZero + + +.. _zeMemSetAtomicAccessAttributeExp: + +zeMemSetAtomicAccessAttributeExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemSetAtomicAccessAttributeExp + :project: LevelZero + + +.. _zeMemGetAtomicAccessAttributeExp: + +zeMemGetAtomicAccessAttributeExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetAtomicAccessAttributeExp + :project: LevelZero + + + +Memory Enums +------------------------------------------------------------------------------ + + +.. _ze-device-mem-alloc-flags-t: + +ze_device_mem_alloc_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_mem_alloc_flag_t + :project: LevelZero + + +.. _ze-host-mem-alloc-flags-t: + +ze_host_mem_alloc_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_host_mem_alloc_flag_t + :project: LevelZero + + +.. _ze-memory-type-t: + +ze_memory_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_type_t + :project: LevelZero + + +.. _ze-ipc-memory-flags-t: + +ze_ipc_memory_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_ipc_memory_flag_t + :project: LevelZero + + +.. _ze-memory-atomic-attr-exp-flags-t: + +ze_memory_atomic_attr_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_atomic_attr_exp_flag_t + :project: LevelZero + + +Memory Structures +------------------------------------------------------------------------------ + +.. _ze-device-mem-alloc-desc-t: + +ze_device_mem_alloc_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_mem_alloc_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-host-mem-alloc-desc-t: + +ze_host_mem_alloc_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_host_mem_alloc_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-memory-allocation-properties-t: + +ze_memory_allocation_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_memory_allocation_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-external-memory-export-desc-t: + +ze_external_memory_export_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_external_memory_export_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-external-memory-import-fd-t: + +ze_external_memory_import_fd_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_external_memory_import_fd_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-external-memory-export-fd-t: + +ze_external_memory_export_fd_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_external_memory_export_fd_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-external-memory-import-win32-handle-t: + +ze_external_memory_import_win32_handle_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_external_memory_import_win32_handle_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-external-memory-export-win32-handle-t: + +ze_external_memory_export_win32_handle_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_external_memory_export_win32_handle_t + :project: LevelZero + :members: + :undoc-members: + + + + +Module +============================================================ +* Functions + + + * :ref:`zeModuleCreate` + * :ref:`zeModuleDestroy` + * :ref:`zeModuleDynamicLink` + * :ref:`zeModuleBuildLogDestroy` + * :ref:`zeModuleBuildLogGetString` + * :ref:`zeModuleGetNativeBinary` + * :ref:`zeModuleGetGlobalPointer` + * :ref:`zeModuleGetKernelNames` + * :ref:`zeModuleGetProperties` + * :ref:`zeKernelCreate` + * :ref:`zeKernelDestroy` + * :ref:`zeModuleGetFunctionPointer` + * :ref:`zeKernelSetGroupSize` + * :ref:`zeKernelSuggestGroupSize` + * :ref:`zeKernelSuggestMaxCooperativeGroupCount` + * :ref:`zeKernelSetArgumentValue` + * :ref:`zeKernelSetIndirectAccess` + * :ref:`zeKernelGetIndirectAccess` + * :ref:`zeKernelGetSourceAttributes` + * :ref:`zeKernelSetCacheConfig` + * :ref:`zeKernelGetProperties` + * :ref:`zeKernelGetName` + * :ref:`zeCommandListAppendLaunchKernel` + * :ref:`zeCommandListAppendLaunchCooperativeKernel` + * :ref:`zeCommandListAppendLaunchKernelIndirect` + * :ref:`zeCommandListAppendLaunchMultipleKernelsIndirect` + + +* Enumerations + + + * :ref:`ze-module-format-t` + * :ref:`ze-module-property-flags-t` + * :ref:`ze-kernel-flags-t` + * :ref:`ze-kernel-indirect-access-flags-t` + * :ref:`ze-cache-config-flags-t` + + +* Structures + + + * :ref:`ze-module-constants-t` + * :ref:`ze-module-desc-t` + * :ref:`ze-module-properties-t` + * :ref:`ze-kernel-desc-t` + * :ref:`ze-kernel-uuid-t` + * :ref:`ze-kernel-properties-t` + * :ref:`ze-kernel-preferred-group-size-properties-t` + * :ref:`ze-group-count-t` + + +Module Functions +------------------------------------------------------------------------------ + + +.. _zeModuleCreate: + +zeModuleCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleCreate + :project: LevelZero + + +.. _zeModuleDestroy: + +zeModuleDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleDestroy + :project: LevelZero + + +.. _zeModuleDynamicLink: + +zeModuleDynamicLink +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleDynamicLink + :project: LevelZero + + +.. _zeModuleBuildLogDestroy: + +zeModuleBuildLogDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleBuildLogDestroy + :project: LevelZero + + +.. _zeModuleBuildLogGetString: + +zeModuleBuildLogGetString +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleBuildLogGetString + :project: LevelZero + + +.. _zeModuleGetNativeBinary: + +zeModuleGetNativeBinary +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleGetNativeBinary + :project: LevelZero + + +.. _zeModuleGetGlobalPointer: + +zeModuleGetGlobalPointer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleGetGlobalPointer + :project: LevelZero + + +.. _zeModuleGetKernelNames: + +zeModuleGetKernelNames +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleGetKernelNames + :project: LevelZero + + +.. _zeModuleGetProperties: + +zeModuleGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleGetProperties + :project: LevelZero + + +.. _zeKernelCreate: + +zeKernelCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelCreate + :project: LevelZero + + +.. _zeKernelDestroy: + +zeKernelDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelDestroy + :project: LevelZero + + +.. _zeModuleGetFunctionPointer: + +zeModuleGetFunctionPointer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleGetFunctionPointer + :project: LevelZero + + +.. _zeKernelSetGroupSize: + +zeKernelSetGroupSize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSetGroupSize + :project: LevelZero + + +.. _zeKernelSuggestGroupSize: + +zeKernelSuggestGroupSize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSuggestGroupSize + :project: LevelZero + + +.. _zeKernelSuggestMaxCooperativeGroupCount: + +zeKernelSuggestMaxCooperativeGroupCount +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSuggestMaxCooperativeGroupCount + :project: LevelZero + + +.. _zeKernelSetArgumentValue: + +zeKernelSetArgumentValue +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSetArgumentValue + :project: LevelZero + + +.. _zeKernelSetIndirectAccess: + +zeKernelSetIndirectAccess +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSetIndirectAccess + :project: LevelZero + + +.. _zeKernelGetIndirectAccess: + +zeKernelGetIndirectAccess +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelGetIndirectAccess + :project: LevelZero + + +.. _zeKernelGetSourceAttributes: + +zeKernelGetSourceAttributes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelGetSourceAttributes + :project: LevelZero + + +.. _zeKernelSetCacheConfig: + +zeKernelSetCacheConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSetCacheConfig + :project: LevelZero + + +.. _zeKernelGetProperties: + +zeKernelGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelGetProperties + :project: LevelZero + + +.. _zeKernelGetName: + +zeKernelGetName +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelGetName + :project: LevelZero + + +.. _zeCommandListAppendLaunchKernel: + +zeCommandListAppendLaunchKernel +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendLaunchKernel + :project: LevelZero + + +.. _zeCommandListAppendLaunchCooperativeKernel: + +zeCommandListAppendLaunchCooperativeKernel +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendLaunchCooperativeKernel + :project: LevelZero + + +.. _zeCommandListAppendLaunchKernelIndirect: + +zeCommandListAppendLaunchKernelIndirect +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendLaunchKernelIndirect + :project: LevelZero + + +.. _zeCommandListAppendLaunchMultipleKernelsIndirect: + +zeCommandListAppendLaunchMultipleKernelsIndirect +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendLaunchMultipleKernelsIndirect + :project: LevelZero + + + +Module Enums +------------------------------------------------------------------------------ + + +.. _ze-module-format-t: + +ze_module_format_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_module_format_t + :project: LevelZero + + +.. _ze-module-property-flags-t: + +ze_module_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_module_property_flag_t + :project: LevelZero + + +.. _ze-kernel-flags-t: + +ze_kernel_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_kernel_flag_t + :project: LevelZero + + +.. _ze-kernel-indirect-access-flags-t: + +ze_kernel_indirect_access_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_kernel_indirect_access_flag_t + :project: LevelZero + + +.. _ze-cache-config-flags-t: + +ze_cache_config_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_cache_config_flag_t + :project: LevelZero + + +Module Structures +------------------------------------------------------------------------------ + +.. _ze-module-constants-t: + +ze_module_constants_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_module_constants_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-module-desc-t: + +ze_module_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_module_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-module-properties-t: + +ze_module_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_module_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-desc-t: + +ze_kernel_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-uuid-t: + +ze_kernel_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-properties-t: + +ze_kernel_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-kernel-preferred-group-size-properties-t: + +ze_kernel_preferred_group_size_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_preferred_group_size_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-group-count-t: + +ze_group_count_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_group_count_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Program +============================================================ +* Enumerations + + + * :ref:`ze-module-program-exp-version-t` + + +* Structures + + + * :ref:`ze-module-program-exp-desc-t` + + + + +Program Enums +------------------------------------------------------------------------------ + + +.. _ze-module-program-exp-version-t: + +ze_module_program_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_module_program_exp_version_t + :project: LevelZero + + +Program Structures +------------------------------------------------------------------------------ + +.. _ze-module-program-exp-desc-t: + +ze_module_program_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_module_program_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Raytracing +============================================================ +* Enumerations + + + * :ref:`ze-raytracing-ext-version-t` + * :ref:`ze-device-raytracing-ext-flags-t` + * :ref:`ze-raytracing-mem-alloc-ext-flags-t` + + +* Structures + + + * :ref:`ze-device-raytracing-ext-properties-t` + * :ref:`ze-raytracing-mem-alloc-ext-desc-t` + + + + +Raytracing Enums +------------------------------------------------------------------------------ + + +.. _ze-raytracing-ext-version-t: + +ze_raytracing_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_raytracing_ext_version_t + :project: LevelZero + + +.. _ze-device-raytracing-ext-flags-t: + +ze_device_raytracing_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_raytracing_ext_flag_t + :project: LevelZero + + +.. _ze-raytracing-mem-alloc-ext-flags-t: + +ze_raytracing_mem_alloc_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_raytracing_mem_alloc_ext_flag_t + :project: LevelZero + + +Raytracing Structures +------------------------------------------------------------------------------ + +.. _ze-device-raytracing-ext-properties-t: + +ze_device_raytracing_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_raytracing_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-raytracing-mem-alloc-ext-desc-t: + +ze_raytracing_mem_alloc_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_raytracing_mem_alloc_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Residency +============================================================ +* Functions + + + * :ref:`zeContextMakeMemoryResident` + * :ref:`zeContextEvictMemory` + * :ref:`zeContextMakeImageResident` + * :ref:`zeContextEvictImage` + + + + + + +Residency Functions +------------------------------------------------------------------------------ + + +.. _zeContextMakeMemoryResident: + +zeContextMakeMemoryResident +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextMakeMemoryResident + :project: LevelZero + + +.. _zeContextEvictMemory: + +zeContextEvictMemory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextEvictMemory + :project: LevelZero + + +.. _zeContextMakeImageResident: + +zeContextMakeImageResident +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextMakeImageResident + :project: LevelZero + + +.. _zeContextEvictImage: + +zeContextEvictImage +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeContextEvictImage + :project: LevelZero + + + + + + + +Sampler +============================================================ +* Functions + + + * :ref:`zeSamplerCreate` + * :ref:`zeSamplerDestroy` + + +* Enumerations + + + * :ref:`ze-sampler-address-mode-t` + * :ref:`ze-sampler-filter-mode-t` + + +* Structures + + + * :ref:`ze-sampler-desc-t` + + +Sampler Functions +------------------------------------------------------------------------------ + + +.. _zeSamplerCreate: + +zeSamplerCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeSamplerCreate + :project: LevelZero + + +.. _zeSamplerDestroy: + +zeSamplerDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeSamplerDestroy + :project: LevelZero + + + +Sampler Enums +------------------------------------------------------------------------------ + + +.. _ze-sampler-address-mode-t: + +ze_sampler_address_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_sampler_address_mode_t + :project: LevelZero + + +.. _ze-sampler-filter-mode-t: + +ze_sampler_filter_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_sampler_filter_mode_t + :project: LevelZero + + +Sampler Structures +------------------------------------------------------------------------------ + +.. _ze-sampler-desc-t: + +ze_sampler_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_sampler_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Virtual +============================================================ +* Functions + + + * :ref:`zeVirtualMemReserve` + * :ref:`zeVirtualMemFree` + * :ref:`zeVirtualMemQueryPageSize` + * :ref:`zePhysicalMemCreate` + * :ref:`zePhysicalMemDestroy` + * :ref:`zeVirtualMemMap` + * :ref:`zeVirtualMemUnmap` + * :ref:`zeVirtualMemSetAccessAttribute` + * :ref:`zeVirtualMemGetAccessAttribute` + + +* Enumerations + + + * :ref:`ze-memory-access-attribute-t` + * :ref:`ze-physical-mem-flags-t` + + +* Structures + + + * :ref:`ze-physical-mem-desc-t` + + +Virtual Functions +------------------------------------------------------------------------------ + + +.. _zeVirtualMemReserve: + +zeVirtualMemReserve +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemReserve + :project: LevelZero + + +.. _zeVirtualMemFree: + +zeVirtualMemFree +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemFree + :project: LevelZero + + +.. _zeVirtualMemQueryPageSize: + +zeVirtualMemQueryPageSize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemQueryPageSize + :project: LevelZero + + +.. _zePhysicalMemCreate: + +zePhysicalMemCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zePhysicalMemCreate + :project: LevelZero + + +.. _zePhysicalMemDestroy: + +zePhysicalMemDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zePhysicalMemDestroy + :project: LevelZero + + +.. _zeVirtualMemMap: + +zeVirtualMemMap +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemMap + :project: LevelZero + + +.. _zeVirtualMemUnmap: + +zeVirtualMemUnmap +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemUnmap + :project: LevelZero + + +.. _zeVirtualMemSetAccessAttribute: + +zeVirtualMemSetAccessAttribute +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemSetAccessAttribute + :project: LevelZero + + +.. _zeVirtualMemGetAccessAttribute: + +zeVirtualMemGetAccessAttribute +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeVirtualMemGetAccessAttribute + :project: LevelZero + + + +Virtual Enums +------------------------------------------------------------------------------ + + +.. _ze-memory-access-attribute-t: + +ze_memory_access_attribute_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_access_attribute_t + :project: LevelZero + + +.. _ze-physical-mem-flags-t: + +ze_physical_mem_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_physical_mem_flag_t + :project: LevelZero + + +Virtual Structures +------------------------------------------------------------------------------ + +.. _ze-physical-mem-desc-t: + +ze_physical_mem_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_physical_mem_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Floatatomics +============================================================ +* Enumerations + + + * :ref:`ze-float-atomics-ext-version-t` + * :ref:`ze-device-fp-atomic-ext-flags-t` + + +* Structures + + + * :ref:`ze-float-atomic-ext-properties-t` + + + + +Floatatomics Enums +------------------------------------------------------------------------------ + + +.. _ze-float-atomics-ext-version-t: + +ze_float_atomics_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_float_atomics_ext_version_t + :project: LevelZero + + +.. _ze-device-fp-atomic-ext-flags-t: + +ze_device_fp_atomic_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_fp_atomic_ext_flag_t + :project: LevelZero + + +Floatatomics Structures +------------------------------------------------------------------------------ + +.. _ze-float-atomic-ext-properties-t: + +ze_float_atomic_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_float_atomic_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Globaloffset +============================================================ +* Functions + + + * :ref:`zeKernelSetGlobalOffsetExp` + + +* Enumerations + + + * :ref:`ze-global-offset-exp-version-t` + + + + +Globaloffset Functions +------------------------------------------------------------------------------ + + +.. _zeKernelSetGlobalOffsetExp: + +zeKernelSetGlobalOffsetExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSetGlobalOffsetExp + :project: LevelZero + + + +Globaloffset Enums +------------------------------------------------------------------------------ + + +.. _ze-global-offset-exp-version-t: + +ze_global_offset_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_global_offset_exp_version_t + :project: LevelZero + + + + + +Mutablecommandlist +============================================================ +* Functions + + + * :ref:`zeCommandListGetNextCommandIdExp` + * :ref:`zeCommandListGetNextCommandIdWithKernelsExp` + * :ref:`zeCommandListUpdateMutableCommandsExp` + * :ref:`zeCommandListUpdateMutableCommandSignalEventExp` + * :ref:`zeCommandListUpdateMutableCommandWaitEventsExp` + * :ref:`zeCommandListUpdateMutableCommandKernelsExp` + + +* Enumerations + + + * :ref:`ze-mutable-command-list-exp-version-t` + * :ref:`ze-mutable-command-exp-flags-t` + * :ref:`ze-mutable-command-list-exp-flags-t` + + +* Structures + + + * :ref:`ze-mutable-command-id-exp-desc-t` + * :ref:`ze-mutable-command-list-exp-properties-t` + * :ref:`ze-mutable-command-list-exp-desc-t` + * :ref:`ze-mutable-commands-exp-desc-t` + * :ref:`ze-mutable-kernel-argument-exp-desc-t` + * :ref:`ze-mutable-group-count-exp-desc-t` + * :ref:`ze-mutable-group-size-exp-desc-t` + * :ref:`ze-mutable-global-offset-exp-desc-t` + * :ref:`ze-mutable-graph-argument-exp-desc-t` + + +Mutablecommandlist Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListGetNextCommandIdExp: + +zeCommandListGetNextCommandIdExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListGetNextCommandIdExp + :project: LevelZero + + +.. _zeCommandListGetNextCommandIdWithKernelsExp: + +zeCommandListGetNextCommandIdWithKernelsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListGetNextCommandIdWithKernelsExp + :project: LevelZero + + +.. _zeCommandListUpdateMutableCommandsExp: + +zeCommandListUpdateMutableCommandsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListUpdateMutableCommandsExp + :project: LevelZero + + +.. _zeCommandListUpdateMutableCommandSignalEventExp: + +zeCommandListUpdateMutableCommandSignalEventExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListUpdateMutableCommandSignalEventExp + :project: LevelZero + + +.. _zeCommandListUpdateMutableCommandWaitEventsExp: + +zeCommandListUpdateMutableCommandWaitEventsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListUpdateMutableCommandWaitEventsExp + :project: LevelZero + + +.. _zeCommandListUpdateMutableCommandKernelsExp: + +zeCommandListUpdateMutableCommandKernelsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListUpdateMutableCommandKernelsExp + :project: LevelZero + + + +Mutablecommandlist Enums +------------------------------------------------------------------------------ + + +.. _ze-mutable-command-list-exp-version-t: + +ze_mutable_command_list_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_mutable_command_list_exp_version_t + :project: LevelZero + + +.. _ze-mutable-command-exp-flags-t: + +ze_mutable_command_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_mutable_command_exp_flag_t + :project: LevelZero + + +.. _ze-mutable-command-list-exp-flags-t: + +ze_mutable_command_list_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_mutable_command_list_exp_flag_t + :project: LevelZero + + +Mutablecommandlist Structures +------------------------------------------------------------------------------ + +.. _ze-mutable-command-id-exp-desc-t: + +ze_mutable_command_id_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_command_id_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-command-list-exp-properties-t: + +ze_mutable_command_list_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_command_list_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-command-list-exp-desc-t: + +ze_mutable_command_list_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_command_list_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-commands-exp-desc-t: + +ze_mutable_commands_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_commands_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-kernel-argument-exp-desc-t: + +ze_mutable_kernel_argument_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_kernel_argument_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-group-count-exp-desc-t: + +ze_mutable_group_count_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_group_count_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-group-size-exp-desc-t: + +ze_mutable_group_size_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_group_size_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-global-offset-exp-desc-t: + +ze_mutable_global_offset_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_global_offset_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-mutable-graph-argument-exp-desc-t: + +ze_mutable_graph_argument_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_mutable_graph_argument_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Relaxedalloclimits +============================================================ +* Enumerations + + + * :ref:`ze-relaxed-allocation-limits-exp-version-t` + * :ref:`ze-relaxed-allocation-limits-exp-flags-t` + + +* Structures + + + * :ref:`ze-relaxed-allocation-limits-exp-desc-t` + + + + +Relaxedalloclimits Enums +------------------------------------------------------------------------------ + + +.. _ze-relaxed-allocation-limits-exp-version-t: + +ze_relaxed_allocation_limits_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_relaxed_allocation_limits_exp_version_t + :project: LevelZero + + +.. _ze-relaxed-allocation-limits-exp-flags-t: + +ze_relaxed_allocation_limits_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_relaxed_allocation_limits_exp_flag_t + :project: LevelZero + + +Relaxedalloclimits Structures +------------------------------------------------------------------------------ + +.. _ze-relaxed-allocation-limits-exp-desc-t: + +ze_relaxed_allocation_limits_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_relaxed_allocation_limits_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Cachereservation +============================================================ +* Functions + + + * :ref:`zeDeviceReserveCacheExt` + * :ref:`zeDeviceSetCacheAdviceExt` + + +* Enumerations + + + * :ref:`ze-cache-reservation-ext-version-t` + * :ref:`ze-cache-ext-region-t` + + +* Structures + + + * :ref:`ze-cache-reservation-ext-desc-t` + + +Cachereservation Functions +------------------------------------------------------------------------------ + + +.. _zeDeviceReserveCacheExt: + +zeDeviceReserveCacheExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceReserveCacheExt + :project: LevelZero + + +.. _zeDeviceSetCacheAdviceExt: + +zeDeviceSetCacheAdviceExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceSetCacheAdviceExt + :project: LevelZero + + + +Cachereservation Enums +------------------------------------------------------------------------------ + + +.. _ze-cache-reservation-ext-version-t: + +ze_cache_reservation_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_cache_reservation_ext_version_t + :project: LevelZero + + +.. _ze-cache-ext-region-t: + +ze_cache_ext_region_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_cache_ext_region_t + :project: LevelZero + + +Cachereservation Structures +------------------------------------------------------------------------------ + +.. _ze-cache-reservation-ext-desc-t: + +ze_cache_reservation_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_cache_reservation_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Eventquerytimestamps +============================================================ +* Functions + + + * :ref:`zeEventQueryTimestampsExp` + + +* Enumerations + + + * :ref:`ze-event-query-timestamps-exp-version-t` + + + + +Eventquerytimestamps Functions +------------------------------------------------------------------------------ + + +.. _zeEventQueryTimestampsExp: + +zeEventQueryTimestampsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventQueryTimestampsExp + :project: LevelZero + + + +Eventquerytimestamps Enums +------------------------------------------------------------------------------ + + +.. _ze-event-query-timestamps-exp-version-t: + +ze_event_query_timestamps_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_query_timestamps_exp_version_t + :project: LevelZero + + + + + +Imagememoryproperties +============================================================ +* Functions + + + * :ref:`zeImageGetMemoryPropertiesExp` + + +* Enumerations + + + * :ref:`ze-image-memory-properties-exp-version-t` + + +* Structures + + + * :ref:`ze-image-memory-properties-exp-t` + + +Imagememoryproperties Functions +------------------------------------------------------------------------------ + + +.. _zeImageGetMemoryPropertiesExp: + +zeImageGetMemoryPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageGetMemoryPropertiesExp + :project: LevelZero + + + +Imagememoryproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-image-memory-properties-exp-version-t: + +ze_image_memory_properties_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_memory_properties_exp_version_t + :project: LevelZero + + +Imagememoryproperties Structures +------------------------------------------------------------------------------ + +.. _ze-image-memory-properties-exp-t: + +ze_image_memory_properties_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_memory_properties_exp_t + :project: LevelZero + :members: + :undoc-members: + + + + +Imageview +============================================================ +* Functions + + + * :ref:`zeImageViewCreateExt` + * :ref:`zeImageViewCreateExp` + + +* Enumerations + + + * :ref:`ze-image-view-ext-version-t` + * :ref:`ze-image-view-exp-version-t` + + + + +Imageview Functions +------------------------------------------------------------------------------ + + +.. _zeImageViewCreateExt: + +zeImageViewCreateExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageViewCreateExt + :project: LevelZero + + +.. _zeImageViewCreateExp: + +zeImageViewCreateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageViewCreateExp + :project: LevelZero + + + +Imageview Enums +------------------------------------------------------------------------------ + + +.. _ze-image-view-ext-version-t: + +ze_image_view_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_view_ext_version_t + :project: LevelZero + + +.. _ze-image-view-exp-version-t: + +ze_image_view_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_view_exp_version_t + :project: LevelZero + + + + + + + +Imageviewplanar +============================================================ +* Enumerations + + + * :ref:`ze-image-view-planar-ext-version-t` + * :ref:`ze-image-view-planar-exp-version-t` + + +* Structures + + + * :ref:`ze-image-view-planar-ext-desc-t` + * :ref:`ze-image-view-planar-exp-desc-t` + + + + +Imageviewplanar Enums +------------------------------------------------------------------------------ + + +.. _ze-image-view-planar-ext-version-t: + +ze_image_view_planar_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_view_planar_ext_version_t + :project: LevelZero + + +.. _ze-image-view-planar-exp-version-t: + +ze_image_view_planar_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_view_planar_exp_version_t + :project: LevelZero + + +Imageviewplanar Structures +------------------------------------------------------------------------------ + +.. _ze-image-view-planar-ext-desc-t: + +ze_image_view_planar_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_view_planar_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-image-view-planar-exp-desc-t: + +ze_image_view_planar_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_view_planar_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Kernelschedulinghints +============================================================ +* Functions + + + * :ref:`zeKernelSchedulingHintExp` + + +* Enumerations + + + * :ref:`ze-scheduling-hints-exp-version-t` + * :ref:`ze-scheduling-hint-exp-flags-t` + + +* Structures + + + * :ref:`ze-scheduling-hint-exp-properties-t` + * :ref:`ze-scheduling-hint-exp-desc-t` + + +Kernelschedulinghints Functions +------------------------------------------------------------------------------ + + +.. _zeKernelSchedulingHintExp: + +zeKernelSchedulingHintExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeKernelSchedulingHintExp + :project: LevelZero + + + +Kernelschedulinghints Enums +------------------------------------------------------------------------------ + + +.. _ze-scheduling-hints-exp-version-t: + +ze_scheduling_hints_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_scheduling_hints_exp_version_t + :project: LevelZero + + +.. _ze-scheduling-hint-exp-flags-t: + +ze_scheduling_hint_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_scheduling_hint_exp_flag_t + :project: LevelZero + + +Kernelschedulinghints Structures +------------------------------------------------------------------------------ + +.. _ze-scheduling-hint-exp-properties-t: + +ze_scheduling_hint_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_scheduling_hint_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-scheduling-hint-exp-desc-t: + +ze_scheduling_hint_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_scheduling_hint_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Linkonceodr +============================================================ +* Enumerations + + + * :ref:`ze-linkonce-odr-ext-version-t` + + + + + + +Linkonceodr Enums +------------------------------------------------------------------------------ + + +.. _ze-linkonce-odr-ext-version-t: + +ze_linkonce_odr_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_linkonce_odr_ext_version_t + :project: LevelZero + + + + + + + +Powersavinghint +============================================================ +* Enumerations + + + * :ref:`ze-power-saving-hint-exp-version-t` + * :ref:`ze-power-saving-hint-type-t` + + +* Structures + + + * :ref:`ze-context-power-saving-hint-exp-desc-t` + + + + +Powersavinghint Enums +------------------------------------------------------------------------------ + + +.. _ze-power-saving-hint-exp-version-t: + +ze_power_saving_hint_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_power_saving_hint_exp_version_t + :project: LevelZero + + +.. _ze-power-saving-hint-type-t: + +ze_power_saving_hint_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_power_saving_hint_type_t + :project: LevelZero + + +Powersavinghint Structures +------------------------------------------------------------------------------ + +.. _ze-context-power-saving-hint-exp-desc-t: + +ze_context_power_saving_hint_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_context_power_saving_hint_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Subgroups +============================================================ +* Enumerations + + + * :ref:`ze-subgroup-ext-version-t` + + + + + + +Subgroups Enums +------------------------------------------------------------------------------ + + +.. _ze-subgroup-ext-version-t: + +ze_subgroup_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_subgroup_ext_version_t + :project: LevelZero + + + + + + + +Eucount +============================================================ +* Enumerations + + + * :ref:`ze-eu-count-ext-version-t` + + +* Structures + + + * :ref:`ze-eu-count-ext-t` + + + + +Eucount Enums +------------------------------------------------------------------------------ + + +.. _ze-eu-count-ext-version-t: + +ze_eu_count_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_eu_count_ext_version_t + :project: LevelZero + + +Eucount Structures +------------------------------------------------------------------------------ + +.. _ze-eu-count-ext-t: + +ze_eu_count_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_eu_count_ext_t + :project: LevelZero + :members: + :undoc-members: + + + + +Pciproperties +============================================================ +* Functions + + + * :ref:`zeDevicePciGetPropertiesExt` + + +* Enumerations + + + * :ref:`ze-pci-properties-ext-version-t` + + +* Structures + + + * :ref:`ze-pci-address-ext-t` + * :ref:`ze-pci-speed-ext-t` + * :ref:`ze-pci-ext-properties-t` + + +Pciproperties Functions +------------------------------------------------------------------------------ + + +.. _zeDevicePciGetPropertiesExt: + +zeDevicePciGetPropertiesExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDevicePciGetPropertiesExt + :project: LevelZero + + + +Pciproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-pci-properties-ext-version-t: + +ze_pci_properties_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_pci_properties_ext_version_t + :project: LevelZero + + +Pciproperties Structures +------------------------------------------------------------------------------ + +.. _ze-pci-address-ext-t: + +ze_pci_address_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_pci_address_ext_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-pci-speed-ext-t: + +ze_pci_speed_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_pci_speed_ext_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-pci-ext-properties-t: + +ze_pci_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_pci_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Srgb +============================================================ +* Enumerations + + + * :ref:`ze-srgb-ext-version-t` + + +* Structures + + + * :ref:`ze-srgb-ext-desc-t` + + + + +Srgb Enums +------------------------------------------------------------------------------ + + +.. _ze-srgb-ext-version-t: + +ze_srgb_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_srgb_ext_version_t + :project: LevelZero + + +Srgb Structures +------------------------------------------------------------------------------ + +.. _ze-srgb-ext-desc-t: + +ze_srgb_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_srgb_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Imagecopy +============================================================ +* Functions + + + * :ref:`zeCommandListAppendImageCopyToMemoryExt` + * :ref:`zeCommandListAppendImageCopyFromMemoryExt` + + +* Enumerations + + + * :ref:`ze-image-copy-ext-version-t` + + + + +Imagecopy Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListAppendImageCopyToMemoryExt: + +zeCommandListAppendImageCopyToMemoryExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopyToMemoryExt + :project: LevelZero + + +.. _zeCommandListAppendImageCopyFromMemoryExt: + +zeCommandListAppendImageCopyFromMemoryExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListAppendImageCopyFromMemoryExt + :project: LevelZero + + + +Imagecopy Enums +------------------------------------------------------------------------------ + + +.. _ze-image-copy-ext-version-t: + +ze_image_copy_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_copy_ext_version_t + :project: LevelZero + + + + + +Imagequeryallocproperties +============================================================ +* Functions + + + * :ref:`zeImageGetAllocPropertiesExt` + + +* Enumerations + + + * :ref:`ze-image-query-alloc-properties-ext-version-t` + + +* Structures + + + * :ref:`ze-image-allocation-ext-properties-t` + + +Imagequeryallocproperties Functions +------------------------------------------------------------------------------ + + +.. _zeImageGetAllocPropertiesExt: + +zeImageGetAllocPropertiesExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageGetAllocPropertiesExt + :project: LevelZero + + + +Imagequeryallocproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-image-query-alloc-properties-ext-version-t: + +ze_image_query_alloc_properties_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_query_alloc_properties_ext_version_t + :project: LevelZero + + +Imagequeryallocproperties Structures +------------------------------------------------------------------------------ + +.. _ze-image-allocation-ext-properties-t: + +ze_image_allocation_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_allocation_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Linkageinspection +============================================================ +* Functions + + + * :ref:`zeModuleInspectLinkageExt` + + +* Enumerations + + + * :ref:`ze-linkage-inspection-ext-version-t` + * :ref:`ze-linkage-inspection-ext-flags-t` + + +* Structures + + + * :ref:`ze-linkage-inspection-ext-desc-t` + + +Linkageinspection Functions +------------------------------------------------------------------------------ + + +.. _zeModuleInspectLinkageExt: + +zeModuleInspectLinkageExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeModuleInspectLinkageExt + :project: LevelZero + + + +Linkageinspection Enums +------------------------------------------------------------------------------ + + +.. _ze-linkage-inspection-ext-version-t: + +ze_linkage_inspection_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_linkage_inspection_ext_version_t + :project: LevelZero + + +.. _ze-linkage-inspection-ext-flags-t: + +ze_linkage_inspection_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_linkage_inspection_ext_flag_t + :project: LevelZero + + +Linkageinspection Structures +------------------------------------------------------------------------------ + +.. _ze-linkage-inspection-ext-desc-t: + +ze_linkage_inspection_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_linkage_inspection_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Memorycompressionhints +============================================================ +* Enumerations + + + * :ref:`ze-memory-compression-hints-ext-version-t` + * :ref:`ze-memory-compression-hints-ext-flags-t` + + +* Structures + + + * :ref:`ze-memory-compression-hints-ext-desc-t` + + + + +Memorycompressionhints Enums +------------------------------------------------------------------------------ + + +.. _ze-memory-compression-hints-ext-version-t: + +ze_memory_compression_hints_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_compression_hints_ext_version_t + :project: LevelZero + + +.. _ze-memory-compression-hints-ext-flags-t: + +ze_memory_compression_hints_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_compression_hints_ext_flag_t + :project: LevelZero + + +Memorycompressionhints Structures +------------------------------------------------------------------------------ + +.. _ze-memory-compression-hints-ext-desc-t: + +ze_memory_compression_hints_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_memory_compression_hints_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Memoryfreepolicies +============================================================ +* Functions + + + * :ref:`zeMemFreeExt` + + +* Enumerations + + + * :ref:`ze-memory-free-policies-ext-version-t` + * :ref:`ze-driver-memory-free-policy-ext-flags-t` + + +* Structures + + + * :ref:`ze-driver-memory-free-ext-properties-t` + * :ref:`ze-memory-free-ext-desc-t` + + +Memoryfreepolicies Functions +------------------------------------------------------------------------------ + + +.. _zeMemFreeExt: + +zeMemFreeExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemFreeExt + :project: LevelZero + + + +Memoryfreepolicies Enums +------------------------------------------------------------------------------ + + +.. _ze-memory-free-policies-ext-version-t: + +ze_memory_free_policies_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_memory_free_policies_ext_version_t + :project: LevelZero + + +.. _ze-driver-memory-free-policy-ext-flags-t: + +ze_driver_memory_free_policy_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_driver_memory_free_policy_ext_flag_t + :project: LevelZero + + +Memoryfreepolicies Structures +------------------------------------------------------------------------------ + +.. _ze-driver-memory-free-ext-properties-t: + +ze_driver_memory_free_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_driver_memory_free_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-memory-free-ext-desc-t: + +ze_memory_free_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_memory_free_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + + + +Bandwidth +============================================================ +* Structures + + + * :ref:`ze-device-p2p-bandwidth-exp-properties-t` + * :ref:`ze-copy-bandwidth-exp-properties-t` + + + + + +Bandwidth Structures +------------------------------------------------------------------------------ + +.. _ze-device-p2p-bandwidth-exp-properties-t: + +ze_device_p2p_bandwidth_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_p2p_bandwidth_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-copy-bandwidth-exp-properties-t: + +ze_copy_bandwidth_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_copy_bandwidth_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Deviceluid +============================================================ +* Enumerations + + + * :ref:`ze-device-luid-ext-version-t` + + +* Structures + + + * :ref:`ze-device-luid-ext-t` + * :ref:`ze-device-luid-ext-properties-t` + + + + +Deviceluid Enums +------------------------------------------------------------------------------ + + +.. _ze-device-luid-ext-version-t: + +ze_device_luid_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_luid_ext_version_t + :project: LevelZero + + +Deviceluid Structures +------------------------------------------------------------------------------ + +.. _ze-device-luid-ext-t: + +ze_device_luid_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_luid_ext_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-luid-ext-properties-t: + +ze_device_luid_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_luid_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Fabric +============================================================ +* Functions + + + * :ref:`zeFabricVertexGetExp` + * :ref:`zeFabricVertexGetSubVerticesExp` + * :ref:`zeFabricVertexGetPropertiesExp` + * :ref:`zeFabricVertexGetDeviceExp` + * :ref:`zeDeviceGetFabricVertexExp` + * :ref:`zeFabricEdgeGetExp` + * :ref:`zeFabricEdgeGetVerticesExp` + * :ref:`zeFabricEdgeGetPropertiesExp` + + +* Enumerations + + + * :ref:`ze-fabric-vertex-exp-type-t` + * :ref:`ze-fabric-edge-exp-duplexity-t` + + +* Structures + + + * :ref:`ze-fabric-vertex-pci-exp-address-t` + * :ref:`ze-fabric-vertex-exp-properties-t` + * :ref:`ze-fabric-edge-exp-properties-t` + + +Fabric Functions +------------------------------------------------------------------------------ + + +.. _zeFabricVertexGetExp: + +zeFabricVertexGetExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricVertexGetExp + :project: LevelZero + + +.. _zeFabricVertexGetSubVerticesExp: + +zeFabricVertexGetSubVerticesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricVertexGetSubVerticesExp + :project: LevelZero + + +.. _zeFabricVertexGetPropertiesExp: + +zeFabricVertexGetPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricVertexGetPropertiesExp + :project: LevelZero + + +.. _zeFabricVertexGetDeviceExp: + +zeFabricVertexGetDeviceExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricVertexGetDeviceExp + :project: LevelZero + + +.. _zeDeviceGetFabricVertexExp: + +zeDeviceGetFabricVertexExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDeviceGetFabricVertexExp + :project: LevelZero + + +.. _zeFabricEdgeGetExp: + +zeFabricEdgeGetExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricEdgeGetExp + :project: LevelZero + + +.. _zeFabricEdgeGetVerticesExp: + +zeFabricEdgeGetVerticesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricEdgeGetVerticesExp + :project: LevelZero + + +.. _zeFabricEdgeGetPropertiesExp: + +zeFabricEdgeGetPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeFabricEdgeGetPropertiesExp + :project: LevelZero + + + +Fabric Enums +------------------------------------------------------------------------------ + + +.. _ze-fabric-vertex-exp-type-t: + +ze_fabric_vertex_exp_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_fabric_vertex_exp_type_t + :project: LevelZero + + +.. _ze-fabric-edge-exp-duplexity-t: + +ze_fabric_edge_exp_duplexity_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_fabric_edge_exp_duplexity_t + :project: LevelZero + + +Fabric Structures +------------------------------------------------------------------------------ + +.. _ze-fabric-vertex-pci-exp-address-t: + +ze_fabric_vertex_pci_exp_address_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_fabric_vertex_pci_exp_address_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-fabric-vertex-exp-properties-t: + +ze_fabric_vertex_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_fabric_vertex_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-fabric-edge-exp-properties-t: + +ze_fabric_edge_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_fabric_edge_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Memoryproperties +============================================================ +* Enumerations + + + * :ref:`ze-device-memory-properties-ext-version-t` + * :ref:`ze-device-memory-ext-type-t` + + +* Structures + + + * :ref:`ze-device-memory-ext-properties-t` + + + + +Memoryproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-device-memory-properties-ext-version-t: + +ze_device_memory_properties_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_memory_properties_ext_version_t + :project: LevelZero + + +.. _ze-device-memory-ext-type-t: + +ze_device_memory_ext_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_memory_ext_type_t + :project: LevelZero + + +Memoryproperties Structures +------------------------------------------------------------------------------ + +.. _ze-device-memory-ext-properties-t: + +ze_device_memory_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_memory_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Bfloat16conversions +============================================================ +* Enumerations + + + * :ref:`ze-bfloat16-conversions-ext-version-t` + + + + + + +Bfloat16conversions Enums +------------------------------------------------------------------------------ + + +.. _ze-bfloat16-conversions-ext-version-t: + +ze_bfloat16_conversions_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_bfloat16_conversions_ext_version_t + :project: LevelZero + + + + + + + +Deviceipversion +============================================================ +* Enumerations + + + * :ref:`ze-device-ip-version-version-t` + + +* Structures + + + * :ref:`ze-device-ip-version-ext-t` + + + + +Deviceipversion Enums +------------------------------------------------------------------------------ + + +.. _ze-device-ip-version-version-t: + +ze_device_ip_version_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_device_ip_version_version_t + :project: LevelZero + + +Deviceipversion Structures +------------------------------------------------------------------------------ + +.. _ze-device-ip-version-ext-t: + +ze_device_ip_version_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_ip_version_ext_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Kernelmaxgroupsizeproperties +============================================================ +* Enumerations + + + * :ref:`ze-kernel-max-group-size-properties-ext-version-t` + + +* Structures + + + * :ref:`ze-kernel-max-group-size-properties-ext-t` + + + + +Kernelmaxgroupsizeproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-kernel-max-group-size-properties-ext-version-t: + +ze_kernel_max_group_size_properties_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_kernel_max_group_size_properties_ext_version_t + :project: LevelZero + + +Kernelmaxgroupsizeproperties Structures +------------------------------------------------------------------------------ + +.. _ze-kernel-max-group-size-properties-ext-t: + +ze_kernel_max_group_size_properties_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_kernel_max_group_size_properties_ext_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Suballocationsproperties +============================================================ +* Enumerations + + + * :ref:`ze-sub-allocations-exp-version-t` + + +* Structures + + + * :ref:`ze-sub-allocation-t` + * :ref:`ze-memory-sub-allocations-exp-properties-t` + + + + +Suballocationsproperties Enums +------------------------------------------------------------------------------ + + +.. _ze-sub-allocations-exp-version-t: + +ze_sub_allocations_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_sub_allocations_exp_version_t + :project: LevelZero + + +Suballocationsproperties Structures +------------------------------------------------------------------------------ + +.. _ze-sub-allocation-t: + +ze_sub_allocation_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_sub_allocation_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-memory-sub-allocations-exp-properties-t: + +ze_memory_sub_allocations_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_memory_sub_allocations_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Eventquerykerneltimestamps +============================================================ +* Functions + + + * :ref:`zeEventQueryKernelTimestampsExt` + + +* Enumerations + + + * :ref:`ze-event-query-kernel-timestamps-ext-version-t` + * :ref:`ze-event-query-kernel-timestamps-ext-flags-t` + + +* Structures + + + * :ref:`ze-event-query-kernel-timestamps-ext-properties-t` + * :ref:`ze-synchronized-timestamp-data-ext-t` + * :ref:`ze-synchronized-timestamp-result-ext-t` + * :ref:`ze-event-query-kernel-timestamps-results-ext-properties-t` + + +Eventquerykerneltimestamps Functions +------------------------------------------------------------------------------ + + +.. _zeEventQueryKernelTimestampsExt: + +zeEventQueryKernelTimestampsExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeEventQueryKernelTimestampsExt + :project: LevelZero + + + +Eventquerykerneltimestamps Enums +------------------------------------------------------------------------------ + + +.. _ze-event-query-kernel-timestamps-ext-version-t: + +ze_event_query_kernel_timestamps_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_query_kernel_timestamps_ext_version_t + :project: LevelZero + + +.. _ze-event-query-kernel-timestamps-ext-flags-t: + +ze_event_query_kernel_timestamps_ext_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_query_kernel_timestamps_ext_flag_t + :project: LevelZero + + +Eventquerykerneltimestamps Structures +------------------------------------------------------------------------------ + +.. _ze-event-query-kernel-timestamps-ext-properties-t: + +ze_event_query_kernel_timestamps_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_event_query_kernel_timestamps_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-synchronized-timestamp-data-ext-t: + +ze_synchronized_timestamp_data_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_synchronized_timestamp_data_ext_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-synchronized-timestamp-result-ext-t: + +ze_synchronized_timestamp_result_ext_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_synchronized_timestamp_result_ext_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-event-query-kernel-timestamps-results-ext-properties-t: + +ze_event_query_kernel_timestamps_results_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_event_query_kernel_timestamps_results_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Rtasbuilder +============================================================ +* Functions + + + * :ref:`zeRTASBuilderCreateExp` + * :ref:`zeRTASBuilderGetBuildPropertiesExp` + * :ref:`zeDriverRTASFormatCompatibilityCheckExp` + * :ref:`zeRTASBuilderBuildExp` + * :ref:`zeRTASBuilderDestroyExp` + * :ref:`zeRTASParallelOperationCreateExp` + * :ref:`zeRTASParallelOperationGetPropertiesExp` + * :ref:`zeRTASParallelOperationJoinExp` + * :ref:`zeRTASParallelOperationDestroyExp` + + +* Enumerations + + + * :ref:`ze-rtas-builder-exp-version-t` + * :ref:`ze-rtas-device-exp-flags-t` + * :ref:`ze-rtas-format-exp-t` + * :ref:`ze-rtas-builder-exp-flags-t` + * :ref:`ze-rtas-parallel-operation-exp-flags-t` + * :ref:`ze-rtas-builder-geometry-exp-flags-t` + * :ref:`ze-rtas-builder-instance-exp-flags-t` + * :ref:`ze-rtas-builder-build-op-exp-flags-t` + * :ref:`ze-rtas-builder-build-quality-hint-exp-t` + * :ref:`ze-rtas-builder-geometry-type-exp-t` + * :ref:`ze-rtas-builder-input-data-format-exp-t` + + +* Structures + + + * :ref:`ze-rtas-builder-exp-desc-t` + * :ref:`ze-rtas-builder-exp-properties-t` + * :ref:`ze-rtas-parallel-operation-exp-properties-t` + * :ref:`ze-rtas-device-exp-properties-t` + * :ref:`ze-rtas-float3-exp-t` + * :ref:`ze-rtas-transform-float3x4-column-major-exp-t` + * :ref:`ze-rtas-transform-float3x4-aligned-column-major-exp-t` + * :ref:`ze-rtas-transform-float3x4-row-major-exp-t` + * :ref:`ze-rtas-aabb-exp-t` + * :ref:`ze-rtas-triangle-indices-uint32-exp-t` + * :ref:`ze-rtas-quad-indices-uint32-exp-t` + * :ref:`ze-rtas-builder-geometry-info-exp-t` + * :ref:`ze-rtas-builder-triangles-geometry-info-exp-t` + * :ref:`ze-rtas-builder-quads-geometry-info-exp-t` + * :ref:`ze-rtas-geometry-aabbs-exp-cb-params-t` + * :ref:`ze-rtas-builder-procedural-geometry-info-exp-t` + * :ref:`ze-rtas-builder-instance-geometry-info-exp-t` + * :ref:`ze-rtas-builder-build-op-exp-desc-t` + + +Rtasbuilder Functions +------------------------------------------------------------------------------ + + +.. _zeRTASBuilderCreateExp: + +zeRTASBuilderCreateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASBuilderCreateExp + :project: LevelZero + + +.. _zeRTASBuilderGetBuildPropertiesExp: + +zeRTASBuilderGetBuildPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASBuilderGetBuildPropertiesExp + :project: LevelZero + + +.. _zeDriverRTASFormatCompatibilityCheckExp: + +zeDriverRTASFormatCompatibilityCheckExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeDriverRTASFormatCompatibilityCheckExp + :project: LevelZero + + +.. _zeRTASBuilderBuildExp: + +zeRTASBuilderBuildExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASBuilderBuildExp + :project: LevelZero + + +.. _zeRTASBuilderDestroyExp: + +zeRTASBuilderDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASBuilderDestroyExp + :project: LevelZero + + +.. _zeRTASParallelOperationCreateExp: + +zeRTASParallelOperationCreateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASParallelOperationCreateExp + :project: LevelZero + + +.. _zeRTASParallelOperationGetPropertiesExp: + +zeRTASParallelOperationGetPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASParallelOperationGetPropertiesExp + :project: LevelZero + + +.. _zeRTASParallelOperationJoinExp: + +zeRTASParallelOperationJoinExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASParallelOperationJoinExp + :project: LevelZero + + +.. _zeRTASParallelOperationDestroyExp: + +zeRTASParallelOperationDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeRTASParallelOperationDestroyExp + :project: LevelZero + + + +Rtasbuilder Enums +------------------------------------------------------------------------------ + + +.. _ze-rtas-builder-exp-version-t: + +ze_rtas_builder_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_exp_version_t + :project: LevelZero + + +.. _ze-rtas-device-exp-flags-t: + +ze_rtas_device_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_device_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-format-exp-t: + +ze_rtas_format_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_format_exp_t + :project: LevelZero + + +.. _ze-rtas-builder-exp-flags-t: + +ze_rtas_builder_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-parallel-operation-exp-flags-t: + +ze_rtas_parallel_operation_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_parallel_operation_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-builder-geometry-exp-flags-t: + +ze_rtas_builder_geometry_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_geometry_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-builder-instance-exp-flags-t: + +ze_rtas_builder_instance_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_instance_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-builder-build-op-exp-flags-t: + +ze_rtas_builder_build_op_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_build_op_exp_flag_t + :project: LevelZero + + +.. _ze-rtas-builder-build-quality-hint-exp-t: + +ze_rtas_builder_build_quality_hint_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_build_quality_hint_exp_t + :project: LevelZero + + +.. _ze-rtas-builder-geometry-type-exp-t: + +ze_rtas_builder_geometry_type_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_geometry_type_exp_t + :project: LevelZero + + +.. _ze-rtas-builder-input-data-format-exp-t: + +ze_rtas_builder_input_data_format_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_rtas_builder_input_data_format_exp_t + :project: LevelZero + + +Rtasbuilder Structures +------------------------------------------------------------------------------ + +.. _ze-rtas-builder-exp-desc-t: + +ze_rtas_builder_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-exp-properties-t: + +ze_rtas_builder_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-parallel-operation-exp-properties-t: + +ze_rtas_parallel_operation_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_parallel_operation_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-device-exp-properties-t: + +ze_rtas_device_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_device_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-float3-exp-t: + +ze_rtas_float3_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_float3_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-transform-float3x4-column-major-exp-t: + +ze_rtas_transform_float3x4_column_major_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_transform_float3x4_column_major_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-transform-float3x4-aligned-column-major-exp-t: + +ze_rtas_transform_float3x4_aligned_column_major_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_transform_float3x4_aligned_column_major_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-transform-float3x4-row-major-exp-t: + +ze_rtas_transform_float3x4_row_major_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_transform_float3x4_row_major_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-aabb-exp-t: + +ze_rtas_aabb_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_aabb_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-triangle-indices-uint32-exp-t: + +ze_rtas_triangle_indices_uint32_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_triangle_indices_uint32_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-quad-indices-uint32-exp-t: + +ze_rtas_quad_indices_uint32_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_quad_indices_uint32_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-geometry-info-exp-t: + +ze_rtas_builder_geometry_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_geometry_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-triangles-geometry-info-exp-t: + +ze_rtas_builder_triangles_geometry_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_triangles_geometry_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-quads-geometry-info-exp-t: + +ze_rtas_builder_quads_geometry_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_quads_geometry_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-geometry-aabbs-exp-cb-params-t: + +ze_rtas_geometry_aabbs_exp_cb_params_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_geometry_aabbs_exp_cb_params_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-procedural-geometry-info-exp-t: + +ze_rtas_builder_procedural_geometry_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_procedural_geometry_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-instance-geometry-info-exp-t: + +ze_rtas_builder_instance_geometry_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_instance_geometry_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-rtas-builder-build-op-exp-desc-t: + +ze_rtas_builder_build_op_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_rtas_builder_build_op_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Counterbasedeventpool +============================================================ +* Enumerations + + + * :ref:`ze-event-pool-counter-based-exp-version-t` + * :ref:`ze-event-pool-counter-based-exp-flags-t` + + +* Structures + + + * :ref:`ze-event-pool-counter-based-exp-desc-t` + + + + +Counterbasedeventpool Enums +------------------------------------------------------------------------------ + + +.. _ze-event-pool-counter-based-exp-version-t: + +ze_event_pool_counter_based_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_pool_counter_based_exp_version_t + :project: LevelZero + + +.. _ze-event-pool-counter-based-exp-flags-t: + +ze_event_pool_counter_based_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_event_pool_counter_based_exp_flag_t + :project: LevelZero + + +Counterbasedeventpool Structures +------------------------------------------------------------------------------ + +.. _ze-event-pool-counter-based-exp-desc-t: + +ze_event_pool_counter_based_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_event_pool_counter_based_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Bindlessimages +============================================================ +* Functions + + + * :ref:`zeMemGetPitchFor2dImage` + * :ref:`zeImageGetDeviceOffsetExp` + + +* Enumerations + + + * :ref:`ze-bindless-image-exp-version-t` + * :ref:`ze-image-bindless-exp-flags-t` + + +* Structures + + + * :ref:`ze-image-bindless-exp-desc-t` + * :ref:`ze-image-pitched-exp-desc-t` + * :ref:`ze-device-pitched-alloc-exp-properties-t` + + +Bindlessimages Functions +------------------------------------------------------------------------------ + + +.. _zeMemGetPitchFor2dImage: + +zeMemGetPitchFor2dImage +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeMemGetPitchFor2dImage + :project: LevelZero + + +.. _zeImageGetDeviceOffsetExp: + +zeImageGetDeviceOffsetExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeImageGetDeviceOffsetExp + :project: LevelZero + + + +Bindlessimages Enums +------------------------------------------------------------------------------ + + +.. _ze-bindless-image-exp-version-t: + +ze_bindless_image_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_bindless_image_exp_version_t + :project: LevelZero + + +.. _ze-image-bindless-exp-flags-t: + +ze_image_bindless_exp_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_image_bindless_exp_flag_t + :project: LevelZero + + +Bindlessimages Structures +------------------------------------------------------------------------------ + +.. _ze-image-bindless-exp-desc-t: + +ze_image_bindless_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_bindless_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-image-pitched-exp-desc-t: + +ze_image_pitched_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_image_pitched_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _ze-device-pitched-alloc-exp-properties-t: + +ze_device_pitched_alloc_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: ze_device_pitched_alloc_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Commandlistclone +============================================================ +* Functions + + + * :ref:`zeCommandListCreateCloneExp` + + +* Enumerations + + + * :ref:`ze-command-list-clone-exp-version-t` + + + + +Commandlistclone Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListCreateCloneExp: + +zeCommandListCreateCloneExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListCreateCloneExp + :project: LevelZero + + + +Commandlistclone Enums +------------------------------------------------------------------------------ + + +.. _ze-command-list-clone-exp-version-t: + +ze_command_list_clone_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_command_list_clone_exp_version_t + :project: LevelZero + + + + + +Immediatecommandlistappend +============================================================ +* Functions + + + * :ref:`zeCommandListImmediateAppendCommandListsExp` + + +* Enumerations + + + * :ref:`ze-immediate-command-list-append-exp-version-t` + + + + +Immediatecommandlistappend Functions +------------------------------------------------------------------------------ + + +.. _zeCommandListImmediateAppendCommandListsExp: + +zeCommandListImmediateAppendCommandListsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zeCommandListImmediateAppendCommandListsExp + :project: LevelZero + + + +Immediatecommandlistappend Enums +------------------------------------------------------------------------------ + + +.. _ze-immediate-command-list-append-exp-version-t: + +ze_immediate_command_list_append_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_immediate_command_list_append_exp_version_t + :project: LevelZero + + + diff --git a/level-zero/1.10/_sources/index.rst b/level-zero/1.10/_sources/index.rst new file mode 100644 index 0000000..a6071d7 --- /dev/null +++ b/level-zero/1.10/_sources/index.rst @@ -0,0 +1,21 @@ +.. + Copyright 2020 Intel Corporation + +.. oneAPI Level Zero Specification v1.10 + +.. _l0-section: + +=================================== + |l0_full_name|: |l0_spec_version| +=================================== + +.. toctree:: + + core/INTRO.rst + core/PROG.rst + tools/PROG.rst + sysman/PROG.rst + core/SPIRV.rst + core/EXT.rst + api.rst + versions.rst diff --git a/level-zero/1.10/_sources/sysman/EXT_EngineActivity.rst b/level-zero/1.10/_sources/sysman/EXT_EngineActivity.rst new file mode 100644 index 0000000..d7f87c0 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_EngineActivity.rst @@ -0,0 +1,69 @@ + +:orphan: + +.. _ZES_extension_engine_activity: + +========================== + Engine Activity Extension +========================== + +API +---- + +* Functions + + * :ref:`zesEngineGetActivityExt` + +* Structures + + * :ref:`zes-engine-ext-properties-t` + +Engine Activity +~~~~~~~~~~~~~~~~~~ + +This extension provides capability to user to gather the activity stats for each Virtual Function (VF) associated with engine group. +Intended use case of the feature is to query utilization stats from Physical Function (PF) interface. However, the extension +may return error code :ref:`ZE_RESULT_ERROR_UNSUPPORTED_FEATURE ` if an environment does not support it. +If VF has no activity value to report, then implementation shall reflect that appropriately in :ref:`zes-engine-stats-t` struct so that percentage +calculation results in value of 0. +If PF has no activity value to report, then implementation shall reflect that appropriately in :ref:`zes-engine-stats-t` struct which is +at index 0 of the output vector such that utilization calculation results in value of 0. + +The following pseudo-code demonstrates a sequence for obtaining the engine activity for all Virtual Functions from Physical Function environment: + +.. parsed-literal:: + + // Query for engine properties and gather number of virtual function instances by passing extension structure. + // Number of VFs is per engine handle and equates to number of VFs actively using + // the resource represented by the engine handle. + // Together with pCount from GetActivityExt, user can gather the full view of engine + // utilization for all VFs and PF as shown below + + :ref:`zes-engine-properties-t` engineProps; + :ref:`zes-engine-ext-properties-t` engineExtProps; + engineProps.stype = ZES_STRUCTURE_TYPE_ENGINE_PROPERTIES; + engineProps.pNext = &engineExtProps; + engineExtProps.stype = ZES_STRUCTURE_TYPE_ENGINE_EXT_PROPERTIES; + + :ref:`zesEngineGetProperties`\(hEngine, &engineProps); + + // Query count of engine stats to gather + // this count is inclusive of PF and N number of VFs + // i.e. if engineStatCount = 4, then this implies, one PF engine stat at index 0 + // of output vector followed by engine stats for 3 VFs + uint32_t engineStatCount = 0; + {s}EngineGetActivityExt(hEngine, &engineStatCount, nullptr); + + // Gather engine stats for all VFs and PF. + // Gather two snapshots of engine activity and calculate percentage + // utilization per formula in :ref:`zes-engine-stats-t` + :ref:`zes-engine-stats-t`\* engineStats0 = (:ref:`zes-engine-stats-t`\*) allocate(engineStatCount * sizeof(:ref:`zes-engine-stats-t`\)); + {s}EngineGetActivityExt(hEngine, &engineStatCount, engineStats0); + sleep(1); + :ref:`zes-engine-stats-t`\* engineStats1 = (:ref:`zes-engine-stats-t`\*) allocate(engineStatCount * sizeof(:ref:`zes-engine-stats-t`\)); + {s}EngineGetActivityExt(hEngine, &engineStatCount, engineStats1); + + for (uint32_t idx = 0; idx < engineStatCount; ++idx) { + double utilization = (engineStats1[idx].activeTime - engineStats0[idx].activeTime)/(engineStats1[idx].timestamp - engineStats0[idx].timestamp); + output("%s Utilization of engine type pertaining to this handle = %.2f\n", (idx == 0) ? "PF" : "VF", utilization); + } diff --git a/level-zero/1.10/_sources/sysman/EXT_Exp_FirmwareSecurityVersion.rst b/level-zero/1.10/_sources/sysman/EXT_Exp_FirmwareSecurityVersion.rst new file mode 100644 index 0000000..c12902f --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_Exp_FirmwareSecurityVersion.rst @@ -0,0 +1,36 @@ + +:orphan: + +.. _ZES_experimental_firmware_security_version: + +=========================== + Firmware Security Version +=========================== + +API +---- + +* Functions + + * :ref:`zesFirmwareGetSecurityVersionExp` + * :ref:`zesFirmwareSetSecurityVersionExp` + +* Enumerations + + * :ref:`zes-firmware-security-exp-version-t` + +Security Version +~~~~~~~~~~~~~~~~ + +This feature helps to prevent flashing of older firmware that have certain security vulnerabilities by using an hardware enforced anti-rollback scheme. +User can flash a firmware image and sets its version as the security version number (SVN). Images with lower SVN cannot be applied to device with +higher SVN for security considerations. + +.. parsed-literal:: + + // Fetch current security version from the fuses + char* version = allocate(version_size); + :ref:`zesFirmwareGetSecurityVersionExp`\(hFirmware, version); + + // Set security version + :ref:`zesFirmwareSetSecurityVersionExp`\(hFirmware); diff --git a/level-zero/1.10/_sources/sysman/EXT_Exp_MemPageOfflineState.rst b/level-zero/1.10/_sources/sysman/EXT_Exp_MemPageOfflineState.rst new file mode 100644 index 0000000..50b6103 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_Exp_MemPageOfflineState.rst @@ -0,0 +1,23 @@ + +:orphan: + +.. _ZES_extension_mem_state: + +======================== + Memory State Extension +======================== + +API +---- +* Enumerations + + * :ref:`zes-mem-page-offline-state-exp-version-t` + +* Structures + + * :ref:`zes-mem-page-offline-state-exp-t` + +Memory State +~~~~~~~~~~~~~~~~~~ + +This extension extends the functionality provided by the :ref:`zesMemoryGetState` in the Sysman API. Additional MemoryOffline metrics are added to this extension. \ No newline at end of file diff --git a/level-zero/1.10/_sources/sysman/EXT_Exp_RasState.rst b/level-zero/1.10/_sources/sysman/EXT_Exp_RasState.rst new file mode 100644 index 0000000..3608da8 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_Exp_RasState.rst @@ -0,0 +1,76 @@ + +:orphan: + +.. _ZES_extension_ras_state: + +======================== + RAS Get State Extension +======================== + +API +---- + +* Functions + + * :ref:`zesRasGetStateExp` + * :ref:`zesRasClearStateExp` + +* Enumerations + + * :ref:`zes-ras-state-exp-version-t` + * :ref:`zes-ras-error-category-exp-t` + +* Structures + + * :ref:`zes-ras-state-exp-t` + + +RAS State +~~~~~~~~~~~ + +Reliability, Availability, Serviceability (RAS) is a standard mechanism to report HW errors. +In L0 Sysman, we report these errors via RAS API and organized into Correctable or Uncorrectable +errors. Furthermore, the errors can be grouped by category so that source of the error +is easily identifiable. + +This extension is defined with intent to provide an extensible interface to the user for discovering +these errors. A separate function is provided to allow users to clear the error counters. +This functionality extends and is intended to eventually replace existing mechanism via :ref:`zesRasGetState`\. + +To that end, this extension also adds new enumerator for RAS error categories. The list of error categories +include existing ones (refer to the Sysman Programming guide) and also additional ones which are defined here. +The additional error categories are listed below: + +================================================================================== ============================================================= ======================================= +Error category :ref:`ZES_RAS_ERROR_TYPE_CORRECTABLE ` :ref:`ZES_RAS_ERROR_TYPE_UNCORRECTABLE ` +================================================================================== ============================================================= ======================================= + :ref:`ZES_RAS_ERROR_CATEGORY_EXP_MEMORY_ERRORS ` Number of ECC correctable errors Number of ECC uncorrectable errors + that have occurred in memory - that have occurred in memory - + GDDR/HBM. GDDR/HBM. + :ref:`ZES_RAS_ERROR_CATEGORY_EXP_SCALE_ERRORS ` Number of correctable errors Number of ECC uncorrectable errors + that have occurred in scale IP that have occurred in scale IP + :ref:`ZES_RAS_ERROR_CATEGORY_EXP_L3FABRIC_ERRORS ` Number of ECC correctable errors Number of ECC uncorrectable errors + that have occurred in L3 fabric that have occurred in L3 fabric +================================================================================== ============================================================= ======================================= + +The following pseudo-code demonstrates a sequence for querying the number of error categories +supported by a platform and for obtaining the error counters for these categories. + +.. parsed-literal:: + + // Query for number of error categories supported by platform + uint32_t rasCategoryCount = 0; + {s}RasGetStateExp(rasHandle, &rasCategoryCount, nullptr); + + :ref:`zes-ras-state-exp-t`\* rasStates = (:ref:`zes-ras-state-exp-t`\*) allocate(rasCategoryCount * sizeof(:ref:`zes-ras-state-exp-t`\)); + + //Gather error states + {s}RasGetStateExp(rasHandle, &rasCategoryCount, rasStates); + + // Print error details + for(uint32_t i = 0; i < rasCategoryCount; i++) { + output(" Error category: %d, Error count: %llun \n", rasStates[i]->category, rasStates[i]->errorCounter); + } + + // Clear error counter for specific category, for example PROGRAMMING_ERRORS + {s}RasClearStateExp(rasHandle, ZES_RAS_ERROR_CAT_PROGRAMMING_ERRORS); diff --git a/level-zero/1.10/_sources/sysman/EXT_Exp_VirtualFunctionManagement.rst b/level-zero/1.10/_sources/sysman/EXT_Exp_VirtualFunctionManagement.rst new file mode 100644 index 0000000..da2fcaa --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_Exp_VirtualFunctionManagement.rst @@ -0,0 +1,68 @@ + +:orphan: + +.. _ZES_experimental_virtual_function_management: + +======================================== + Virtual Function Management Extension +======================================== + +API +---- + +* Functions + + * :ref:`zesDeviceEnumEnabledVFExp` + * :ref:`zesVFManagementGetVFCapabilitiesExp` + * :ref:`zesVFManagementGetVFMemoryUtilizationExp` + * :ref:`zesVFManagementGetVFEngineUtilizationExp` + +* Enumerations + + * :ref:`zes-vf-management-exp-version-t` + +* Structures + + * :ref:`zes-vf-exp-capabilities-t` + * :ref:`zes-vf-util-mem-exp-t` + * :ref:`zes-vf-util-engine-exp-t` + +Virtual Function Management +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This feature adds the ability to retrieve telemetry from PF domain for monitoring per VF memory and engine utilization. +This telemetry is used to determine if a VM has oversubscribed GPU memory or observe engine business for a targeted workload. +If VF has no activity value to report, then implementation shall reflect that appropriately in :ref:`zes-vf-util-engine-exp-t` struct so that percentage +calculation results in value of 0. + +The following pseudo-code demonstrates a sequence for obtaining the engine activity for all Virtual Functions from Physical Function environment: + +.. parsed-literal:: + + // Gather count of VF handles + uint32_t numVf = 0; + :ref:`zes-vf-exp-capabilities-t` vfProps {}; + :ref:`zesDeviceEnumEnabledVFExp`\(hDevice, &numVf, nullptr); + + // Allocate memory for vf handles and call back in to gather handles + std::vector vfs(numVf, nullptr); + :ref:`zesDeviceEnumEnabledVFExp`\(hDevice, &numVf, vfs.data()); + + // Gather VF properties + std::vector <:ref:`zes-vf-exp-capabilities-t`\> vfProps(numVf); + for (uint32_t i = 0; i < numVf; i++) { + :ref:`zesVFManagementGetVFCapabilitiesExp`\(vfs[i], &vfProps[i]); + } + + // Detect the info types a particular VF supports + + // Using VF# 0 to demonstrate how to detect engine info type and query engine util info + zes_vf_handle_t activeVf = vfs[0]; + uint32_t engineStatCount = 0; + + :ref:`zesVFManagementGetVFEngineUtilizationExp`\(activeVf, &engineStatCount, nullptr); + // Allocate memory for vf engine stats + :ref:`zes-vf-util-engine-exp-t`\* engineStats0 = (:ref:`zes-vf-util-engine-exp-t`\*) allocate(engineStatCount * sizeof(:ref:`zes-vf-util-engine-exp-t`\)); + :ref:`zesVFManagementGetVFEngineUtilizationExp`\(activeVf, &engineStatCount, engineStats0); + sleep(1) + :ref:`zes-vf-util-engine-exp-t`\* engineStats1 = (:ref:`zes-vf-util-engine-exp-t`\*) allocate(engineStatCount * sizeof(:ref:`zes-vf-util-engine-exp-t`\)); + :ref:`zesVFManagementGetVFEngineUtilizationExp`\(activeVf, &engineStatCount, &engineStats1); \ No newline at end of file diff --git a/level-zero/1.10/_sources/sysman/EXT_Exp_power_domain.rst b/level-zero/1.10/_sources/sysman/EXT_Exp_power_domain.rst new file mode 100644 index 0000000..b11e215 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_Exp_power_domain.rst @@ -0,0 +1,19 @@ + +:orphan: + +.. _ZES_extension_power_domain_properties: + +================================== + Power Domain Properties Extension +================================== + +API +---- + +* Enumerations + + * :ref:`zes-power-domain-properties-exp-version-t` + +* Structures + + * :ref:`zes-power-domain-exp-properties-t` diff --git a/level-zero/1.10/_sources/sysman/EXT_MemoryBwCounterValidBits.rst b/level-zero/1.10/_sources/sysman/EXT_MemoryBwCounterValidBits.rst new file mode 100644 index 0000000..40c317f --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_MemoryBwCounterValidBits.rst @@ -0,0 +1,19 @@ + +:orphan: + +.. _ZES_extension_mem_bandwidth_counter_bits_properties: + +============================================== + Memory Bandwidth Counter Valid Bits Extension +============================================== + +API +---- + +* Enumerations + + * :ref:`zes-mem-bandwidth-counter-bits-exp-version-t` + +* Structures + + * :ref:`zes-mem-bandwidth-counter-bits-exp-properties-t` diff --git a/level-zero/1.10/_sources/sysman/EXT_PowerLimits.rst b/level-zero/1.10/_sources/sysman/EXT_PowerLimits.rst new file mode 100644 index 0000000..cbfb460 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_PowerLimits.rst @@ -0,0 +1,27 @@ + +:orphan: + +.. _ZES_extension_power_limits: + +======================== + Power Limits Extension +======================== + +API +---- + +* Functions + + * :ref:`zesPowerGetLimitsExt` + * :ref:`zesPowerSetLimitsExt` + +* Structures + + * :ref:`zes-power-limit-ext-desc-t` + * :ref:`zes-power-ext-properties-t` + +Power Limits +~~~~~~~~~~~~~~~~~~ + +This extension replaces the functionality provided by the :ref:`zesPowerGetLimits` & :ref:`zesPowerSetLimits` calls in the Sysman API. The correct usage of the new API +is shown in the Sysman Programming Guide. diff --git a/level-zero/1.10/_sources/sysman/EXT_SysmanDeviceMapping.rst b/level-zero/1.10/_sources/sysman/EXT_SysmanDeviceMapping.rst new file mode 100644 index 0000000..e58e525 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/EXT_SysmanDeviceMapping.rst @@ -0,0 +1,67 @@ + +:orphan: + +.. _ZES_experimental_sysman_device_mapping: + +===================================== + Sysman Device mapping Extension +===================================== + +API +---- + +* Functions + + * :ref:`zesDriverGetDeviceByUuidExp` + * :ref:`zesDeviceGetSubDevicePropertiesExp` + +* Enumerations + + * :ref:`zes-sysman-device-mapping-exp-version-t` + +* Structures + + * :ref:`zes-subdevice-exp-properties-t` + + +Sysman Device Mapping +~~~~~~~~~~~~~~~~~~~~~ + +Three types of device hierarchy models FLAT, COMPOSITE and COMBINED are exposed by Level Zero driver implementation. +Core could use any model it needs for better performance, while SYSMAN keeps a uniform view of the system. + +This extension is defined with intent to provide an interface to the user for mapping core device +handle to sysman device or vice versa using UUID. + + +The following pseudo-code demonstrates a sequence for querying the sub device properties +and also how to query sysman device handle from the UUID. + +.. parsed-literal:: + + // Query Sysman device handle corresponding to given UUID + uint32_t subDeviceId = 0; + bool onSubDevice = false; + :ref:`zes-uuid-t` coreDeviceUuid; + zes_device_handle_t* phDevice = (zes_device_handle_t*)allocate(sizeof(zes_device_handle_t)); + :ref:`zesDriverGetDeviceByUuidExp`\(pSysmanDriverHandle, coreDeviceUuid, phDevice, &subDeviceId, &onSubDevice); + + // Query for number of sub devices of the sysman device + uint32_t subDeviceCount = 0; + :ref:`zesDeviceGetSubDevicePropertiesExp`\(pSysmanDeviceHandle, &subDeviceCount, nullptr); + + :ref:`zes-subdevice-exp-properties-t`\* subDeviceProperties = (:ref:`zes-subdevice-exp-properties-t`\*) allocate(subDeviceCount * sizeof(:ref:`zes-subdevice-exp-properties-t`\)); + + //Query sub device properties + :ref:`zesDeviceGetSubDevicePropertiesExp`\(pSysmanDeviceHandle, &subDeviceCount, subDeviceProperties); + + // Print sub device property details + for(uint32_t i = 0; i < subDeviceCount; i++) { + output(" Sub Device Id : %lu \\n", subDeviceProperties[i]->subdeviceId); + output("UUID : \\n"); + for (uint32_t j = 0; j < ZE_MAX_UUID_SIZE; j++) { + output("%x ",subDeviceProperties[i]->uuid.id[j]); + } + output("\\n"); + } + diff --git a/level-zero/1.10/_sources/sysman/PROG.rst b/level-zero/1.10/_sources/sysman/PROG.rst new file mode 100644 index 0000000..17f23c3 --- /dev/null +++ b/level-zero/1.10/_sources/sysman/PROG.rst @@ -0,0 +1,2426 @@ + + + + +.. _sysman-programming-guide: + +========================== + Sysman Programming Guide +========================== + +Introduction +============ + +Sysman is the System Resource Management library used to monitor and +control the power and performance of accelerator devices. + +High-level overview +=================== + +Environment Variables +--------------------- + +The System Resource Management library may now be initialized without using environment variables by calling :ref:`zesInit`\. + +For compatibility, the following environment variables may also be enabled during initialization for the respective feature. +It is recommended to initialize sysman either by calling :ref:`zesInit` or using the following environment variables but not both. + ++-----------------+-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| Category | Name | Values | Description | ++=================+=====================================+============+===================================================================================+ +| Sysman | ZES_ENABLE_SYSMAN | {**0**, 1} | Enables driver initialization and dependencies for system management | ++-----------------+-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| Sysman | ZES_ENABLE_SYSMAN_LOW_POWER | {**0**, 1} | Driver initialize the device in low power mode | ++-----------------+-------------------------------------+------------+-----------------------------------------------------------------------------------+ + +Initialization +-------------- + +An application wishing to manage power and performance for devices may +use the System Resource Management library to enumerate system management +driver and device handles. + +The following pseudo-code demonstrates a basic initialization and device discovery sequence: + +.. parsed-literal:: + + function main( ... ) + if (:ref:`zesInit`\(0) != :ref:`ZE_RESULT_SUCCESS `\) + output("Can't initialize the API") + else + # Discover all the drivers + uint32_t driversCount = 0 + :ref:`zesDriverGet`\(&driversCount, nullptr) + zes_driver_handle_t* allDrivers = allocate(driversCount * sizeof(zes_driver_handle_t)) + :ref:`zesDriverGet`\(&driversCount, allDrivers) + + zes_driver_handle_t hDriver = nullptr + for(i = 0 .. driversCount-1) + # Discover devices in a driver + uint32_t deviceCount = 0 + :ref:`zesDeviceGet`\(allDrivers[i], &deviceCount, nullptr) + + zes_device_handle_t* hSysmanHandles = + allocate_memory(deviceCount * sizeof(zes_device_handle_t)) + :ref:`zesDeviceGet`\(allDrivers[i], &deviceCount, hSysmanHandles) + + # Use the hSymanHandles to manage the devices + + free_memory(...) + +For compatibility, an application may also use the Level0 Core API to +enumerate through available accelerator devices in the system. For +each device handle, an application can cast it to a sysman device handle +to manage the system resources of the device. + +There is a unique handle for each device. Multiple threads can use the +handle. If concurrent accesses are made to the same device property +through the handle, the last request wins. + +The pseudo code below shows how to enumerate the GPU devices in the +system and create Sysman handles for them: + +.. parsed-literal:: + + function main( ... ) + if (:ref:`zeInit`\(0) != :ref:`ZE_RESULT_SUCCESS `\) + output("Can't initialize the API") + else + # Discover all the drivers + uint32_t driversCount = 0 + :ref:`zeDriverGet`\(&driversCount, nullptr) + ze_driver_handle_t* allDrivers = allocate(driversCount * sizeof(ze_driver_handle_t)) + :ref:`zeDriverGet`\(&driversCount, allDrivers) + + ze_driver_handle_t hDriver = nullptr + for(i = 0 .. driversCount-1) + # Discover devices in a driver + uint32_t deviceCount = 0 + :ref:`zeDeviceGet`\(allDrivers[i], &deviceCount, nullptr) + + ze_device_handle_t* allDevices = + allocate_memory(deviceCount * sizeof(ze_device_handle_t)) + :ref:`zeDeviceGet`\(allDrivers[i], &deviceCount, allDevices) + + for(devIndex = 0 .. deviceCount-1) + :ref:`ze-device-properties-t` device_properties {} + device_properties.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES ` + :ref:`zeDeviceGetProperties`\(allDevices[devIndex], &device_properties) + if(:ref:`ZE_DEVICE_TYPE_GPU ` != device_properties.type) + next + # Get the Sysman device handle + zes_device_handle_t hSysmanDevice = (zes_device_handle_t)allDevices[devIndex] + # Start using hSysmanDevice to manage the device + + free_memory(...) + +Global device management +------------------------ + +The following operations are provided to access overall device +information and control aspects of the entire device: + +- Get device UUID, deviceID, number of sub-devices +- Get Brand/model/vendor name +- Query the information about processes using this device +- Reset device +- Query if the device has been repaired +- Query if the device needs to be reset and for what reasons (wedged, initiate repair) +- PCI information: + + - Get configured bars + - Get maximum supported bandwidth + - Query current speed (GEN/no. of lanes) + - Query current throughput + - Query packet retry counters + +The full list of available functions is described below. + +Device component management +--------------------------- + +Aside from management of the global properties of a device, there are +many device components that can be managed to change the performance +and/or power configuration of the device. Similar components are broken +into **classes** and each class has a set of operations that can be +performed on them. + +For example, devices typically have one or more frequency domains. The +Sysman API exposes a class for frequency and an enumeration of all +frequency domains that can be managed. + +The table below summarizes the classes that provide device queries and +an example list of components that would be enumerated for a device with +two sub-devices. The table shows the operations (queries) that will be +provided for all components in each class. + ++-----------------------+---------------------------------+-------------------------------------------+ +| Class | Components | Operations | ++=======================+=================================+===========================================+ +| Power_ | Card: | Get energy consumption | +| | power | | +| | | | +| | Package: | | +| | power | | +| | | | +| | Sub-device 0: total | | +| | power | | +| | | | +| | Sub-device 1: total | | +| | power | | ++-----------------------+---------------------------------+-------------------------------------------+ +| Frequency_ | Sub-device 0: GPU frequency | List available frequencies | +| | | | +| | Sub-device 0: Memory frequency | Set frequency range | +| | | | +| | Sub-device 1: GPU frequency | Get frequencies | +| | | | +| | Sub-device 1: Memory frequency | Get throttle reasons | +| | | | +| | | Get throttle time | ++-----------------------+---------------------------------+-------------------------------------------+ +| Engines_ | Sub-device 0: All engines | Get busy time | +| | | | +| | Sub-device 0: Compute engines | | +| | | | +| | Sub-device 0: Media engines | | +| | | | +| | Sub-device 0: Copy engines | | +| | | | +| | Sub-device 1: All engines | | +| | | | +| | Sub-device 1: Compute engines | | +| | | | +| | Sub-device 1: Media engines | | +| | | | +| | Sub-device 1: Copy engines | | ++-----------------------+---------------------------------+-------------------------------------------+ +| Scheduler_ | Sub-device 0: All engines | Get scheduler mode and properties | +| | | | +| | Sub-device 1: All engines | Get scheduler mode and properties | ++-----------------------+---------------------------------+-------------------------------------------+ +| Firmware_ | Sub-device 0: Enumerates each | Get firmware name and version | +| | firmware | | +| | | | +| | Sub-device 1: Enumerates each | | +| | firmware | | ++-----------------------+---------------------------------+-------------------------------------------+ +| Memory_ | Sub-device 0: Memory module | Get maximum supported bandwidth | +| | | | +| | Sub-device 1: Memory module | Get free memory | +| | | | +| | | Get current bandwidth | ++-----------------------+---------------------------------+-------------------------------------------+ +| Fabric-Port_ | Sub-device 0: Enumerates each | Get port configuration (UP/DOWN) | +| | port | | +| | | Get physical link details | +| | Sub-device 1: Enumerates each | | +| | port | Get port health | +| | | (healthy/degraded/failed/disabled) | +| | | | +| | | Get remote port | +| | | | +| | | Get port rx/tx speed | +| | | | +| | | Get port rx/tx bandwidth | ++-----------------------+---------------------------------+-------------------------------------------+ +| Temperature_ | Package: temperature (min, max) | Get current temperature sensor reading | +| | | | +| | Sub-device 0: GPU temperature | | +| | (min, max) | | +| | | | +| | Sub-device 0: Memory | | +| | temperature (min, max) | | +| | | | +| | Sub-device 1: GPU temperature | | +| | (min, max) | | +| | | | +| | Sub-device 1: Memory | | +| | temperature (min, max) | | ++-----------------------+---------------------------------+-------------------------------------------+ +| PSU_ | Package: Power supplies | Get details about the power supply | +| | | | +| | | Query current state (temperature, | +| | | current, fan) | ++-----------------------+---------------------------------+-------------------------------------------+ +| Fan_ | Package: Fans | Get details (max fan speed) | +| | | | +| | | Get config (fixed fan speed, | +| | | temperature-speed table) | +| | | | +| | | Query current fan speed | ++-----------------------+---------------------------------+-------------------------------------------+ +| LED_ | Package: LEDs | Get details (RGB capable) | +| | | | +| | | Query current state (on, color) | ++-----------------------+---------------------------------+-------------------------------------------+ +| RAS_ | Sub-device 0: One set of RAS | Read RAS total correctable and | +| | error counters | uncorrectable error counters | +| | | | +| | Sub-device 1: One set of RAS | Read breakdown of errors by category | +| | error counters | (no. resets, no. programming errors, | +| | | no. programming errors, no. driver | +| | | errors, no. compute errors, no. cache | +| | | errors, no. memory errors, no. PCI | +| | | errors, no. display errors, no. | +| | | non-compute errors) | ++-----------------------+---------------------------------+-------------------------------------------+ +| Diagnostics_ | Package: SCAN test suite | Get list of all diagnostics tests | +| | | | +| | Package: ARRAY test suite | | ++-----------------------+---------------------------------+-------------------------------------------+ + +The table below summarizes the classes that provide device controls and +an example list of components that would be enumerated for a device with +two sub-devices. The table shows the operations (controls) that will be +provided for all components in each class. + ++------------------------+---------------------------------+-------------------------------------------+ +| Class | Components | Operations | ++========================+=================================+===========================================+ +| Power_ | Card: power | Set sustained power limit | +| | | | +| | Package: power | Set burst power limit | +| | | | +| | | Set peak power limit | ++------------------------+---------------------------------+-------------------------------------------+ +| Frequency_ | Sub-device 0: GPU frequency | Set frequency range | +| | | | +| | Sub-device 0: Memory frequency | | +| | | | +| | Sub-device 1: GPU frequency | | +| | | | +| | Sub-device 1: Memory frequency | | ++------------------------+---------------------------------+-------------------------------------------+ +| Scheduler_ | Sub-device 0: All engines | Set scheduler mode | +| | | | +| | Sub-device 1: All engines | Set scheduler mode | ++------------------------+---------------------------------+-------------------------------------------+ +| Performance-Factor_ | Sub-device 0: Compute | Tune workload performance | +| | | | +| | Sub-device 0: Media | | +| | | | +| | Sub-device 1: Compute | | +| | | | +| | Sub-device 1: Media | | ++------------------------+---------------------------------+-------------------------------------------+ +| Standby_ | Sub-device 0: Control | Disable opportunistic standby | +| | entire sub-device | standby | +| | | | +| | Sub-device 1: Control entire | | +| | sub-device | | ++------------------------+---------------------------------+-------------------------------------------+ +| Firmware_ | Sub-device 0: Enumerates each | Flash new firmware | +| | firmware | | +| | | | +| | Sub-device 1: Enumerates each | | +| | firmware | | ++------------------------+---------------------------------+-------------------------------------------+ +| Fabric-Port_ | Sub-device 0: Control each port | Configure port UP/DOWN | +| | | | +| | Sub-device 1: Control each port | Turn beaconing ON/OFF | ++------------------------+---------------------------------+-------------------------------------------+ +| Fan_ | Package: Fans | Set config (fixed speed, temperature- | +| | | speed table) | ++------------------------+---------------------------------+-------------------------------------------+ +| LED_ | Package: LEDs | Turn LED on/off and set color | ++------------------------+---------------------------------+-------------------------------------------+ +| Diagnostics_ | SCAN test suite | Run all or a subset | +| | | of diagnostic tests | +| | ARRAY test suite | in the test suite | ++------------------------+---------------------------------+-------------------------------------------+ + +Device component enumeration +---------------------------- + +The Sysman API provides functions to enumerate all components in a class +that can be managed. + +For example, there is a frequency class which is used to control the +frequency of different parts of the device. On most devices, the +enumerator will provide two handles, one to control the GPU frequency +and one to enumerate the device memory frequency. This is illustrated in +the figure below: + +.. image:: ../images/tools_sysman_freq_flow.png + +In the C API, each class is associated with a unique handle type +(e.g. zes_freq_handle_t refers to a frequency component). In +the C++ API, each class is a C++ class (e.g. An instance of the class zes::SysmanFrequency +refers to a frequency component). + +The pseudo code below shows how to use the Sysman API to enumerate all +GPU frequency components and fix each to a specific frequency if this is +supported: + +.. parsed-literal:: + + function FixGpuFrequency(zes_device_handle_t hSysmanDevice, double FreqMHz) + uint32_t numFreqDomains + if ((:ref:`zesDeviceEnumFrequencyDomains`\(hSysmanDevice, &numFreqDomains, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_freq_handle_t* pFreqHandles = + allocate_memory(numFreqDomains * sizeof(zes_freq_handle_t)) + if (:ref:`zesDeviceEnumFrequencyDomains`\(hSysmanDevice, &numFreqDomains, pFreqHandles) == :ref:`ZE_RESULT_SUCCESS `\) + for (index = 0 .. numFreqDomains-1) + :ref:`zes-freq-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_FREQ_PROPERTIES `\; + if (:ref:`zesFrequencyGetProperties`\(pFreqHandles[index], &props) == :ref:`ZE_RESULT_SUCCESS `\) + # Only change the frequency of the domain if: + # 1. The domain controls a GPU accelerator + # 2. The domain frequency can be changed + if (props.type == :ref:`ZES_FREQ_DOMAIN_GPU ` + and props.canControl) + # Fix the frequency + :ref:`zes-freq-range-t` range + range.min = FreqMHz + range.max = FreqMHz + :ref:`zesFrequencySetRange`\(pFreqHandles[index], &range) + free_memory(...) + +Sub-device management +--------------------- + +A Sysman device handle operates at the device level. If a sub-device device handle is passed to +any of the Sysman functions, the result will be as if the device handle was used. + +The enumerator for device components will return a list of components that are located in each +sub-device. Properties for each component will indicate in which sub-device it is located. If software +wishing to manage components in only one sub-device should filter the enumerated components using the +sub-device ID (see :ref:`ze-device-properties-t`\.subdeviceId). + +The figure below shows the frequency components that will be enumerated on a device with two sub-devices where each sub-device has a GPU and +device memory frequency control: + +.. image:: ../images/tools_sysman_freq_subdevices.png + +The pseudo code below shows how to fix the GPU frequency on a specific +sub-device (notice the additional sub-device check): + +.. parsed-literal:: + + function FixSubdeviceGpuFrequency(zes_device_handle_t hSysmanDevice, uint32_t subdeviceId, double FreqMHz) + uint32_t numFreqDomains + if ((:ref:`zesDeviceEnumFrequencyDomains`\(hSysmanDevice, &numFreqDomains, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_freq_handle_t* pFreqHandles = + allocate_memory(numFreqDomains * sizeof(zes_freq_handle_t)) + if (:ref:`zesDeviceEnumFrequencyDomains`\(hSysmanDevice, &numFreqDomains, pFreqHandles) == :ref:`ZE_RESULT_SUCCESS `\) + for (index = 0 .. numFreqDomains-1) + :ref:`zes-freq-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_FREQ_PROPERTIES `\; + if (:ref:`zesFrequencyGetProperties`\(pFreqHandles[index], &props) == :ref:`ZE_RESULT_SUCCESS `\) + # Only change the frequency of the domain if: + # 1. The domain controls a GPU accelerator + # 2. The domain frequency can be changed + # 3. The domain is located in the specified sub-device + if (props.type == :ref:`ZES_FREQ_DOMAIN_GPU ` + and props.canControl + and props.subdeviceId == subdeviceId) + # Fix the frequency + :ref:`zes-freq-range-t` range + range.min = FreqMHz + range.max = FreqMHz + :ref:`zesFrequencySetRange`\(pFreqHandles[index], &range) + free_memory(...) + +Events +------ + +Events are a way to determine if changes have occurred on a device +e.g. new RAS errors without polling the Sysman API. An application +registers the events that it wishes to receive notification about and +then it listens for notifications. The application can choose to block +when listening - this will put the calling application thread to sleep +until new notifications are received. + +The API enables registering for events from multiple devices and +listening for any events coming from any devices by using one function +call. + +Once notifications have occurred, the application can use the query +Sysman interface functions to get more details. + +The following events are provided: + +- Any RAS errors have occurred + +The full list of available functions for handling events is described below. + +Telemetry and timestamps +------------------------ + +Many of the API calls return underlying hardware telemetry (counters). +These counters are typically monotonic and wrap around at the their +bit width boundaires. An application will typically want to take the +delta between two samples. Many times, the rate of change of a counter +is required. For example, sampling a counter for bytes transmitted through +a link and dividing by the delta time between the samples will yield +average bandwidth. + +When returning telemetry, the API will include a timestamp when the +underlying hardware counter was sampled. Each timestamp is only relevant +to the telemetry that it accompanies. Each timestamp associated with +a piece of telemetry can have it's own absolute base that can be +different from timestamps return with other telemetry. As a result, +no calculation should be made based on timestamps returned from +different telemetry. + +The timestamps are not guaranteed to have the same base between +applications. They should only be used within the execution of a single +application. + +Interface details +================= + +Global operations +----------------- + +Device Properties +~~~~~~~~~~~~~~~~~ + +The following operations permit getting properties about the entire +device: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceGetProperties`\() | Get static device properties - | +| | device UUID, sub-device ID, | +| | device brand/model/vendor strings | ++-----------------------------------+-----------------------------------+ +| :ref:`zesDeviceGetState`\() | Determine device state: was the | +| | device repaired, does the device | +| | need to be reset and for what | +| | reasons (wedged, initiate repair) | ++-----------------------------------+-----------------------------------+ + +The pseudo code below shows how to display general information about a +device: + +.. parsed-literal:: + + function ShowDeviceInfo(zes_device_handle_t hSysmanDevice) + :ref:`zes-device-properties-t` devProps {} + devProps.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES ` + :ref:`zes-device-state-t` devState + if (:ref:`zesDeviceGetProperties`\(hSysmanDevice, &devProps) == :ref:`ZE_RESULT_SUCCESS `\) + output(" UUID: %s", devProps.core.uuid.id) + output(" #subdevices: %u", devProps.numSubdevices) + output(" brand: %s", devProps.brandName) + output(" model: %s", devProps.modelName) + if (:ref:`zesDeviceGetState`\(hSysmanDevice, &devState) == :ref:`ZE_RESULT_SUCCESS `\) + output(" Was repaired: %s", (devState.repaired == :ref:`ZES_REPAIR_STATUS_PERFORMED `\) ? "yes" : "no") + if (devState.reset != 0) + { + output("DEVICE RESET REQUIRED:") + if (devState.reset & :ref:`ZES_RESET_REASON_FLAG_WEDGED `\) + output("- Hardware is wedged") + if (devState.reset & :ref:`ZES_RESET_REASON_FLAG_REPAIR `\) + output("- Hardware needs to complete repairs") + } + } + +Host Processes +~~~~~~~~~~~~~~ + +The following functions provide information about host processes that +are using the device: + ++--------------------------------------+-----------------------------------+ +| Function | Description | ++======================================+===================================+ +| :ref:`zesDeviceProcessesGetState`\() | Get information about all | +| | processes that are using this | +| | device - process ID, device | +| | memory allocation size, | +| | accelerators being used. | ++--------------------------------------+-----------------------------------+ + +Using the process ID, an application can determine the owner and the +path to the executable - this information is not returned by the API. + +Device reset +~~~~~~~~~~~~ + +The device can be reset using the following function: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceReset`\() | Requests that the driver | +| | perform a PCI bus reset of the | +| | device. | ++-----------------------------------+-----------------------------------+ + +PCI link operations +~~~~~~~~~~~~~~~~~~~ + +The following functions permit getting data about the PCI endpoint for the device: + ++-------------------------------------+-----------------------------------+ +| Function | Description | ++=====================================+===================================+ +| :ref:`zesDevicePciGetProperties`\() | Get static properties for the PCI | +| | port - BDF address, number of | +| | bars, maximum supported speed | ++-------------------------------------+-----------------------------------+ +| :ref:`zesDevicePciGetState`\() | Get current PCI port speed | +| | (number of lanes, generation) | ++-------------------------------------+-----------------------------------+ +| :ref:`zesDevicePciGetBars`\() | Get information about each | +| | configured PCI bar | ++-------------------------------------+-----------------------------------+ +| :ref:`zesDevicePciGetStats`\() | Get PCI statistics - throughput, | +| | total packets, number of packet | +| | replays | ++-------------------------------------+-----------------------------------+ + +The pseudo code below shows how to output the PCI BDF address: + +.. parsed-literal:: + + function ShowPciInfo(zes_device_handle_t hSysmanDevice) + :ref:`zes-pci-properties-t` pciProps {}; + pciProps.stype = :ref:`ZES_STRUCTURE_TYPE_PCI_PROPERTIES `\; + if (:ref:`zesDevicePciGetProperties`\(hSysmanDevice, &pciProps) == :ref:`ZE_RESULT_SUCCESS `\) + output(" PCI address: %04u:%02u:%02u.%u", + pciProps.address.domain, + pciProps.address.bus, + pciProps.address.device, + pciProps.address.function); + +.. _Power: + +Operations on power domains +--------------------------- + +The PSU (Power Supply Unit) provides power to a device. The amount of power +drawn by a device is a function of the voltage and frequency, both of which are +controlled by the Punit, a micro-controller on the device. If the voltage and +frequency are too high, two conditions can occur: + +1. Over-current - This is where the current drawn by the device exceeds + the maximum current that the PSU can supply. The PSU asserts a signal + when this occurs, and it is processed by the Punit. +2. Over-temperature - The device is generating too much heat that cannot + be dissipated fast enough. The Punit monitors temperatures and reacts + when the sensors show the maximum temperature exceeds the threshold + TjMax (typically 100 degrees Celsius). + +When either of these conditions occurs, the Punit throttles the +frequencies/voltages of the device down to their minimum values, +severely impacting performance. The Punit avoids such severe throttling +by imposing power limits. There are two types of power limits: + +1. Reactive - In this case, the Punit will measure the moving average over + some interval of the actual power (hardware measurement). If the average + power exceeds the limit, Punit will start slowly decreasing the + maximum frequency limits that can be requested for each frequency domain. + Conversely, if the average power is below the limit, Punit will slowly + increase the maximum frequency limits that can be requested up to the + hardware frequency limit for each domain. When user/driver frequency + requests are above the maximum frequency limits, throttling occurs and + this should normally reduce the power. +2. Proactive - In this case, the Punit can perform a calculation based on + the current configuration of the chip and frequency requests to predict + the worst case power that could be generated. If this calculation exceeds + the proactive limit, a search is done to find the maximum frequency that will + fit within the limit. + +Limits need not be applied at the hardware scope level of a device. Devices are +subdivided into one or more power domains. A power domain is a hardware scope +over which power consumption can be monitored and controlled. Power domains can +exist at different hardware scopes such as: + +1. Card-level - Power domains defined at this level monitor & control power + consumption over a whole card. +2. Package-level - Power domains defined at this level monitor & control power + consumption over a single physical package on a card. +3. Stack-level - Power domains defined at this level monitor & control power + consumption over a single stack within a package. + +At any given point in time, a platform can be running on either mains power or, +in the case of platforms such as laptops, can be running on battery power. This +is referred to as the power source. Limits can be configured to take effect only +when a device is drawing power from a specified source, i.e., separate limits +can be imposed when a device is running off battery power as opposed to mains +power. + +Depending on the platform and power domain, power limits can be expressed in +terms of either amperage or wattage. The API can be queried to determine in which +units a given power limit should be specified. + +A power limit can correspond one of the following power levels. + ++---------------------+-----------------+-----------------------+ +| Limit | Window | Description | ++=====================+=================+=======================+ +| Instantaneous | NA | Punit predicts the | +| | | worst case power for | +| | | the current frequency | +| | | requests and if it | +| | | exceeds the limit, | +| | | the actual | +| | | frequencies | +| | | will be lowered. | ++---------------------+-----------------+-----------------------+ +| Peak | e.g. 100usec | Punit tracks a moving | +| | | average of power over | +| | | a short window. When | +| | | this exceeds a | +| | | programmable | +| | | threshold, the Punit | +| | | starts throttling | +| | | frequencies/voltages. | ++---------------------+-----------------+-----------------------+ +| Burst | e.g. 2ms | Punit tracks a moving | +| | | average of power over | +| | | a medium window. When | +| | | this exceeds a | +| | | programmable | +| | | threshold, the Punit | +| | | starts throttling | +| | | frequencies/voltages. | ++---------------------+-----------------+-----------------------+ +| Sustained | e.g. 28s | Punit tracks a moving | +| | | average of power over | +| | | a long window. When | +| | | this exceeds a | +| | | programmable | +| | | threshold, the Punit | +| | | throttles | +| | | frequencies/voltages. | ++---------------------+-----------------+-----------------------+ + +Note that the sustained, burst, and peak power limits are only reactive, whereas +the instantaneous power limit is only proactive. + +The default factory values are tuned assuming the device is operating at +normal temperatures running significant workloads: + +- The peak power limit is tuned to avoid tripping the PSU over-current + signal for all but the most intensive compute workloads. Most + workloads should be able to run at maximum frequencies without + hitting this condition. +- The burst power limit permits most workloads to run at maximum + frequencies for short periods. +- The sustained power limit will be triggered if high frequencies are + requested for lengthy periods (configurable, default is 28sec) and + the frequencies will be throttled if the high requests and + utilization of the device continues. + +Some power domains support requesting the event +:ref:`ZES_EVENT_TYPE_FLAG_ENERGY_THRESHOLD_CROSSED ` be generated when the +energy consumption exceeds some value. This can be a useful technique to +suspend an application until the GPU becomes busy. The technique +involves calling :ref:`zesPowerSetEnergyThreshold`\() with some delta +energy threshold, registering to receive the event using the function +:ref:`zesDeviceEventRegister`\() and then calling :ref:`zesDriverEventListen`\() to +block until the event is triggered. When the energy consumed by the +power domain from the time the call is made exceeds the specified delta, +the event is triggered, and the application is woken up. + +A device can have multiple power domains: + +- One card level power domain that handles the power consumed by the entire + PCIe card. +- One package level power domain that handles the power consumed by the + entire accelerator chip. This includes the power of all sub-devices on + the chip. +- One or more power domains for each sub-device if the product has + sub-devices. + +The following functions are provided to manage the power of the device: + ++--------------------------------------+-------------------------------------------------------------------------------------+ +| Function | Description | ++======================================+=====================================================================================+ +| :ref:`zesDeviceEnumPowerDomains`\() | Enumerate the power domains. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerGetProperties`\() | Get the minimum/maximum power limit that can be | +| | specified when changing the power limits of a | +| | specific power domain. Also read the factory | +| | default sustained power limit of the part. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerGetEnergyCounter`\() | Read the energy consumption of | +| | the specific domain. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerGetLimitsExt`\() | Get all the | +| | power limits for the specific | +| | power domain. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerSetLimitsExt`\() | Set all the | +| | power limits for the specific | +| | power domain. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerGetEnergyThreshold`\() | Get the current energy threshold. | ++--------------------------------------+-------------------------------------------------------------------------------------+ +| :ref:`zesPowerSetEnergyThreshold`\() | Set the energy threshold. Event | +| | :ref:`ZES_EVENT_TYPE_FLAG_ENERGY_THRESHOLD_CROSSED ` | +| | | +| | will be generated when the energy | +| | consumed since calling this | +| | function exceeds the specified | +| | threshold. | ++--------------------------------------+-------------------------------------------------------------------------------------+ + +The pseudo code below shows how to output information about each power +domain on a device: + +.. parsed-literal:: + + function ShowPowerDomains(zes_device_handle_t hSysmanDevice) + uint32_t numPowerDomains + if (:ref:`zesDeviceEnumPowerDomains`\(hSysmanDevice, &numPowerDomains, NULL) == :ref:`ZE_RESULT_SUCCESS `\) + zes_pwr_handle_t* phPower = + allocate_memory(numPowerDomains * sizeof(zes_pwr_handle_t)) + if (:ref:`zesDeviceEnumPowerDomains`\(hSysmanDevice, &numPowerDomains, phPower) == :ref:`ZE_RESULT_SUCCESS `\) + for (pwrIndex = 0 .. numPowerDomains-1) + :ref:`zes-power-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_POWER_PROPERTIES `\; + if (:ref:`zesPowerGetProperties`\(phPower[pwrIndex], &props) == :ref:`ZE_RESULT_SUCCESS `\) + if (props.onSubdevice) + output("Sub-device %u power:\n", props.subdeviceId) + output(" Can control: %s", props.canControl ? "yes" : "no") + call_function ShowPowerLimits(phPower[pwrIndex]) + else + output("Total package power:\n") + output(" Can control: %s", props.canControl ? "yes" : "no") + call_function ShowPowerLimits(phPower[pwrIndex]) + free_memory(...) + } + + function ShowPowerLimits(zes_pwr_handle_t hPower) + uint32_t limitCount = 0 + if (:ref:`zesPowerGetLimitsExt`\(hPower, &limitCount, nullptr) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-power-limit-ext-desc-t` * allLimits = allocate(limitCount * sizeof(:ref:`zes-power-limit-ext-desc-t`\)); + if (:ref:`zesPowerGetLimitsExt`\(hPower, &numLimits, allLimits) == :ref:`ZE_RESULT_SUCCESS `\) + + for (i = 0; i < limitCount; ++i) + output("Limit is enabled: %s", enabled) + output("Power averaging window: %d", interval) + +The pseudo code below shows how to modify the sustained power limit for the first power +domain found on a device: + +.. parsed-literal:: + + function SetPowerDomainLimit(zes_device_handle_t hSysmanDevice) + uint32_t numPowerDomains + if (:ref:`zesDeviceEnumPowerDomains`\(hSysmanDevice, &numPowerDomains, NULL) == :ref:`ZE_RESULT_SUCCESS `\) + zes_pwr_handle_t* phPower = + allocate_memory(numPowerDomains * sizeof(zes_pwr_handle_t)) + if (:ref:`zesDeviceEnumPowerDomains`\(hSysmanDevice, &numPowerDomains, phPower) == :ref:`ZE_RESULT_SUCCESS `\) + for (pwrIndex = 0 .. numPowerDomains-1) + :ref:`zes-power-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_POWER_PROPERTIES `\; + if (:ref:`zesPowerGetProperties`\(phPower[pwrIndex], &props) == :ref:`ZE_RESULT_SUCCESS `\) + uint32_t limitCount = 0 + if (:ref:`zesPowerGetLimitsExt`\(hPower, &limitCount, nullptr) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-power-limit-ext-desc-t` * allLimits = allocate(limitCount * sizeof(:ref:`zes-power-limit-ext-desc-t`\)); + if (:ref:`zesPowerGetLimitsExt`\(hPower, &numLimits, allLimits) == :ref:`ZE_RESULT_SUCCESS `\) + for (i = 0; i < limitCount; ++i) + if (allLimits[i].level == :ref:`ZES_POWER_LEVEL_SUSTAINED `\) + if (allLimits[i].limitValueLocked == False) + allLimits[i].limit = newLimit + :ref:`zesPowerSetLimitsExt`\(hPower, &numLimits, allLimits) + + +The pseudo code shows how to output the average power. It assumes that +the function is called regularly (say every 100ms). + +.. parsed-literal:: + + function ShowAveragePower(zes_pwr_handle_t hPower, :ref:`zes-power-energy-counter-t`\* pPrevEnergyCounter) + :ref:`zes-power-energy-counter-t` newEnergyCounter; + if (:ref:`zesPowerGetEnergyCounter`\(hPower, &newEnergyCounter) == :ref:`ZE_RESULT_SUCCESS `\) + uint64_t deltaTime = newEnergyCounter.timestamp - pPrevEnergyCounter->timestamp; + if (deltaTime) + output(" Average power: %.3f W", (newEnergyCounter.energy - pPrevEnergyCounter->energy) / deltaTime); + \*pPrevEnergyCounter = newEnergyCounter; + +.. _Frequency: + +Operations on frequency domains +------------------------------- + +The hardware manages frequencies to achieve a balance between best +performance and power consumption. Most devices have one or more +frequency domains. + +The following functions are provided to manage the frequency domains on +the device: + ++------------------------------------------+----------------------------------------+ +| Function | Description | ++==========================================+========================================+ +| :ref:`zesDeviceEnumFrequencyDomains`\() | Enumerate all the frequency | +| | domains on the device and | +| | sub-devices. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencyGetProperties`\() | Find out which domain | +| | :ref:`zes-freq-domain-t` is controlled | +| | by this frequency and min/max | +| | hardware frequencies. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencyGetAvailableClocks`\() | Get an array of all available | +| | frequencies that can be requested | +| | on this domain. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencyGetRange`\() | Get the current min/max frequency | +| | between which the hardware can | +| | operate for a frequency domain. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencySetRange`\() | Set the min/max frequency between | +| | which the hardware can operate | +| | for a frequency domain. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencyGetState`\() | Get the current frequency | +| | request, actual frequency, TDP | +| | frequency and throttle reasons | +| | for a frequency domain. | ++------------------------------------------+----------------------------------------+ +| :ref:`zesFrequencyGetThrottleTime`\() | Gets the amount of time a | +| | frequency domain has been | +| | throttled. | ++------------------------------------------+----------------------------------------+ + +It is only permitted to set the frequency range if the device property +:ref:`zes-freq-properties-t`\.canControl is true for the specific frequency +domain. + +By setting the min/max frequency range to the same value, software is +effectively disabling the hardware-controlled frequency and getting a +fixed stable frequency providing the Punit does not need to throttle due +to excess power/heat. + +Based on the power/thermal conditions, the frequency requested by +software or the hardware may not be respected. This situation can be +determined using the function :ref:`zesFrequencyGetState`\() which will +indicate the current frequency request, the actual (resolved) frequency +and other frequency information that depends on the current conditions. +If the actual frequency is below the requested frequency, +:ref:`zes-freq-state-t`\.throttleReasons will provide the reasons why the +frequency is being limited by the Punit. + +When a frequency domain starts being throttled, the event +:ref:`ZES_EVENT_TYPE_FLAG_FREQ_THROTTLED ` is triggered if this is supported +(check :ref:`zes-freq-properties-t`\.isThrottleEventSupported). + +Frequency/Voltage overclocking +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Overclocking involves modifying the voltage-frequency (V-F) curve to +either achieve better performance by permitting the hardware to reach +higher frequencies or better efficiency by lowering the voltage for the +same frequency. + +By default, the hardware imposes a factory-fused maximum frequency and a +voltage-frequency curve. The voltage-frequency curve specifies how much +voltage is needed to safely reach a given frequency without hitting +overcurrent conditions. If the hardware detects overcurrent (IccMax), it +will severely throttle frequencies in order to protect itself. Also, if +the hardware detects that any part of the chip exceeds a maximum +temperature limit (TjMax) it will also severely throttle frequencies. + +To improve maximum performance, the following modifications can be made: + +- Increase the maximum frequency. +- Increase the voltage to ensure stability at the higher frequency. +- Increase the maximum current (IccMax). +- Increase the maximum temperature (TjMax). + +All these changes come with the risk of damage the device. + +To improve efficiency for a given workload that is not excercising the +full circuitry of the device, the following modifications can be made: + +- Decrease the voltage + +Frequency overclocking is accomplished by calling :ref:`zesFrequencyOcSetFrequencyTarget`\() with the desired Frequency +Target and the Voltage setting by calling :ref:`zesFrequencyOcSetVoltageTarget`\() with the new voltage and the voltrage offset. +There are three modes that control the way voltage and frequency are handled when overclocking: + ++--------------------------------------------------------+------------------------------------------------+ +| Overclock mode | Description | ++========================================================+================================================+ +| :ref:`ZES_OC_MODE_OVERRIDE ` | In this mode, a fixed | +| | user-supplied voltage | +| | VoltageTarget plus | +| | VoltageOffset | +| | is applied at all times, | +| | independent of the frequency | +| | request. This is not efficient but | +| | can improve stability by avoiding | +| | power-supply voltage changes as the | +| | frequency changes. | ++--------------------------------------------------------+------------------------------------------------+ +| :ref:`ZES_OC_MODE_INTERPOLATIVE ` | In this mode, In this mode, the | +| | voltage/frequency curve can be extended | +| | with a new voltage/frequency point that will | +| | be interpolated. The existing | +| | voltage/frequency points can also be offset | +| | (up or down) by a fixed voltage. This mode | +| | disables FIXED and OVERRIDE modes. | ++--------------------------------------------------------+------------------------------------------------+ +| :ref:`ZES_OC_MODE_FIXED ` | In this mode, In this mode, hardware will | +| | disable most frequency throttling and lock | +| | the frequency and voltage at the specified | +| | overclock values. This mode disables | +| | OVERRIDE and INTERPOLATIVE modes. This mode | +| | can damage the part, most of the protections | +| | are disabled on this mode. | ++--------------------------------------------------------+------------------------------------------------+ + +The following functions are provided to handle overclocking: + ++-------------------------------------------------+-----------------------------------+ +| Function | Description | ++=================================================+===================================+ +| :ref:`zesFrequencyOcGetCapabilities`\() | Determine the overclock | +| | capabilities of the device. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcGetFrequencyTarget`\() | Get current overclock target | +| | frequency set. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcSetFrequencyTarget`\() | Set the new overclock target | +| | frequency | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcGetVoltageTarget`\() | Get current overclock target | +| | voltage set. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcSetVoltageTarget`\() | Set the new overclock target | +| | voltage and offset. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcSetMode`\() | Sets the desired overclock mode. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcGetMode`\() | Gets the current overclock mode. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcGetIccMax`\() | Get the maximum current limit in | +| | effect. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcSetIccMax`\() | Set a new maximum current limit. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcGetTjMax`\() | Get the maximum temperature limit | +| | in effect. | ++-------------------------------------------------+-----------------------------------+ +| :ref:`zesFrequencyOcSetTjMax`\() | Set a new maximum temperature | +| | limit. | ++-------------------------------------------------+-----------------------------------+ + +Overclocking can be turned off by calling +:ref:`zesFrequencyOcSetMode`\() with mode :ref:`ZES_OC_MODE_OFF ` and by +calling :ref:`zesFrequencyOcGetIccMax`\() and :ref:`zesFrequencyOcSetTjMax`\() with values of 0.0. + +.. _Scheduler: + +Scheduler operations +~~~~~~~~~~~~~~~~~~~~ + +Scheduler components control how workloads are executed on accelerator +engines and how to share the hardware resources when multiple workloads are +submitted concurrently. This policy is referred to as a scheduler mode. + +The available scheduler operating modes are given by the enum +:ref:`zes-sched-mode-t` and summarized in the table below: + ++-------------------------------------------------------------+-------------------------------------------+ +| Scheduler mode | Description | ++=============================================================+===========================================+ +| :ref:`ZES_SCHED_MODE_TIMEOUT ` | This mode is optimized for | +| | multiple applications or contexts | +| | submitting work to the hardware. | +| | When higher priority work | +| | arrives, the scheduler attempts | +| | to pause the current executing | +| | work within some timeout | +| | interval, then submits the other | +| | work. It is possible to configure | +| | (:ref:`zes-sched-timeout-properties-t`\) | +| | the watchdog timeout which | +| | controls the maximum time the | +| | scheduler will wait for a | +| | workload to complete a batch of | +| | work or yield to other | +| | applications before it is | +| | terminated. If the watchdog | +| | timeout is set to | +| | ZES_SCHED_WATCHDOG_DISABLE, the | +| | scheduler enforces no fairness. | +| | This means that if there is other | +| | work to execute, the scheduler | +| | will try to submit it but will | +| | not terminate an executing | +| | process that does not complete | +| | quickly. | ++-------------------------------------------------------------+-------------------------------------------+ +| :ref:`ZES_SCHED_MODE_TIMESLICE ` | This mode is optimized to provide | +| | fair sharing of hardware | +| | execution time between multiple | +| | contexts submitting work to the | +| | hardware concurrently. It is | +| | possible to configure | +| | (:ref:`zes-sched-timeslice-properties-t`\)| +| | | +| | the timeslice interval and the | +| | amount of time the scheduler will | +| | wait for work to yield to another | +| | application before it is | +| | terminated. | ++-------------------------------------------------------------+-------------------------------------------+ +| :ref:`ZES_SCHED_MODE_EXCLUSIVE ` | This mode is optimized for single | +| | application/context use-cases. It | +| | permits a context to run | +| | indefinitely on the hardware | +| | without being preempted or | +| | terminated. All pending work for | +| | other contexts must wait until | +| | the running context completes | +| | with no further submitted work. | ++-------------------------------------------------------------+-------------------------------------------+ +| :ref:`ZES_SCHED_MODE_COMPUTE_UNIT_DEBUG ` | This mode is optimized for | +| | application debug. It ensures | +| | that only one command queue can | +| | execute work on the hardware at a | +| | given time. Work is permitted to | +| | run as long as needed without | +| | enforcing any scheduler fairness | +| | policies. | ++-------------------------------------------------------------+-------------------------------------------+ + +A device can have multiple scheduler components. Each scheduler component controls +the workload execution behavior on one or more accelerator engines +(:ref:`zes-engine-type-flags-t`\). The following functions are available for changing +the scheduler mode for each scheduler component: + ++--------------------------------------------------+-----------------------------------+ +| Function | Description | ++==================================================+===================================+ +| :ref:`zesDeviceEnumSchedulers`\() | Get handles to each scheduler | +| | component. | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerGetProperties`\() | Get properties of a scheduler | +| | component (sub-device, engines | +| | linked to this scheduler, | +| | supported scheduler modes. | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerGetCurrentMode`\() | Get the current scheduler mode | +| | (timeout, timeslice, exclusive, | +| | single command queue) | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerGetTimeoutModeProperties`\() | Get the settings for the timeout | +| | scheduler mode | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerGetTimesliceModeProperties`\() | Get the settings for the | +| | timeslice scheduler mode | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerSetTimeoutMode`\() | Change to timeout scheduler mode | +| | and/or change properties | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerSetTimesliceMode`\() | Change to timeslice scheduler | +| | mode and/or change properties | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerSetExclusiveMode`\() | Change to exclusive scheduler | +| | mode and/or change properties | ++--------------------------------------------------+-----------------------------------+ +| :ref:`zesSchedulerSetComputeUnitDebugMode`\() | Change to compute unit debug | +| | scheduler mode and/or change | +| | properties | ++--------------------------------------------------+-----------------------------------+ + +The pseudo code below shows how to stop the scheduler enforcing fairness +while permitting other work to attempt to run: + +.. parsed-literal:: + + function DisableSchedulerWatchdog(zes_device_handle_t hSysmanDevice) + uint32_t numSched + if ((:ref:`zesDeviceEnumSchedulers`\(hSysmanDevice, &numSched, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_sched_handle_t* pSchedHandles = + allocate_memory(numSched * sizeof(zes_sched_handle_t)) + if (:ref:`zesDeviceEnumSchedulers`\(hSysmanDevice, &numSched, pSchedHandles) == :ref:`ZE_RESULT_SUCCESS `\) + for (index = 0 .. numSched-1) + :ref:`ze-result-t` res + :ref:`zes-sched-mode-t` currentMode + res = :ref:`zesSchedulerGetCurrentMode`\(pSchedHandles[index], ¤tMode) + if (res == :ref:`ZE_RESULT_SUCCESS `\) + ze_bool_t requireReload + :ref:`zes-sched-timeout-properties-t` props + props.watchdogTimeout = ZES_SCHED_WATCHDOG_DISABLE + res = :ref:`zesSchedulerSetTimeoutMode`\(pSchedHandles[index], &props, &requireReload) + if (res == :ref:`ZE_RESULT_SUCCESS `\) + if (requireReload) + output("WARNING: Reload the driver to complete desired configuration.") + else + output("Schedule mode changed successfully.") + else if(res == :ref:`ZE_RESULT_ERROR_UNSUPPORTED_FEATURE `\) + output("ERROR: The timeout scheduler mode is not supported on this device.") + else if(res == :ref:`ZE_RESULT_ERROR_INSUFFICIENT_PERMISSIONS `\) + output("ERROR: Don't have permissions to change the scheduler mode.") + else + output("ERROR: Problem calling the API to change the scheduler mode.") + else if(res == :ref:`ZE_RESULT_ERROR_UNSUPPORTED_FEATURE `\) + output("ERROR: Scheduler modes are not supported on this device.") + else + output("ERROR: Problem calling the API.") + +.. _ECC: + +Enabling/disabling ECC Config Dynamically +----------------------------------------- + +Memory corruption occurs when random bits in data flip due to natural processes +such as background radiation, cosmic rays, etc... A single bit flip in one of the +high-bits of a single data-value may drastically change the behavior of some +applications. Workloads from the financial, industrial control, critical +infrastructure, and critical database sectors are typically not tolerant to memory +corruption---memory corruption can cause highly undesirable behavior. Error correction +codes (ECC) are a memory controller technology that reduce memory corruption at +the cost of reduced memory performance and capacity. + +The loss of memory performance and capacity makes ECC undesirable for some workloads. +Application domains may be insensitive to low-level memory corruption. Algorithms +may be designed for numerical stability or may be inherently stochastic, making them +insensitive to memory corruption. + +Products may support ECC capabilities and may additionally make ECC dynamically +configurable, i.e. if ECC is supported, then it may be turned on or off on demand. +A device reset, either in the form of a warm reset or a cold reboot, may be +required to switch between ECC enabled and disabled states. + +Support for ECC can be checked using the function :ref:`zesDeviceEccAvailable`\(). If ECC +is supported, then support for dynamic ECC control can be checked using the +function :ref:`zesDeviceEccConfigurable`\(). The current ECC state, pending ECC state, +and action required to affect the pending ECC state can be determined using the +struct :ref:`zes-device-ecc-properties-t` returned by the function :ref:`zesDeviceGetEccState`\(). +The ECC state can be changed by calling the :ref:`zesDeviceSetEccState`\() which takes the +desired ECC state as input and returns the struct :ref:`zes-device-ecc-properties-t` which +lists the current ECC state, pending ECC state, and action required to affect the +pending ECC state + +The following pseudo code demonstrates how the ECC state can be queried and changed +from disabled to enabled: + +.. parsed-literal:: + + function EnableECC(zes_device_handle_t hSysmanDevice) + ze_bool_t EccAvailable = False; + :ref:`zesDeviceEccAvailable`\(hSysmanDevice, &EccAvailable) + if (EccAvailable == True) { + ze_bool_t EccConfigurable = False; + :ref:`zesDeviceEccConfigurable`\(hSysmanDevice, &EccConfigurable) + if (EccConfigurable == True) { + :ref:`zes-device-ecc-properties-t` props = {:ref:`ZES_DEVICE_ECC_STATE_UNAVAILABLE `\, :ref:`ZES_DEVICE_ECC_STATE_UNAVAILABLE `\, :ref:`ZES_DEVICE_ACTION_NONE `\} + :ref:`zesDeviceGetEccState`\(hSysmanDevice, &props) + if (props.currentState == :ref:`ZES_DEVICE_ECC_STATE_DISABLED `\) { + :ref:`zes-device-ecc-desc-t` newState = :ref:`ZES_DEVICE_ECC_STATE_ENABLED ` + :ref:`zesDeviceSetEccState`\(hSysmanDevice, newState, &props) + } + } + } + +.. _Performance-Factor: + +Tuning workload performance +--------------------------- + +While hardware attempts to balance system resources effectively, there are +workloads that can benefit from external performance hints. For hardware +where this is possible, the API exposes *Performance Factors* domains that +can be used to provide these hints. + +A Performance Factor is defined as a number between 0 and 100 that expresses +a trade-off between the energy provided to the accelerator units and the +energy provided to the supporting units. As an example, a compute heavy +workload benefits from a higher distribution of energy at the computational +units rather than for the memory controller. Alternatively, a memory bounded +workload can benefit by trading off performance of the computational units +for higher throughput in the memory controller. Generally the hardware +will get this balance right, but the Performance Factor can be used to +make the balance more aggressive. In the examples given, a Performance +Factor of 100 would indicate that the workload is completely compute +bounded and requires very little support from the memory controller. +Alternatively, a Performance Factor of 0 would indicate that the workload +is completely memory bounded and the performance of the memory +controller needs to be increased. + +Tuning for a workload can involve running the application repeatedly with +different values of the Performance Factor from 0 to 100 and choosing +the value that gives the best performance. The default value is 50. +Alternatively, a more dynamic approach would involve monitoring the +various utilization metrics of the accelerator to determine memory +and compute bounded and moving the Performance Factor up and down +in order to remove the bottleneck. + +The API provides a way to enumerate the domains that can be controlled +by a Performance Factor. A domain contains one or more accelerators +whose performance will be affected by this setting. The API provides +functions to change the Performance Factor for a domain. + +Here is a summary of the available functions: + ++-------------------------------------------------+--------------------------------------------------------------------+ +| Function | Description | ++=================================================+====================================================================+ +| :ref:`zesDeviceEnumPerformanceFactorDomains`\() | Enumerate the Performance Factor domains available on the | +| | hardware. | ++-------------------------------------------------+--------------------------------------------------------------------+ +| :ref:`zesPerformanceFactorGetProperties`\() | Find out if the Performance Factor domain is located on a | +| | sub-device and which accelerators are affected by it. | ++-------------------------------------------------+--------------------------------------------------------------------+ +| :ref:`zesPerformanceFactorGetConfig`\() | Read the current performance factor being used by the hardware | +| | for a domain. | ++-------------------------------------------------+--------------------------------------------------------------------+ +| :ref:`zesPerformanceFactorSetConfig`\() | Change the Performance Factor of the hardware for a domain. | ++-------------------------------------------------+--------------------------------------------------------------------+ + + +.. _Engines: + +Operations on engine groups +--------------------------- + +Accelerator resources (e.g. arrays of compute units or media decoders) are +fed work by what are called engines. The API provides the ability to measuring +the execution time (activity) of these engines. The type of engines is +defined in the enum :ref:`zes-engine-group-t`\. + +Generally there is a one to one relationship between an engine and an underlying +accelerator resource. For example, a single media decode engine submits work to a +single media decoder hardware and no other engine can do so. Measuring the execution +time (activity) of a single engine is equivalent to measuring the execution time +of the underlying accelerator hardware. + +There are also products where multiple engines submit work to the same underlying +accelerator hardware. The hardware will execute the work from each engine +concurrently. In these cases, the execution time of each individual engine +will add up to more than the execution time of the underlying accelerator +hardware since each engine is only receiving a portion of the accelerator +hardware. In this case, the API also provides engine groups which will +measure the total execution time at the level of the hardware accelerator +rather than at the level of the individual engines. For example, the API +may enumerate multiple engine groups of type :ref:`ZES_ENGINE_GROUP_COMPUTE_SINGLE ` +which will permit measuring the activity of each individual engine. However, +to measure the overall activity of the shared compute resources, the API +will enumerate an engine group of type :ref:`ZES_ENGINE_GROUP_COMPUTE_ALL `\. In this case, +the activity report is for when any of the compute engines are active between two snapshots. + +By taking two snapshots of the activity counters, it is possible to +calculate the average utilization of different parts of the device. + +The following functions are provided: + ++-------------------------------------+-----------------------------------------+ +| Function | Description | ++=====================================+=========================================+ +| :ref:`zesDeviceEnumEngineGroups`\() | Enumerate the engine groups that | +| | can be queried. | ++-------------------------------------+-----------------------------------------+ +| :ref:`zesEngineGetProperties`\() | Get the properties of an engine | +| | group. This will return the type | +| | of engine group (one of | +| | :ref:`zes-engine-group-t`\) and on | +| | which sub-device the group is | +| | making measurements. | ++-------------------------------------+-----------------------------------------+ +| :ref:`zesEngineGetActivity`\() | Returns the activity counters for | +| | an engine group. | ++-------------------------------------+-----------------------------------------+ + +.. _Standby: + +Operations on standby domains +----------------------------- + +When a device is idle, it will enter a low-power state. Since exit from +low-power states have associated latency, it can hurt performance. The +hardware attempts to stike a balance between saving power when there are +large idle times between workload submissions to the device and keeping +the device awake when it determines that the idle time between submissions +is short. + +A device consists of one or more blocks that can autonomously power-gate into a +standby state. The list of domains is given by :ref:`zes-standby-type-t`\. + +The following functions can be used to control how the hardware promotes +to standby states: + ++---------------------------------------+-----------------------------------------+ +| Function | Description | ++=======================================+=========================================+ +| :ref:`zesDeviceEnumStandbyDomains`\() | Enumerate the standby domains. | ++---------------------------------------+-----------------------------------------+ +| :ref:`zesStandbyGetProperties`\() | Get the properties of a standby | +| | domain. This will return the | +| | parts of the device that are | +| | affected by this domain (one of | +| | :ref:`zes-engine-group-t`\) and on | +| | which sub-device the domain is | +| | located. | ++---------------------------------------+-----------------------------------------+ +| :ref:`zesStandbyGetMode`\() | Get the current promotion mode | +| | (one of | +| | :ref:`zes-standby-promo-mode-t`\) for a | +| | standby domain. | ++---------------------------------------+-----------------------------------------+ +| :ref:`zesStandbySetMode`\() | Set the promotion mode (one of | +| | :ref:`zes-standby-promo-mode-t`\) for a | +| | standby domain. | ++---------------------------------------+-----------------------------------------+ + +.. _Firmware: + +Operations on firmwares +----------------------- + +The following functions are provided to manage firmwares on the device: + ++------------------------------------+-----------------------------------+ +| Function | Description | ++====================================+===================================+ +| :ref:`zesDeviceEnumFirmwares`\() | Enumerate all firmwares that can | +| | be managed on the device. | ++------------------------------------+-----------------------------------+ +| :ref:`zesFirmwareGetProperties`\() | Find out the name and version of | +| | a firmware. | ++------------------------------------+-----------------------------------+ +| :ref:`zesFirmwareFlash`\() | Flash a new firmware image. | ++------------------------------------+-----------------------------------+ + +.. _Memory: + +Querying Memory Modules +----------------------- + +The API provides an enumeration of all device memory modules. For each +memory module, the current and maximum bandwidth can be queried. The API +also provides a health metric which can take one of the following values +(:ref:`zes-mem-health-t`\): + ++-------------------------------------------------------------+-----------------------------------------------------------+ +| Memory health | Description | ++=============================================================+===========================================================+ +| :ref:`ZES_MEM_HEALTH_OK ` | All memory channels are healthy. | ++-------------------------------------------------------------+-----------------------------------------------------------+ +| :ref:`ZES_MEM_HEALTH_DEGRADED ` | Excessive correctable errors have | +| | been detected on one or more | +| | channels. Device should be reset. | ++-------------------------------------------------------------+-----------------------------------------------------------+ +| :ref:`ZES_MEM_HEALTH_CRITICAL ` | Operating with reduced memory to | +| | cover banks with too many | +| | uncorrectable errors. | ++-------------------------------------------------------------+-----------------------------------------------------------+ +| :ref:`ZES_MEM_HEALTH_REPLACE ` | Device should be replaced due to | +| | excessive uncorrectable errors. | ++-------------------------------------------------------------+-----------------------------------------------------------+ + +When the health state of a memory module changes, the event +:ref:`ZES_EVENT_TYPE_FLAG_MEM_HEALTH ` is triggered. + +The following functions provide access to information about the device +memory modules: + ++--------------------------------------+-----------------------------------+ +| Function | Description | ++======================================+===================================+ +| :ref:`zesDeviceEnumMemoryModules`\() | Enumerate the memory modules. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesMemoryGetProperties`\() | Find out the type of memory and | +| | maximum physical memory of a | +| | module. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesMemoryGetBandwidth`\() | Returns memory bandwidth counters | +| | for a module. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesMemoryGetState`\() | Returns the currently health free | +| | memory and total physical memory | +| | for a memory module. | ++--------------------------------------+-----------------------------------+ + +.. _Fabric-Port: + +Operations on Fabric ports +-------------------------- + +**Fabric** is the term given to describe high-speed interconnections +between accelerator devices, primarily used to provide low latency fast +access to remote device memory. Devices have one or more **fabric +ports** that transmit and receive data over physical links. Links +connect fabric ports, thus permitting data to travel between devices. +Routing rules determine the flow of traffic through the fabric. + +The figure below shows four devices, each with two fabric ports. Each +port has a link that connects it to a port on another device. In this +example, the devices are connected in a ring. Device A and D can access +each other's memory through either device B or device C depending on how +the fabric routing rules are configured. If the connection between +device B and D goes down, the routing rules can be modified such that +device B and D can still access each other's memory by going through two +hops in the fabric (device A and C). + +.. image:: ../images/tools_sysman_fabric.png + +The API permits enumerating all the ports available on a device. Each +port is uniquely identified within a system by the following information: + +- Fabric ID: Unique identifier for the fabric end-point +- Attach ID: Unique identifier for the device attachment point +- Port Number: The logical port number (this is typically marked somewhere on the physical device) + +The API provides this information in the struct {t}_fabric_port_id_t. +The identifiers are not universal - uniqueness is only guaranteed +within a given system and provided the system configuration does not change. + +When a fabric port is connected, the API provides the unique identifier +for the remote fabric port. By enumerating all ports in a system and +matching up the remote port identifies, an application can build up +a topology map of connectivity. + +For each port, the API permits querying its configuration (UP/DOWN) and +its health which can take one of the following values: + ++-------------------------------------------------------------------+-------------------------------------------------------------------+ +| Fabric port health | Description | ++===================================================================+===================================================================+ +| :ref:`ZES_FABRIC_PORT_STATUS_HEALTHY ` | The port is up and operating as | +| | expected. | ++-------------------------------------------------------------------+-------------------------------------------------------------------+ +| :ref:`ZES_FABRIC_PORT_STATUS_DEGRADED ` | The port is up but has quality | +| | and/or bandwidth degradation. | ++-------------------------------------------------------------------+-------------------------------------------------------------------+ +| :ref:`ZES_FABRIC_PORT_STATUS_FAILED ` | Port connection instabilities are | +| | preventing workloads making | +| | forward progress. | ++-------------------------------------------------------------------+-------------------------------------------------------------------+ +| :ref:`ZES_FABRIC_PORT_STATUS_DISABLED ` | The port is configured down. | ++-------------------------------------------------------------------+-------------------------------------------------------------------+ + +If the port is in a degraded state, the API provides additional +information about the types of quality degradation that are being +observed. If the port is in a red state, the API provides additional +information about the causes of the instability. + +When a port's health state changes, the event +:ref:`ZES_EVENT_TYPE_FLAG_FABRIC_PORT_HEALTH ` is triggered. + +The API provides the current transmit and receive bitrate of each port. +It also permits measuring the receive and transmit bandwidth flowing +through each port - these metrics include the protocol overhead in addition +to traffic generated by the devices. + +Since ports can pass data directly through to another port, the measured +bandwidth at a port can be higher than the actual bandwidth generated by +the accelerators directly connected by two ports. As such, bandwidth +metrics at each port are more relevant for determining points of +congestion in the fabric and less relevant for measuring the total +bandwidth passing between two accelerators. + +The following functions can be used to manage Fabric ports: + ++--------------------------------------+-----------------------------------+ +| Function | Description | ++======================================+===================================+ +| :ref:`zesDeviceEnumFabricPorts`\() | Enumerate all fabric ports on the | +| | device. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortGetProperties`\() | Get static properties about the | +| | port (model, pord Id, max | +| | receive/transmit speed). | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortGetLinkType`\() | Get details about the physical | +| | link connected to the port. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortGetConfig`\() | Determine if the port is | +| | configured UP and if beaconing is | +| | on or off. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortSetConfig`\() | Configure the port UP or DOWN and | +| | turn beaconing on or off. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortGetState`\() | Determine the health of the port | +| | connection, reasons for link | +| | degradation or connection issues, | +| | current receive/transmit and port | +| | Id of the remote end-point. | ++--------------------------------------+-----------------------------------+ +| :ref:`zesFabricPortGetThroughput`\() | Get port receive/transmit | +| | counters along with current | +| | receive/transmit port speed. | ++--------------------------------------+-----------------------------------+ + +For devices with sub-devices, the fabric ports are usually located in +the sub-device. Given a device handle, :ref:`zesDeviceEnumFabricPorts`\() will +include the ports on each sub-device. In this case, +:ref:`zes-fabric-port-properties-t`\.onSubdevice will be set to true and +:ref:`zes-fabric-port-properties-t`\.subdeviceId will give the subdevice ID +where that port is located. + +The pseudo-code below shows how to get the state of all fabric ports in +the device and sub-devices: + +.. parsed-literal:: + + void ShowFabricPorts(zes_device_handle_t hSysmanDevice) + uint32_t numPorts + if ((:ref:`zesDeviceEnumFabricPorts`\(hSysmanDevice, &numPorts, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_fabric_port_handle_t* phPorts = + allocate_memory(numPorts * sizeof(zes_fabric_port_handle_t)) + if (:ref:`zesDeviceEnumFabricPorts`\(hSysmanDevice, &numPorts, phPorts) == :ref:`ZE_RESULT_SUCCESS `\) + for (index = 0 .. numPorts-1) + # Show information about a particular port + output(" Port %u:\n", index) + call_function ShowFabricPortInfo(phPorts[index]) + free_memory(...) + + function ShowFabricPortInfo(zes_fabric_port_handle_t hPort) + :ref:`zes-fabric-port-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_FABRIC_PORT_PROPERTIES `\; + if (:ref:`zesFabricPortGetProperties`\(hPort, &props) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-fabric-port-state-t` state + if (:ref:`zesFabricPortGetState`\(hPort, &state) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-fabric-link-type-t` link + if (:ref:`zesFabricPortGetLinkType`\(hPort, &link) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-fabric-port-config-t` config + if (:ref:`zesFabricPortGetConfig`\(hPort, &config) == :ref:`ZE_RESULT_SUCCESS `\) + output(" Model: %s", props.model) + if (props.onSubdevice) + output(" On sub-device: %u", props.subdeviceId) + if (config.enabled) + { + var status + output(" Config: UP") + switch (state.status) + case :ref:`ZES_FABRIC_PORT_STATUS_HEALTHY `\: + status = "HEALTHY - The port is up and operating as expected" + case :ref:`ZES_FABRIC_PORT_STATUS_DEGRADED `\: + status = "DEGRADED - The port is up but has quality and/or bandwidth degradation" + case :ref:`ZES_FABRIC_PORT_STATUS_FAILED `\: + status = "FAILED - Port connection instabilities" + case :ref:`ZES_FABRIC_PORT_STATUS_DISABLED `\: + status = "DISABLED - The port is configured down" + default: + status = "UNKNOWN" + output(" Status: %s", status) + output(" Link type: %s", link.desc) + output( + " Max speed (rx/tx): %llu/%llu bytes/sec", + props.maxRxSpeed.bitRate * props.maxRxSpeed.width / 8, + props.maxTxSpeed.bitRate * props.maxTxSpeed.width / 8) + output( + " Current speed (rx/tx): %llu/%llu bytes/sec", + state.rxSpeed.bitRate * state.rxSpeed.width / 8, + state.txSpeed.bitRate * state.txSpeed.width / 8) + else + output(" Config: DOWN") + +The function :ref:`zesFabricPortGetMultiPortThroughput` provides a mechanism for the user to gather throughput values for multiple ports together in a single call. + +The following pseudo-code describes how API is used to gather throughput: + +.. parsed-literal:: + // Enumerate fabric ports + uint32_t numPorts = 0; + :ref:`zesDeviceEnumFabricPorts`\(hSysmanDevice, &numPorts, NULL); + zes_fabric_port_handle_t* phPorts = + allocate_memory(numPorts * sizeof(zes_fabric_port_handle_t)); + :ref:`zesDeviceEnumFabricPorts`\(hSysmanDevice, &numPorts, phPorts); + + // Gather throughput for all fabric ports together + :ref:`zes-fabric-port-throughput-t`\* pThroughput = + allocate_memory(numPorts * sizeof(:ref:`zes-fabric-port-throughput-t`\)); + :ref:`zesFabricPortGetMultiPortThroughput`\(hSysmanDevice, numPorts, phPorts, &pThroughput); + + +.. _Temperature: + +Querying temperature +-------------------- + +A device has multiple temperature sensors embedded at different +locations. The following locations are supported: + ++-------------------------------------------------------------+-------------------------------------------------------------+ +| Temperature sensor location | Description | ++=============================================================+=============================================================+ +| :ref:`ZES_TEMP_SENSORS_GLOBAL ` | Returns the maximum measured temperature | +| | across all sensors in the device. | ++-------------------------------------------------------------+-------------------------------------------------------------+ +| :ref:`ZES_TEMP_SENSORS_GPU ` | Returns the maximum measured temperature | +| | across all sensors in the GPU | +| | accelerator. | ++-------------------------------------------------------------+-------------------------------------------------------------+ +| :ref:`ZES_TEMP_SENSORS_MEMORY ` | Returns the maximum measured temperature | +| | across all sensors in the device | +| | memory. | ++-------------------------------------------------------------+-------------------------------------------------------------+ +| :ref:`ZES_TEMP_SENSORS_GLOBAL_MIN ` | Returns the minimum measured temperature | +| | across all sensors in the device. | ++-------------------------------------------------------------+-------------------------------------------------------------+ +| :ref:`ZES_TEMP_SENSORS_GPU_MIN ` | Returns the minimum measured temperature | +| | across all sensors in the GPU | +| | accelerator. | ++-------------------------------------------------------------+-------------------------------------------------------------+ +| :ref:`ZES_TEMP_SENSORS_MEMORY_MIN ` | Returns the minimum measured temperature | +| | across all sensors in the device | +| | memory. | ++-------------------------------------------------------------+-------------------------------------------------------------+ + +For some sensors, it is possible to request that events be triggered +when temperatures cross thresholds. This is accomplished using the +function :ref:`zesTemperatureGetConfig`\() and +:ref:`zesTemperatureSetConfig`\(). Support for specific events is +accomplished by calling :ref:`zesTemperatureGetProperties`\(). In +general, temperature events are only supported on the temperature sensor +of type :ref:`ZES_TEMP_SENSORS_GLOBAL `\. The list below describes the list of +temperature events: + ++-------------------------------------------------------------------------+---------------------------------+-----------------------+ +| Event | Check support | Description | ++=========================================================================+=================================+=======================+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_CRITICAL ` | :ref:`zes-temp-properties-t` | The event is | +| | .isCriticalTempSupported | triggered when the | +| | | temperature crosses | +| | | into the critical | +| | | zone where severe | +| | | frequency throttling | +| | | will be taking place. | ++-------------------------------------------------------------------------+---------------------------------+-----------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD1 ` | :ref:`zes-temp-properties-t` | The event is | +| | .isThreshold1Supported | triggered when the | +| | | temperature crosses | +| | | the custom threshold | +| | | 1. Flags can be set | +| | | to limit the trigger | +| | | to when crossing from | +| | | high to low or low to | +| | | high. | ++-------------------------------------------------------------------------+---------------------------------+-----------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD2 ` | :ref:`zes-temp-properties-t` | The event is | +| | .isThreshold2Supported | triggered when the | +| | | temperature crosses | +| | | the custom threshold | +| | | 2. Flags can be set | +| | | to limit the trigger | +| | | to when crossing from | +| | | high to low or low to | +| | | high. | ++-------------------------------------------------------------------------+---------------------------------+-----------------------+ + +The following function can be used to manage temperature sensors: + ++-------------------------------------------+-----------------------------------------+ +| Function | Description | ++===========================================+=========================================+ +| :ref:`zesDeviceEnumTemperatureSensors`\() | Enumerate the temperature sensors | +| | on the device. | ++-------------------------------------------+-----------------------------------------+ +| :ref:`zesTemperatureGetProperties`\() | Get static properties for a | +| | temperature sensor. In | +| | particular, this will indicate | +| | which parts of the device the | +| | sensor measures (one of | +| | :ref:`zes-temp-sensors-t`\). | ++-------------------------------------------+-----------------------------------------+ +| :ref:`zesTemperatureGetConfig`\() | Get information about the current | +| | temperature thresholds - | +| | enabled/threshold/processID. | ++-------------------------------------------+-----------------------------------------+ +| :ref:`zesTemperatureSetConfig`\() | Set new temperature thresholds. | +| | Events will be triggered when the | +| | temperature crosses these | +| | thresholds. | ++-------------------------------------------+-----------------------------------------+ +| :ref:`zesTemperatureGetState`\() | Read the temperature of a sensor. | ++-------------------------------------------+-----------------------------------------+ + +.. _PSU: + +Operations on power supplies +---------------------------- + +The following functions can be used to access information about each +power-supply on a device: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceEnumPsus`\() | Enumerate the power supplies on | +| | the device that can be managed. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesPsuGetProperties`\() | Get static details about the | +| | power supply. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesPsuGetState`\() | Get information about the health | +| | (temperature, current, fan) of | +| | the power supply. | ++-----------------------------------+-----------------------------------+ + +.. _Fan: + +Operations on fans +------------------ + +If :ref:`zesDeviceEnumFans`\() returns one or more fan handles, it is possible to +manage their speed. The hardware can be instructed to run the fan at a fixed +speed (or 0 for silent operations) or to provide a table of temperature-speed +points in which case the hardware will dynamically change the fan speed based +on the current temperature of the chip. This configuration information is +described in the structure :ref:`zes-fan-config-t`\. When specifying speed, one +can provide the value in revolutions per minute (:ref:`ZES_FAN_SPEED_UNITS_RPM `\) +or as a percentage of the maximum RPM (:ref:`ZES_FAN_SPEED_UNITS_PERCENT `\). + +The following functions are available: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceEnumFans`\() | Enumerate the fans on the device. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanGetProperties`\() | Get the maximum RPM of the fan | +| | and the maximum number of points | +| | that can be specified in the | +| | temperature-speed table for a | +| | fan. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanGetConfig`\() | Get the current configuration | +| | (speed) of a fan. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanSetDefaultMode`\() | Return fan control to factory | +| | default. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanSetFixedSpeedMode`\() | Configure the fan to rotate | +| | at a fixed speed. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanSetSpeedTableMode`\() | Configure fan speed to depend | +| | on temperature. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesFanGetState`\() | Get the current speed of a fan. | ++-----------------------------------+-----------------------------------+ + +The pseudo code below shows how to output the fan speed of all fans: + +.. parsed-literal:: + + function ShowFans(zes_device_handle_t hSysmanDevice) + uint32_t numFans + if (:ref:`zesDeviceEnumFans`\(hSysmanDevice, &numFans, NULL) == :ref:`ZE_RESULT_SUCCESS `\) + zes_fan_handle_t* phFans = + allocate_memory(numFans * sizeof(zes_fan_handle_t)) + if (:ref:`zesDeviceEnumFans`\(hSysmanDevice, &numFans, phFans) == :ref:`ZE_RESULT_SUCCESS `\) + output(" Fans") + for (fanIndex = 0 .. numFans-1) + int32_t speed + if (:ref:`zesFanGetState`\(phFans[fanIndex], :ref:`ZES_FAN_SPEED_UNITS_RPM `\, &speed) + == :ref:`ZE_RESULT_SUCCESS `\) + output(" Fan %u: %d RPM", fanIndex, speed) + free_memory(...) + } + +The next example shows how to set the fan speed for all fans to a fixed +value in RPM, but only if control is permitted: + +.. parsed-literal:: + + function SetFanSpeed(zes_device_handle_t hSysmanDevice, uint32_t SpeedRpm) + { + uint32_t numFans + if (:ref:`zesDeviceEnumFans`\(hSysmanDevice, &numFans, NULL) == :ref:`ZE_RESULT_SUCCESS `\) + zes_fan_handle_t* phFans = + allocate_memory(numFans * sizeof(zes_fan_handle_t)) + if (:ref:`zesDeviceEnumFans`\(hSysmanDevice, &numFans, phFans) == :ref:`ZE_RESULT_SUCCESS `\) + :ref:`zes-fan-speed-t` speedRequest + speedRequest.speed = SpeedRpm + speedRequest.speedUnits = :ref:`ZES_FAN_SPEED_UNITS_RPM ` + for (fanIndex = 0 .. numFans-1) + :ref:`zes-fan-properties-t` fanprops {}; + fanprops.stype = :ref:`ZES_STRUCTURE_TYPE_FAN_PROPERTIES `\; + if (:ref:`zesFanGetProperties`\(phFans[fanIndex], &fanprops) == :ref:`ZE_RESULT_SUCCESS `\) + if (fanprops.canControl) + :ref:`zesFanSetFixedSpeedMode`\(phFans[fanIndex], &speedRequest) + else + output("ERROR: Can't control fan %u.\n", fanIndex) + free_memory(...) + } + +.. _LED: + +Operations on LEDs +------------------ + +If :ref:`zesDeviceEnumLeds`\() returns one or more LED handles, it is possible +to manage LEDs on the device. This includes turning them off/on and +where the capability exists, changing their color in real-time. + +The following functions are available: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceEnumLeds`\() | Enumerate the LEDs on the device | +| | that can be managed. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesLedGetProperties`\() | Find out if a LED supports color | +| | changes. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesLedGetState`\() | Find out if a LED is currently | +| | off/on and the color where the | +| | capability is available. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesLedSetState`\() | Turn a LED off/on and set the | +| | color where the capability is | +| | available. | ++-----------------------------------+-----------------------------------+ + +.. _RAS: + +Querying RAS errors +------------------- + +RAS stands for Reliability, Availability, and Serviceability. It is a +feature of certain devices that attempts to correct random bit errors +and provide redundancy where permanent damage has occurred. + +If a device supports RAS, it maintains counters for hardware and software +errors. There are two types of errors and they are defined in :ref:`zes-ras-error-type-t`\: + ++------------------------------------------------------------------+---------------------------------------------------------------+ +| Error Type | Description | ++==================================================================+===============================================================+ +| :ref:`ZES_RAS_ERROR_TYPE_UNCORRECTABLE ` | Hardware errors occurred which | +| | most likely resulted in loss of | +| | data or even a device hang. If an | +| | error results in device lockup, a | +| | warm boot is required before | +| | those errors will be reported. | ++------------------------------------------------------------------+---------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_TYPE_CORRECTABLE ` | These are errors that were | +| | corrected by the hardware and did | +| | not cause data corruption. | ++------------------------------------------------------------------+---------------------------------------------------------------+ + +Software can use the function :ref:`zesRasGetProperties`\() to find out +if the device supports RAS and if it is enabled. This information is +returned in the structure :ref:`zes-ras-properties-t`\. + +The function :ref:`zesDeviceEnumRasErrorSets`\() enumerates the available sets of RAS +errors. If no handles are returned, the device does not support RAS. A +device without sub-devices will return one handle if RAS is supported. A +device with sub-devices will return a handle for each sub-device. + +To determine if errors have occurred, software uses the function +:ref:`zesRasGetState`\(). This will return the total number of errors of +a given type (correctable/uncorrectable) that have occurred. + +When calling :ref:`zesRasGetState`\(), software can request that the +error counters be cleared. When this is done, all counters of the +specified type (correctable/uncorrectable) will be set to zero and any +subsequent calls to this function will only show new errors that have +occurred. If software intends to clear errors, it should be the only +application doing so and it should store the counters in an appropriate +database for historical analysis. + +:ref:`zesRasGetState`\() returns a breakdown of errors by category +in the structure :ref:`zes-ras-state-t`\. The table below describes the categories: + ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| Error category | :ref:`ZES_RAS_ERROR_TYPE_CORRECTABLE ` | :ref:`ZES_RAS_ERROR_TYPE_UNCORRECTABLE ` | ++===================================================================+==============================================================+================================================================+ +| :ref:`ZES_RAS_ERROR_CAT_RESET ` | Always zero. | Number of accelerator engine resets | +| | | attempted by the driver. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_PROGRAMMING_ERRORS ` | Always zero. | Number of hardware | +| | | exceptions generated | +| | | by the way workloads | +| | | have programmed the | +| | | hardware. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_DRIVER_ERRORS ` | Always zero. | Number of low level | +| | | driver communication | +| | | errors have occurred. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_COMPUTE_ERRORS ` | Number of errors that | Number of errors that | +| | have occurred in the | have occurred in the | +| | accelerator hardware | accelerator hardware | +| | that were corrected. | that were not | +| | | corrected. These | +| | | would have caused the | +| | | hardware to hang and | +| | | the driver to reset. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_NON_COMPUTE_ERRORS ` | Number of errors | Number of errors | +| | occurring in | occurring in the | +| | fixed-function | fixed-function | +| | accelerator hardware | accelerator hardware | +| | that were corrected. | there could not be | +| | | corrected. Typically | +| | | these will result in | +| | | a PCI bus reset and | +| | | driver reset. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_CACHE_ERRORS ` | Number of ECC | Number of ECC | +| | correctable errors | uncorrectable errors | +| | that have occurred in | that have occurred in | +| | the on-chip caches | the on-chip caches | +| | (caches/register | (caches/register | +| | file/shared local | file/shared local | +| | memory). | memory). These would | +| | | have caused the | +| | | hardware to hang and | +| | | the driver to reset. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_CAT_DISPLAY_ERRORS ` | Number of ECC | Number of ECC | +| | correctable errors | uncorrectable errors | +| | that have occurred in | that have occurred in | +| | the display. | the display. | ++-------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------------+ + +Each RAS error type can trigger events when the error counters exceed +thresholds. The events are listed in the table below. Software can use +the functions :ref:`zesRasGetConfig`\() and :ref:`zesRasSetConfig`\() to +get and set the thresholds for each error type. The default is for all +thresholds to be 0 which means that no events are generated. Thresholds +can be set on the total RAS error counter or on each of the detailed +error counters. + ++------------------------------------------------------------------+--------------------------------------------------------------------------------+ +| RAS error Type | Event | ++==================================================================+================================================================================+ +| :ref:`ZES_RAS_ERROR_TYPE_UNCORRECTABLE ` | :ref:`ZES_EVENT_TYPE_FLAG_RAS_UNCORRECTABLE_ERRORS ` | ++------------------------------------------------------------------+--------------------------------------------------------------------------------+ +| :ref:`ZES_RAS_ERROR_TYPE_CORRECTABLE ` | :ref:`ZES_EVENT_TYPE_FLAG_RAS_CORRECTABLE_ERRORS ` | ++------------------------------------------------------------------+--------------------------------------------------------------------------------+ + +The table below summaries all the RAS management functions: + ++-------------------------------------+-----------------------------------+ +| Function | Description | ++=====================================+===================================+ +| :ref:`zesDeviceEnumRasErrorSets`\() | Get handles to the available RAS | +| | error groups. | ++-------------------------------------+-----------------------------------+ +| :ref:`zesRasGetProperties`\() | Get properties about a RAS error | +| | group - type of RAS errors and if | +| | they are enabled. | ++-------------------------------------+-----------------------------------+ +| :ref:`zesRasGetConfig`\() | Get the current list of | +| | thresholds for each counter in | +| | the RAS group. RAS error events | +| | will be generated when the | +| | thresholds are exceeded. | ++-------------------------------------+-----------------------------------+ +| :ref:`zesRasSetConfig`\() | Set current list of thresholds | +| | for each counter in the RAS | +| | group. RAS error events will be | +| | generated when the thresholds are | +| | exceeded. | ++-------------------------------------+-----------------------------------+ +| :ref:`zesRasGetState`\() | Get the current state of the RAS | +| | error counters. The counters can | +| | also be cleared. | ++-------------------------------------+-----------------------------------+ + +The pseudo code below shows how to determine if RAS is supported and the +current state of RAS errors: + +.. parsed-literal:: + + void ShowRasErrors(zes_device_handle_t hSysmanDevice) + uint32_t numRasErrorSets + if ((:ref:`zesDeviceEnumRasErrorSets`\(hSysmanDevice, &numRasErrorSets, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_ras_handle_t* phRasErrorSets = + allocate_memory(numRasErrorSets * sizeof(zes_ras_handle_t)) + if (:ref:`zesDeviceEnumRasErrorSets`\(hSysmanDevice, &numRasErrorSets, phRasErrorSets) == :ref:`ZE_RESULT_SUCCESS `\) + for (rasIndex = 0 .. numRasErrorSets) + :ref:`zes-ras-properties-t` props {}; + props.stype = :ref:`ZES_STRUCTURE_TYPE_RAS_PROPERTIES `\; + if (:ref:`zesRasGetProperties`\(phRasErrorSets[rasIndex], &props) == :ref:`ZE_RESULT_SUCCESS `\) + var pErrorType + switch (props.type) + case :ref:`ZES_RAS_ERROR_TYPE_CORRECTABLE `\: + pErrorType = "Correctable" + case :ref:`ZES_RAS_ERROR_TYPE_UNCORRECTABLE `\: + pErrorType = "Uncorrectable" + default: + pErrorType = "Unknown" + output("RAS %s errors", pErrorType) + if (props.onSubdevice) + output(" On sub-device: %u", props.subdeviceId) + output(" RAS supported: %s", props.supported ? "yes" : "no") + output(" RAS enabled: %s", props.enabled ? "yes" : "no") + if (props.supported and props.enabled) + :ref:`zes-ras-state-t` errorDetails + if (:ref:`zesRasGetState`\(phRasErrorSets[rasIndex], 1, &errorDetails) + == :ref:`ZE_RESULT_SUCCESS `\) + uint64_t numErrors = 0 + for (int i = 0; i < ZES_RAS_ERROR_CAT_MAX; i++) + numErrors += errorDetails.category[i]; + output(" Number new errors: %llu\n", (long long unsigned int)numErrors); + if (numErrors) + call_function OutputRasDetails(&errorDetails) + free_memory(...) + + function OutputRasDetails(:ref:`zes-ras-state-t`\* pDetails) + output(" Number new resets: %llu", pDetails->category[ZES_RAS_ERROR_CAT_RESET]) + output(" Number new programming errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_PROGRAMMING_ERRORS]) + output(" Number new driver errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_DRIVER_ERRORS]) + output(" Number new compute errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_COMPUTE_ERRORS]) + output(" Number new non-compute errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_NON_COMPUTE_ERRORS]) + output(" Number new cache errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_CACHE_ERRORS]) + output(" Number new display errors: %llu", pDetails->category[ZES_RAS_ERROR_CAT_DISPLAY_ERRORS]) + +.. _Diagnostics: + +Performing Diagnostics +---------------------- + +Diagnostics is the process of requesting that the hardware run self-checks +and repairs. + +**WARNING:** Performing diagnostics can destroy current device state. +It is important that all workloads are stopped before initiating. + +This is achieved using +the function :ref:`zesDiagnosticsRunTests`\(). On return from the +function, software can use the diagnostics return code +(:ref:`zes-diag-result-t`\) to determine the new course of action: + +1. :ref:`ZES_DIAG_RESULT_NO_ERRORS ` - No errors found and workloads can + resume submission to the hardware. +2. :ref:`ZES_DIAG_RESULT_ABORT ` - Hardware had problems running diagnostic + tests. +3. :ref:`ZES_DIAG_RESULT_FAIL_CANT_REPAIR ` - Hardware had problems setting up + repair. Card should be removed from the system. +4. :ref:`ZES_DIAG_RESULT_REBOOT_FOR_REPAIR ` - Hardware has prepared for + repair and requires a reboot after which time workloads can resume + submission. + +The function :ref:`zesDeviceGetState`\() can be used to determine if +the device has been repaired. + +There are multiple diagnostic test suites that can be run. +The function +:ref:`zesDeviceEnumDiagnosticTestSuites`\() will enumerate each available test suite and +the function :ref:`zesDiagnosticsGetProperties`\() can be used to +determine the name of each test suite +(:ref:`zes-diag-properties-t`\.name). + +Each test suite contains one or more diagnostic tests. On some systems, +it is possible to run only a subset of the tests. Use the function +:ref:`zesDiagnosticsGetProperties`\() and check that +:ref:`zes-diag-properties-t`\.haveTests is true to determine if this feature +is available. If it is, the function :ref:`zesDiagnosticsGetTests`\() +can be called to get the list of individual tests that can be run. + +When running diagnostics for a test suite using +:ref:`zesDiagnosticsRunTests`\(), it is possible to specify the start +and index of tests in the suite. Setting to ZES_DIAG_FIRST_TEST_INDEX +and ZES_DIAG_LAST_TEST_INDEX will run all tests in the suite. If it is +possible to run a subset of tests, specify the index of the start test +and the end test - all tests that have an index in this range will be +run. + +The table below summaries all the diagnostic management functions: + ++---------------------------------------------+-----------------------------------+ +| Function | Description | ++=============================================+===================================+ +| :ref:`zesDeviceEnumDiagnosticTestSuites`\() | Get handles to the available | +| | diagnostic test suites that can | +| | be run. | ++---------------------------------------------+-----------------------------------+ +| :ref:`zesDiagnosticsGetProperties`\() | Get information about a test | +| | suite - type, name, location and | +| | if individual tests can be run. | ++---------------------------------------------+-----------------------------------+ +| :ref:`zesDiagnosticsGetTests`\() | Get list of individual diagnostic | +| | tests that can be run. | ++---------------------------------------------+-----------------------------------+ +| :ref:`zesDiagnosticsRunTests`\() | Run either all or individual | +| | diagnostic tests. | ++---------------------------------------------+-----------------------------------+ + +The pseudo code below shows how to discover all test suites and the +tests in each: + +.. parsed-literal:: + + function ListDiagnosticTests(zes_device_handle_t hSysmanDevice) + { + uint32_t numTestSuites + if ((:ref:`zesDeviceEnumDiagnosticTestSuites`\(hSysmanDevice, &numTestSuites, NULL) == :ref:`ZE_RESULT_SUCCESS `\)) + zes_diag_handle_t* phTestSuites = + allocate_memory(numTestSuites * sizeof(zes_diag_handle_t)) + if (:ref:`zesDeviceEnumDiagnosticTestSuites`\(hSysmanDevice, &numTestSuites, phTestSuites) == :ref:`ZE_RESULT_SUCCESS `\) + for (suiteIndex = 0 .. numTestSuites-1) + uint32_t numTests = 0 + :ref:`zes-diag-test-t`\* pTests + :ref:`zes-diag-properties-t` suiteProps {}; + suiteProps.stype = :ref:`ZES_STRUCTURE_TYPE_DIAG_PROPERTIES `\; + if (:ref:`zesDiagnosticsGetProperties`\(phTestSuites[suiteIndex], &suiteProps) != :ref:`ZE_RESULT_SUCCESS `\) + next_loop(suiteIndex) + output("Diagnostic test suite %s:", suiteProps.name) + if (!suiteProps.haveTests) + output(" There are no individual tests that can be selected.") + next_loop(suiteIndex) + if (:ref:`zesDiagnosticsGetTests`\(phTestSuites[suiteIndex], &numTests, NULL) != :ref:`ZE_RESULT_SUCCESS `\) + output(" Problem getting list of individual tests.") + next_loop(suiteIndex) + pTests = allocate_memory(numTests * sizeof(:ref:`zes-diag-test-t`\*)) + if (:ref:`zesDiagnosticsGetTests`\(phTestSuites[suiteIndex], &numTests, pTests) != :ref:`ZE_RESULT_SUCCESS `\) + output(" Problem getting list of individual tests.") + next_loop(suiteIndex) + for (i = 0 .. numTests-1) + output(" Test %u: %s", pTests[i].index, pTests[i].name) + free_memory(...) + +.. _events-2: + +Events +------ + +Events are a way to determine if changes have occurred on a device +e.g. new RAS errors. An application registers the events that it wishes +to receive notification about and then it queries to receive +notifications. The query can request a blocking wait - this will put the +calling application thread to sleep until new notifications are +received. + +For every device on which the application wants to receive events, it +should perform the following actions: + +1. Use :ref:`zesDeviceEventRegister`\() to indicate which events it wants to + listen to. +2. For each event, where appropriate, call the device component functions + to set conditions that will trigger the event. + +Finally, the application calls :ref:`zesDriverEventListen`\() with a list of +device handles that it wishes to listen for events on. A wait timeout is +used to request non-blocking operations (timeout = 0) +or blocking operations (timeout = UINT32_MAX) +or to return after a specified amount of time +even if no events have been received. + +Note that calling zesDeviceEventRegister with no events (set argument events to "0") +will unregister all events that are being listened too. If the application +has a thread blocked in the function zesDriverEventListen() and there are +no more events to listen to, the function will unblock and return control +to the application thread with an event count of 0. + +When events are received, they are returned when the call to function +:ref:`zesDriverEventListen`\() completes. This will indicate which devices has +generated events and the list of event types for each device. It is then +up to the application to use the relevant device component functions to +determine the state that has changed. For example, if the RAS error +event has triggered for a device, then use the function :ref:`zesRasGetState`\() +to get the list of RAS error counters. + +The list of events is given in the table below. For each event, the +corresponding configuration and state functions are shown. Where a +configuration function is not shown, the event is generated +automatically; where a configuration function is shown, it must be +called to enable the event and/or provide threshold conditions. + ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| Event | Trigger | Configuration function | State function | ++===================================================================================+=============================+===============================================+===================================+ +| :ref:`ZES_EVENT_TYPE_FLAG_DEVICE_DETACH ` | Device is about to be reset | | | +| | by the driver | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_DEVICE_ATTACH ` | Device completed the reset | | | +| | by the driver | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_DEVICE_SLEEP_STATE_ENTER ` | Device is about to enter a | | | +| | deep sleep state | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_DEVICE_SLEEP_STATE_EXIT ` | Device is exiting a deep | | | +| | sleep state | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_FREQ_THROTTLED ` | Frequency starts being | | :ref:`zesFrequencyGetState`\() | +| | throttled | | | ++------------------------------------------------------------------------------- ---+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_ENERGY_THRESHOLD_CROSSED ` | Energy consumption | :ref:`zesPowerSetEnergyThreshold`\() | | +| | threshold is reached | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_CRITICAL ` | Critical temperature is | :ref:`zesTemperatureSetConfig`\() | :ref:`zesTemperatureGetState`\() | +| | reached | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD1 ` | Temperature crosses | :ref:`zesTemperatureSetConfig`\() | :ref:`zesTemperatureGetState`\() | +| | threshold 1 | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD2 ` | Temperature crosses | :ref:`zesTemperatureSetConfig`\() | :ref:`zesTemperatureGetState`\() | +| | threshold 2 | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_MEM_HEALTH ` | Health of device memory | | :ref:`zesMemoryGetState`\() | +| | changes | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_FABRIC_PORT_HEALTH ` | Health of fabric ports | | :ref:`zesFabricPortGetState`\() | +| | change | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_RAS_CORRECTABLE_ERRORS ` | RAS correctable errors | :ref:`zesRasSetConfig`\() | :ref:`zesRasGetState`\() | +| | cross thresholds | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_RAS_UNCORRECTABLE_ERRORS ` | RAS uncorrectable errors | :ref:`zesRasSetConfig`\() | :ref:`zesRasGetState`\() | +| | cross thresholds | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ +| :ref:`ZES_EVENT_TYPE_FLAG_DEVICE_RESET_REQUIRED ` | Driver has determined that | | :ref:`zesDeviceGetState`\() | +| | an immediate reset is | | | +| | required | | | ++-----------------------------------------------------------------------------------+-----------------------------+-----------------------------------------------+-----------------------------------+ + +The call to :ref:`zesDriverEventListen`\() requires the driver handle and a list +of device handles. THe device handles must have been enumerated from that +driver, otherwise an error will be returned. If the +application is managing devices from multiple drivers, it will need to +call this function separately for each driver. + +The table below summarizes all the event management functions: + ++-----------------------------------+-----------------------------------+ +| Function | Description | ++===================================+===================================+ +| :ref:`zesDeviceEventRegister`\() | Set the events that should be | +| | registered on a given event | +| | handle. | ++-----------------------------------+-----------------------------------+ +| :ref:`zesDriverEventListen`\() | Wait for events to arrive for a | +| | given list of devices. | ++-----------------------------------+-----------------------------------+ + +The pseudo code below shows how to configure all temperature sensors to +trigger an event when the temperature exceeds a specified threshold or +when the critical temperature is reached. + +.. parsed-literal:: + + function WaitForExcessTemperatureEvent(zes_driver_handle_t hDriver, double tempLimit) + { + # This will contain the number of devices that we will listen for events from + var numListenDevices = 0 + + # Get list of all devices under this driver + uint32_t deviceCount = 0 + :ref:`zeDeviceGet`\(hDriver, &deviceCount, nullptr) + # Allocate memory for all device handles + ze_device_handle_t* phDevices = + allocate_memory(deviceCount * sizeof(ze_device_handle_t)) + + # Allocate memory for the devices from which we will listen to temperature events + zes_device_handle_t* phListenDevices = + allocate_memory(deviceCount * sizeof(zes_device_handle_t)) + # Allocate memory for the events that have been received from each device in phListenDevices + :ref:`zes-event-type-flags-t`\* pDeviceEvents = + allocate_memory(deviceCount * sizeof(:ref:`zes-event-type-flags-t`\)) + # Allocate memory so that we can map device handle in phListenDevices to the device index + uint32_t* pListenDeviceIndex = allocate_memory(deviceCount * sizeof(uint32_t)) + + # Get all device handles + :ref:`zeDeviceGet`\(hDriver, &deviceCount, phDevices) + for(devIndex = 0 .. deviceCount-1) + # Get Sysman handle for the device + zes_device_handle_t hSysmanDevice = (zes_device_handle_t)phDevices[devIndex] + + # Get handles to all temperature sensors + uint32_t numTempSensors = 0 + if (:ref:`zesDeviceEnumTemperatureSensors`\(hSysmanDevice, &numTempSensors, NULL) != :ref:`ZE_RESULT_SUCCESS `\) + next_loop(devIndex) + zes_temp_handle_t* allTempSensors + allocate_memory(deviceCount * sizeof(zes_temp_handle_t)) + if (:ref:`zesDeviceEnumTemperatureSensors`\(hSysmanDevice, &numTempSensors, allTempSensors) == :ref:`ZE_RESULT_SUCCESS `\) + # Configure each temperature sensor to trigger a critical event and a threshold1 event + var numConfiguredTempSensors = 0 + for (tempIndex = 0 .. numTempSensors-1) + if (:ref:`zesTemperatureGetConfig`\(allTempSensors[tempIndex], &config) != :ref:`ZE_RESULT_SUCCESS `\) + next_loop(tempIndex) + :ref:`zes-temp-config-t` config + config.enableCritical = true + config.threshold1.enableHighToLow = false + config.threshold1.enableLowToHigh = true + config.threshold1.threshold = tempLimit + config.threshold2.enableHighToLow = false + config.threshold2.enableLowToHigh = false + if (:ref:`zesTemperatureSetConfig`\(allTempSensors[tempIndex], &config) == :ref:`ZE_RESULT_SUCCESS `\) + numConfiguredTempSensors++ + + # If we configured any sensors to generate events, we can now register to receive on this device + if (numConfiguredTempSensors) + if (:ref:`zesDeviceEventRegister`\(phDevices[devIndex], + :ref:`ZES_EVENT_TYPE_FLAG_TEMP_CRITICAL ` | :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD1 `\) + == :ref:`ZE_RESULT_SUCCESS `\) + phListenDevices[numListenDevices] = hSysmanDevice + pListenDeviceIndex[numListenDevices] = devIndex + numListenDevices++ + + # If we registered to receive events on any devices, start listening now + if (numListenDevices) + # Block until we receive events + uint32_t numEvents + if (:ref:`zesDriverEventListen`\(hDriver, UINT32_MAX, numListenDevices, phListenDevices, &numEvents, pDeviceEvents) + == :ref:`ZE_RESULT_SUCCESS `\) + if (numEvents) + for (evtIndex .. numListenDevices) + if (pDeviceEvents[evtIndex] & :ref:`ZES_EVENT_TYPE_FLAG_TEMP_CRITICAL `\) + output("Device %u: Went above the critical temperature.", + pListenDeviceIndex[evtIndex]) + else if (pDeviceEvents[evtIndex] & :ref:`ZES_EVENT_TYPE_FLAG_TEMP_THRESHOLD1 `\) + output("Device %u: Went above the temperature threshold %f.", + pListenDeviceIndex[evtIndex], tempLimit) + + free_memory(...) + +Security +======== + +Linux +----- + +The default security provided by the accelerator driver is to permit +querying and controlling of system resources to the UNIX user **root**, +querying only for users that are members of the UNIX group **root** and +no access to any other user. Some queries are permitted from any user +(e.g. requesting current frequency, checking standby state). + +It is the responsibility of the Linux distribution or the systems +administrator to relax or tighten these permissions. This is typically +done by adding udev daemon rules. For example, many distributions of +Linux have the following rule: + +.. parsed-literal:: + + root video /dev/dri/card0 + +This will permit all users in the UNIX group **video** to query +information about system resources. In order to open up control access +to users of the video group, udev rules need to be added for each +relevant control. For example, to permit someone in the video group to +disable standby, the following udev daemon rule would be needed: + +.. parsed-literal:: + + chmod g+w /sys/class/drm/card0/rc6_enable + +The full list of sysfs files used by the API are described in the table +below. For each file, the list of affected API functions is given. + ++-----------------------+-----------------------+------------------------------------------+ +| sysfs file | Description | Functions | ++=======================+=======================+==========================================+ +| /sys/class/drm/card0/ | Used to | :ref:`zesDeviceEnumStandbyDomains`\() | +| rc6_enable | enable/disable | :ref:`zesStandbyGetProperties`\() | +| | standby. | :ref:`zesStandbyGetMode`\() | +| | | :ref:`zesStandbySetMode`\() | ++-----------------------+-----------------------+------------------------------------------+ +| TBD | In development | TBD | ++-----------------------+-----------------------+------------------------------------------+ + +Windows +------- + +The Windows driver will only permit telemetry requests coming from users with administrator +permissions. It will only permit controls for system services with LocalServiceSid permissions. + + +Virtualization +-------------- + +In virtualization environments, only the host is permitted to access any +features of the API. Attempts to use the API in virtual machines will +fail. diff --git a/level-zero/1.10/_sources/sysman/api.rst b/level-zero/1.10/_sources/sysman/api.rst new file mode 100644 index 0000000..0df55fe --- /dev/null +++ b/level-zero/1.10/_sources/sysman/api.rst @@ -0,0 +1,3827 @@ + + +============================== +Sysman API +============================== +oneAPI Level Zero Specification - Version 1.10 + + + + + +Common +============================================================ +* Enumerations + + + * :ref:`zes-structure-type-t` + + +* Structures + + + * :ref:`zes-base-properties-t` + * :ref:`zes-base-desc-t` + * :ref:`zes-base-state-t` + * :ref:`zes-base-config-t` + * :ref:`zes-base-capability-t` + + + + +Common Enums +------------------------------------------------------------------------------ + + +.. _zes-structure-type-t: + +zes_structure_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_structure_type_t + :project: LevelZero + + +Common Structures +------------------------------------------------------------------------------ + +.. _zes-base-properties-t: + +zes_base_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_base_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-base-desc-t: + +zes_base_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_base_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-base-state-t: + +zes_base_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_base_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-base-config-t: + +zes_base_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_base_config_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-base-capability-t: + +zes_base_capability_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_base_capability_t + :project: LevelZero + :members: + :undoc-members: + + + + +Driver +============================================================ +* Functions + + + * :ref:`zesInit` + * :ref:`zesDriverGet` + * :ref:`zesDriverGetExtensionProperties` + * :ref:`zesDriverGetExtensionFunctionAddress` + + +* Enumerations + + + * :ref:`zes-init-flags-t` + + +* Structures + + + * :ref:`zes-driver-extension-properties-t` + + +Driver Functions +------------------------------------------------------------------------------ + + +.. _zesInit: + +zesInit +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesInit + :project: LevelZero + + +.. _zesDriverGet: + +zesDriverGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverGet + :project: LevelZero + + +.. _zesDriverGetExtensionProperties: + +zesDriverGetExtensionProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverGetExtensionProperties + :project: LevelZero + + +.. _zesDriverGetExtensionFunctionAddress: + +zesDriverGetExtensionFunctionAddress +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverGetExtensionFunctionAddress + :project: LevelZero + + + +Driver Enums +------------------------------------------------------------------------------ + + +.. _zes-init-flags-t: + +zes_init_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_init_flag_t + :project: LevelZero + + +Driver Structures +------------------------------------------------------------------------------ + +.. _zes-driver-extension-properties-t: + +zes_driver_extension_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_driver_extension_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Device +============================================================ +* Functions + + + * :ref:`zesDeviceGet` + * :ref:`zesDeviceGetProperties` + * :ref:`zesDeviceGetState` + * :ref:`zesDeviceReset` + * :ref:`zesDeviceResetExt` + * :ref:`zesDeviceProcessesGetState` + * :ref:`zesDevicePciGetProperties` + * :ref:`zesDevicePciGetState` + * :ref:`zesDevicePciGetBars` + * :ref:`zesDevicePciGetStats` + + +* Enumerations + + + * :ref:`zes-engine-type-flags-t` + * :ref:`zes-repair-status-t` + * :ref:`zes-reset-reason-flags-t` + * :ref:`zes-reset-type-t` + * :ref:`zes-device-type-t` + * :ref:`zes-device-property-flags-t` + * :ref:`zes-pci-link-status-t` + * :ref:`zes-pci-link-qual-issue-flags-t` + * :ref:`zes-pci-link-stab-issue-flags-t` + * :ref:`zes-pci-bar-type-t` + + +* Structures + + + * :ref:`zes-device-state-t` + * :ref:`zes-reset-properties-t` + * :ref:`zes-uuid-t` + * :ref:`zes-device-properties-t` + * :ref:`zes-device-ext-properties-t` + * :ref:`zes-process-state-t` + * :ref:`zes-pci-address-t` + * :ref:`zes-pci-speed-t` + * :ref:`zes-pci-properties-t` + * :ref:`zes-pci-state-t` + * :ref:`zes-pci-bar-properties-t` + * :ref:`zes-pci-bar-properties-1-2-t` + * :ref:`zes-pci-stats-t` + + +Device Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceGet: + +zesDeviceGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGet + :project: LevelZero + + +.. _zesDeviceGetProperties: + +zesDeviceGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetProperties + :project: LevelZero + + +.. _zesDeviceGetState: + +zesDeviceGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetState + :project: LevelZero + + +.. _zesDeviceReset: + +zesDeviceReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceReset + :project: LevelZero + + +.. _zesDeviceResetExt: + +zesDeviceResetExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceResetExt + :project: LevelZero + + +.. _zesDeviceProcessesGetState: + +zesDeviceProcessesGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceProcessesGetState + :project: LevelZero + + +.. _zesDevicePciGetProperties: + +zesDevicePciGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDevicePciGetProperties + :project: LevelZero + + +.. _zesDevicePciGetState: + +zesDevicePciGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDevicePciGetState + :project: LevelZero + + +.. _zesDevicePciGetBars: + +zesDevicePciGetBars +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDevicePciGetBars + :project: LevelZero + + +.. _zesDevicePciGetStats: + +zesDevicePciGetStats +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDevicePciGetStats + :project: LevelZero + + + +Device Enums +------------------------------------------------------------------------------ + + +.. _zes-engine-type-flags-t: + +zes_engine_type_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_engine_type_flag_t + :project: LevelZero + + +.. _zes-repair-status-t: + +zes_repair_status_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_repair_status_t + :project: LevelZero + + +.. _zes-reset-reason-flags-t: + +zes_reset_reason_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_reset_reason_flag_t + :project: LevelZero + + +.. _zes-reset-type-t: + +zes_reset_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_reset_type_t + :project: LevelZero + + +.. _zes-device-type-t: + +zes_device_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_device_type_t + :project: LevelZero + + +.. _zes-device-property-flags-t: + +zes_device_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_device_property_flag_t + :project: LevelZero + + +.. _zes-pci-link-status-t: + +zes_pci_link_status_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_pci_link_status_t + :project: LevelZero + + +.. _zes-pci-link-qual-issue-flags-t: + +zes_pci_link_qual_issue_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_pci_link_qual_issue_flag_t + :project: LevelZero + + +.. _zes-pci-link-stab-issue-flags-t: + +zes_pci_link_stab_issue_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_pci_link_stab_issue_flag_t + :project: LevelZero + + +.. _zes-pci-bar-type-t: + +zes_pci_bar_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_pci_bar_type_t + :project: LevelZero + + +Device Structures +------------------------------------------------------------------------------ + +.. _zes-device-state-t: + +zes_device_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_device_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-reset-properties-t: + +zes_reset_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_reset_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-uuid-t: + +zes_uuid_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_uuid_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-device-properties-t: + +zes_device_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_device_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-device-ext-properties-t: + +zes_device_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_device_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-process-state-t: + +zes_process_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_process_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-address-t: + +zes_pci_address_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_address_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-speed-t: + +zes_pci_speed_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_speed_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-properties-t: + +zes_pci_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-state-t: + +zes_pci_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-bar-properties-t: + +zes_pci_bar_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_bar_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-bar-properties-1-2-t: + +zes_pci_bar_properties_1_2_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_bar_properties_1_2_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-pci-stats-t: + +zes_pci_stats_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_pci_stats_t + :project: LevelZero + :members: + :undoc-members: + + + + +Overclock +============================================================ +* Functions + + + * :ref:`zesDeviceSetOverclockWaiver` + * :ref:`zesDeviceGetOverclockDomains` + * :ref:`zesDeviceGetOverclockControls` + * :ref:`zesDeviceResetOverclockSettings` + * :ref:`zesDeviceReadOverclockState` + * :ref:`zesDeviceEnumOverclockDomains` + * :ref:`zesOverclockGetDomainProperties` + * :ref:`zesOverclockGetDomainVFProperties` + * :ref:`zesOverclockGetDomainControlProperties` + * :ref:`zesOverclockGetControlCurrentValue` + * :ref:`zesOverclockGetControlPendingValue` + * :ref:`zesOverclockSetControlUserValue` + * :ref:`zesOverclockGetControlState` + * :ref:`zesOverclockGetVFPointValues` + * :ref:`zesOverclockSetVFPointValues` + + +* Enumerations + + + * :ref:`zes-overclock-domain-t` + * :ref:`zes-overclock-control-t` + * :ref:`zes-overclock-mode-t` + * :ref:`zes-control-state-t` + * :ref:`zes-pending-action-t` + * :ref:`zes-vf-program-type-t` + * :ref:`zes-vf-type-t` + * :ref:`zes-vf-array-type-t` + + +* Structures + + + * :ref:`zes-overclock-properties-t` + * :ref:`zes-control-property-t` + * :ref:`zes-vf-property-t` + + +Overclock Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceSetOverclockWaiver: + +zesDeviceSetOverclockWaiver +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceSetOverclockWaiver + :project: LevelZero + + +.. _zesDeviceGetOverclockDomains: + +zesDeviceGetOverclockDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetOverclockDomains + :project: LevelZero + + +.. _zesDeviceGetOverclockControls: + +zesDeviceGetOverclockControls +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetOverclockControls + :project: LevelZero + + +.. _zesDeviceResetOverclockSettings: + +zesDeviceResetOverclockSettings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceResetOverclockSettings + :project: LevelZero + + +.. _zesDeviceReadOverclockState: + +zesDeviceReadOverclockState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceReadOverclockState + :project: LevelZero + + +.. _zesDeviceEnumOverclockDomains: + +zesDeviceEnumOverclockDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumOverclockDomains + :project: LevelZero + + +.. _zesOverclockGetDomainProperties: + +zesOverclockGetDomainProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetDomainProperties + :project: LevelZero + + +.. _zesOverclockGetDomainVFProperties: + +zesOverclockGetDomainVFProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetDomainVFProperties + :project: LevelZero + + +.. _zesOverclockGetDomainControlProperties: + +zesOverclockGetDomainControlProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetDomainControlProperties + :project: LevelZero + + +.. _zesOverclockGetControlCurrentValue: + +zesOverclockGetControlCurrentValue +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetControlCurrentValue + :project: LevelZero + + +.. _zesOverclockGetControlPendingValue: + +zesOverclockGetControlPendingValue +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetControlPendingValue + :project: LevelZero + + +.. _zesOverclockSetControlUserValue: + +zesOverclockSetControlUserValue +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockSetControlUserValue + :project: LevelZero + + +.. _zesOverclockGetControlState: + +zesOverclockGetControlState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetControlState + :project: LevelZero + + +.. _zesOverclockGetVFPointValues: + +zesOverclockGetVFPointValues +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockGetVFPointValues + :project: LevelZero + + +.. _zesOverclockSetVFPointValues: + +zesOverclockSetVFPointValues +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesOverclockSetVFPointValues + :project: LevelZero + + + +Overclock Enums +------------------------------------------------------------------------------ + + +.. _zes-overclock-domain-t: + +zes_overclock_domain_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_overclock_domain_t + :project: LevelZero + + +.. _zes-overclock-control-t: + +zes_overclock_control_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_overclock_control_t + :project: LevelZero + + +.. _zes-overclock-mode-t: + +zes_overclock_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_overclock_mode_t + :project: LevelZero + + +.. _zes-control-state-t: + +zes_control_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_control_state_t + :project: LevelZero + + +.. _zes-pending-action-t: + +zes_pending_action_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_pending_action_t + :project: LevelZero + + +.. _zes-vf-program-type-t: + +zes_vf_program_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_vf_program_type_t + :project: LevelZero + + +.. _zes-vf-type-t: + +zes_vf_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_vf_type_t + :project: LevelZero + + +.. _zes-vf-array-type-t: + +zes_vf_array_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_vf_array_type_t + :project: LevelZero + + +Overclock Structures +------------------------------------------------------------------------------ + +.. _zes-overclock-properties-t: + +zes_overclock_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_overclock_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-control-property-t: + +zes_control_property_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_control_property_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-vf-property-t: + +zes_vf_property_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_vf_property_t + :project: LevelZero + :members: + :undoc-members: + + + + +Diagnostics +============================================================ +* Functions + + + * :ref:`zesDeviceEnumDiagnosticTestSuites` + * :ref:`zesDiagnosticsGetProperties` + * :ref:`zesDiagnosticsGetTests` + * :ref:`zesDiagnosticsRunTests` + + +* Enumerations + + + * :ref:`zes-diag-result-t` + + +* Structures + + + * :ref:`zes-diag-test-t` + * :ref:`zes-diag-properties-t` + + +Diagnostics Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumDiagnosticTestSuites: + +zesDeviceEnumDiagnosticTestSuites +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumDiagnosticTestSuites + :project: LevelZero + + +.. _zesDiagnosticsGetProperties: + +zesDiagnosticsGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDiagnosticsGetProperties + :project: LevelZero + + +.. _zesDiagnosticsGetTests: + +zesDiagnosticsGetTests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDiagnosticsGetTests + :project: LevelZero + + +.. _zesDiagnosticsRunTests: + +zesDiagnosticsRunTests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDiagnosticsRunTests + :project: LevelZero + + + +Diagnostics Enums +------------------------------------------------------------------------------ + + +.. _zes-diag-result-t: + +zes_diag_result_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_diag_result_t + :project: LevelZero + + +Diagnostics Structures +------------------------------------------------------------------------------ + +.. _zes-diag-test-t: + +zes_diag_test_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_diag_test_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-diag-properties-t: + +zes_diag_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_diag_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Ecc +============================================================ +* Functions + + + * :ref:`zesDeviceEccAvailable` + * :ref:`zesDeviceEccConfigurable` + * :ref:`zesDeviceGetEccState` + * :ref:`zesDeviceSetEccState` + + +* Enumerations + + + * :ref:`zes-device-ecc-state-t` + * :ref:`zes-device-action-t` + + +* Structures + + + * :ref:`zes-device-ecc-desc-t` + * :ref:`zes-device-ecc-properties-t` + + +Ecc Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEccAvailable: + +zesDeviceEccAvailable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEccAvailable + :project: LevelZero + + +.. _zesDeviceEccConfigurable: + +zesDeviceEccConfigurable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEccConfigurable + :project: LevelZero + + +.. _zesDeviceGetEccState: + +zesDeviceGetEccState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetEccState + :project: LevelZero + + +.. _zesDeviceSetEccState: + +zesDeviceSetEccState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceSetEccState + :project: LevelZero + + + +Ecc Enums +------------------------------------------------------------------------------ + + +.. _zes-device-ecc-state-t: + +zes_device_ecc_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_device_ecc_state_t + :project: LevelZero + + +.. _zes-device-action-t: + +zes_device_action_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_device_action_t + :project: LevelZero + + +Ecc Structures +------------------------------------------------------------------------------ + +.. _zes-device-ecc-desc-t: + +zes_device_ecc_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_device_ecc_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-device-ecc-properties-t: + +zes_device_ecc_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_device_ecc_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Engine +============================================================ +* Functions + + + * :ref:`zesDeviceEnumEngineGroups` + * :ref:`zesEngineGetProperties` + * :ref:`zesEngineGetActivity` + + +* Enumerations + + + * :ref:`zes-engine-group-t` + + +* Structures + + + * :ref:`zes-engine-properties-t` + * :ref:`zes-engine-stats-t` + + +Engine Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumEngineGroups: + +zesDeviceEnumEngineGroups +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumEngineGroups + :project: LevelZero + + +.. _zesEngineGetProperties: + +zesEngineGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesEngineGetProperties + :project: LevelZero + + +.. _zesEngineGetActivity: + +zesEngineGetActivity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesEngineGetActivity + :project: LevelZero + + + +Engine Enums +------------------------------------------------------------------------------ + + +.. _zes-engine-group-t: + +zes_engine_group_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_engine_group_t + :project: LevelZero + + +Engine Structures +------------------------------------------------------------------------------ + +.. _zes-engine-properties-t: + +zes_engine_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_engine_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-engine-stats-t: + +zes_engine_stats_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_engine_stats_t + :project: LevelZero + :members: + :undoc-members: + + + + +Events +============================================================ +* Functions + + + * :ref:`zesDeviceEventRegister` + * :ref:`zesDriverEventListen` + * :ref:`zesDriverEventListenEx` + + +* Enumerations + + + * :ref:`zes-event-type-flags-t` + + + + +Events Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEventRegister: + +zesDeviceEventRegister +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEventRegister + :project: LevelZero + + +.. _zesDriverEventListen: + +zesDriverEventListen +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverEventListen + :project: LevelZero + + +.. _zesDriverEventListenEx: + +zesDriverEventListenEx +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverEventListenEx + :project: LevelZero + + + +Events Enums +------------------------------------------------------------------------------ + + +.. _zes-event-type-flags-t: + +zes_event_type_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_event_type_flag_t + :project: LevelZero + + + + + +Fabric +============================================================ +* Functions + + + * :ref:`zesDeviceEnumFabricPorts` + * :ref:`zesFabricPortGetProperties` + * :ref:`zesFabricPortGetLinkType` + * :ref:`zesFabricPortGetConfig` + * :ref:`zesFabricPortSetConfig` + * :ref:`zesFabricPortGetState` + * :ref:`zesFabricPortGetThroughput` + * :ref:`zesFabricPortGetFabricErrorCounters` + * :ref:`zesFabricPortGetMultiPortThroughput` + + +* Enumerations + + + * :ref:`zes-fabric-port-status-t` + * :ref:`zes-fabric-port-qual-issue-flags-t` + * :ref:`zes-fabric-port-failure-flags-t` + + +* Structures + + + * :ref:`zes-fabric-port-id-t` + * :ref:`zes-fabric-port-speed-t` + * :ref:`zes-fabric-port-properties-t` + * :ref:`zes-fabric-link-type-t` + * :ref:`zes-fabric-port-config-t` + * :ref:`zes-fabric-port-state-t` + * :ref:`zes-fabric-port-throughput-t` + * :ref:`zes-fabric-port-error-counters-t` + + +Fabric Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumFabricPorts: + +zesDeviceEnumFabricPorts +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumFabricPorts + :project: LevelZero + + +.. _zesFabricPortGetProperties: + +zesFabricPortGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetProperties + :project: LevelZero + + +.. _zesFabricPortGetLinkType: + +zesFabricPortGetLinkType +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetLinkType + :project: LevelZero + + +.. _zesFabricPortGetConfig: + +zesFabricPortGetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetConfig + :project: LevelZero + + +.. _zesFabricPortSetConfig: + +zesFabricPortSetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortSetConfig + :project: LevelZero + + +.. _zesFabricPortGetState: + +zesFabricPortGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetState + :project: LevelZero + + +.. _zesFabricPortGetThroughput: + +zesFabricPortGetThroughput +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetThroughput + :project: LevelZero + + +.. _zesFabricPortGetFabricErrorCounters: + +zesFabricPortGetFabricErrorCounters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetFabricErrorCounters + :project: LevelZero + + +.. _zesFabricPortGetMultiPortThroughput: + +zesFabricPortGetMultiPortThroughput +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFabricPortGetMultiPortThroughput + :project: LevelZero + + + +Fabric Enums +------------------------------------------------------------------------------ + + +.. _zes-fabric-port-status-t: + +zes_fabric_port_status_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_fabric_port_status_t + :project: LevelZero + + +.. _zes-fabric-port-qual-issue-flags-t: + +zes_fabric_port_qual_issue_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_fabric_port_qual_issue_flag_t + :project: LevelZero + + +.. _zes-fabric-port-failure-flags-t: + +zes_fabric_port_failure_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_fabric_port_failure_flag_t + :project: LevelZero + + +Fabric Structures +------------------------------------------------------------------------------ + +.. _zes-fabric-port-id-t: + +zes_fabric_port_id_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_id_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-speed-t: + +zes_fabric_port_speed_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_speed_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-properties-t: + +zes_fabric_port_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-link-type-t: + +zes_fabric_link_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_link_type_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-config-t: + +zes_fabric_port_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_config_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-state-t: + +zes_fabric_port_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-throughput-t: + +zes_fabric_port_throughput_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_throughput_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fabric-port-error-counters-t: + +zes_fabric_port_error_counters_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fabric_port_error_counters_t + :project: LevelZero + :members: + :undoc-members: + + + + +Fan +============================================================ +* Functions + + + * :ref:`zesDeviceEnumFans` + * :ref:`zesFanGetProperties` + * :ref:`zesFanGetConfig` + * :ref:`zesFanSetDefaultMode` + * :ref:`zesFanSetFixedSpeedMode` + * :ref:`zesFanSetSpeedTableMode` + * :ref:`zesFanGetState` + + +* Enumerations + + + * :ref:`zes-fan-speed-mode-t` + * :ref:`zes-fan-speed-units-t` + + +* Structures + + + * :ref:`zes-fan-speed-t` + * :ref:`zes-fan-temp-speed-t` + * :ref:`zes-fan-speed-table-t` + * :ref:`zes-fan-properties-t` + * :ref:`zes-fan-config-t` + + +Fan Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumFans: + +zesDeviceEnumFans +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumFans + :project: LevelZero + + +.. _zesFanGetProperties: + +zesFanGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanGetProperties + :project: LevelZero + + +.. _zesFanGetConfig: + +zesFanGetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanGetConfig + :project: LevelZero + + +.. _zesFanSetDefaultMode: + +zesFanSetDefaultMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanSetDefaultMode + :project: LevelZero + + +.. _zesFanSetFixedSpeedMode: + +zesFanSetFixedSpeedMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanSetFixedSpeedMode + :project: LevelZero + + +.. _zesFanSetSpeedTableMode: + +zesFanSetSpeedTableMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanSetSpeedTableMode + :project: LevelZero + + +.. _zesFanGetState: + +zesFanGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFanGetState + :project: LevelZero + + + +Fan Enums +------------------------------------------------------------------------------ + + +.. _zes-fan-speed-mode-t: + +zes_fan_speed_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_fan_speed_mode_t + :project: LevelZero + + +.. _zes-fan-speed-units-t: + +zes_fan_speed_units_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_fan_speed_units_t + :project: LevelZero + + +Fan Structures +------------------------------------------------------------------------------ + +.. _zes-fan-speed-t: + +zes_fan_speed_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fan_speed_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fan-temp-speed-t: + +zes_fan_temp_speed_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fan_temp_speed_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fan-speed-table-t: + +zes_fan_speed_table_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fan_speed_table_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fan-properties-t: + +zes_fan_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fan_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-fan-config-t: + +zes_fan_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_fan_config_t + :project: LevelZero + :members: + :undoc-members: + + + + +Firmware +============================================================ +* Functions + + + * :ref:`zesDeviceEnumFirmwares` + * :ref:`zesFirmwareGetProperties` + * :ref:`zesFirmwareFlash` + * :ref:`zesFirmwareGetFlashProgress` + * :ref:`zesFirmwareGetConsoleLogs` + + + + +* Structures + + + * :ref:`zes-firmware-properties-t` + + +Firmware Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumFirmwares: + +zesDeviceEnumFirmwares +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumFirmwares + :project: LevelZero + + +.. _zesFirmwareGetProperties: + +zesFirmwareGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareGetProperties + :project: LevelZero + + +.. _zesFirmwareFlash: + +zesFirmwareFlash +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareFlash + :project: LevelZero + + +.. _zesFirmwareGetFlashProgress: + +zesFirmwareGetFlashProgress +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareGetFlashProgress + :project: LevelZero + + +.. _zesFirmwareGetConsoleLogs: + +zesFirmwareGetConsoleLogs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareGetConsoleLogs + :project: LevelZero + + + + +Firmware Structures +------------------------------------------------------------------------------ + +.. _zes-firmware-properties-t: + +zes_firmware_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_firmware_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Frequency +============================================================ +* Functions + + + * :ref:`zesDeviceEnumFrequencyDomains` + * :ref:`zesFrequencyGetProperties` + * :ref:`zesFrequencyGetAvailableClocks` + * :ref:`zesFrequencyGetRange` + * :ref:`zesFrequencySetRange` + * :ref:`zesFrequencyGetState` + * :ref:`zesFrequencyGetThrottleTime` + * :ref:`zesFrequencyOcGetCapabilities` + * :ref:`zesFrequencyOcGetFrequencyTarget` + * :ref:`zesFrequencyOcSetFrequencyTarget` + * :ref:`zesFrequencyOcGetVoltageTarget` + * :ref:`zesFrequencyOcSetVoltageTarget` + * :ref:`zesFrequencyOcSetMode` + * :ref:`zesFrequencyOcGetMode` + * :ref:`zesFrequencyOcGetIccMax` + * :ref:`zesFrequencyOcSetIccMax` + * :ref:`zesFrequencyOcGetTjMax` + * :ref:`zesFrequencyOcSetTjMax` + + +* Enumerations + + + * :ref:`zes-freq-domain-t` + * :ref:`zes-freq-throttle-reason-flags-t` + * :ref:`zes-oc-mode-t` + + +* Structures + + + * :ref:`zes-freq-properties-t` + * :ref:`zes-freq-range-t` + * :ref:`zes-freq-state-t` + * :ref:`zes-freq-throttle-time-t` + * :ref:`zes-oc-capabilities-t` + + +Frequency Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumFrequencyDomains: + +zesDeviceEnumFrequencyDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumFrequencyDomains + :project: LevelZero + + +.. _zesFrequencyGetProperties: + +zesFrequencyGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyGetProperties + :project: LevelZero + + +.. _zesFrequencyGetAvailableClocks: + +zesFrequencyGetAvailableClocks +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyGetAvailableClocks + :project: LevelZero + + +.. _zesFrequencyGetRange: + +zesFrequencyGetRange +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyGetRange + :project: LevelZero + + +.. _zesFrequencySetRange: + +zesFrequencySetRange +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencySetRange + :project: LevelZero + + +.. _zesFrequencyGetState: + +zesFrequencyGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyGetState + :project: LevelZero + + +.. _zesFrequencyGetThrottleTime: + +zesFrequencyGetThrottleTime +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyGetThrottleTime + :project: LevelZero + + +.. _zesFrequencyOcGetCapabilities: + +zesFrequencyOcGetCapabilities +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetCapabilities + :project: LevelZero + + +.. _zesFrequencyOcGetFrequencyTarget: + +zesFrequencyOcGetFrequencyTarget +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetFrequencyTarget + :project: LevelZero + + +.. _zesFrequencyOcSetFrequencyTarget: + +zesFrequencyOcSetFrequencyTarget +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcSetFrequencyTarget + :project: LevelZero + + +.. _zesFrequencyOcGetVoltageTarget: + +zesFrequencyOcGetVoltageTarget +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetVoltageTarget + :project: LevelZero + + +.. _zesFrequencyOcSetVoltageTarget: + +zesFrequencyOcSetVoltageTarget +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcSetVoltageTarget + :project: LevelZero + + +.. _zesFrequencyOcSetMode: + +zesFrequencyOcSetMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcSetMode + :project: LevelZero + + +.. _zesFrequencyOcGetMode: + +zesFrequencyOcGetMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetMode + :project: LevelZero + + +.. _zesFrequencyOcGetIccMax: + +zesFrequencyOcGetIccMax +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetIccMax + :project: LevelZero + + +.. _zesFrequencyOcSetIccMax: + +zesFrequencyOcSetIccMax +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcSetIccMax + :project: LevelZero + + +.. _zesFrequencyOcGetTjMax: + +zesFrequencyOcGetTjMax +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcGetTjMax + :project: LevelZero + + +.. _zesFrequencyOcSetTjMax: + +zesFrequencyOcSetTjMax +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFrequencyOcSetTjMax + :project: LevelZero + + + +Frequency Enums +------------------------------------------------------------------------------ + + +.. _zes-freq-domain-t: + +zes_freq_domain_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_freq_domain_t + :project: LevelZero + + +.. _zes-freq-throttle-reason-flags-t: + +zes_freq_throttle_reason_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_freq_throttle_reason_flag_t + :project: LevelZero + + +.. _zes-oc-mode-t: + +zes_oc_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_oc_mode_t + :project: LevelZero + + +Frequency Structures +------------------------------------------------------------------------------ + +.. _zes-freq-properties-t: + +zes_freq_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_freq_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-freq-range-t: + +zes_freq_range_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_freq_range_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-freq-state-t: + +zes_freq_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_freq_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-freq-throttle-time-t: + +zes_freq_throttle_time_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_freq_throttle_time_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-oc-capabilities-t: + +zes_oc_capabilities_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_oc_capabilities_t + :project: LevelZero + :members: + :undoc-members: + + + + +Led +============================================================ +* Functions + + + * :ref:`zesDeviceEnumLeds` + * :ref:`zesLedGetProperties` + * :ref:`zesLedGetState` + * :ref:`zesLedSetState` + * :ref:`zesLedSetColor` + + + + +* Structures + + + * :ref:`zes-led-properties-t` + * :ref:`zes-led-color-t` + * :ref:`zes-led-state-t` + + +Led Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumLeds: + +zesDeviceEnumLeds +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumLeds + :project: LevelZero + + +.. _zesLedGetProperties: + +zesLedGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesLedGetProperties + :project: LevelZero + + +.. _zesLedGetState: + +zesLedGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesLedGetState + :project: LevelZero + + +.. _zesLedSetState: + +zesLedSetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesLedSetState + :project: LevelZero + + +.. _zesLedSetColor: + +zesLedSetColor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesLedSetColor + :project: LevelZero + + + + +Led Structures +------------------------------------------------------------------------------ + +.. _zes-led-properties-t: + +zes_led_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_led_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-led-color-t: + +zes_led_color_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_led_color_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-led-state-t: + +zes_led_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_led_state_t + :project: LevelZero + :members: + :undoc-members: + + + + +Memory +============================================================ +* Functions + + + * :ref:`zesDeviceEnumMemoryModules` + * :ref:`zesMemoryGetProperties` + * :ref:`zesMemoryGetState` + * :ref:`zesMemoryGetBandwidth` + + +* Enumerations + + + * :ref:`zes-mem-type-t` + * :ref:`zes-mem-loc-t` + * :ref:`zes-mem-health-t` + + +* Structures + + + * :ref:`zes-mem-properties-t` + * :ref:`zes-mem-state-t` + * :ref:`zes-mem-bandwidth-t` + * :ref:`zes-mem-ext-bandwidth-t` + + +Memory Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumMemoryModules: + +zesDeviceEnumMemoryModules +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumMemoryModules + :project: LevelZero + + +.. _zesMemoryGetProperties: + +zesMemoryGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesMemoryGetProperties + :project: LevelZero + + +.. _zesMemoryGetState: + +zesMemoryGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesMemoryGetState + :project: LevelZero + + +.. _zesMemoryGetBandwidth: + +zesMemoryGetBandwidth +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesMemoryGetBandwidth + :project: LevelZero + + + +Memory Enums +------------------------------------------------------------------------------ + + +.. _zes-mem-type-t: + +zes_mem_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_mem_type_t + :project: LevelZero + + +.. _zes-mem-loc-t: + +zes_mem_loc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_mem_loc_t + :project: LevelZero + + +.. _zes-mem-health-t: + +zes_mem_health_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_mem_health_t + :project: LevelZero + + +Memory Structures +------------------------------------------------------------------------------ + +.. _zes-mem-properties-t: + +zes_mem_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-mem-state-t: + +zes_mem_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-mem-bandwidth-t: + +zes_mem_bandwidth_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_bandwidth_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-mem-ext-bandwidth-t: + +zes_mem_ext_bandwidth_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_ext_bandwidth_t + :project: LevelZero + :members: + :undoc-members: + + + + +Performance +============================================================ +* Functions + + + * :ref:`zesDeviceEnumPerformanceFactorDomains` + * :ref:`zesPerformanceFactorGetProperties` + * :ref:`zesPerformanceFactorGetConfig` + * :ref:`zesPerformanceFactorSetConfig` + + + + +* Structures + + + * :ref:`zes-perf-properties-t` + + +Performance Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumPerformanceFactorDomains: + +zesDeviceEnumPerformanceFactorDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumPerformanceFactorDomains + :project: LevelZero + + +.. _zesPerformanceFactorGetProperties: + +zesPerformanceFactorGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPerformanceFactorGetProperties + :project: LevelZero + + +.. _zesPerformanceFactorGetConfig: + +zesPerformanceFactorGetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPerformanceFactorGetConfig + :project: LevelZero + + +.. _zesPerformanceFactorSetConfig: + +zesPerformanceFactorSetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPerformanceFactorSetConfig + :project: LevelZero + + + + +Performance Structures +------------------------------------------------------------------------------ + +.. _zes-perf-properties-t: + +zes_perf_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_perf_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Power +============================================================ +* Functions + + + * :ref:`zesDeviceEnumPowerDomains` + * :ref:`zesDeviceGetCardPowerDomain` + * :ref:`zesPowerGetProperties` + * :ref:`zesPowerGetEnergyCounter` + * :ref:`zesPowerGetLimits` + * :ref:`zesPowerSetLimits` + * :ref:`zesPowerGetEnergyThreshold` + * :ref:`zesPowerSetEnergyThreshold` + + +* Enumerations + + + * :ref:`zes-power-domain-t` + * :ref:`zes-power-level-t` + * :ref:`zes-power-source-t` + * :ref:`zes-limit-unit-t` + + +* Structures + + + * :ref:`zes-power-properties-t` + * :ref:`zes-power-energy-counter-t` + * :ref:`zes-power-sustained-limit-t` + * :ref:`zes-power-burst-limit-t` + * :ref:`zes-power-peak-limit-t` + * :ref:`zes-energy-threshold-t` + + +Power Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumPowerDomains: + +zesDeviceEnumPowerDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumPowerDomains + :project: LevelZero + + +.. _zesDeviceGetCardPowerDomain: + +zesDeviceGetCardPowerDomain +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetCardPowerDomain + :project: LevelZero + + +.. _zesPowerGetProperties: + +zesPowerGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerGetProperties + :project: LevelZero + + +.. _zesPowerGetEnergyCounter: + +zesPowerGetEnergyCounter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerGetEnergyCounter + :project: LevelZero + + +.. _zesPowerGetLimits: + +zesPowerGetLimits +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerGetLimits + :project: LevelZero + + +.. _zesPowerSetLimits: + +zesPowerSetLimits +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerSetLimits + :project: LevelZero + + +.. _zesPowerGetEnergyThreshold: + +zesPowerGetEnergyThreshold +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerGetEnergyThreshold + :project: LevelZero + + +.. _zesPowerSetEnergyThreshold: + +zesPowerSetEnergyThreshold +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerSetEnergyThreshold + :project: LevelZero + + + +Power Enums +------------------------------------------------------------------------------ + + +.. _zes-power-domain-t: + +zes_power_domain_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_power_domain_t + :project: LevelZero + + +.. _zes-power-level-t: + +zes_power_level_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_power_level_t + :project: LevelZero + + +.. _zes-power-source-t: + +zes_power_source_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_power_source_t + :project: LevelZero + + +.. _zes-limit-unit-t: + +zes_limit_unit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_limit_unit_t + :project: LevelZero + + +Power Structures +------------------------------------------------------------------------------ + +.. _zes-power-properties-t: + +zes_power_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-power-energy-counter-t: + +zes_power_energy_counter_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_energy_counter_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-power-sustained-limit-t: + +zes_power_sustained_limit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_sustained_limit_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-power-burst-limit-t: + +zes_power_burst_limit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_burst_limit_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-power-peak-limit-t: + +zes_power_peak_limit_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_peak_limit_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-energy-threshold-t: + +zes_energy_threshold_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_energy_threshold_t + :project: LevelZero + :members: + :undoc-members: + + + + +Psu +============================================================ +* Functions + + + * :ref:`zesDeviceEnumPsus` + * :ref:`zesPsuGetProperties` + * :ref:`zesPsuGetState` + + +* Enumerations + + + * :ref:`zes-psu-voltage-status-t` + + +* Structures + + + * :ref:`zes-psu-properties-t` + * :ref:`zes-psu-state-t` + + +Psu Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumPsus: + +zesDeviceEnumPsus +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumPsus + :project: LevelZero + + +.. _zesPsuGetProperties: + +zesPsuGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPsuGetProperties + :project: LevelZero + + +.. _zesPsuGetState: + +zesPsuGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPsuGetState + :project: LevelZero + + + +Psu Enums +------------------------------------------------------------------------------ + + +.. _zes-psu-voltage-status-t: + +zes_psu_voltage_status_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_psu_voltage_status_t + :project: LevelZero + + +Psu Structures +------------------------------------------------------------------------------ + +.. _zes-psu-properties-t: + +zes_psu_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_psu_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-psu-state-t: + +zes_psu_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_psu_state_t + :project: LevelZero + :members: + :undoc-members: + + + + +Ras +============================================================ +* Functions + + + * :ref:`zesDeviceEnumRasErrorSets` + * :ref:`zesRasGetProperties` + * :ref:`zesRasGetConfig` + * :ref:`zesRasSetConfig` + * :ref:`zesRasGetState` + + +* Enumerations + + + * :ref:`zes-ras-error-type-t` + * :ref:`zes-ras-error-cat-t` + + +* Structures + + + * :ref:`zes-ras-properties-t` + * :ref:`zes-ras-state-t` + * :ref:`zes-ras-config-t` + + +Ras Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumRasErrorSets: + +zesDeviceEnumRasErrorSets +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumRasErrorSets + :project: LevelZero + + +.. _zesRasGetProperties: + +zesRasGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasGetProperties + :project: LevelZero + + +.. _zesRasGetConfig: + +zesRasGetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasGetConfig + :project: LevelZero + + +.. _zesRasSetConfig: + +zesRasSetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasSetConfig + :project: LevelZero + + +.. _zesRasGetState: + +zesRasGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasGetState + :project: LevelZero + + + +Ras Enums +------------------------------------------------------------------------------ + + +.. _zes-ras-error-type-t: + +zes_ras_error_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_ras_error_type_t + :project: LevelZero + + +.. _zes-ras-error-cat-t: + +zes_ras_error_cat_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_ras_error_cat_t + :project: LevelZero + + +Ras Structures +------------------------------------------------------------------------------ + +.. _zes-ras-properties-t: + +zes_ras_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_ras_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-ras-state-t: + +zes_ras_state_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_ras_state_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-ras-config-t: + +zes_ras_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_ras_config_t + :project: LevelZero + :members: + :undoc-members: + + + + +Scheduler +============================================================ +* Functions + + + * :ref:`zesDeviceEnumSchedulers` + * :ref:`zesSchedulerGetProperties` + * :ref:`zesSchedulerGetCurrentMode` + * :ref:`zesSchedulerGetTimeoutModeProperties` + * :ref:`zesSchedulerGetTimesliceModeProperties` + * :ref:`zesSchedulerSetTimeoutMode` + * :ref:`zesSchedulerSetTimesliceMode` + * :ref:`zesSchedulerSetExclusiveMode` + * :ref:`zesSchedulerSetComputeUnitDebugMode` + + +* Enumerations + + + * :ref:`zes-sched-mode-t` + + +* Structures + + + * :ref:`zes-sched-properties-t` + * :ref:`zes-sched-timeout-properties-t` + * :ref:`zes-sched-timeslice-properties-t` + + +Scheduler Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumSchedulers: + +zesDeviceEnumSchedulers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumSchedulers + :project: LevelZero + + +.. _zesSchedulerGetProperties: + +zesSchedulerGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerGetProperties + :project: LevelZero + + +.. _zesSchedulerGetCurrentMode: + +zesSchedulerGetCurrentMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerGetCurrentMode + :project: LevelZero + + +.. _zesSchedulerGetTimeoutModeProperties: + +zesSchedulerGetTimeoutModeProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerGetTimeoutModeProperties + :project: LevelZero + + +.. _zesSchedulerGetTimesliceModeProperties: + +zesSchedulerGetTimesliceModeProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerGetTimesliceModeProperties + :project: LevelZero + + +.. _zesSchedulerSetTimeoutMode: + +zesSchedulerSetTimeoutMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerSetTimeoutMode + :project: LevelZero + + +.. _zesSchedulerSetTimesliceMode: + +zesSchedulerSetTimesliceMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerSetTimesliceMode + :project: LevelZero + + +.. _zesSchedulerSetExclusiveMode: + +zesSchedulerSetExclusiveMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerSetExclusiveMode + :project: LevelZero + + +.. _zesSchedulerSetComputeUnitDebugMode: + +zesSchedulerSetComputeUnitDebugMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesSchedulerSetComputeUnitDebugMode + :project: LevelZero + + + +Scheduler Enums +------------------------------------------------------------------------------ + + +.. _zes-sched-mode-t: + +zes_sched_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_sched_mode_t + :project: LevelZero + + +Scheduler Structures +------------------------------------------------------------------------------ + +.. _zes-sched-properties-t: + +zes_sched_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_sched_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-sched-timeout-properties-t: + +zes_sched_timeout_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_sched_timeout_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-sched-timeslice-properties-t: + +zes_sched_timeslice_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_sched_timeslice_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Standby +============================================================ +* Functions + + + * :ref:`zesDeviceEnumStandbyDomains` + * :ref:`zesStandbyGetProperties` + * :ref:`zesStandbyGetMode` + * :ref:`zesStandbySetMode` + + +* Enumerations + + + * :ref:`zes-standby-type-t` + * :ref:`zes-standby-promo-mode-t` + + +* Structures + + + * :ref:`zes-standby-properties-t` + + +Standby Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumStandbyDomains: + +zesDeviceEnumStandbyDomains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumStandbyDomains + :project: LevelZero + + +.. _zesStandbyGetProperties: + +zesStandbyGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesStandbyGetProperties + :project: LevelZero + + +.. _zesStandbyGetMode: + +zesStandbyGetMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesStandbyGetMode + :project: LevelZero + + +.. _zesStandbySetMode: + +zesStandbySetMode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesStandbySetMode + :project: LevelZero + + + +Standby Enums +------------------------------------------------------------------------------ + + +.. _zes-standby-type-t: + +zes_standby_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_standby_type_t + :project: LevelZero + + +.. _zes-standby-promo-mode-t: + +zes_standby_promo_mode_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_standby_promo_mode_t + :project: LevelZero + + +Standby Structures +------------------------------------------------------------------------------ + +.. _zes-standby-properties-t: + +zes_standby_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_standby_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Temperature +============================================================ +* Functions + + + * :ref:`zesDeviceEnumTemperatureSensors` + * :ref:`zesTemperatureGetProperties` + * :ref:`zesTemperatureGetConfig` + * :ref:`zesTemperatureSetConfig` + * :ref:`zesTemperatureGetState` + + +* Enumerations + + + * :ref:`zes-temp-sensors-t` + + +* Structures + + + * :ref:`zes-temp-properties-t` + * :ref:`zes-temp-threshold-t` + * :ref:`zes-temp-config-t` + + +Temperature Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumTemperatureSensors: + +zesDeviceEnumTemperatureSensors +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumTemperatureSensors + :project: LevelZero + + +.. _zesTemperatureGetProperties: + +zesTemperatureGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesTemperatureGetProperties + :project: LevelZero + + +.. _zesTemperatureGetConfig: + +zesTemperatureGetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesTemperatureGetConfig + :project: LevelZero + + +.. _zesTemperatureSetConfig: + +zesTemperatureSetConfig +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesTemperatureSetConfig + :project: LevelZero + + +.. _zesTemperatureGetState: + +zesTemperatureGetState +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesTemperatureGetState + :project: LevelZero + + + +Temperature Enums +------------------------------------------------------------------------------ + + +.. _zes-temp-sensors-t: + +zes_temp_sensors_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_temp_sensors_t + :project: LevelZero + + +Temperature Structures +------------------------------------------------------------------------------ + +.. _zes-temp-properties-t: + +zes_temp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_temp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-temp-threshold-t: + +zes_temp_threshold_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_temp_threshold_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-temp-config-t: + +zes_temp_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_temp_config_t + :project: LevelZero + :members: + :undoc-members: + + + + +Powerlimits +============================================================ +* Functions + + + * :ref:`zesPowerGetLimitsExt` + * :ref:`zesPowerSetLimitsExt` + + +* Enumerations + + + * :ref:`zes-power-limits-ext-version-t` + + +* Structures + + + * :ref:`zes-power-limit-ext-desc-t` + * :ref:`zes-power-ext-properties-t` + + +Powerlimits Functions +------------------------------------------------------------------------------ + + +.. _zesPowerGetLimitsExt: + +zesPowerGetLimitsExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerGetLimitsExt + :project: LevelZero + + +.. _zesPowerSetLimitsExt: + +zesPowerSetLimitsExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesPowerSetLimitsExt + :project: LevelZero + + + +Powerlimits Enums +------------------------------------------------------------------------------ + + +.. _zes-power-limits-ext-version-t: + +zes_power_limits_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_power_limits_ext_version_t + :project: LevelZero + + +Powerlimits Structures +------------------------------------------------------------------------------ + +.. _zes-power-limit-ext-desc-t: + +zes_power_limit_ext_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_limit_ext_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-power-ext-properties-t: + +zes_power_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Engineactivity +============================================================ +* Functions + + + * :ref:`zesEngineGetActivityExt` + + +* Enumerations + + + * :ref:`zes-engine-activity-ext-version-t` + + +* Structures + + + * :ref:`zes-engine-ext-properties-t` + + +Engineactivity Functions +------------------------------------------------------------------------------ + + +.. _zesEngineGetActivityExt: + +zesEngineGetActivityExt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesEngineGetActivityExt + :project: LevelZero + + + +Engineactivity Enums +------------------------------------------------------------------------------ + + +.. _zes-engine-activity-ext-version-t: + +zes_engine_activity_ext_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_engine_activity_ext_version_t + :project: LevelZero + + +Engineactivity Structures +------------------------------------------------------------------------------ + +.. _zes-engine-ext-properties-t: + +zes_engine_ext_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_engine_ext_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Rasstate +============================================================ +* Functions + + + * :ref:`zesRasGetStateExp` + * :ref:`zesRasClearStateExp` + + +* Enumerations + + + * :ref:`zes-ras-state-exp-version-t` + * :ref:`zes-ras-error-category-exp-t` + + +* Structures + + + * :ref:`zes-ras-state-exp-t` + + +Rasstate Functions +------------------------------------------------------------------------------ + + +.. _zesRasGetStateExp: + +zesRasGetStateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasGetStateExp + :project: LevelZero + + +.. _zesRasClearStateExp: + +zesRasClearStateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesRasClearStateExp + :project: LevelZero + + + +Rasstate Enums +------------------------------------------------------------------------------ + + +.. _zes-ras-state-exp-version-t: + +zes_ras_state_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_ras_state_exp_version_t + :project: LevelZero + + +.. _zes-ras-error-category-exp-t: + +zes_ras_error_category_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_ras_error_category_exp_t + :project: LevelZero + + +Rasstate Structures +------------------------------------------------------------------------------ + +.. _zes-ras-state-exp-t: + +zes_ras_state_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_ras_state_exp_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Mempageofflinestate +============================================================ +* Enumerations + + + * :ref:`zes-mem-page-offline-state-exp-version-t` + + +* Structures + + + * :ref:`zes-mem-page-offline-state-exp-t` + + + + +Mempageofflinestate Enums +------------------------------------------------------------------------------ + + +.. _zes-mem-page-offline-state-exp-version-t: + +zes_mem_page_offline_state_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_mem_page_offline_state_exp_version_t + :project: LevelZero + + +Mempageofflinestate Structures +------------------------------------------------------------------------------ + +.. _zes-mem-page-offline-state-exp-t: + +zes_mem_page_offline_state_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_page_offline_state_exp_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Memorybwcountervalidbits +============================================================ +* Enumerations + + + * :ref:`zes-mem-bandwidth-counter-bits-exp-version-t` + + +* Structures + + + * :ref:`zes-mem-bandwidth-counter-bits-exp-properties-t` + + + + +Memorybwcountervalidbits Enums +------------------------------------------------------------------------------ + + +.. _zes-mem-bandwidth-counter-bits-exp-version-t: + +zes_mem_bandwidth_counter_bits_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_mem_bandwidth_counter_bits_exp_version_t + :project: LevelZero + + +Memorybwcountervalidbits Structures +------------------------------------------------------------------------------ + +.. _zes-mem-bandwidth-counter-bits-exp-properties-t: + +zes_mem_bandwidth_counter_bits_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_mem_bandwidth_counter_bits_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + + + +Powerdomainproperties +============================================================ +* Enumerations + + + * :ref:`zes-power-domain-properties-exp-version-t` + + +* Structures + + + * :ref:`zes-power-domain-exp-properties-t` + + + + +Powerdomainproperties Enums +------------------------------------------------------------------------------ + + +.. _zes-power-domain-properties-exp-version-t: + +zes_power_domain_properties_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_power_domain_properties_exp_version_t + :project: LevelZero + + +Powerdomainproperties Structures +------------------------------------------------------------------------------ + +.. _zes-power-domain-exp-properties-t: + +zes_power_domain_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_power_domain_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Firmwaresecurityversion +============================================================ +* Functions + + + * :ref:`zesFirmwareGetSecurityVersionExp` + * :ref:`zesFirmwareSetSecurityVersionExp` + + +* Enumerations + + + * :ref:`zes-firmware-security-exp-version-t` + + + + +Firmwaresecurityversion Functions +------------------------------------------------------------------------------ + + +.. _zesFirmwareGetSecurityVersionExp: + +zesFirmwareGetSecurityVersionExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareGetSecurityVersionExp + :project: LevelZero + + +.. _zesFirmwareSetSecurityVersionExp: + +zesFirmwareSetSecurityVersionExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesFirmwareSetSecurityVersionExp + :project: LevelZero + + + +Firmwaresecurityversion Enums +------------------------------------------------------------------------------ + + +.. _zes-firmware-security-exp-version-t: + +zes_firmware_security_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_firmware_security_exp_version_t + :project: LevelZero + + + + + +Sysmandevicemapping +============================================================ +* Functions + + + * :ref:`zesDeviceGetSubDevicePropertiesExp` + * :ref:`zesDriverGetDeviceByUuidExp` + + +* Enumerations + + + * :ref:`zes-sysman-device-mapping-exp-version-t` + + +* Structures + + + * :ref:`zes-subdevice-exp-properties-t` + + +Sysmandevicemapping Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceGetSubDevicePropertiesExp: + +zesDeviceGetSubDevicePropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceGetSubDevicePropertiesExp + :project: LevelZero + + +.. _zesDriverGetDeviceByUuidExp: + +zesDriverGetDeviceByUuidExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDriverGetDeviceByUuidExp + :project: LevelZero + + + +Sysmandevicemapping Enums +------------------------------------------------------------------------------ + + +.. _zes-sysman-device-mapping-exp-version-t: + +zes_sysman_device_mapping_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_sysman_device_mapping_exp_version_t + :project: LevelZero + + +Sysmandevicemapping Structures +------------------------------------------------------------------------------ + +.. _zes-subdevice-exp-properties-t: + +zes_subdevice_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_subdevice_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Virtualfunctionmanagement +============================================================ +* Functions + + + * :ref:`zesDeviceEnumEnabledVFExp` + * :ref:`zesVFManagementGetVFCapabilitiesExp` + * :ref:`zesVFManagementGetVFMemoryUtilizationExp` + * :ref:`zesVFManagementGetVFEngineUtilizationExp` + + +* Enumerations + + + * :ref:`zes-vf-management-exp-version-t` + + +* Structures + + + * :ref:`zes-vf-exp-capabilities-t` + * :ref:`zes-vf-util-mem-exp-t` + * :ref:`zes-vf-util-engine-exp-t` + + +Virtualfunctionmanagement Functions +------------------------------------------------------------------------------ + + +.. _zesDeviceEnumEnabledVFExp: + +zesDeviceEnumEnabledVFExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesDeviceEnumEnabledVFExp + :project: LevelZero + + +.. _zesVFManagementGetVFCapabilitiesExp: + +zesVFManagementGetVFCapabilitiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesVFManagementGetVFCapabilitiesExp + :project: LevelZero + + +.. _zesVFManagementGetVFMemoryUtilizationExp: + +zesVFManagementGetVFMemoryUtilizationExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesVFManagementGetVFMemoryUtilizationExp + :project: LevelZero + + +.. _zesVFManagementGetVFEngineUtilizationExp: + +zesVFManagementGetVFEngineUtilizationExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zesVFManagementGetVFEngineUtilizationExp + :project: LevelZero + + + +Virtualfunctionmanagement Enums +------------------------------------------------------------------------------ + + +.. _zes-vf-management-exp-version-t: + +zes_vf_management_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zes_vf_management_exp_version_t + :project: LevelZero + + +Virtualfunctionmanagement Structures +------------------------------------------------------------------------------ + +.. _zes-vf-exp-capabilities-t: + +zes_vf_exp_capabilities_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_vf_exp_capabilities_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-vf-util-mem-exp-t: + +zes_vf_util_mem_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_vf_util_mem_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _zes-vf-util-engine-exp-t: + +zes_vf_util_engine_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zes_vf_util_engine_exp_t + :project: LevelZero + :members: + :undoc-members: + + diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_APITracing.rst b/level-zero/1.10/_sources/tools/EXT_Exp_APITracing.rst new file mode 100644 index 0000000..4d6a1e0 --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_APITracing.rst @@ -0,0 +1,33 @@ + +:orphan: + +.. _ZET_experimental_api_tracing: + +========================= + API Tracing Extension +========================= + +API +---- + +* Functions + + + * :ref:`zetTracerExpCreate` + * :ref:`zetTracerExpDestroy` + * :ref:`zetTracerExpSetPrologues` + * :ref:`zetTracerExpSetEpilogues` + * :ref:`zetTracerExpSetEnabled` + + +* Enumerations + + + * :ref:`zet-api-tracing-exp-version-t` + + +* Structures + + + * :ref:`zet-tracer-exp-desc-t` + diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_ConcurrentMetricGroup.rst b/level-zero/1.10/_sources/tools/EXT_Exp_ConcurrentMetricGroup.rst new file mode 100644 index 0000000..5d44b16 --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_ConcurrentMetricGroup.rst @@ -0,0 +1,60 @@ + +:orphan: + +.. _ZET_experimental_concurrent_metric_groups: + +========================================== +Concurrent Metric Groups Experimental Extension +========================================== + +API +---- + +* Functions + + * :ref:`zetDeviceGetConcurrentMetricGroupsExp` + +Concurrent Metric Groups +~~~~~~~~~~~~~~~~~~~~~~~~ + +Metric groups enumerated or created cannot be collected or activated concurrently if the metric groups use shared HW resources. +Currently Metric "Domains" are used to determine if a metric group can be collected along with another metric group. +Since Metric "Domains" are at a metric group level, it cannot represent metric level HW dependencies. +This API replaces using "domain" property of metric group to determine independent HW usage and provides sets of metric groups which could be collected concurrently. +:ref:`zetDeviceGetConcurrentMetricGroupsExp` allows an input list of metric groups to be re-arranged to sequential sets of metric groups which could be collected concurrently. +This API also allows the application to calculate the number of replays or workload executions necessary to collect a set of overlapping metric groups. + + +Sample Code +------------ + +The following pseudo-code shows how an application could query for sets of concurrent metric groups within a list of metric groups + +.. parsed-literal:: + + // Input metric group count; + uint32_t inputMetricGroupCount; + + // Input and output list of metric groups + zet_metric_group_handle_t * phMetricGroups; + + // Output concurrent group information + uint32_t concurrentGroupCount = 0; + + // Get number of concurrent groups / number of replays necessary + :ref:`zetDeviceGetConcurrentMetricGroupsExp`\(hDevice, inputMetricGroupCount, phMetricGroups, &concurrentGroupCount, nullptr); + + // Allocate for count per concurrent group + uint32_t * pCountPerConcurrentGroup = malloc(sizeof(uint32_t) * concurrentGroupCount); + + // Retrieve the rearranged metric groups along with the count per concurrent group + :ref:`zetDeviceGetConcurrentMetricGroupsExp`\(hDevice, inputMetricGroupCount, phMetricGroups, &concurrentGroupCount, pCountPerConcurrentGroup); + + // Activate the concurrent groups and Replay the workload + for(uint32_t concurrentGroupIndex = 0; concurrentGroupIndex < concurrentGroupCount; concurrentGroupIndex ++){ + :ref:`zetContextActivateMetricGroups`\(hContext, hDevice, pCountPerConcurrentGroup[concurrentGroupIndex], phMetricGroups); + + // run workload + + phMetricGroups += pCountPerConcurrentGroup[concurrentGroupIndex]; + } \ No newline at end of file diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_GlobalTimestamps.rst b/level-zero/1.10/_sources/tools/EXT_Exp_GlobalTimestamps.rst new file mode 100644 index 0000000..68157a7 --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_GlobalTimestamps.rst @@ -0,0 +1,19 @@ + +:orphan: + +.. _ZET_experimental_global_metric_timestamps: + +========================================== +Global Metrics Timestamps Extension +========================================== + +API +---- + +* Structures + + * :ref:`zet-metric-global-timestamps-resolution-exp-t` + +* Functions + + * :ref:`zetMetricGroupGetGlobalTimestampsExp` \ No newline at end of file diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_MetricExportData.rst b/level-zero/1.10/_sources/tools/EXT_Exp_MetricExportData.rst new file mode 100644 index 0000000..3779cdc --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_MetricExportData.rst @@ -0,0 +1,54 @@ + +:orphan: + +.. _ZET_experimental_metric_export_data: + +========================================== +Metrics Export Data Experimental Extension +========================================== + +API +---- + +* Structures + + * :ref:`zet-metric-calculate-exp-desc-t` + +* Functions + + * :ref:`zetMetricGroupGetExportDataExp` + * :ref:`zetMetricGroupCalculateMetricExportDataExp` + +Sample Code +------------ + +The following code shows how to export metrics raw data for a metric group. + +.. parsed-literal:: + + // Get size for export data + size_t exportDataSize = 0; + :ref:`zetMetricGroupGetExportDataExp`\(hMetricGroup, rawData, rawDataSize, &exportDataSize, nullptr); + + // Allocate buffer for export data + uint8_t* pExportData = malloc(exportDataSize); + + // Retrieve export data + :ref:`zetMetricGroupGetExportDataExp`\(hMetricGroup, rawData, rawDataSize, &exportDataSize, pExportData); + + +The following code shows how to perform metrics calculation of collected data, which can be done in a different system than where data was collected. + +.. parsed-literal:: + + // Get data count and total metric count + :ref:`zet-metric-group-calculation-type-t` type = :ref:`ZET_METRIC_GROUP_CALCULATION_TYPE_METRIC_VALUES `\; + :ref:`zet-metric-calculate-exp-desc-t` calculateDesc; + calculateDesc.rawReportSkipCount = 0; + :ref:`zetMetricGroupCalculateMetricExportDataExp`\(hDriver, type, exportDataSize, pExportData, &calculateDesc, &dataCount, &totalMetricCount, nullptr, nullptr); + + void* pMetricCounts = malloc(dataCount * sizeof(uint32_t)); + void* pMetricValues = malloc(totalMetricCount * sizeof(zet_typed_value_t)); + + // Get metric counts and metric values + :ref:`zetMetricGroupCalculateMetricExportDataExp`\(hDriver, type, exportDataSize, pExportData, &calculateDesc, &dataCount, &totalMetricCount, pMetricCounts, pMetricValues); diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_MetricProgrammable.rst b/level-zero/1.10/_sources/tools/EXT_Exp_MetricProgrammable.rst new file mode 100644 index 0000000..531df1e --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_MetricProgrammable.rst @@ -0,0 +1,115 @@ + +:orphan: + +.. _ZET_experimental_programmable_metrics: + +========================================== +Metric Programmable Experimental Extension +========================================== + +API +---- +* Enumerations + + * :ref:`zet-metric-programmable-param-type-exp-t` + * :ref:`zet-value-info-type-exp-t` + * :ref:`zet-metric-programmable-exp-version-t` + +* Structures + + * :ref:`zet-metric-programmable-exp-properties-t` + * :ref:`zet-metric-programmable-param-info-exp-t` + * :ref:`zet-metric-programmable-param-value-exp-t` + * :ref:`zet-metric-programmable-param-value-info-exp-t` + * :ref:`zet-value-info-exp-t` + * :ref:`zet-value-uint64-range-exp-t` + +* Functions + + * :ref:`zetMetricProgrammableGetExp` + * :ref:`zetMetricProgrammableGetPropertiesExp` + * :ref:`zetMetricProgrammableGetParamInfoExp` + * :ref:`zetMetricProgrammableGetParamValueInfoExp` + * :ref:`zetMetricCreateFromProgrammableExp` + * :ref:`zetDeviceCreateMetricGroupsFromMetricsExp` + * :ref:`zetMetricGroupAddMetricExp` + * :ref:`zetMetricGroupRemoveMetricExp` + * :ref:`zetMetricGroupCloseExp` + * :ref:`zetMetricDestroyExp` + * :ref:`zetMetricGroupDestroyExp` + +Metric Programmable +~~~~~~~~~~~~~~~~~~~ + +Application can use :ref:`zetMetricGroupGet` to enumerate the list of metric groups and :ref:`zetMetricGet` for the metrics available for collection. +However Applications may also want to collect custom metrics which are not listed as part of the enumeration. +This is made possible by making a list of programmable metrics available to the application, so that it may choose different parameter values for preparing custom metrics. + +Sample Code +------------ + +The following pseudo-code demonstrates how programmable metrics could be enumerated and custom values could be set to the metric parameters. + +.. parsed-literal:: + + zet_metric_handle_t * metricHandles = null_ptr; + uint32_t metricHandleCount = 0; + + // Query and Get metric programmable handles + uint32_t programmableCount = 0; + :ref:`zetMetricProgrammableGetExp`\(device, &programmableCount, nullptr); + zet_metric_programmable_exp_handle_t * metricProgrammableHandles = allocate(sizeof(zet_metric_programmable_exp_handle_t) * programmableCount); + :ref:`zetMetricProgrammableGetExp`\(device, &programmableCount, metricProgrammableHandles); + + // Create metrics from metric programmable handles + for(uint32_t i = 0; i < programmableCount; i++){ + + zet_metric_programmable_exp_handle_t programmableHandle = metricProgrammableHandles[i]; + :ref:`zet-metric-programmable-exp-properties-t` programmableProperties{}; + :ref:`zetMetricProgrammableGetPropertiesExp`\(programmableHandle, &programmableProperties); + + // Choose programmable handle of interest + if(strcmp(programmableProperties.name, "EU_ACTIVE" ) == 0){ + + // Get Parameter info + :ref:`zet-metric-programmable-param-info-exp-t` * paramInfo = allocate (sizeof(:ref:`zet-metric-programmable-param-info-exp-t`\) * programmableProperties.parameterCount); + :ref:`zetMetricProgrammableGetParamInfoExp`\(programmableHandle, programmableProperties.parameterCount, paramInfo); + + // Get Parameter Value info for the 0th parameter + :ref:`zet-metric-programmable-param-value-info-exp-t` * paramValueInfo = allocate(sizeof(:ref:`zet-metric-programmable-param-value-info-exp-t`\) * paramInfo[0].valueInfoCount); + :ref:`zetMetricProgrammableGetParamValueInfoExp`\(programmableHandle, 0, paramInfo[0].valueInfoCount, paramValueInfo); + + // Setting value for the 0th parameter + :ref:`zet-metric-programmable-param-value-exp-t` parameterValue; + parameterValue.value = paramValueInfo[0].valueInfo.ui64; + + // Create Metric + char metricName[ZET_MAX_METRIC_NAME] = "eu_active_minimum"; + char metricDescription[ZET_MAX_METRIC_DESCRIPTION] = "eu_active_minimum_desc"; + :ref:`zetMetricCreateFromProgrammableExp`\(programmableHandle, ¶meterValue, 1, metricName, metricDescription, &metricHandleCount, nullptr); + zet_metric_handle_t * metricHandles = allocate(sizeof(zet_metric_handle_t) * metricHandleCount); + :ref:`zetMetricCreateFromProgrammableExp`\(programmableHandle, ¶meterValue, 1, metricName, metricDescription, &metricHandleCount, metricHandles); + } + } + + //Create Metric Group from metrics + char metricGroupNamePrefix[ZET_MAX_METRIC_GROUP_NAME_PREFIX_EXP] = "eu_active"; + char metricGroupDescription[ZET_MAX_METRIC_GROUP_DESCRIPTION] = "eu_active_desc"; + uint32_t metricGroupCount = 0; + :ref:`zetDeviceCreateMetricGroupsFromMetricsExp`\(device, 1, &metricHandles[0], metricGroupNamePrefix, metricGroupDescription, &metricGroupCount, nullptr); + zet_metric_group_handle_t * metricGroupHandles = allocate(sizeof(zet_metric_group_handle_t) * metricGroupCount); + :ref:`zetDeviceCreateMetricGroupsFromMetricsExp`\(device, 1, &metricHandles[0], metricGroupNamePrefix, metricGroupDescription, &metricGroupCount, metricGroupHandles); + :ref:`zetMetricGroupAddMetricExp`\(metricGroupHandles[0], &metricHandles[1], nullptr, nullptr); + :ref:`zetMetricGroupCloseExp`\(metricGroupHandles[0]); + + //Activate Metric group + //Collect Metric group using available sampling types + + //Cleanup + :ref:`zetMetricGroupDestroyExp`\(metricGroup); + + for(uint32_t j = 0; j < metricHandleCount; j++){ + :ref:`zetMetricDestroyExp`\(metricHandles[j]); + } + + diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_MetricTracer.rst b/level-zero/1.10/_sources/tools/EXT_Exp_MetricTracer.rst new file mode 100644 index 0000000..ed54035 --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_MetricTracer.rst @@ -0,0 +1,193 @@ + +:orphan: + +.. _ZET_experimental_metric_tracer: + +========================================== +Metric Tracer Experimental Extension +========================================== + +API +---- +* Enumerations + * :ref:`zet-metric-tracer-exp-version-t` + + * :ref:`zet-metric-group-sampling-type-flags-t` + + New value :ref:`ZET_METRIC_GROUP_SAMPLING_TYPE_FLAG_EXP_TRACER_BASED ` + + * :ref:`zet-metric-type-t` + + New Values + :ref:`ZET_METRIC_TYPE_EVENT_EXP_TIMESTAMP ` + Metric type: have only timestamp and value has no meaning. + :ref:`ZET_METRIC_TYPE_EVENT_EXP_START ` + Metric type: the first event of a start/stop event pair. + :ref:`ZET_METRIC_TYPE_EVENT_EXP_END ` + Metric type: the second event of a start/stop event pair. + :ref:`ZET_METRIC_TYPE_EVENT_EXP_MONOTONIC_WRAPS_VALUE ` + Metric type: value of the event is a monotonic increasing value that can wrap around. + + +* Structures + + * :ref:`zet-metric-tracer-exp-desc-t` + * :ref:`zet-metric-entry-exp-t` + +* Functions + + * :ref:`zetMetricTracerCreateExp` + * :ref:`zetMetricTracerDestroyExp` + * :ref:`zetMetricTracerEnableExp` + * :ref:`zetMetricTracerDisableExp` + * :ref:`zetMetricTracerReadDataExp` + * :ref:`zetMetricDecoderCreateExp` + * :ref:`zetMetricDecoderDestroyExp` + * :ref:`zetMetricDecoderGetDecodableMetricsExp` + * :ref:`zetMetricTracerDecodeExp` + +Metric Tracer +~~~~~~~~~~~~~~~~~~~ + +Metrics collection model that allows retrieving metrics from events generated in asynchronous fashion. A Metrics Tracer is a software interface that allows +configuration for collection of such metrics. Collected raw data can be converted into parsable data with the use of a decoder object. + +Enumeration +----------- + +Application can use :ref:`zetMetricGroupGet` to enumerate the list of metric groups and :ref:`zetMetricGroupGetProperties` to get metric group sampling type +and search for :ref:`ZET_METRIC_GROUP_SAMPLING_TYPE_FLAG_EXP_TRACER_BASED `\. + +Configuration +------------- + +Use the :ref:`zetContextActivateMetricGroups` API call to configure the device for data collection. + +Collection +---------- + +Metric Tracer based collection mode allows the creation of a tracer object for multiple metric groups than can be collected concurrently. Once metric groups are +activated the tracer can be created using :ref:`zetMetricTracerCreateExp`\. Tracers are created in disabled state, applications have the flexibility to to enable +(:ref:`zetMetricTracerEnableExp`\) and disable (:ref:`zetMetricTracerDisableExp`\) during workload execution to selectively decide sections on which to collect metrics. +ata can be retrieved from the tracer with :ref:`zetMetricTracerReadDataExp`\. + +Decoding +-------- +Metric Tracer collects the data in device specific, raw form that is not suitable for application processing. To convert data into a format that allows +application parsing a decoder object can be used. The decoder object is created with :ref:`zetMetricDecoderCreateExp` and data can be converted using +:ref:`zetMetricTracerDecodeExp`\. Each event in the data is associated with a decodable metric, which can be retrieved with :ref:`zetMetricDecoderGetDecodableMetricsExp`\. + + + +Sample Code +------------ + +The following pseudo-code demonstrates how to enumerate Tracer based metric groups and collect data. + +.. parsed-literal:: + + + zet_metric_group_handle_t hMetricGroup = nullptr; + ze_event_handle_t hNotificationEvent = nullptr; + ze_event_pool_handle_t hEventPool = nullptr; + :ref:`ze-event-pool-desc-t` eventPoolDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, nullptr, 0, 1}; + :ref:`ze-event-desc-t` eventDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\}; + zet_metric_tracer_exp_handle_t hMetricTracer = nullptr; + :ref:`zet-metric-tracer-exp-desc-t` tracerDescriptor = { :ref:`ZET_STRUCTURE_TYPE_METRIC_TRACER_EXP_DESC `\, nullptr, 1024}; + zet_metric_decoder_exp_handle_t hMetricDecoder = nullptr; + + // Find the first metric group suitable for Tracer Based collection + FindMetricGroup(hDevice, :ref:`ZET_METRIC_GROUP_SAMPLING_TYPE_FLAG_EXP_TRACER_BASED `\, &hMetricGroup ); + + // Configure the HW + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, /\* count= \*/ 1, &hMetricGroup ); + + // Create notification event + :ref:`zeEventPoolCreate`\( hContext, &eventPoolDesc, 1, &hDevice, &hEventPool ); + eventDesc.index = 0; + eventDesc.signal = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + eventDesc.wait = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + :ref:`zeEventCreate`\( hEventPool, &eventDesc, &hNotificationEvent ); + + // Create tracer + :ref:`zetMetricTracerCreateExp`\(hContext, hDevice, 1, &hMetricGroup , &tracerDescriptor, hNotificationEvent, &hMetricTracer); + + // create decoder + :ref:`zetMetricDecoderCreateExp`\( hMetricTracer, &hMetricDecoder); + + // Get decodable metrics + uint32_t numDecodableMetrics = 0; + :ref:`zetMetricDecoderGetDecodableMetricsExp`\(hMetricDecoder, &numDecodableMetrics, nullptr); + std::vectordecodableMetrics(numDecodableMetrics); + :ref:`zetMetricDecoderGetDecodableMetricsExp`\(hMetricDecoder, &numDecodableMetrics, decodableMetrics.data()); + + // Enable the tracer + :ref:`zetMetricTracerEnableExp`\(hMetricTracer, true); + + // Run your workload + Workload(hDevice); + + // Wait for data, optional in this example + :ref:`zeEventHostSynchronize`\( hNotificationEvent, 1000 /\*timeout\*/ ); + // reset the event if it fired + + // Read raw data + size_t rawDataSize = 0; + :ref:`zetMetricTracerReadDataExp`\(hMetricTracer, &rawDataSize, nullptr); + std::vectorrawData(rawDataSize); + :ref:`zetMetricTracerReadDataExp`\(hMetricTracer, &rawDataSize, rawData.data()); + + // decode + uint32_t totalNumEntries = 0; + uint32_t setCount = 0; + :ref:`zetMetricTracerDecodeExp`\(hMetricDecoder, &rawDataSize, rawData.data(), numDecodableMetrics, decodableMetrics.data(), &setCount, nullptr, &totalNumEntries, nullptr); + std::vector decodedEntries(totalNumEntries) + std::vector metricEntriesCountPerSet(setCount); + :ref:`zetMetricTracerDecodeExp`\(hMetricDecoder, &rawDataSize, rawData.data(), numDecodableMetrics, decodableMetrics.data(), &setCount, metricEntriesCountPerSet.data(), &totalNumEntries, decodedEntries.data()); + + uint32_t setEntryStart = 0; + for (uint8_t setIndex = 0; setIndex < setCount; setIndex++) { + for (uint32_t index = setEntryStart; index < metricEntriesCountPerSet[setIndex]; index++) { + :ref:`zet-metric-entry-exp-t` metricEntry = decodedEntries[index]; + :ref:`zet-metric-properties-t` metricProperties = {}; + :ref:`zetMetricGetProperties`\(decodableMetrics[metricEntry.metricIndex], &metricProperties); + std::cout << "Component: " << metricProperties.component ". Decodable metric name: " << metricProperties.name; + switch (metricProperties.resultType) { + case :ref:`ZET_VALUE_TYPE_UINT8 `\: + case :ref:`ZET_VALUE_TYPE_UINT16 `\: + case :ref:`ZET_VALUE_TYPE_UINT32 `\: + std::cout << ".\t value: " << metricEntry.value.ui32 << std::endl; + break; + case :ref:`ZET_VALUE_TYPE_UINT64 `\: + std::cout << ".\t value: " << metricEntry.value.ui64 << std::endl; + break; + case :ref:`ZET_VALUE_TYPE_FLOAT32 `\: + std::cout << ".\t value: " << metricEntry.value.fp32 << std::endl; + break; + case :ref:`ZET_VALUE_TYPE_FLOAT64 `\: + std::cout << ".\t value: " << metricEntry.value.fp64 << std::endl; + break; + case :ref:`ZET_VALUE_TYPE_BOOL8 `\: + if( metricEntry.value.b8 ){ + std::cout << ".\t value: true" << std::endl; + else + std::cout << ".\t value: false" << std::endl; + } + break; + default: + break; + } + + setEntryStart = metricEntriesCountPerSet[setIndex]; + } + } + + // Close metric tracer + :ref:`zetMetricTracerDisableExp`\(hMetricTracer, true); + :ref:`zetMetricDecoderDestroyExp`\(hMetricDecoder); + :ref:`zetMetricTracerDestroyExp`\(hMetricTracer); + :ref:`zeEventDestroy`\( hNotificationEvent ); + :ref:`zeEventPoolDestroy`\( hEventPool ); + + // Clean device configuration and free memory + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, 0, nullptr ); \ No newline at end of file diff --git a/level-zero/1.10/_sources/tools/EXT_Exp_MultiMetricValues.rst b/level-zero/1.10/_sources/tools/EXT_Exp_MultiMetricValues.rst new file mode 100644 index 0000000..9acfdd4 --- /dev/null +++ b/level-zero/1.10/_sources/tools/EXT_Exp_MultiMetricValues.rst @@ -0,0 +1,60 @@ + +:orphan: + +.. _ZET_experimental_calculate_multiple_metrics: + +========================================== + Calculating Multiple Metrics Extension +========================================== + +API +---- + +* Functions + + * :ref:`zetMetricGroupCalculateMultipleMetricValuesExp` + +Sample Code +------------ + +The following code demonstrates how to calculate and process multiple metric values: + +.. parsed-literal:: + + // Get data count and total metric count + uint32_t dataCount = 0; + uint32_t totalMetricCount = 0; + :ref:`zetMetricGroupCalculateMultipleMetricValuesExp`\(hMetricGroup, type, rawDataSize, pRawData, &dataCount, &totalMetricCount, nullptr, nullptr); + + // Get metric counts and metric values + std::vector metricCounts(dataCount); + std::vector<:ref:`zet-typed-value-t`\> metricValues(totalMetricCount); + :ref:`zetMetricGroupCalculateMultipleMetricValuesExp`\(hMetricGroup, type, rawDataSize, pRawData, &dataCount, &totalMetricCount, metricCounts.data(), metricValues.data()); + + // Example showing how to process the metric values + + // Setup + uint32_t metricCount = 0; + :ref:`zetMetricGet`\(hMetricGroup, &metricCount, nullptr); + + zet_metric_handle_t* phMetrics = malloc(metricCount * sizeof(zet_metric_handle_t)); + :ref:`zetMetricGet`\(hMetricGroup, &metricCount, phMetrics); + + // This loop over metric data is new for this extension + uint32_t startIndex = 0; + for (uint32_t dataIndex = 0; dataIndex < dataCount; dataIndex++) { + + // Processing each metric data is the same as for the single + // calculate metric values + const uint32_t metricCountForDataIndex = metricCounts[dataIndex]; + const uint32_t reportCount = metricCountForDataIndex / metricCount; + for (uint32_t report = 0; report < reportCount; report++) { + for (uint32_t metric = 0; metric < metricCount ; metric++) { + const size_t metricIndex = report * metricCount + metric; + process_metric_value(metricValues[startIndex + metricIndex])); + } + } + + startIndex += metricCountForDataIndex; + } + assert(startIndex == totalMetricCount); diff --git a/level-zero/1.10/_sources/tools/PROG.rst b/level-zero/1.10/_sources/tools/PROG.rst new file mode 100644 index 0000000..8e5b835 --- /dev/null +++ b/level-zero/1.10/_sources/tools/PROG.rst @@ -0,0 +1,1001 @@ + + + + +.. _tools-programming-guide: + +========================= + Tools Programming Guide +========================= + +Initialization +============== + +Environment Variables +--------------------- + +The following environment variables are required to be enabled during :ref:`zeInit` for the respective feature. + ++-----------------+-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| Category | Name | Values | Description | ++=================+=====================================+============+===================================================================================+ +| Tools | ZET_ENABLE_API_TRACING_EXP | {**0**, 1} | Enables driver instrumentation for API tracing | +| | | | **Note**: This tracing environment variable is **deprecated**. Please use the | +| | | | tracing loader layer instead. | +| +-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| | ZET_ENABLE_METRICS | {**0**, 1} | Enables driver instrumentation and dependencies for device metrics | +| +-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| | ZET_ENABLE_PROGRAM_INSTRUMENTATION | {**0**, 1} | Enables driver instrumentation and dependencies for program instrumentation | +| +-------------------------------------+------------+-----------------------------------------------------------------------------------+ +| | ZET_ENABLE_PROGRAM_DEBUGGING | {**0**, 1} | Enables driver instrumentation and dependencies for program debugging | ++-----------------+-------------------------------------+------------+-----------------------------------------------------------------------------------+ + +.. _API-Tracing: + +API Tracing +=========== + +**Experimental Extension** - this feature will be removed post-1.0 and replaced with custom loader layers. + +Introduction +------------ + +API tracing provides a way for tools to receive notifications of API +calls made by an application. The callbacks provide direct access to the +input and output parameters for viewing and modification. Tools may also +use these notifications as triggers to block and inject new API calls +into the command stream, such as metrics. + +Registration +------------ + +Tools may independently register for enter and exit callbacks for individual API calls, per driver instance. + +* :ref:`zetTracerExpSetPrologues` is used to specify all the enter callbacks +* :ref:`zetTracerExpSetEpilogues` is used to specify all the exit callbacks +* If the value of a callback is nullptr, then it will be ignored. + +The callbacks are defined as a collection of per-API function pointers, with the following parameters: + +* params : a structure capturing pointers to the input and output parameters of the current instance +* result : the current value of the return value +* pTracerUserData : the user's pointer for the tracer's data +* ppTracerInstanceUserData : a per-tracer, per-instance thread-local storage location; typically used for passing data from the prologue to the epilogue + +Note: since the creation of a tracer requires a device, on first glance +it appears that :ref:`zeInit`\, :ref:`zeDriverGet` and :ref:`zeDeviceGet` are not +traceable. However, these APIs **are** traceable for all calls +subsequent from the creation and enabling of the tracer itself. + +Enabling/Disabling and Destruction +---------------------------------- + +The tracer is created in a disabled state and must be explicitly enabled +by calling :ref:`zetTracerExpSetEnabled`\. The implementation guarantees that +prologues and epilogues will always be executed in pairs; i.e. + +* if the prologue was called then the epilogue is guaranteed to be called, even if another thread disabled the tracer between execution +* if the prologue was not called then the epilogue is guaranteed not to be called, even if another thread enabled the tracer between execution + +The tracer should be disabled by the application before the tracer is +destroyed. If multiple threads are in-flight, then it is still possible +that callbacks will continue to execute even after the tracer is +disabled; specifically, due to the pairing rules above. Due to the +complexity involved in ensuring no threads are still or will be +executing a callback even after its been disabled, the implementation +will stall and wait for any outstanding threads during :ref:`zetTracerExpDestroy`\. + +The following pseudo-code demonstrates a basic usage of API tracing: + + +.. parsed-literal:: + + typedef struct _my_tracer_data_t + { + uint32_t instance; + } my_tracer_data_t; + + typedef struct _my_instance_data_t + { + clock_t start; + } my_instance_data_t; + + void OnEnterCommandListAppendLaunchKernel( + ze_command_list_append_launch_kernel_params_t* params, + ze_result_t result, + void* pTracerUserData, + void** ppTracerInstanceUserData ) + { + my_instance_data_t* instance_data = malloc( sizeof(my_instance_data_t) ); + \*ppTracerInstanceUserData = instance_data; + + instance_data->start = clock(); + } + + void OnExitCommandListAppendLaunchKernel( + ze_command_list_append_launch_kernel_params_t* params, + ze_result_t result, + void* pTracerUserData, + void** ppTracerInstanceUserData ) + { + clock_t end = clock(); + + my_tracer_data_t* tracer_data = (my_tracer_data_t*)pTracerUserData; + my_instance_data_t* instance_data = *(my_instance_data_t**)ppTracerInstanceUserData; + + float time = 1000.f * ( end - instance_data->start ) / CLOCKS_PER_SEC; + printf("zeCommandListAppendLaunchKernel #%d takes %.4f ms\n", tracer_data->instance++, time); + + free(instance_data); + } + + void TracingExample( ... ) + { + my_tracer_data_t tracer_data = {}; + :ref:`zet-tracer-exp-desc-t` tracer_desc {}; + tracer_desc.stype = :ref:`ZET_STRUCTURE_TYPE_TRACER_EXP_DESC `\; + tracer_desc.pUserData = &tracer_data; + zet_tracer_exp_handle_t hTracer; + :ref:`zetTracerExpCreate`\(hDevice, &tracer_desc, &hTracer); + + // Set all callbacks + zet_core_callbacks_t prologCbs = {}; + zet_core_callbacks_t epilogCbs = {}; + prologCbs.CommandList.pfnAppendLaunchFunction = OnEnterCommandListAppendLaunchKernel; + epilogCbs.CommandList.pfnAppendLaunchFunction = OnExitCommandListAppendLaunchKernel; + + :ref:`zetTracerExpSetPrologues`\(hTracer, &prologCbs); + :ref:`zetTracerExpSetEpilogues`\(hTracer, &epilogCbs); + + :ref:`zetTracerExpSetEnabled`\(hTracer, true); + + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hFunction, &launchArgs, nullptr, 0, nullptr); + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hFunction, &launchArgs, nullptr, 0, nullptr); + :ref:`zeCommandListAppendLaunchKernel`\(hCommandList, hFunction, &launchArgs, nullptr, 0, nullptr); + + :ref:`zetTracerExpSetEnabled`\(hTracer, false); + :ref:`zetTracerExpDestroy`\(hTracer); + } + +Metrics +======= + +.. _introduction-1: + +Introduction +------------ + +Devices provide programmable infrastructure designed to support +performance debugging. The API described in this document provides +access to these device metrics. The intention of this API is to support +performance debug and it is not advised to use it in regular execution +as overall performance can be negatively impacted. + +| The following diagram illustrates the relationship between the metric + objects described in this document. + +.. image:: ../images/tools_metric_hierarchy.png + +Most of the detailed metrics require the device to be properly +programmed before use. It is important to understand that the device +programming is in most cases global. This generally means that if a +software tool or an application is using the metrics then no other +application can reliably use the same device resources. + +Metric Groups +------------- + +The device infrastructure consists of a pre-defined set of non-programmable +counters, and a programmable network of connections that work with a +separate set of counters as well as other types of counters. For sake of +simplicity, the smallest unit of configuration is a Metric Group. Metric +Groups are sets of metrics that provide certain perspective on +workload's performance. The groups aggregate metrics, define device +programming and available collection methods. An application may choose +to collect data from several Metric Groups provided that they all +belong to different domains. :ref:`Domains` are used as a software +representation of independent device resources that can safely be used +concurrently. + +Sampling Types +~~~~~~~~~~~~~~ + +Sampling types are a software representation of device capabilities in +terms of reading metric values. Each Metric Group provides information +on which sampling types it supports. There are separate sets of APIs +supporting each of the sampling types Time-based_ and Event-based_. + +All available sampling types are defined in :ref:`zet-metric-group-sampling-type-flags-t`\. + +- Information about supported sampling types for a given Metric Group is provided in :ref:`zet-metric-group-properties-t`\.samplingType. +- It's possible that a device provides multiple Metric Groups with the same names but different sampling types. +- When enumerating, it's important to choose a Metric Group which supports the desired sampling type. + +.. _Domains: + +Domains +~~~~~~~ + +Every Metric Group belongs to a given domain (:ref:`zet-metric-group-properties-t`\.domain). + +- The Metric Group typically define a uniform device counter configuration used for measurements. +- Each domain represents an exclusive resource used by the Metric Group. +- It's possible to simultaneously gather data for two different Metric Groups, only if they belong to a different domain i.e. Metric Groups that can be collected concurrently will have different domain values. + +Enumeration +----------- + +All available metrics are organized into Metric Groups. + +- During data collection, data for the whole Metric Group is gathered. +- The list of available Metric Groups and their Metrics is device-specific. + +The following APIs provide all the information needed for identification and usage. + +- Metric Group properties are accessed through the function :ref:`zetMetricGroupGetProperties` which returns :ref:`zet-metric-group-properties-t`\. +- Metric properties are accessed through the function :ref:`zetMetricGetProperties` which returns :ref:`zet-metric-properties-t`\. + +A common tool flow is to enumerate metrics looking for a specific Metric +Group. Depending on the metrics required for a specific scenario a tool +may choose to run the workload multiple times, recording different set +of Metric Groups each time. Usually care must be taken to ensure +run-to-run stability and result repeatability if metrics from different +runs are meant to be used together. When enumerating metrics to find +a desired Metric Group, it's important to know in advance which sampling +type will be used. + +To enumerate through the Metric tree: + +1. Call :ref:`zetMetricGroupGet` to obtain Metric Group count. +2. Call :ref:`zetMetricGroupGet` to obtain all Metric Groups. +3. Iterate over all available Metric Groups. + + - At this point it's possible to check Metric Group name, domain or sampling type. + - Metric Group names may not be unique. + +4. Obtain the metric count for each Metric Group by calling :ref:`zetMetricGroupGetProperties` with Metric Group handle (zet_metric_group_handle_t) and checking :ref:`zet-metric-group-properties-t`\.metricCount. +5. Iterate over available Metrics using :ref:`zetMetricGet` with parent Metric Group (zet_metric_group_handle_t). +6. Check Metric properties (e.g. name, description) calling :ref:`zetMetricGetProperties` with parent Metric (zet_metric_handle_t). + +The following pseudo-code demonstrates a basic enumeration over all +available metric groups and their metrics. Additionally, it returns a +metric group with a chosen name and sampling type. Similar code could be +used for selecting a preferred metric group for a specific type of +measurements. + +.. parsed-literal:: + + :ref:`ze-result-t` FindMetricGroup( ze_device_handle_t hDevice, + char* pMetricGroupName, + uint32_t desiredSamplingType, + zet_metric_group_handle_t* phMetricGroup ) + { + // Obtain available metric groups for the specific device + uint32_t metricGroupCount = 0; + :ref:`zetMetricGroupGet`\( hDevice, &metricGroupCount, nullptr ); + + zet_metric_group_handle_t* phMetricGroups = malloc(metricGroupCount * sizeof(zet_metric_group_handle_t)); + :ref:`zetMetricGroupGet`\( hDevice, &metricGroupCount, phMetricGroups ); + + // Iterate over all metric groups available + for( i = 0; i < metricGroupCount; i++ ) + { + // Get metric group under index 'i' and its properties + :ref:`zet-metric-group-properties-t` metricGroupProperties {}; + metricGroupProperties.stype = :ref:`ZET_STRUCTURE_TYPE_METRIC_GROUP_PROPERTIES `\; + :ref:`zetMetricGroupGetProperties`\( phMetricGroups[i], &metricGroupProperties ); + + printf("Metric Group: %s\n", metricGroupProperties.name); + + // Check whether the obtained metric group supports the desired sampling type + if((metricGroupProperties.samplingType & desiredSamplingType) == desiredSamplingType) + { + // Check whether the obtained metric group has the desired name + if( strcmp( pMetricGroupName, metricGroupProperties.name ) == 0 ) + { + \*phMetricGroup = phMetricGroups[i]; + break; + } + } + } + + free(phMetricGroups); + } + +Configuration +------------- + +Use the :ref:`zetContextActivateMetricGroups` API call to configure the device +for data collection. + +- Subsequent calls to the function will disable device programming for the metric groups not selected for activation. +- To avoid undefined results only call the :ref:`zetContextActivateMetricGroups` between experiments i.e. while not collecting data. + +Programming restrictions: + +- Any combination of metric groups can be configured simultaneously provided that all of them have a different :ref:`zet-metric-group-properties-t`\.domain. +- MetricGroup must be active until :ref:`zetMetricStreamerClose` and the last :ref:`zetCommandListAppendMetricQueryEnd` completes. + +Collection +---------- + +There are two modes of metrics collection supported: :ref:`time-based` and :ref:`event-based`. + +- Time-based collection is using a timer as well as other events to store data samples. A metric streamer interface is the software interface for configuration and collection. +- Event-based collection is based on a pair of Begin/End events appended to command lists. A metric query interface is the software interface for configuration and collection. + +.. _Time-based: + +Metric Streamer +~~~~~~~~~~~~~~~ + +Time-based collection uses a simple Open, Read, Close scheme: + +- :ref:`zetMetricStreamerOpen` opens the streamer. +- :ref:`zetMetricStreamerReadData` reads the raw data to be later processed by :ref:`zetMetricGroupCalculateMetricValues`\. +- :ref:`zetMetricStreamerClose` closes the streamer. + +.. image:: ../images/tools_metric_streamer.png + +The following pseudo-code demonstrates a basic sequence for time-based collection: + +.. parsed-literal:: + + :ref:`ze-result-t` TimeBasedUsageExample( ze_context_handle_t hContext, + ze_device_handle_t hDevice ) + { + zet_metric_group_handle_t hMetricGroup = nullptr; + ze_event_handle_t hNotificationEvent = nullptr; + ze_event_pool_handle_t hEventPool = nullptr; + :ref:`ze-event-pool-desc-t` eventPoolDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, nullptr, 0, 1}; + :ref:`ze-event-desc-t` eventDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\}; + zet_metric_streamer_handle_t hMetricStreamer = nullptr; + :ref:`zet-metric-streamer-desc-t` metricStreamerDesc = {:ref:`ZET_STRUCTURE_TYPE_METRIC_STREAMER_DESC `\}; + + // Find a "ComputeBasic" metric group suitable for Time Based collection + FindMetricGroup( hDevice, "ComputeBasic", :ref:`ZET_METRIC_GROUP_SAMPLING_TYPE_FLAG_TIME_BASED `\, &hMetricGroup ); + + // Configure the HW + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, /\* count= \*/ 1, &hMetricGroup ); + + // Create notification event + :ref:`zeEventPoolCreate`\( hContext, &eventPoolDesc, 1, &hDevice, &hEventPool ); + eventDesc.index = 0; + eventDesc.signal = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + eventDesc.wait = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + :ref:`zeEventCreate`\( hEventPool, &eventDesc, &hNotificationEvent ); + + // Open metric streamer + metricStreamerDesc.samplingPeriod = 1000; + metricStreamerDesc.notifyEveryNReports = 32768; + :ref:`zetMetricStreamerOpen`\( hContext, hDevice, hMetricGroup, &metricStreamerDesc, hNotificationEvent, &hMetricStreamer ); + + // Run your workload, in this example we assume the data for the whole experiment fits in the device buffer + Workload(hDevice); + // Optionally insert markers during workload execution + //:ref:`zetCommandListAppendMetricStreamerMarker`\( hCommandList, hMetricStreamer, tool_marker_value ); + + // Wait for data, optional in this example since the whole workload has already been executed by now + //:ref:`zeEventHostSynchronize`\( hNotificationEvent, 1000 /\*timeout\*/ ); + // reset the event if it fired + + // Read raw data + size_t rawSize = 0; + :ref:`zetMetricStreamerReadData`\( hMetricStreamer, UINT32_MAX, &rawSize, nullptr ); + uint8_t* rawData = malloc(rawSize); + :ref:`zetMetricStreamerReadData`\( hMetricStreamer, UINT32_MAX, &rawSize, rawData ); + + // Close metric streamer + :ref:`zetMetricStreamerClose`\( hMetricStreamer ); + :ref:`zeEventDestroy`\( hNotificationEvent ); + :ref:`zeEventPoolDestroy`\( hEventPool ); + + // Deconfigure the device + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, 0, nullptr ); + + // Calculate metric data + CalculateMetricsExample( hMetricGroup, rawSize, rawData ); + free(rawData); + } + +.. _Event-based: + +Metric Query +~~~~~~~~~~~~ + +Event-based collection uses a simple Begin, End, GetData scheme: + +- :ref:`zetCommandListAppendMetricQueryBegin` defines the start counting event +- :ref:`zetCommandListAppendMetricQueryEnd` defines the finish counting event +- :ref:`zetMetricQueryGetData` reads the raw data to be later processed by :ref:`zetMetricGroupCalculateMetricValues`\. + +Typically, multiple queries are used and recycled to characterize a workload. A Query Pool is used to efficiently use and reuse device memory for multiple queries. + +- :ref:`zetMetricQueryPoolCreate` creates a pool of homogeneous queries. +- :ref:`zetMetricQueryPoolDestroy` frees the pool. The application must ensure no queries within the pool are in-use before freeing the pool. +- :ref:`zetMetricQueryCreate` obtains a handle to a unique location in the pool. +- :ref:`zetMetricQueryReset` allows for low-cost recycling of a location in the pool. + +.. image:: ../images/tools_metric_query.png + +The following pseudo-code demonstrates a basic sequence for query-based collection: + +.. parsed-literal:: + + :ref:`ze-result-t` MetricQueryUsageExample( ze_context_handle_t hContext, + ze_device_handle_t hDevice ) + { + zet_metric_group_handle_t hMetricGroup = nullptr; + ze_event_handle_t hCompletionEvent = nullptr; + :ref:`ze-event-pool-desc-t` eventPoolDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_POOL_DESC `\, nullptr}; + :ref:`ze-event-desc-t` eventDesc = {:ref:`ZE_STRUCTURE_TYPE_EVENT_DESC `\, nullptr}; + ze_event_pool_handle_t hEventPool = nullptr; + zet_metric_query_pool_handle_t hMetricQueryPool = nullptr; + zet_metric_query_handle_t hMetricQuery = nullptr; + :ref:`zet-metric-query-pool-desc-t` queryPoolDesc = {:ref:`ZET_STRUCTURE_TYPE_METRIC_QUERY_POOL_DESC `\, nullptr}; + + // Find a "ComputeBasic" metric group suitable for Event Based collection + FindMetricGroup( hDevice, "ComputeBasic", :ref:`ZET_METRIC_GROUP_SAMPLING_TYPE_FLAG_EVENT_BASED `\, &hMetricGroup ); + + // Configure HW + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, 1 /\* count \*/, &hMetricGroup ); + + // Create metric query pool & completion event + queryPoolDesc.type = :ref:`ZET_METRIC_QUERY_POOL_TYPE_PERFORMANCE `\; + queryPoolDesc.count = 1000; + :ref:`zetMetricQueryPoolCreate`\( hContext, hDevice, hMetricGroup, &queryPoolDesc, &hMetricQueryPool ); + eventPoolDesc.flags = 0; + eventPoolDesc.count = 1000; + :ref:`zeEventPoolCreate`\( hContext, &eventPoolDesc, 1, &hDevice, &hEventPool ); + + // Write BEGIN metric query to command list + :ref:`zetMetricQueryCreate`\( hMetricQueryPool, 0 /\*slot\*/, &hMetricQuery ); + :ref:`zetCommandListAppendMetricQueryBegin`\( hCommandList, hMetricQuery ); + + // build your command list + ... + + // Write END metric query to command list, use an event to determine if the data is available + eventDesc.index = 0; + eventDesc.signal = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + eventDesc.wait = :ref:`ZE_EVENT_SCOPE_FLAG_HOST `\; + :ref:`zeEventCreate`\( hEventPool, &eventDesc, &hCompletionEvent); + :ref:`zetCommandListAppendMetricQueryEnd`\( hCommandList, hMetricQuery, hCompletionEvent, 0, nullptr ); + + // use :ref:`zeCommandQueueExecuteCommandLists`\( , , , ) to submit your workload to the device + + // Wait for data + :ref:`zeEventHostSynchronize`\( hCompletionEvent, 1000 /\*timeout\*/ ); + + // Read raw data + size_t rawSize = 0; + :ref:`zetMetricQueryGetData`\( hMetricQuery, &rawSize, nullptr ); + uint8_t* rawData = malloc(rawSize); + :ref:`zetMetricQueryGetData`\( hMetricQuery, &rawSize, rawData ); + + // Free the resources + :ref:`zeEventDestroy`\( hCompletionEvent ); + :ref:`zeEventPoolDestroy`\( hEventPool ); + :ref:`zetMetricQueryPoolDestroy`\( hMetricQueryPool ); + + // Deconfigure HW + :ref:`zetContextActivateMetricGroups`\( hContext, hDevice, 0, nullptr ); + + // Calculate metric data + CalculateMetricsExample( hMetricGroup, rawSize, rawData ); + free(rawData); + } + +Calculation +----------- + +Both MetricStreamer and MetricQuery collect the data in device specific, raw form that is not suitable for application processing. +To calculate metric values use :ref:`zetMetricGroupCalculateMetricValues`\. + +The following pseudo-code demonstrates a basic sequence for metric calculation and interpretation: + +.. parsed-literal:: + + :ref:`ze-result-t` CalculateMetricsExample( zet_metric_group_handle_t hMetricGroup, + size_t rawSize, uint8_t* rawData ) + { + // Calculate metric data + uint32_t numMetricValues = 0; + :ref:`zet-metric-group-calculation-type-t` calculationType = :ref:`ZET_METRIC_GROUP_CALCULATION_TYPE_METRIC_VALUES `\; + :ref:`zetMetricGroupCalculateMetricValues`\( hMetricGroup, calculationType, rawSize, rawData, &numMetricValues, nullptr ); + :ref:`zet-typed-value-t`\* metricValues = malloc( numMetricValues * sizeof(:ref:`zet-typed-value-t`\) ); + :ref:`zetMetricGroupCalculateMetricValues`\( hMetricGroup, calculationType, rawSize, rawData, &numMetricValues, metricValues ); + + // Obtain available metrics for the specific metric group + uint32_t metricCount = 0; + :ref:`zetMetricGet`\( hMetricGroup, &metricCount, nullptr ); + + zet_metric_handle_t* phMetrics = malloc(metricCount * sizeof(zet_metric_handle_t)); + :ref:`zetMetricGet`\( hMetricGroup, &metricCount, phMetrics ); + + // Print metric results + uint32_t numReports = numMetricValues / metricCount; + for( uint32_t report = 0; report < numReports; ++report ) + { + printf("Report: %d\n", report); + + for( uint32_t metric = 0; metric < metricCount; ++metric ) + { + :ref:`zet-typed-value-t` data = metricValues[report * metricCount + metric]; + + :ref:`zet-metric-properties-t` metricProperties {}; + metricProperties.stype = :ref:`ZET_STRUCTURE_TYPE_METRIC_PROPERTIES `\; + :ref:`zetMetricGetProperties`\( phMetrics[ metric ], &metricProperties ); + + printf("Metric: %s\n", metricProperties.name ); + + switch( data.type ) + { + case :ref:`ZET_VALUE_TYPE_UINT32 `\: + printf(" Value: %lu\n", data.value.ui32 ); + break; + case :ref:`ZET_VALUE_TYPE_UINT64 `\: + printf(" Value: %llu\n", data.value.ui64 ); + break; + case :ref:`ZET_VALUE_TYPE_FLOAT32 `\: + printf(" Value: %f\n", data.value.fp32 ); + break; + case :ref:`ZET_VALUE_TYPE_FLOAT64 `\: + printf(" Value: %f\n", data.value.fp64 ); + break; + case :ref:`ZET_VALUE_TYPE_BOOL8 `\: + if( data.value.ui32 ) + printf(" Value: true\n" ); + else + printf(" Value: false\n" ); + break; + default: + break; + }; + } + } + + free(metricValues); + free(phMetrics); + } + + +Program Instrumentation +======================= + +.. _introduction-2: + +Introduction +------------ + +The program instrumentation APIs provide tools a basic framework for low-level profiling of device kernels, +by allowing direct instrumentation of those programs. +These capabilities, in combination with those already provided, and in combination with a custom loader layer, +are sufficient for more advanced frameworks to be developed. + +There are two types of instrumentation available: + +1. Inter-Function Instrumentation - intercepting and redirecting function calls +2. Intra-Function Instrumentation - injecting new instructions within a function + +Inter-Function Instrumentation +------------------------------ + +The following capabilities allow for a tool to intercept and redirect function calls: + +* Inter-module function calls - the ability to call functions between different modules; e.g., the application's module and a tool's module +* Custom loader layer - the ability to intercept and inject API calls + +For example, a tool may use a custom loader layer in any of the following ways: + +* :ref:`zeModuleCreate` - replace a module handle with instrumented module handle for all functions +* :ref:`zeKernelCreate` - replace a kernel handle with instrumented kernel handle for all call sites +* :ref:`zeModuleGetFunctionPointer` - replace a function pointer with instrumented function pointer for all call sites +* :ref:`zeCommandListAppendLaunchKernel` - replace a kernel handle with instrumented kernel handle at call site + +Intra-Function Instrumentation +------------------------------ + +The following capabilities allow for a tool to inject instructions within a kernel: + +* :ref:`zetModuleGetDebugInfo` - allows a tool to query standard debug info for an application's module +* :ref:`zetKernelGetProfileInfo` - allows a tool to query detailed information on aspects of a kernel +* :ref:`zeModuleGetNativeBinary` - allows for a tool to retrieve the native binary of the application's module, instrument it, then create a new module using the instrumented version +* Custom loader layer - same usage as Inter-Function Instrumentation above + +Compilation +~~~~~~~~~~~ + +A module must be compiled with foreknowledge that instrumentation will be performed for the compiler to generate the proper profiling meta-data. +Therefore, when the instrumentation layer is enabled, a new +build flag is supported: "-zet-profile-flags \", where \ must be a +combination of :ref:`zet-profile-flags-t`\, in hexidecimal. + +As an example, a tool could use a custom loader layer to inject this build flag on each :ref:`zeModuleCreate` call that the tool wishes to instrument. +In another example, a tool could recompile a Module using the build flag and use a custom loader layer to replace the application's Module handle with it's own. + +Instrumentation +~~~~~~~~~~~~~~~ + +Once the module has been compiled with instrumentation enabled, a tool may use :ref:`zetModuleGetDebugInfo` and :ref:`zetKernelGetProfileInfo` +in order to decode the application's instructions and register usage for each function in the module. + +If a tool requires additional functions to be used, it may create other module(s) and use :ref:`zeModuleGetFunctionPointer` +to call functions between the application and tool modules. +A tool may use :ref:`zeModuleGetFunctionPointer` to retrieve the Host and device address of each function in the module. + +There are no APIs provided for the actual instrumentation. +Instead this is left up to the tool itself to decode the application module's native binary and inject native instructions. +This model prevents the instrumentation from being manipulated by the compiler. + +Execution +~~~~~~~~~ + +If a tool requires changing the address of an application's function, +then it should use a custom loader layer to intercept API calls dealing with function pointers. +For example, :ref:`zeModuleGetFunctionPointer` and all flavors of :ref:`zeCommandListAppendLaunchKernel`\. + + +Program Debug +============= + +.. _introduction-3: + +Introduction +------------ + +The program debug APIs provide tools a basic framework for debugging device code. + +The debug APIs only operate on a single device. +When debugging a multi-device system, the tool must debug each device independently. + +The debug APIs only operate in the context of a single host process. +When debugging multiple host processes at the same time, the tool must debug device code +submitted by each host process independently. + + +Device Debug Properties +----------------------- + +A tool may query the debug properties of a device by calling :ref:`zetDeviceGetDebugProperties`\. + +To start a debug session, a tool should first query the debug properties of the device it wants to attach to. +Support for attaching debuggers is indicated by the :ref:`ZET_DEVICE_DEBUG_PROPERTY_FLAG_ATTACH ` flag in :ref:`zet-device-debug-properties-t`\. + +.. parsed-literal:: + + :ref:`zet-device-debug-properties-t` props {}; + props.stype = :ref:`ZET_STRUCTURE_TYPE_DEVICE_DEBUG_PROPERTIES `\; + :ref:`zetDeviceGetDebugProperties`\(hDevice, &props); + + if (:ref:`ZET_DEVICE_DEBUG_PROPERTY_FLAG_ATTACH ` & props.flags == 0) + return; // debugging not supporting + + +Attach and Detach +----------------- + +A tool must attach to a device by calling :ref:`zetDebugAttach`\. +The library will check the following properties: + + * the device must support attaching debuggers. + + * the requested host process must exist. + + * the tool process must be allowed to debug the requested host process. + + Note that this does not require the tool to be attached to the host process. + + * there must be no other tool attached at the same time. + + * device debug must be enabled on this system. + + +If permission is granted, a zet_debug_session_handle_t is provided. +The debug session handle can be used in other program debug APIs until the tool detaches again. + +To end a debug session, a tool calls :ref:`zetDebugDetach` passing the +zet_debug_session_handle_t that had been provided on the corresponding +:ref:`zetDebugAttach` call. + +The following sample code demonstrates attaching and detaching: + +.. parsed-literal:: + + zet_debug_session_handle_t hDebug; + + :ref:`zet-debug-config-t` config; + memset(&config, 0, sizeof(config)); + config.pid = ...; + + errcode = :ref:`zetDebugAttach`\(hDevice, &config, &hDebug); + if (errcode) + return errcode; + + ... + + errcode = :ref:`zetDebugDetach`\(hDebug); + if (errcode) + return errcode; + + +Devices and Sub-Devices +~~~~~~~~~~~~~~~~~~~~~~~ + +A tool may attach to any device and will implicitly be attached to all sub-devices of that device. + +Implementations that use separate code segments per sub-device may further allow attaching to sub-devices individually. +Support for this can be determined by calling :ref:`zetDeviceGetDebugProperties` using a sub-device handle and +checking for the :ref:`ZET_DEVICE_DEBUG_PROPERTY_FLAG_ATTACH ` flag in :ref:`zet-device-debug-properties-t`\. +In that case, a tool may choose to either attach to the device or to one or more sub-devices. + +When attached to a sub-device, writes to the code segment will not be broadcast to other sub-devices, +even though they may share the same address space range. +This allows breakpoints to be contained within one sub-device. + +If a tool is attached to a sub-device, any attempt to attach to an parent device results in :ref:`ZE_RESULT_ERROR_NOT_AVAILABLE `\. + +Implementations that share code segments across sub-devices will only allow attaching to devices. +Any attempt to attach to a sub-device results in :ref:`ZE_RESULT_ERROR_NOT_AVAILABLE `\. + +Device Thread Identification +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Device threads are identified by their slice, sub-slice, EU, and thread numbers, +which lie between zero and the respective number reported by :ref:`ze-device-properties-t` minus one. + +If a tool is attached to a device, device threads are enumerated for all sub-devices within that device. + +The total number of threads on a device can be computed using device properties as shown in this sample code: + +.. parsed-literal:: + + :ref:`ze-device-properties-t` properties {}; + properties.stype = :ref:`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES `\; + uint64_t num_threads; + + :ref:`zeDeviceGetProperties`\(hDevice, &properties); + + num_threads = properties.numSlices * properties.numSubslicesPerSlice * + properties.numEUsPerSubslice * properties.numThreadsPerEU; + + +Tools may enumerate all possible thread identifiers based on device properties +by iterating over the number of slices, sub-slices, EUs, and threads. + +Thread Availability +~~~~~~~~~~~~~~~~~~~ + +Not all threads may be available at all times and some threads may not be available at any time. +This may have various reasons, including: + +* the thread may be idle +* the thread may be assigned to a different process + +For the purpose of this debug tool API, threads may be in one of three states: + +* running +* stopped +* unavailable + + +Debug Events +------------ + +As soon as the debug session has been started, it will receive debug events from the device. +To read the topmost event in the FIFO, the tool must call :ref:`zetDebugReadEvent`\. + +The following sample code demonstrates reading an event: + +.. parsed-literal:: + + :ref:`zet-debug-event-t` event; + errcode = :ref:`zetDebugReadEvent`\(hDebug, UINT64_MAX, &event); + if (errcode) + return errcode; + + ... + + if (event.flags & :ref:`ZET_DEBUG_EVENT_FLAG_NEED_ACK `\) { + errcode = :ref:`zetDebugAcknowledgeEvent`\(hDebug, &event); + if (errcode) + return errcode; + } + + +A debug event is described by the :ref:`zet-debug-event-t` structure, which contains: + + * The event type as :ref:`zet-debug-event-type-t`\. + + * A bit-vector of :ref:`zet-debug-event-flags-t`\, which can be: + + * :ref:`ZET_DEBUG_EVENT_FLAG_NEED_ACK ` indicates that the event needs to be acknowledged by calling :ref:`zetDebugAcknowledgeEvent`\. + This allows tools to perform any action in response to an event and indicate their completion by acknowledging the event. + + Implementations are allowed to block reading of new events until the previous event has been acknowledged. + If an implementation allows reading further events, it must allow acknowledging events out of order. + + +Following the common fields, the event object contains event-specific fields depending on the event type. +Not all events have event-specific fields. + + * :ref:`ZET_DEBUG_EVENT_TYPE_DETACHED `\: the tool was detached. + + * The detach reason as :ref:`zet-debug-detach-reason-t`\. This can be: + + * :ref:`ZET_DEBUG_DETACH_REASON_HOST_EXIT ` indicates that the host process exited. + + * :ref:`ZET_DEBUG_EVENT_TYPE_PROCESS_ENTRY `\: the host process created one or more command queues on the device. + + * :ref:`ZET_DEBUG_EVENT_TYPE_PROCESS_EXIT `\: the host process destroyed all command queues on the device. + + * :ref:`ZET_DEBUG_EVENT_TYPE_MODULE_LOAD `\: an in-memory module was loaded onto the device. + + * :ref:`ZET_DEBUG_EVENT_TYPE_MODULE_UNLOAD `\: an in-memory module is about to get unloaded from the device. + + * :ref:`ZET_DEBUG_EVENT_TYPE_THREAD_STOPPED `\: threads stopped due to a device exception. + + The reported threads remain stopped until they are resumed by a call to :ref:`zetDebugResume`\. + + * :ref:`ZET_DEBUG_EVENT_TYPE_THREAD_UNAVAILABLE `\: threads cannot be interrupted because they are unavailable. + + The event is generated in response to an interrupt request if none of the requested threads is available to be interrupted. + + * :ref:`ZET_DEBUG_EVENT_TYPE_PAGE_FAULT `\: there was a page fault on the device + + The event provides the page fault reason, the faulting address aligned to the page granularity, and a mask specifying the alignment. + + To mask can be bit-wise ANDed with an address to obtain an address that is similarly aligned to the same page granularity as the provided faulting address. + + +Run Control +----------- + +The tool may interrupt and resume device threads by calling :ref:`zetDebugInterrupt` and :ref:`zetDebugResume`\, respectively. + +The thread argument may specify a single thread, a group of threads, or all threads on the device. +To specify all threads, the tool must set all fields in :ref:`ze-device-thread-t` to their maximum value. +By setting some but not all fields to their maximum value, a tool may specify a group of threads. + +The :ref:`zetDebugInterrupt` call is not blocking. +When all specified threads either stopped or are determined to be currently unavailable, +the tool receives a :ref:`ZET_DEBUG_EVENT_TYPE_THREAD_STOPPED ` event if at least one thread could be stopped +or a :ref:`ZET_DEBUG_EVENT_TYPE_THREAD_UNAVAILABLE ` event if none of the threads is currently available. + +If the thread argument specified a group of threads or all threads on the device, +the event may be preceded by :ref:`ZET_DEBUG_EVENT_TYPE_THREAD_STOPPED ` events of individual threads. + +The tool does not know whether a thread stopped or is unavailable until it tries to access its state or access memory through it. +Unavailable threads may become available at any time. + +The following sample code demonstrates how to interrupt and resume all threads in a debug session: + +.. parsed-literal:: + + :ref:`ze-device-thread-t` allthreads; + allthreads.slice = UINT32_MAX; + allthreads.subslice = UINT32_MAX; + allthreads.eu = UINT32_MAX; + allthreads.thread = UINT32_MAX; + + errcode = :ref:`zetDebugInterrupt`\(hDebug, allthreads); + if (errcode) + return errcode; + + ... + + errcode = :ref:`zetDebugResume`\(hDebug, allthreads); + if (errcode) + return errcode; + + +Memory Access +------------- + +A tool may read and write memory in the context of a stopped device thread as if that thread had read or written the memory. + +Memory may be partitioned into device-specific memory spaces. +For example, GPU devices support the following memory spaces, defined by :ref:`zet-debug-memory-space-type-t`\: + + * :ref:`ZET_DEBUG_MEMORY_SPACE_TYPE_DEFAULT ` - default memory space + + * :ref:`ZET_DEBUG_MEMORY_SPACE_TYPE_SLM ` - shared local memory space + +The default memory space may also be accessed in the context of the special thread with all fields set to their maximum value. + +To read and write memory, call the :ref:`zetDebugReadMemory` and :ref:`zetDebugWriteMemory` function, respectively. +The functions specify the thread(s), memory space and input or output buffer, respectively. + +The following example copies 16 bytes of memory from one location in the context of one device thread to another location in the default memory space: + +.. parsed-literal:: + + :ref:`zet-debug-memory-space-desc-t` srcSpace = { + :ref:`ZET_STRUCTURE_TYPE_DEBUG_MEMORY_SPACE_DESC `\, + nullptr, + :ref:`ZET_DEBUG_MEMORY_SPACE_TYPE_DEFAULT `\, + srcAddress + }; + :ref:`zet-debug-memory-space-desc-t` dstSpace = { + :ref:`ZET_STRUCTURE_TYPE_DEBUG_MEMORY_SPACE_DESC `\, + nullptr, + :ref:`ZET_DEBUG_MEMORY_SPACE_TYPE_DEFAULT `\, + dstAddress + }; + + :ref:`ze-device-thread-t` thread0 = { + 0, 0, 0, 0 + }; + + uint8_t buffer[16]; + errcode = :ref:`zetDebugReadMemory`\(hDebug, thread0, &srcSpace, sizeof(buffer), buffer); + if (errcode) + return errcode; + + ... + + errcode = :ref:`zetDebugWriteMemory`\(hDebug, allthreads, &dstSpace, sizeof(buffer), buffer); + if (errcode) + return errcode; + + +Register State Access +--------------------- + +A tool may read and write the register state of a stopped device thread. + +Registers are grouped into sets of similar registers. +The types of register sets supported by a device can be queried using +:ref:`zetDebugGetRegisterSetProperties` and :ref:`zetDebugGetThreadRegisterSetProperties`\. +The former provides general information about the register sets supported on a device. The latter provides the concrete register set for the argument thread. The register set may depend on dynamic properties and may change between stops. +The register set properties specify details about each register set, +such as the maximum number of registers in each set, and whether the register set is read-only. + +The actual type of registers is device-specific and will be defined by the device vendor. + +The following pseudo-code demonstrates obtaining register set properties for a device: + +.. parsed-literal:: + + uint32_t nRegSets = 0; + :ref:`zetDebugGetRegisterSetProperties`\(hDevice, &nRegSets, nullptr); + + :ref:`zet-debug-regset-properties-t`\* pRegSets = allocate(nRegSets * sizeof(:ref:`zet-debug-regset-properties-t`\)); + :ref:`zetDebugGetRegisterSetProperties`\(hDevice, &nRegSets, pRegSets); + +The following pseudo-code demonstrates obtaining register set properties for a thread: + +.. parsed-literal:: + + :ref:`ze-device-thread-t` thread0 = { + 0, 0, 0, 0 + }; + uint32_t nRegSets = 0; + :ref:`zetDebugGetThreadRegisterSetProperties`\(hDebug, thread0, &nRegSets, nullptr); + + :ref:`zet-debug-regset-properties-t`\* pRegSets = allocate(nRegSets * sizeof(:ref:`zet-debug-regset-properties-t`\)); + :ref:`zetDebugGetThreadRegisterSetProperties`\(hDebug, thread0, &nRegSets, pRegSets); + +To read and write the register state, use the :ref:`zetDebugReadRegisters` and :ref:`zetDebugWriteRegisters` function, respectively. + +The following pseudo-code demonstrates iterating over register sets: + +.. parsed-literal:: + + for (i = 0; i < nRegSets; ++i) { + void* values = allocate(pRegSets[i].count * pRegSets[i].valueSize); + + errcode = :ref:`zetDebugReadRegisters`\(hDebug, thread0, pRegSets[i].type, 0, pRegSets[i].count, values); + if (errcode) + return errcode; + + ... + + errcode = :ref:`zetDebugWriteRegisters`\(hDebug, thread0, pRegSets[i].type, 0, pRegSets[i].count, values); + if (errcode) + return errcode; + + free(values); + } + + diff --git a/level-zero/1.10/_sources/tools/api.rst b/level-zero/1.10/_sources/tools/api.rst new file mode 100644 index 0000000..5f4cab8 --- /dev/null +++ b/level-zero/1.10/_sources/tools/api.rst @@ -0,0 +1,1647 @@ + + +============================== +Tools API +============================== +oneAPI Level Zero Specification - Version 1.10 + + + + + +Common +============================================================ +* Enumerations + + + * :ref:`zet-structure-type-t` + * :ref:`zet-value-type-t` + + +* Structures + + + * :ref:`zet-base-properties-t` + * :ref:`zet-base-desc-t` + * :ref:`zet-value-t` + * :ref:`zet-typed-value-t` + + + + +Common Enums +------------------------------------------------------------------------------ + + +.. _zet-structure-type-t: + +zet_structure_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_structure_type_t + :project: LevelZero + + +.. _zet-value-type-t: + +zet_value_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_value_type_t + :project: LevelZero + + +Common Structures +------------------------------------------------------------------------------ + +.. _zet-base-properties-t: + +zet_base_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_base_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-base-desc-t: + +zet_base_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_base_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-value-t: + +zet_value_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenunion:: zet_value_t + :project: LevelZero + +.. _zet-typed-value-t: + +zet_typed_value_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_typed_value_t + :project: LevelZero + :members: + :undoc-members: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Module +============================================================ +* Functions + + + * :ref:`zetModuleGetDebugInfo` + + +* Enumerations + + + * :ref:`zet-module-debug-info-format-t` + + + + +Module Functions +------------------------------------------------------------------------------ + + +.. _zetModuleGetDebugInfo: + +zetModuleGetDebugInfo +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetModuleGetDebugInfo + :project: LevelZero + + + +Module Enums +------------------------------------------------------------------------------ + + +.. _zet-module-debug-info-format-t: + +zet_module_debug_info_format_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_module_debug_info_format_t + :project: LevelZero + + + + + +Debug +============================================================ +* Functions + + + * :ref:`zetDeviceGetDebugProperties` + * :ref:`zetDebugAttach` + * :ref:`zetDebugDetach` + * :ref:`zetDebugReadEvent` + * :ref:`zetDebugAcknowledgeEvent` + * :ref:`zetDebugInterrupt` + * :ref:`zetDebugResume` + * :ref:`zetDebugReadMemory` + * :ref:`zetDebugWriteMemory` + * :ref:`zetDebugGetRegisterSetProperties` + * :ref:`zetDebugGetThreadRegisterSetProperties` + * :ref:`zetDebugReadRegisters` + * :ref:`zetDebugWriteRegisters` + + +* Enumerations + + + * :ref:`zet-device-debug-property-flags-t` + * :ref:`zet-debug-event-flags-t` + * :ref:`zet-debug-event-type-t` + * :ref:`zet-debug-detach-reason-t` + * :ref:`zet-debug-page-fault-reason-t` + * :ref:`zet-debug-memory-space-type-t` + * :ref:`zet-debug-regset-flags-t` + + +* Structures + + + * :ref:`zet-device-debug-properties-t` + * :ref:`zet-debug-config-t` + * :ref:`zet-debug-event-info-detached-t` + * :ref:`zet-debug-event-info-module-t` + * :ref:`zet-debug-event-info-thread-stopped-t` + * :ref:`zet-debug-event-info-page-fault-t` + * :ref:`zet-debug-event-info-t` + * :ref:`zet-debug-event-t` + * :ref:`zet-debug-memory-space-desc-t` + * :ref:`zet-debug-regset-properties-t` + + +Debug Functions +------------------------------------------------------------------------------ + + +.. _zetDeviceGetDebugProperties: + +zetDeviceGetDebugProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDeviceGetDebugProperties + :project: LevelZero + + +.. _zetDebugAttach: + +zetDebugAttach +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugAttach + :project: LevelZero + + +.. _zetDebugDetach: + +zetDebugDetach +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugDetach + :project: LevelZero + + +.. _zetDebugReadEvent: + +zetDebugReadEvent +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugReadEvent + :project: LevelZero + + +.. _zetDebugAcknowledgeEvent: + +zetDebugAcknowledgeEvent +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugAcknowledgeEvent + :project: LevelZero + + +.. _zetDebugInterrupt: + +zetDebugInterrupt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugInterrupt + :project: LevelZero + + +.. _zetDebugResume: + +zetDebugResume +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugResume + :project: LevelZero + + +.. _zetDebugReadMemory: + +zetDebugReadMemory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugReadMemory + :project: LevelZero + + +.. _zetDebugWriteMemory: + +zetDebugWriteMemory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugWriteMemory + :project: LevelZero + + +.. _zetDebugGetRegisterSetProperties: + +zetDebugGetRegisterSetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugGetRegisterSetProperties + :project: LevelZero + + +.. _zetDebugGetThreadRegisterSetProperties: + +zetDebugGetThreadRegisterSetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugGetThreadRegisterSetProperties + :project: LevelZero + + +.. _zetDebugReadRegisters: + +zetDebugReadRegisters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugReadRegisters + :project: LevelZero + + +.. _zetDebugWriteRegisters: + +zetDebugWriteRegisters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDebugWriteRegisters + :project: LevelZero + + + +Debug Enums +------------------------------------------------------------------------------ + + +.. _zet-device-debug-property-flags-t: + +zet_device_debug_property_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_device_debug_property_flag_t + :project: LevelZero + + +.. _zet-debug-event-flags-t: + +zet_debug_event_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_event_flag_t + :project: LevelZero + + +.. _zet-debug-event-type-t: + +zet_debug_event_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_event_type_t + :project: LevelZero + + +.. _zet-debug-detach-reason-t: + +zet_debug_detach_reason_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_detach_reason_t + :project: LevelZero + + +.. _zet-debug-page-fault-reason-t: + +zet_debug_page_fault_reason_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_page_fault_reason_t + :project: LevelZero + + +.. _zet-debug-memory-space-type-t: + +zet_debug_memory_space_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_memory_space_type_t + :project: LevelZero + + +.. _zet-debug-regset-flags-t: + +zet_debug_regset_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_debug_regset_flag_t + :project: LevelZero + + +Debug Structures +------------------------------------------------------------------------------ + +.. _zet-device-debug-properties-t: + +zet_device_debug_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_device_debug_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-config-t: + +zet_debug_config_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_config_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-event-info-detached-t: + +zet_debug_event_info_detached_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_event_info_detached_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-event-info-module-t: + +zet_debug_event_info_module_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_event_info_module_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-event-info-thread-stopped-t: + +zet_debug_event_info_thread_stopped_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_event_info_thread_stopped_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-event-info-page-fault-t: + +zet_debug_event_info_page_fault_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_event_info_page_fault_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-event-info-t: + +zet_debug_event_info_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenunion:: zet_debug_event_info_t + :project: LevelZero + +.. _zet-debug-event-t: + +zet_debug_event_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_event_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-memory-space-desc-t: + +zet_debug_memory_space_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_memory_space_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-debug-regset-properties-t: + +zet_debug_regset_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_debug_regset_properties_t + :project: LevelZero + :members: + :undoc-members: + + + + +Metric +============================================================ +* Functions + + + * :ref:`zetMetricGroupGet` + * :ref:`zetMetricGroupGetProperties` + * :ref:`zetMetricGroupCalculateMetricValues` + * :ref:`zetMetricGet` + * :ref:`zetMetricGetProperties` + * :ref:`zetContextActivateMetricGroups` + * :ref:`zetMetricStreamerOpen` + * :ref:`zetCommandListAppendMetricStreamerMarker` + * :ref:`zetMetricStreamerClose` + * :ref:`zetMetricStreamerReadData` + * :ref:`zetMetricQueryPoolCreate` + * :ref:`zetMetricQueryPoolDestroy` + * :ref:`zetMetricQueryCreate` + * :ref:`zetMetricQueryDestroy` + * :ref:`zetMetricQueryReset` + * :ref:`zetCommandListAppendMetricQueryBegin` + * :ref:`zetCommandListAppendMetricQueryEnd` + * :ref:`zetCommandListAppendMetricMemoryBarrier` + * :ref:`zetMetricQueryGetData` + + +* Enumerations + + + * :ref:`zet-metric-group-sampling-type-flags-t` + * :ref:`zet-metric-type-t` + * :ref:`zet-metric-group-calculation-type-t` + * :ref:`zet-metric-query-pool-type-t` + + +* Structures + + + * :ref:`zet-metric-group-properties-t` + * :ref:`zet-metric-properties-t` + * :ref:`zet-metric-streamer-desc-t` + * :ref:`zet-metric-query-pool-desc-t` + + +Metric Functions +------------------------------------------------------------------------------ + + +.. _zetMetricGroupGet: + +zetMetricGroupGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupGet + :project: LevelZero + + +.. _zetMetricGroupGetProperties: + +zetMetricGroupGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupGetProperties + :project: LevelZero + + +.. _zetMetricGroupCalculateMetricValues: + +zetMetricGroupCalculateMetricValues +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupCalculateMetricValues + :project: LevelZero + + +.. _zetMetricGet: + +zetMetricGet +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGet + :project: LevelZero + + +.. _zetMetricGetProperties: + +zetMetricGetProperties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGetProperties + :project: LevelZero + + +.. _zetContextActivateMetricGroups: + +zetContextActivateMetricGroups +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetContextActivateMetricGroups + :project: LevelZero + + +.. _zetMetricStreamerOpen: + +zetMetricStreamerOpen +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricStreamerOpen + :project: LevelZero + + +.. _zetCommandListAppendMetricStreamerMarker: + +zetCommandListAppendMetricStreamerMarker +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetCommandListAppendMetricStreamerMarker + :project: LevelZero + + +.. _zetMetricStreamerClose: + +zetMetricStreamerClose +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricStreamerClose + :project: LevelZero + + +.. _zetMetricStreamerReadData: + +zetMetricStreamerReadData +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricStreamerReadData + :project: LevelZero + + +.. _zetMetricQueryPoolCreate: + +zetMetricQueryPoolCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryPoolCreate + :project: LevelZero + + +.. _zetMetricQueryPoolDestroy: + +zetMetricQueryPoolDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryPoolDestroy + :project: LevelZero + + +.. _zetMetricQueryCreate: + +zetMetricQueryCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryCreate + :project: LevelZero + + +.. _zetMetricQueryDestroy: + +zetMetricQueryDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryDestroy + :project: LevelZero + + +.. _zetMetricQueryReset: + +zetMetricQueryReset +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryReset + :project: LevelZero + + +.. _zetCommandListAppendMetricQueryBegin: + +zetCommandListAppendMetricQueryBegin +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetCommandListAppendMetricQueryBegin + :project: LevelZero + + +.. _zetCommandListAppendMetricQueryEnd: + +zetCommandListAppendMetricQueryEnd +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetCommandListAppendMetricQueryEnd + :project: LevelZero + + +.. _zetCommandListAppendMetricMemoryBarrier: + +zetCommandListAppendMetricMemoryBarrier +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetCommandListAppendMetricMemoryBarrier + :project: LevelZero + + +.. _zetMetricQueryGetData: + +zetMetricQueryGetData +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricQueryGetData + :project: LevelZero + + + +Metric Enums +------------------------------------------------------------------------------ + + +.. _zet-metric-group-sampling-type-flags-t: + +zet_metric_group_sampling_type_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_group_sampling_type_flag_t + :project: LevelZero + + +.. _zet-metric-type-t: + +zet_metric_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_type_t + :project: LevelZero + + +.. _zet-metric-group-calculation-type-t: + +zet_metric_group_calculation_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_group_calculation_type_t + :project: LevelZero + + +.. _zet-metric-query-pool-type-t: + +zet_metric_query_pool_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_query_pool_type_t + :project: LevelZero + + +Metric Structures +------------------------------------------------------------------------------ + +.. _zet-metric-group-properties-t: + +zet_metric_group_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_group_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-properties-t: + +zet_metric_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-streamer-desc-t: + +zet_metric_streamer_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_streamer_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-query-pool-desc-t: + +zet_metric_query_pool_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_query_pool_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Pin +============================================================ +* Functions + + + * :ref:`zetKernelGetProfileInfo` + + +* Enumerations + + + * :ref:`zet-profile-flags-t` + * :ref:`zet-profile-token-type-t` + + +* Structures + + + * :ref:`zet-profile-properties-t` + * :ref:`zet-profile-free-register-token-t` + * :ref:`zet-profile-register-sequence-t` + + +Pin Functions +------------------------------------------------------------------------------ + + +.. _zetKernelGetProfileInfo: + +zetKernelGetProfileInfo +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetKernelGetProfileInfo + :project: LevelZero + + + +Pin Enums +------------------------------------------------------------------------------ + + +.. _zet-profile-flags-t: + +zet_profile_flags_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_profile_flag_t + :project: LevelZero + + +.. _zet-profile-token-type-t: + +zet_profile_token_type_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_profile_token_type_t + :project: LevelZero + + +Pin Structures +------------------------------------------------------------------------------ + +.. _zet-profile-properties-t: + +zet_profile_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_profile_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-profile-free-register-token-t: + +zet_profile_free_register_token_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_profile_free_register_token_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-profile-register-sequence-t: + +zet_profile_register_sequence_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_profile_register_sequence_t + :project: LevelZero + :members: + :undoc-members: + + + + +Tracing +============================================================ +* Functions + + + * :ref:`zetTracerExpCreate` + * :ref:`zetTracerExpDestroy` + * :ref:`zetTracerExpSetPrologues` + * :ref:`zetTracerExpSetEpilogues` + * :ref:`zetTracerExpSetEnabled` + + +* Enumerations + + + * :ref:`zet-api-tracing-exp-version-t` + + +* Structures + + + * :ref:`zet-tracer-exp-desc-t` + + +Tracing Functions +------------------------------------------------------------------------------ + + +.. _zetTracerExpCreate: + +zetTracerExpCreate +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetTracerExpCreate + :project: LevelZero + + +.. _zetTracerExpDestroy: + +zetTracerExpDestroy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetTracerExpDestroy + :project: LevelZero + + +.. _zetTracerExpSetPrologues: + +zetTracerExpSetPrologues +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetTracerExpSetPrologues + :project: LevelZero + + +.. _zetTracerExpSetEpilogues: + +zetTracerExpSetEpilogues +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetTracerExpSetEpilogues + :project: LevelZero + + +.. _zetTracerExpSetEnabled: + +zetTracerExpSetEnabled +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetTracerExpSetEnabled + :project: LevelZero + + + +Tracing Enums +------------------------------------------------------------------------------ + + +.. _zet-api-tracing-exp-version-t: + +zet_api_tracing_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_api_tracing_exp_version_t + :project: LevelZero + + +Tracing Structures +------------------------------------------------------------------------------ + +.. _zet-tracer-exp-desc-t: + +zet_tracer_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_tracer_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Concurrentmetricgroup +============================================================ +* Functions + + + * :ref:`zetDeviceGetConcurrentMetricGroupsExp` + + +* Enumerations + + + * :ref:`zet-concurrent-metric-groups-exp-version-t` + + + + +Concurrentmetricgroup Functions +------------------------------------------------------------------------------ + + +.. _zetDeviceGetConcurrentMetricGroupsExp: + +zetDeviceGetConcurrentMetricGroupsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDeviceGetConcurrentMetricGroupsExp + :project: LevelZero + + + +Concurrentmetricgroup Enums +------------------------------------------------------------------------------ + + +.. _zet-concurrent-metric-groups-exp-version-t: + +zet_concurrent_metric_groups_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_concurrent_metric_groups_exp_version_t + :project: LevelZero + + + + + +Metrictracer +============================================================ +* Functions + + + * :ref:`zetMetricTracerCreateExp` + * :ref:`zetMetricTracerDestroyExp` + * :ref:`zetMetricTracerEnableExp` + * :ref:`zetMetricTracerDisableExp` + * :ref:`zetMetricTracerReadDataExp` + * :ref:`zetMetricDecoderCreateExp` + * :ref:`zetMetricDecoderDestroyExp` + * :ref:`zetMetricDecoderGetDecodableMetricsExp` + * :ref:`zetMetricTracerDecodeExp` + + +* Enumerations + + + * :ref:`zet-metric-tracer-exp-version-t` + + +* Structures + + + * :ref:`zet-metric-tracer-exp-desc-t` + * :ref:`zet-metric-entry-exp-t` + + +Metrictracer Functions +------------------------------------------------------------------------------ + + +.. _zetMetricTracerCreateExp: + +zetMetricTracerCreateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerCreateExp + :project: LevelZero + + +.. _zetMetricTracerDestroyExp: + +zetMetricTracerDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerDestroyExp + :project: LevelZero + + +.. _zetMetricTracerEnableExp: + +zetMetricTracerEnableExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerEnableExp + :project: LevelZero + + +.. _zetMetricTracerDisableExp: + +zetMetricTracerDisableExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerDisableExp + :project: LevelZero + + +.. _zetMetricTracerReadDataExp: + +zetMetricTracerReadDataExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerReadDataExp + :project: LevelZero + + +.. _zetMetricDecoderCreateExp: + +zetMetricDecoderCreateExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricDecoderCreateExp + :project: LevelZero + + +.. _zetMetricDecoderDestroyExp: + +zetMetricDecoderDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricDecoderDestroyExp + :project: LevelZero + + +.. _zetMetricDecoderGetDecodableMetricsExp: + +zetMetricDecoderGetDecodableMetricsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricDecoderGetDecodableMetricsExp + :project: LevelZero + + +.. _zetMetricTracerDecodeExp: + +zetMetricTracerDecodeExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricTracerDecodeExp + :project: LevelZero + + + +Metrictracer Enums +------------------------------------------------------------------------------ + + +.. _zet-metric-tracer-exp-version-t: + +zet_metric_tracer_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_tracer_exp_version_t + :project: LevelZero + + +Metrictracer Structures +------------------------------------------------------------------------------ + +.. _zet-metric-tracer-exp-desc-t: + +zet_metric_tracer_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_tracer_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-entry-exp-t: + +zet_metric_entry_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_entry_exp_t + :project: LevelZero + :members: + :undoc-members: + + + + +Multimetricvalues +============================================================ +* Functions + + + * :ref:`zetMetricGroupCalculateMultipleMetricValuesExp` + + +* Enumerations + + + * :ref:`ze-calculate-multiple-metrics-exp-version-t` + + + + +Multimetricvalues Functions +------------------------------------------------------------------------------ + + +.. _zetMetricGroupCalculateMultipleMetricValuesExp: + +zetMetricGroupCalculateMultipleMetricValuesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupCalculateMultipleMetricValuesExp + :project: LevelZero + + + +Multimetricvalues Enums +------------------------------------------------------------------------------ + + +.. _ze-calculate-multiple-metrics-exp-version-t: + +ze_calculate_multiple_metrics_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_calculate_multiple_metrics_exp_version_t + :project: LevelZero + + + + + +Globaltimestamps +============================================================ +* Functions + + + * :ref:`zetMetricGroupGetGlobalTimestampsExp` + + +* Enumerations + + + * :ref:`ze-metric-global-timestamps-exp-version-t` + + +* Structures + + + * :ref:`zet-metric-global-timestamps-resolution-exp-t` + + +Globaltimestamps Functions +------------------------------------------------------------------------------ + + +.. _zetMetricGroupGetGlobalTimestampsExp: + +zetMetricGroupGetGlobalTimestampsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupGetGlobalTimestampsExp + :project: LevelZero + + + +Globaltimestamps Enums +------------------------------------------------------------------------------ + + +.. _ze-metric-global-timestamps-exp-version-t: + +ze_metric_global_timestamps_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: ze_metric_global_timestamps_exp_version_t + :project: LevelZero + + +Globaltimestamps Structures +------------------------------------------------------------------------------ + +.. _zet-metric-global-timestamps-resolution-exp-t: + +zet_metric_global_timestamps_resolution_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_global_timestamps_resolution_exp_t + :project: LevelZero + :members: + :undoc-members: + + + + +Metricexportdata +============================================================ +* Functions + + + * :ref:`zetMetricGroupGetExportDataExp` + * :ref:`zetMetricGroupCalculateMetricExportDataExp` + + +* Enumerations + + + * :ref:`zet-export-metric-data-exp-version-t` + + +* Structures + + + * :ref:`zet-metric-calculate-exp-desc-t` + + +Metricexportdata Functions +------------------------------------------------------------------------------ + + +.. _zetMetricGroupGetExportDataExp: + +zetMetricGroupGetExportDataExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupGetExportDataExp + :project: LevelZero + + +.. _zetMetricGroupCalculateMetricExportDataExp: + +zetMetricGroupCalculateMetricExportDataExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupCalculateMetricExportDataExp + :project: LevelZero + + + +Metricexportdata Enums +------------------------------------------------------------------------------ + + +.. _zet-export-metric-data-exp-version-t: + +zet_export_metric_data_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_export_metric_data_exp_version_t + :project: LevelZero + + +Metricexportdata Structures +------------------------------------------------------------------------------ + +.. _zet-metric-calculate-exp-desc-t: + +zet_metric_calculate_exp_desc_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_calculate_exp_desc_t + :project: LevelZero + :members: + :undoc-members: + + + + +Metricprogrammable +============================================================ +* Functions + + + * :ref:`zetMetricProgrammableGetExp` + * :ref:`zetMetricProgrammableGetPropertiesExp` + * :ref:`zetMetricProgrammableGetParamInfoExp` + * :ref:`zetMetricProgrammableGetParamValueInfoExp` + * :ref:`zetMetricCreateFromProgrammableExp` + * :ref:`zetDeviceCreateMetricGroupsFromMetricsExp` + * :ref:`zetMetricGroupAddMetricExp` + * :ref:`zetMetricGroupRemoveMetricExp` + * :ref:`zetMetricGroupCloseExp` + * :ref:`zetMetricGroupDestroyExp` + * :ref:`zetMetricDestroyExp` + + +* Enumerations + + + * :ref:`zet-metric-programmable-exp-version-t` + * :ref:`zet-metric-programmable-param-type-exp-t` + * :ref:`zet-value-info-type-exp-t` + + +* Structures + + + * :ref:`zet-metric-programmable-exp-properties-t` + * :ref:`zet-value-uint64-range-exp-t` + * :ref:`zet-value-fp64-range-exp-t` + * :ref:`zet-value-info-exp-t` + * :ref:`zet-metric-programmable-param-info-exp-t` + * :ref:`zet-metric-programmable-param-value-info-exp-t` + * :ref:`zet-metric-programmable-param-value-exp-t` + + +Metricprogrammable Functions +------------------------------------------------------------------------------ + + +.. _zetMetricProgrammableGetExp: + +zetMetricProgrammableGetExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricProgrammableGetExp + :project: LevelZero + + +.. _zetMetricProgrammableGetPropertiesExp: + +zetMetricProgrammableGetPropertiesExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricProgrammableGetPropertiesExp + :project: LevelZero + + +.. _zetMetricProgrammableGetParamInfoExp: + +zetMetricProgrammableGetParamInfoExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricProgrammableGetParamInfoExp + :project: LevelZero + + +.. _zetMetricProgrammableGetParamValueInfoExp: + +zetMetricProgrammableGetParamValueInfoExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricProgrammableGetParamValueInfoExp + :project: LevelZero + + +.. _zetMetricCreateFromProgrammableExp: + +zetMetricCreateFromProgrammableExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricCreateFromProgrammableExp + :project: LevelZero + + +.. _zetDeviceCreateMetricGroupsFromMetricsExp: + +zetDeviceCreateMetricGroupsFromMetricsExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetDeviceCreateMetricGroupsFromMetricsExp + :project: LevelZero + + +.. _zetMetricGroupAddMetricExp: + +zetMetricGroupAddMetricExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupAddMetricExp + :project: LevelZero + + +.. _zetMetricGroupRemoveMetricExp: + +zetMetricGroupRemoveMetricExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupRemoveMetricExp + :project: LevelZero + + +.. _zetMetricGroupCloseExp: + +zetMetricGroupCloseExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupCloseExp + :project: LevelZero + + +.. _zetMetricGroupDestroyExp: + +zetMetricGroupDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricGroupDestroyExp + :project: LevelZero + + +.. _zetMetricDestroyExp: + +zetMetricDestroyExp +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenfunction:: zetMetricDestroyExp + :project: LevelZero + + + +Metricprogrammable Enums +------------------------------------------------------------------------------ + + +.. _zet-metric-programmable-exp-version-t: + +zet_metric_programmable_exp_version_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_programmable_exp_version_t + :project: LevelZero + + +.. _zet-metric-programmable-param-type-exp-t: + +zet_metric_programmable_param_type_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_metric_programmable_param_type_exp_t + :project: LevelZero + + +.. _zet-value-info-type-exp-t: + +zet_value_info_type_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenenum:: zet_value_info_type_exp_t + :project: LevelZero + + +Metricprogrammable Structures +------------------------------------------------------------------------------ + +.. _zet-metric-programmable-exp-properties-t: + +zet_metric_programmable_exp_properties_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_programmable_exp_properties_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-value-uint64-range-exp-t: + +zet_value_uint64_range_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_value_uint64_range_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-value-fp64-range-exp-t: + +zet_value_fp64_range_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_value_fp64_range_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-value-info-exp-t: + +zet_value_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenunion:: zet_value_info_exp_t + :project: LevelZero + +.. _zet-metric-programmable-param-info-exp-t: + +zet_metric_programmable_param_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_programmable_param_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-programmable-param-value-info-exp-t: + +zet_metric_programmable_param_value_info_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_programmable_param_value_info_exp_t + :project: LevelZero + :members: + :undoc-members: + +.. _zet-metric-programmable-param-value-exp-t: + +zet_metric_programmable_param_value_exp_t +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. doxygenstruct:: zet_metric_programmable_param_value_exp_t + :project: LevelZero + :members: + :undoc-members: + + diff --git a/level-zero/1.10/_sources/versions.rst b/level-zero/1.10/_sources/versions.rst new file mode 100644 index 0000000..65798e3 --- /dev/null +++ b/level-zero/1.10/_sources/versions.rst @@ -0,0 +1,6 @@ + +=================== + Versions +=================== + +https://spec.oneapi.io/releases/index.html#level-zero diff --git a/level-zero/1.10/_static/basic.css b/level-zero/1.10/_static/basic.css new file mode 100644 index 0000000..2af6139 --- /dev/null +++ b/level-zero/1.10/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/level-zero/1.10/_static/doctools.js b/level-zero/1.10/_static/doctools.js new file mode 100644 index 0000000..4d67807 --- /dev/null +++ b/level-zero/1.10/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/level-zero/1.10/_static/documentation_options.js b/level-zero/1.10/_static/documentation_options.js new file mode 100644 index 0000000..dab586c --- /dev/null +++ b/level-zero/1.10/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/level-zero/1.10/_static/file.png b/level-zero/1.10/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/images/logo_binder.svg b/level-zero/1.10/_static/images/logo_binder.svg new file mode 100644 index 0000000..45fecf7 --- /dev/null +++ b/level-zero/1.10/_static/images/logo_binder.svg @@ -0,0 +1,19 @@ + + + + +logo + + + + + + + + diff --git a/level-zero/1.10/_static/images/logo_colab.png b/level-zero/1.10/_static/images/logo_colab.png new file mode 100644 index 0000000000000000000000000000000000000000..b7560ec216b2d1b6f77855525fe966c741833428 GIT binary patch literal 7601 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 diff --git a/level-zero/1.10/_static/images/logo_jupyterhub.svg b/level-zero/1.10/_static/images/logo_jupyterhub.svg new file mode 100644 index 0000000..60cfe9f --- /dev/null +++ b/level-zero/1.10/_static/images/logo_jupyterhub.svg @@ -0,0 +1 @@ +logo_jupyterhubHub diff --git a/level-zero/1.10/_static/language_data.js b/level-zero/1.10/_static/language_data.js new file mode 100644 index 0000000..367b8ed --- /dev/null +++ b/level-zero/1.10/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..15541a6a375f93efed3f410c2f892174ba91aaa0 GIT binary patch literal 1541 zcmZvaJ!}+56vrn40$lhsA5n;v39lh z&UUPnK|(?lfROD&7suGxxK0yMQ@o*|gesy+5vu&(?mBh?qn-WTn|=G<|NZw~b#1&Y zus*}?#(shQ752{`;fA&4V5qyTPS`e-!60i}(%5{r(0^;D!zP`#V66yFspV7<>kvF5*86z5`j$ z=8ez}?gu^a8}Li;DtHLIQScsk0P*i2&-V)CK7WC%Q*07qAJ7GU4juvd{a%p0tQWim zeu4N7$oY#!{2XK-Ul-?ZLAIP{VE@?5Oee^5uV0WLc46~8yjT}6*2P}4uiOhI#i!V; zXZ>RTx%Xyl*phu;(K~`m+PV^FjkZeL1V5sYI1K7moHI9c!}v9+ja5U&{2;G|4YhWh zm^7}c{~g+Tn8?Tvl<2F47Nu9i{l>4L9=6uy?FAD0FiY3w(=eiIKTWvQbqOe&{(Wd5^qM9YH}dGcsaNzja& zq-k29Wt#nO;9At7wwrWQc-|J&abpO^Bu%@f8>dB@7kE5QPu!GiO4q{asH8bJN^P3Y zvv7uYJM=8C@P0OzYSB}gLot+ZNt#(-bAo@Zj6?Yfp?anYnoPQR?;I# z{we#%LHPn31obOfkF`-+I9KUX>gUj zW@~ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..edae2ec --- /dev/null +++ b/level-zero/1.10/_static/locales/ar/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "موضوع بواسطة" + +msgid "Open an issue" +msgstr "افتح قضية" + +msgid "Contents" +msgstr "محتويات" + +msgid "Download notebook file" +msgstr "تنزيل ملف دفتر الملاحظات" + +msgid "Sphinx Book Theme" +msgstr "موضوع كتاب أبو الهول" + +msgid "Fullscreen mode" +msgstr "وضع ملء الشاشة" + +msgid "Edit this page" +msgstr "قم بتحرير هذه الصفحة" + +msgid "By" +msgstr "بواسطة" + +msgid "Copyright" +msgstr "حقوق النشر" + +msgid "Source repository" +msgstr "مستودع المصدر" + +msgid "previous page" +msgstr "الصفحة السابقة" + +msgid "next page" +msgstr "الصفحة التالية" + +msgid "Toggle navigation" +msgstr "تبديل التنقل" + +msgid "repository" +msgstr "مخزن" + +msgid "suggest edit" +msgstr "أقترح تحرير" + +msgid "open issue" +msgstr "قضية مفتوحة" + +msgid "Launch" +msgstr "إطلاق" + +msgid "Print to PDF" +msgstr "طباعة إلى PDF" + +msgid "By the" +msgstr "بواسطة" + +msgid "Last updated on" +msgstr "آخر تحديث في" + +msgid "Download source file" +msgstr "تنزيل ملف المصدر" + +msgid "Download this page" +msgstr "قم بتنزيل هذه الصفحة" diff --git a/level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..da95120037f8d7c52ad1f166a7682ea55ca47a01 GIT binary patch literal 1708 zcmaKqOKcQJ5QaOv0vkhkhC?jT2nh&cNkBwFYxY90B_t3AOpcMpyUpy7b@wpSL+}lZ zc_s=RKte*|C2`<_7URcy7jLdPR->G9h;qvTamgjhjlX8bj}R-P?fIs=y6dm{dw*ZQ z?5@DG8KWEHSBxzfKYoB0o|Q|4z)!5gYX#T^t^_xLtH5sX6L34Y5iEo2!IR(`P=OzV zHs>hFdG3I#!TVqr_zYYJPUie2U;izi{|U0*KVSh|x->h#2IP4+$a!{vO>jTB41AmO zFOci|8~haPLhws)C%7B@Hs=rEKFpioR`3nD2VA{8JAV*le@=j0?>TT6cp2OVJ_ot4 z*WiBe50LY0LeuQ=S0K-igY45ea0fUFvgOv1JgO3NWrRpO`@TbYDa&#J04 z8uLU~YT|f^4W5=k94AWjM}bBXBl{2ciBp+gq(T!1)p!vCDOMX z%z7FyzF${Td*=h+vjIf3x?r>F4C`bfVWiFnCdtcQkUma)U!h8cPEd+Dt17m5q+0w& zMKQ9KWTsza{bH(IICkV%?|gjko-YcyvBiPmP?e-b0iTC;FVH=*QuCr%+4AXuzT$!T zeUYc*Gb$?f>WZlb+AqligMlp^^|YVB*ODCc3;p#Z^6JGt6Ai^Bsl#*{m-qF^?6bU6 z%dKU(_p_dYpa*V5&_n77dhBk}xVz~t(j+x#hMF`X=r)bH5$d>$?h>`ABk5bs2r;-dTfq#Q2#?t@q|9teP3*uNPWy^ACfqd~8<8}Y{+a1%CJzCK zxEruG6KALRIVJ-U$3Yy!~NpG7AK|w8QyPuG1485SvTmo%i zrHNb3JL61fEcXDLQBPwL`;mLLOPayeL#0F0B5ju4Yr5-c6aTq5cjf(V=MS}!0~aLI KlK*|VZ0$SA#iddJ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..1f363b9 --- /dev/null +++ b/level-zero/1.10/_static/locales/bg/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Тема от" + +msgid "Open an issue" +msgstr "Отворете проблем" + +msgid "Contents" +msgstr "Съдържание" + +msgid "Download notebook file" +msgstr "Изтеглете файла на бележника" + +msgid "Sphinx Book Theme" +msgstr "Тема на книгата Sphinx" + +msgid "Fullscreen mode" +msgstr "Режим на цял екран" + +msgid "Edit this page" +msgstr "Редактирайте тази страница" + +msgid "By" +msgstr "От" + +msgid "Copyright" +msgstr "Авторско право" + +msgid "Source repository" +msgstr "Хранилище на източника" + +msgid "previous page" +msgstr "предишна страница" + +msgid "next page" +msgstr "Следваща страница" + +msgid "Toggle navigation" +msgstr "Превключване на навигацията" + +msgid "repository" +msgstr "хранилище" + +msgid "suggest edit" +msgstr "предложи редактиране" + +msgid "open issue" +msgstr "отворен брой" + +msgid "Launch" +msgstr "Стартиране" + +msgid "Print to PDF" +msgstr "Печат в PDF" + +msgid "By the" +msgstr "По" + +msgid "Last updated on" +msgstr "Последна актуализация на" + +msgid "Download source file" +msgstr "Изтеглете изходния файл" + +msgid "Download this page" +msgstr "Изтеглете тази страница" diff --git a/level-zero/1.10/_static/locales/bn/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/bn/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b96639b726a2fa959a6419b6f8b7e0dfcce33ae GIT binary patch literal 1646 zcmbV~&5IOA7>8S2xE{WN>)mqrjbP_+ zD|`%n|9`+8@Gtlc{Cs5;eF=|2zkdOGUHYZ{3U0$*$xxrd?Ipj1NbvXay{#>+)sQwK zLc@BGr=Q8s@3s2pVyti%e$UVEm)Gmv@K$Kxb@iIkGQ)QH3Dc6%KAm>6q}ejje*L3r z>$oA5HgZzyAH?ybE$6p$-O1{5(WYr7xk%%tj7A!XA>+Uti*qA7X(KkWA+(Cd;*P4f zqC=@vB32^F^Nx(hvqTZ3#rXcw=x~uglc~-VqqA;wIBg~Bl-TQgnP|xqG73*IS+qW( zo6WWqDn6MsW0O!s$y282M*BKNku;Mh6WuA>9MAOkvTmve8r7pR%ZaLqqE6Ml~R{3$6RYz1^ zHxkvXiQSWlsf@*{*+H+Gm{gVVb|;J5)lr?D$ZJBS!OVxh8WP3p@HQnr8y3617^+0h zTGzYm>~GFKb#|8L(pyu`-gfp`;o|IhXQy$z<$9NR^WnYI&Q1wu?}S90&tc32?JEMg4wtZV(;LB0u<-^*y2)npB|JLL@f}SDrcO%Hi&xc%8I{oPgE$%7j?Kgl1>Fz ze@F9IjWZ|r@GsvuUE*t^AN05zoTs2{kFZmI~m25V-8`&>S^dPTx z$^cEyl^jJ+?oOKAsWhagj`qI>dC8~bzq_0hZSgC)LsF@U6+9F=tR`Ky;!WHMs_vF; z;&hv=3*2(}kGreju(wh1_KV>qMpKtu5HHORr>y#KY7MM6T^uJ&R^K(T z4hABYyJ6tQiOxVI^L*F1qO_S8am=vBunT>6i=$ATZdb3f&v8VJ2BK9Ft@hoIsQAhin!}wxzs(N*6pVu~DVqb08$hD1)Yjm|` zLS;tVxWMJrDAJYrr0_baPC1|EHL_WMn2%o?qrvC+h@~^*GMofV4`)o0LtLbidwpll9h6X)!5Y za@FKiW0X*mn3iX1k|l^w_?&_QX>NDCJM7-fGBbN{ zu90Yv ze2zJT`3vTkm``?L!Pxha5O~CXEFXgh!F}K{a6dQ$o&?W;$H6Xm6ub={0u}ff7#cnT z+0QfZQ*aGD2(E)iz#kj_+}M9>_J4vL?;Y3zckiz69|Czl1G1m9;7jl_xEK7Z;olA4 zfrnxL7yKGLyhn&Hz$@Tsa2Y%S-Uqp^$KWaO2ax0Z1af_E!2{s0AfNlAvHt_IJ_it- z&m9L@hqKN83dlMwfSm7Lkn7GsmYi+Vd*Crl_RV$g90)P3f&KE}ym+u5)|z$Y8sKu8 zBlmXaVEsAAPcR|Fw7=ro7!QS1iR;z`WrD|#V(fI1264kaFu9d685`8V+Kg6ouC~qI zmM&5s7(=Q(6*5s`F4h6A|KHA+dF~^pl%b)GmAEN=pt6W%P%&A9eQBapEEYH*4QcO7 zC3;R9II+~bF)xtNkjEETCX59u1`)=$+?iRns%x~9HOl3bCIBb~^g5yYs6 zq0Y{7oH|J1)JWU1NqdKTUnYq{mI{?16?;!bp}i2dzgNz~TZiiSZI0ibMsD3&xHY%^ z{^Gd{twz{(e_W^z1tf63$fY*36s6L66}rp)`S#WAb50t+qFj5Cn}I4y~Kg zBqen1P~=;^ymT^e&s#V29Wupq>${g`ss7ph#?V(?y7=vEOZ04vuGQ<}z{^y~66*P^ zno!}Y$w-Q&P)$-}%RuPqz&a}Is;MT!%#Nz{)Y2fgS=pT0Tnmc4rqvjN;Qj07&Ihjp zVvrB;Z*XvQD zxu;CEAr^xgZM{%PrEqqD`$N&!KBKt)RPHp%tyA?Xw}`Se37c!8k8_eTqth`htw3AZ zm~1S1a92z`@RU9C@Xu~NJj63$#L LZS{&p7>oY^Ev$2? literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/cs/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/cs/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..afecd9e --- /dev/null +++ b/level-zero/1.10/_static/locales/cs/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Téma od" + +msgid "Open an issue" +msgstr "Otevřete problém" + +msgid "Contents" +msgstr "Obsah" + +msgid "Download notebook file" +msgstr "Stáhnout soubor poznámkového bloku" + +msgid "Sphinx Book Theme" +msgstr "Téma knihy Sfinga" + +msgid "Fullscreen mode" +msgstr "Režim celé obrazovky" + +msgid "Edit this page" +msgstr "Upravit tuto stránku" + +msgid "By" +msgstr "Podle" + +msgid "Copyright" +msgstr "autorská práva" + +msgid "Source repository" +msgstr "Zdrojové úložiště" + +msgid "previous page" +msgstr "předchozí stránka" + +msgid "next page" +msgstr "další strana" + +msgid "Toggle navigation" +msgstr "Přepnout navigaci" + +msgid "repository" +msgstr "úložiště" + +msgid "suggest edit" +msgstr "navrhnout úpravy" + +msgid "open issue" +msgstr "otevřené číslo" + +msgid "Launch" +msgstr "Zahájení" + +msgid "Print to PDF" +msgstr "Tisk do PDF" + +msgid "By the" +msgstr "Podle" + +msgid "Last updated on" +msgstr "Naposledy aktualizováno" + +msgid "Download source file" +msgstr "Stáhněte si zdrojový soubor" + +msgid "Download this page" +msgstr "Stáhněte si tuto stránku" diff --git a/level-zero/1.10/_static/locales/da/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/da/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f43157d70c63ff21b4385dc36cb73f5b14eb6b01 GIT binary patch literal 1304 zcmZ9KyKmG$5XKi02pkaJ&;+qGJPH$nD9}aMKoTh;K$JVu@15uDO?nzn&U>A+XM4Phfw-zKH#7 zA8uHO_6vba9LDV+coaMYo(2zt6W}@UGI$1TfTzGEa2zD?I2bB!f*j{Lcno|A9tB^6 zC&9NBKUV%PmHi!Ly?>3CQ(qR(uY!{wt8{eFL)2d+-GK0XzbJ2D#pEAm_OQa=bqv z>yEt{#_?I3XFI&O|2#v^6KxpGSKQga zB|}Q$t~G&7@Oa2KoKDgpX6$2=SrtoT1GTMPm0g|DuG`zfb!d+>q}t0|B_w8J9T57T zIag$v?>HhOdp0JqpnQ-;9;-mHv<7xzI;nV=;{#=+_P!vo=(Ir)D;H<{wy4q`3h#>~ zA!JFY1gY2+>V#-Mj+V)JM61hEKVto8pj^8@e}8uO{nYgvwW_gEYa^$+3`k%y&y+UP zvXd(3DKs9n=AzrX-#KM`ms~V!IyTlOsmt4K9cl~8BnA3fm$9lXW`$E(G-qAU*QLn^ zrf=MwmgQsPs*#r(a_ZW2O)OJ9*z+b%Z59igr)teR+B0C^wn>Bm@6LBsXEFWfiOCp} zUSoVqXi7p(4!JPl*su1tkyFr_56Z-%sbe(I4#o^g{#-PJazXT;wvB`*ceb5TPdvg| zr`IHo4yJvN)iV_A{*4(42I?u%!cD5KXs+sR7@qEf{)q=$-v3Mo~pNRgs6dB45A_~g;fK07nJ@Atd!PtN@)FuuTCzw-;3=>No&-0+;~;^bfwAQikaeDcpMpPw z$G{ih3Gh|R-`o9n?fMUp?fnCGz(a>7-ya8gy#TV#x8N_}HSiTa&9^9*#YUsChPKG9Ug3-wb>5ahNSoell`9^ zoCmHU$Afe<^%ebHTryT9ZaN#u#(;-<*Xy#1V#z(Q#;HPD7is9+wj60gd)vV!pVPk0 zSm_{ZRgzdPbcFPDxsr?txhJx6>8J8fdK zt=*csGQxpNwNctG%DhrOQ0(2=TFGwgz2}t;Bl6j@&0V2w*_AhjI(F8SEfezEl?8P+ zO!CTPE6$HYSK7K+hThdhIeF}TXXUw`ymDc&BbHF5O7u~OM`4rK)5Mn;Zwdn zburuA-y2y!aDY4^_ YHT)aX(-~_xf`&nTEYd88)4;9x4>RdeS^xk5 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/de/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/de/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..f51d2ec --- /dev/null +++ b/level-zero/1.10/_static/locales/de/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Thema von der" + +msgid "Open an issue" +msgstr "Öffnen Sie ein Problem" + +msgid "Contents" +msgstr "Inhalt" + +msgid "Download notebook file" +msgstr "Notebook-Datei herunterladen" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-Buch-Thema" + +msgid "Fullscreen mode" +msgstr "Vollbildmodus" + +msgid "Edit this page" +msgstr "Bearbeite diese Seite" + +msgid "By" +msgstr "Durch" + +msgid "Copyright" +msgstr "Urheberrechte ©" + +msgid "Source repository" +msgstr "Quell-Repository" + +msgid "previous page" +msgstr "vorherige Seite" + +msgid "next page" +msgstr "Nächste Seite" + +msgid "Toggle navigation" +msgstr "Navigation umschalten" + +msgid "repository" +msgstr "Repository" + +msgid "suggest edit" +msgstr "vorschlagen zu bearbeiten" + +msgid "open issue" +msgstr "offenes Thema" + +msgid "Launch" +msgstr "Starten" + +msgid "Print to PDF" +msgstr "In PDF drucken" + +msgid "By the" +msgstr "Bis zum" + +msgid "Last updated on" +msgstr "Zuletzt aktualisiert am" + +msgid "Download source file" +msgstr "Quelldatei herunterladen" + +msgid "Download this page" +msgstr "Laden Sie diese Seite herunter" diff --git a/level-zero/1.10/_static/locales/el/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/el/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..fca6e9355f314677f2890f5679fd79dd67a7a5a2 GIT binary patch literal 1722 zcmZ{iPiS047{Euewt4U5n=fkKPHMz8X+JKcS{dGGPw+nU_c zCZPt>L)D-XMN9P{m<`*yO}BBoS3#I}@#Mj)Cp~!cBL2SFE!h-0?96ZHoA3Yk{@Ax; zMX{b{53_$`KhIu%fP=N`L8bVq-5d|WJ#ZJ?4|l_1_!N8@J_(C(AAASyg$6zb(>@oV z`1uSz3RmGC_yc?b-t6<2zWn$8{ZAG}N=-3*|lx#m@-51&_iV@GtlX{0B;& z|G|Us0FOuETkutwLXlsEZ^B>UVYqXrQitFhQ0g-9MK}YWfvbJC;B(wFD1G=Fz66IT z_E|X6=LsnC_o4J>9*)3IptM|SkT~LFKU;E^x(64jsmIx3FH7o|CH<3LOJ5JLNx{`F zvmIQ7ax;7w(hfIYb$phePOCsWALdpYv;G zOPqxDxMc1Trd2=DkykNltn8<_zIz?7*J?>AHYU*1VcDqDUXtp1RQ6I+)?vWC9+ax; z?Fa=g(0-ECjhcx404JfII61D)_Tt4R3KKsK<5_h!s`|lJua|GifioP~!B0M6o&VhxLBi1MZW0rDDj^PzkAoADB{_KUL1ZXW|5J z1>K9Em-u-XId|sNnX#?+BZm&>`i;#`&PJx7QxbSBs(F4es!LTbPE1;ScXB*`Y)dcp zg5;cu^J76NEc-#FppQ-YY3{TaRO_9ar-jjaZW8iNR~zWhPCd z!IGORj47br#qth1q_-xG*Y+m$QJl1ldYsi|#&y>pn)3O}2r<588%%~cb6DJv&M0zR z6Ju?!Gpp;aJ2H>n=Q;4)9QX)UBsQv>oVXExo49XqkvY35v_#)clq&D(UelG*<`bgE k?KNN}BbD^J+2#A$4_2dkCejtU)5(_TEbrUqDh*fv19*CpTMYflop9djWEuuR*>)1Ua4$Am958?gqbuT!-Hv=RLl? ztm83|e|Hk(lCvi7xt0eoxwahd<^hR9n|*n(9}lh{d$2y|1j)ji^V&Q(5ANYkOq8Lh zleoHqM}{7WYt{rZ!Q&-caXRS*F>UXd)T&q-8)(7WzFgEPZ5(@>yDt567<$^vOeG|m zu?~=4-?s8J^<76~z&terQmeydOn{H3s$Z$a!slCrhw4F8(v9dkg67!{> zqs)38tXmQDSx=k0@+!yH>Cu2hvC4%qr;bgMl%!G1I#EHx#L(SPMrYZlG|3z-YnxYL zZ<6X6Bk3-!Gg!U#kimbyhN}%YXpR zWvS9;N_Kn7c?ykNomO;Zym7(o#sxZQOml4 zuS=5^Ti>`iCCk^wX(LZG)Bqh@I0@tnvqcu0^K+ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/eo/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/eo/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..d72a048 --- /dev/null +++ b/level-zero/1.10/_static/locales/eo/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Temo de la" + +msgid "Open an issue" +msgstr "Malfermu numeron" + +msgid "Contents" +msgstr "Enhavo" + +msgid "Download notebook file" +msgstr "Elŝutu kajeran dosieron" + +msgid "Sphinx Book Theme" +msgstr "Sfinksa Libro-Temo" + +msgid "Fullscreen mode" +msgstr "Plenekrana reĝimo" + +msgid "Edit this page" +msgstr "Redaktu ĉi tiun paĝon" + +msgid "By" +msgstr "De" + +msgid "Copyright" +msgstr "Kopirajto" + +msgid "Source repository" +msgstr "Fonto-deponejo" + +msgid "previous page" +msgstr "antaŭa paĝo" + +msgid "next page" +msgstr "sekva paĝo" + +msgid "Toggle navigation" +msgstr "Ŝalti navigadon" + +msgid "repository" +msgstr "deponejo" + +msgid "suggest edit" +msgstr "sugesti redaktadon" + +msgid "open issue" +msgstr "malferma numero" + +msgid "Launch" +msgstr "Lanĉo" + +msgid "Print to PDF" +msgstr "Presi al PDF" + +msgid "By the" +msgstr "Per la" + +msgid "Last updated on" +msgstr "Laste ĝisdatigita la" + +msgid "Download source file" +msgstr "Elŝutu fontodosieron" + +msgid "Download this page" +msgstr "Elŝutu ĉi tiun paĝon" diff --git a/level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..ba2ee4dc22148ed53f2aeba32c5965654d4a5a2f GIT binary patch literal 1396 zcmZ9Kzi$;s5XU#z;m3pU!zKwxjKJWQQZ~wEO{|$=X8*l*5%yj3EgEC(L#m|@E3-CIKPyLHQ^!@|o{A*Bj z4$La`8F(5z16~6q{%=5u|2}vYjQ#o}@F?a_K{@|BDEE2^ehj_>C4c{bvhUD`U0&uv z*?$p~_`U+=+!`qRz6aYpfs%6BBl;4{Ji6po;@;mNp-!U9Icai#X`&;(C9e__T(%nW zw)>mpL*DQZy5tBcRcdJ)pH3yKo8BdMDdMNz4yGuRTJ{f|^^|Mp6HmSWQEwW{d*1tzb%mTC1mCsq-qL_43=ae|t-eKOjtW>vaY#^sij18-e zU>uxyy|KKi?sj^CYadPWVO!m;OXD8uC5dfPa>c40^|ZUw#21BS?P$vslng{1KTKV8 zUUWKW55MCO;ccWl{h{a&Tjjy}+WN}g`qfKU z27O|OlkJ*EIw63|wI$;gbyiY{oW}PitHT?6`vSSR$zizSGM^h)jP#AENrPMDiUxTd zX^w*p+XS-1RUfK2(ynf&aeQr2cfaHFPM;g=s}~jrYQqQVnr;8cCiiNY181d=I%iD{ zk_k)9C=?Vlg{(ANUY4?kat==RzrVWKpj=Q5{Q{y&B&juy+NY=9viqbpt^2(7Sd&X+ zE$PfxwdF+Wo=v7AO<8KlnjOl_?lY%ZD#GnhWgz3#*VABvZk(=zpIWX+tyOg}6^wXC zsg65u%fhre9yJUf6KusrthQzv+672++(cecEV5X4sri<+xahTU@tQ2Tj8rs5BN4#T iU!*-mQ^Nsab@xTRCJqKkd{;ciD^w4Rh!536LH!R)!cyS? literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..611834b --- /dev/null +++ b/level-zero/1.10/_static/locales/es/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema por el" + +msgid "Open an issue" +msgstr "Abrir un problema" + +msgid "Contents" +msgstr "Contenido" + +msgid "Download notebook file" +msgstr "Descargar archivo de cuaderno" + +msgid "Sphinx Book Theme" +msgstr "Tema del libro de la esfinge" + +msgid "Fullscreen mode" +msgstr "Modo de pantalla completa" + +msgid "Edit this page" +msgstr "Edita esta página" + +msgid "By" +msgstr "Por" + +msgid "Copyright" +msgstr "Derechos de autor" + +msgid "Source repository" +msgstr "Repositorio de origen" + +msgid "previous page" +msgstr "pagina anterior" + +msgid "next page" +msgstr "siguiente página" + +msgid "Toggle navigation" +msgstr "Navegación de palanca" + +msgid "repository" +msgstr "repositorio" + +msgid "suggest edit" +msgstr "sugerir editar" + +msgid "open issue" +msgstr "Tema abierto" + +msgid "Launch" +msgstr "Lanzamiento" + +msgid "Print to PDF" +msgstr "Imprimir en PDF" + +msgid "By the" +msgstr "Por el" + +msgid "Last updated on" +msgstr "Ultima actualización en" + +msgid "Download source file" +msgstr "Descargar archivo fuente" + +msgid "Download this page" +msgstr "Descarga esta pagina" diff --git a/level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..983b82391f499b67a9046c15d0dd8744650ad925 GIT binary patch literal 1341 zcmZ9Kzi%8x6vqb=^5gOYNC*@$VrY^ev%C-5~0q6cNoSQvQHcDIz*5N(ux8-*>yj7Nec{?37 zm@hCt!hG}w7K~$WDuqWK$8rQb2_6H_g2%xn@O|(C_#QX{&wyWnr$GYW22;<6py+%D zo&tXWPl7*z?}ESdeBSTB?Csw{@%I-v01qANzCR6$y#$KRMeqsu1$Y$v1AGho6Fdz5 z4az++J_JsIlKZFNIq(K3aoh#Zg45o90E(Y)LCNb!P;`Fo`2>{wpMm1IA0b zcW{Vb>7mpIdO`vjME%rCbb#Z zLB#9Ln`>&T^B1V~k&_R*YOAf;-PhM8wsB1jsl}?dyPU?psw`<|W?Y%XaN_8G>Z0@F zr*qN&8_XbscI- zgH4-*vBjDXO&n_1F3dRkd|7v|qf1VIJknP`Sstj{^T%OktXj#ancCu*yH}n+<|;=N z-jrOCj`OFMOqk`wddINU##;0GR19tBdvzi?e7zruw52+Aw>NT5Q%F&X%h*Lj=6f7z z8jNuq=-IE#jk<#c{m?m+L;rJ$825O_Nq(D^8CKl}zio+{#UD_z^uJ)WVl7Wi?YTr` zTRZHgk)aH+jLK4D)OfM3BNeE1ohJ(1utQX6H>rE`y-+P|2~e4t1fZw$r;!^}gUIe5 P_MW2m5}a<3ol*Y+f5$~k literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..345088f --- /dev/null +++ b/level-zero/1.10/_static/locales/et/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Teema" + +msgid "Open an issue" +msgstr "Avage probleem" + +msgid "Contents" +msgstr "Sisu" + +msgid "Download notebook file" +msgstr "Laadige sülearvuti fail alla" + +msgid "Sphinx Book Theme" +msgstr "Sfinksiraamatu teema" + +msgid "Fullscreen mode" +msgstr "Täisekraanirežiim" + +msgid "Edit this page" +msgstr "Muutke seda lehte" + +msgid "By" +msgstr "Kõrval" + +msgid "Copyright" +msgstr "Autoriõigus" + +msgid "Source repository" +msgstr "Allikahoidla" + +msgid "previous page" +msgstr "eelmine leht" + +msgid "next page" +msgstr "järgmine leht" + +msgid "Toggle navigation" +msgstr "Lülita navigeerimine sisse" + +msgid "repository" +msgstr "hoidla" + +msgid "suggest edit" +msgstr "soovita muuta" + +msgid "open issue" +msgstr "avatud küsimus" + +msgid "Launch" +msgstr "Käivitage" + +msgid "Print to PDF" +msgstr "Prindi PDF-i" + +msgid "By the" +msgstr "Autor" + +msgid "Last updated on" +msgstr "Viimati uuendatud" + +msgid "Download source file" +msgstr "Laadige alla lähtefail" + +msgid "Download this page" +msgstr "Laadige see leht alla" diff --git a/level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..d8ac054597c924e3010f629caeac1c748b7211cd GIT binary patch literal 1368 zcmZ9KJ#5r46vquMU&lA4Af!r|g^wXX5kqz52B58kprWEjclYv|xbfLh>>S*}#K;Cr ztS2O9B*cCTVrBw~l?gF1AR)y6B`K}2;{5K}=lB1=7k@o5`BGq<#+lRCrOA1CaQ!^kKlhsTrZJIH9K_^ryK`_q_#3i5+EIO9achW2 zhLpr@X9L;b@gpA=I!S|AaF48UDwfs-T6Zp!8`{wJvUg?CqyH8|s=drrLSix20jamb zrP3JRD~PP@yO_j1<%2BqSOtouvxrOEOU3;he^6Fx?@JOZg|3?XUWo3*(Ha#V+1j$!k61sdlv~SpmKV48XD?rEHI0qB!<^bOz`&KTmRqe+kV}^cf!#bT&>G1)AQnFuaA9SXR zO>~T6=Ywl@%y^W>^xt9_kNV@0^m3c4B9BMrgfh( zuVp?S>46Ru!ccTe7eieYS*GF0;G*3eAeplXnZCllffvOWA=>i5w+5yH-zgk~ao1dl zs44(@M0}Rt9Mp|iQ#yrKbuAq3msY|P`l$x0E<_Em{7-o?CS$aPMpfmO5T&sTb;r2u H66VBTf3Z^G literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..d97a08d --- /dev/null +++ b/level-zero/1.10/_static/locales/fi/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Teeman tekijä" + +msgid "Open an issue" +msgstr "Avaa ongelma" + +msgid "Contents" +msgstr "Sisällys" + +msgid "Download notebook file" +msgstr "Lataa muistikirjatiedosto" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-kirjan teema" + +msgid "Fullscreen mode" +msgstr "Koko näytön tila" + +msgid "Edit this page" +msgstr "Muokkaa tätä sivua" + +msgid "By" +msgstr "Tekijä" + +msgid "Copyright" +msgstr "Tekijänoikeus" + +msgid "Source repository" +msgstr "Lähteen arkisto" + +msgid "previous page" +msgstr "Edellinen sivu" + +msgid "next page" +msgstr "seuraava sivu" + +msgid "Toggle navigation" +msgstr "Vaihda navigointia" + +msgid "repository" +msgstr "arkisto" + +msgid "suggest edit" +msgstr "ehdottaa muokkausta" + +msgid "open issue" +msgstr "avoin ongelma" + +msgid "Launch" +msgstr "Tuoda markkinoille" + +msgid "Print to PDF" +msgstr "Tulosta PDF-tiedostoon" + +msgid "By the" +msgstr "Mukaan" + +msgid "Last updated on" +msgstr "Viimeksi päivitetty" + +msgid "Download source file" +msgstr "Lataa lähdetiedosto" + +msgid "Download this page" +msgstr "Lataa tämä sivu" diff --git a/level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f663d39f0faa76c5b9bd504c51252eef74cca5de GIT binary patch literal 1412 zcmZ{jJ!}+56vv0pm9t{vhm&8^IIO`h6wqyy*798~B-FLeKdo!!~aIl*+ zlr)i&DosjGX-Sm+nxs!ffzqWyh>mpmzuUEJBQe_9-_FOq|NFX^vnPL27*{aoG5^N= z4D;zRyf9{tD}_g$!Rs`57MuYuf@i>a@G^KEoCEvdEO-|@2Qqjbj4hvlV&_NjBk*VN zEI0-~27hn)XS@HRUH=P;-hW^RJaMA={W(z9^Pt$d0saAg1L9Gy@DjZ@;0NGaQ2bFR zmAVF8043f<@DuPZcoBRAia+0jpMpPtqW^1q{u?N9{{>2%|FrAZpu~0hRC7KD%K8iN z5_lUFyPKf+qrt170VU-UgXB+gDSn8C=pG)BP!}*oSBAtdL+nayq9N(OOB9IrIvT`P%K$}>uh8j13v0qZ;CRi75AO3oX*L*$lK06qM@nyU^}?vGk#|? zmL^cG3s$SSi7>stTuW6IGS6&j2uDVy3#y+NH@oiA@h}HB>+f7UZR}>YK)jOup(LluVV6L*Ln| zlGjyt&G}L2k*%l8&|h4l=Cgm((zQMpFVk1~#tn>=qIhM|}`x`)$>jU}ieUbVvBn#nWIG%|r{ z@(VpgvBl*|+YE)ZQEjFj&wG?C)!uDalV>RR`l$A11nWA{5XsPS+9@lOaXon+Y2Ue0 zE>oVUGO*E>4ZSkmuAAH}>yV{N!q_?5zAzp!&O#! TA2+cw{Vw>h7Yg+MtLz81? literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..88f3517 --- /dev/null +++ b/level-zero/1.10/_static/locales/fr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Thème par le" + +msgid "Open an issue" +msgstr "Ouvrez un problème" + +msgid "Contents" +msgstr "Contenu" + +msgid "Download notebook file" +msgstr "Télécharger le fichier notebook" + +msgid "Sphinx Book Theme" +msgstr "Thème du livre Sphinx" + +msgid "Fullscreen mode" +msgstr "Mode plein écran" + +msgid "Edit this page" +msgstr "Modifier cette page" + +msgid "By" +msgstr "Par" + +msgid "Copyright" +msgstr "droits d'auteur" + +msgid "Source repository" +msgstr "Dépôt source" + +msgid "previous page" +msgstr "page précédente" + +msgid "next page" +msgstr "page suivante" + +msgid "Toggle navigation" +msgstr "Basculer la navigation" + +msgid "repository" +msgstr "dépôt" + +msgid "suggest edit" +msgstr "suggestion de modification" + +msgid "open issue" +msgstr "signaler un problème" + +msgid "Launch" +msgstr "lancement" + +msgid "Print to PDF" +msgstr "Imprimer au format PDF" + +msgid "By the" +msgstr "Par le" + +msgid "Last updated on" +msgstr "Dernière mise à jour le" + +msgid "Download source file" +msgstr "Télécharger le fichier source" + +msgid "Download this page" +msgstr "Téléchargez cette page" diff --git a/level-zero/1.10/_static/locales/hr/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/hr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..eca4a1a2842830f06bd5f6235bf01d07bdd313d2 GIT binary patch literal 1402 zcmZ9KJ!~9B6vu}+kmLvh)-Bbu!YZ&sL*)#Wq0oOW>)iY z#I7UJKoJQlD$3MIh{}~uqNJdrprN2bqC$d-|Jz;1r;K*?xAU?8_kVBZ_tmrCDzsP8 z*U*1Oe;xg+XYfKhe?}=h>H=QRffvE^;1%!!xCXugz6HJv4#8FMQ}7bV;EQ1F_z)DG zZ@?G8@4$=TWAG*L$BsXD^S^cDKS7E2FW3WDR@(nBfihkLMdxksC-6Fmt?DmO{`(sg z-~WN)YvpX4?<)8j#_OQu@i8cQeBP}`P-^oC6rIQ5W$*{^dGHvNe1GZqM>qcuD0MvZ zY`gv@DF5B)#v@RCe+FI!b5KeyIf$NkxPmU8B<^y9bfYDCNE01tQa`D+)KxSg*?1KH z%T4MpwK#{4ax`^Pw+`@7ELnZzY-Ae)KI#K+iZZI(?h9Kvos)Hu_nn*4eN*x2ba2UM z{M2MDO`uvAtTuBKA$>9&rK$>r--+ODxdTQVUeRy*EU zh&bB0JyN@EJkPZYCOUthcI(pE2XsrkjZ2=fYTmTp<}`LiQ88IPH-(M{K`cLrtve@i z+90*(xpAqpy(Aw}Q7~LGGJzF0;VkyI^8P*c0crzk0e zJ5}W`eCg#p>R8HV8p8`ORd-?8+@kgmPE(NjB4ZRZpsbXo1{+%JywM17c0!7$ZS zdp+04j?>}H5RL>u+?)6`B(!QC;nQ(E%YYHwOi5)9EgF2Tundr{ymsm2Z;f2mKh k(#nYgw(f}olqHrfw@Z7L48TfWxy6y8Q4`jSBkXa^hFIaGO(a}_Drr&ngPIpyPhwkKtCW1zS zxtWoenhB;xBBn-yn24D8zwTalu&Ao9Uv<5s{`Yli#|wdR9BT&a6V_?0r`xb$Ol}tf zQ|!UE3)}}zg45t0a0WaEo&}G9U2qD#3myOoJP3w{Pe6|I9NZ7S1owfj!NcI&h98>q z&yD>JoIl_+xD%H+@5zQ2!9%dS z4R3=dU_S)+f*T;`dD8G1$o{WD_Im?z{P&Ih5#&5yK-S?0$ohz#wGPuD`<((=a*oaa zSxfd~Z8_ffK#0nR_2t3u=fQPw4%YQ37D84vb8p87>(4#hjm4TkQX%F>m@;G}=B){2 zg2zWWayrd|Sg?;xZdD?U4b-=GDA#mOTgTo;H=zFxL#DkfRZ3zp(E*`1&83*aj(wjsI*=O>qg>UnQ5~j z=eV|BMg@s#m;L%pJ)5RENuwU=R0WMBhBiW7o#i}rlG4#5ZDUjRSa=`Plu#w%B`C$N z(;&2$llB909??3o&fn(z?J9F?WqD;KhDS6Yp*?cS)QjtnT^a+xb_X5}DL&Qs{# z?=7`&Y~6Fp_%(9vMKiF8HfcxR=o0auv z_q>s3y7KCU*_ODI6J+IW*=v!hp&aNkC~@B;F{`@wufgMIJ{Em)%}J(mRd82~uKPNE zu!45VT#b~I5H)6^M@|hh?PQ`$a((5ZmR_kKRwzf4qZ=wC=HgJvLU}~a#5@JmHKeM~ zcQ+dhueyjH6-vS(Hi{zy4lKXvX09`YYnog=urAe8uFQH2W~4-u2I{*$(n5sIJAG7C T@Rc+s5Lgrh10CRyRonjp5+F85 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/id/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/id/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..9ffb56f --- /dev/null +++ b/level-zero/1.10/_static/locales/id/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema oleh" + +msgid "Open an issue" +msgstr "Buka masalah" + +msgid "Contents" +msgstr "Isi" + +msgid "Download notebook file" +msgstr "Unduh file notebook" + +msgid "Sphinx Book Theme" +msgstr "Tema Buku Sphinx" + +msgid "Fullscreen mode" +msgstr "Mode layar penuh" + +msgid "Edit this page" +msgstr "Edit halaman ini" + +msgid "By" +msgstr "Oleh" + +msgid "Copyright" +msgstr "hak cipta" + +msgid "Source repository" +msgstr "Repositori sumber" + +msgid "previous page" +msgstr "halaman sebelumnya" + +msgid "next page" +msgstr "halaman selanjutnya" + +msgid "Toggle navigation" +msgstr "Alihkan navigasi" + +msgid "repository" +msgstr "gudang" + +msgid "suggest edit" +msgstr "menyarankan edit" + +msgid "open issue" +msgstr "masalah terbuka" + +msgid "Launch" +msgstr "Meluncurkan" + +msgid "Print to PDF" +msgstr "Cetak ke PDF" + +msgid "By the" +msgstr "Oleh" + +msgid "Last updated on" +msgstr "Terakhir diperbarui saat" + +msgid "Download source file" +msgstr "Unduh file sumber" + +msgid "Download this page" +msgstr "Unduh halaman ini" diff --git a/level-zero/1.10/_static/locales/it/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/it/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..53ba476edd2df2a802917e9df402257ceca1a130 GIT binary patch literal 1403 zcmZXSJ&aXF6vsyafhY1QYQiQS8W$5EU!j1vc?Gb$351Os-eM!oynD~ycVOPkWoGWm zTH9#}m5qrNiM6q@vN55xvLLatGO@6+(D*<1-gP%Hxii0e=Htvc|2Z#C?tf~~-bG(P z{{{Vh^sipSfOhD0WAK^77~TMnfQP_S;9+n9db5tC&9bmQINr7VD9+^sD7S+ zZ-HNfN5E&`3Gn-#Klk&$_V(|f-uE{+0Qc?d&L0KUUI5k4BKQM%1;keK2Z+!7i9yf* z1s(_g1vTGe`;B=I{0KY^u7H})r~P~cRhutC&HGzW&wmGM{6B(v?m2h{{0%$^{sW!` z4;<+7S_JjnwcfrBYTWn1Q(y(ER@tjRN(zMHIBUF`R@^(uqn+2D6ew@4L zg5J|zQb*pB(DY&Nai5y1VnoTv1fhfnT;$=ca`*|y1aBki?jP#?!}jLE+O4&f-Stc7 zFAjQPha1~9k0>L63$?T2m#CQ8m^hE`ZLAKj?(U1$r%jH-6<>r>d^Mu0Q^|un)>jR5 z9TALm*F@`vt0B(QhBFUgSr)TwUH`yMh9yxlG%Xix0~y&& z3LB-cB(8l-D%nxCMbU^4uPmkzD-_D^sYeYovZ|_hYt|6+raF6N+B(TUeM703ahwOj z!*UGfp34HuR+WV4?HsPL=1>m45R2fh*HNhPRL3xNJhx_&?Yu^?zAcKo|5pQ*LIIU4 z9%X=yZ5mFd5t*`cmL{7}b7xJ=^_*qP(gmDLw)@AXu2??D^RnquqSO=xr-aR>O-k3u a)*Q3l*@6-(xNK#4xqhOgLbT*tS;gN$Zm<*V0gr*F!6RT6JPeM4`#}XB0Byp@Am^!p`@mOV z7q|)@0zW4Fn)rVt_HU5uZGb6o$Bx$f{UF;tAm=#)eg-dtd%-^-*V_PDx7aDf37`|? zeoukD;5CqS=MqLB_wxkgxVgmt1?-0X4dj{qO1J@X+@W2qe$Rs(cQvs`6FUcTpOYZ# zd6M|6Adj4TU>#hW-}7v_@AidK;vhE9mlyZXi}UiVd9FvXkushE>ug^<53aoj8)J$8 zzT$crKWU3f+%VcIZ9^RVa^Sf|D{h)8T{2EVYGYN-m<~=w|xXST6$p^DKQdw8cB>C zxj87tTJ-|uo6xf+D2p+_=;?>@I%^v*stG0HugtZ28aJ+6Qc^pUp6gf-MYMWoTj~tg zX%+DUHR+isk=>R)j9gbir9vl=V(zQFO%D~)cU2G~TSm6(r@4MQuACYk8XnlX?>m1n zl?*mLUiMW+S_rt{mmE*`%Y4xZLS?ge#s||^w&DUuhxb&F9?*GH@U)weS8|?B-Ey=W zVXhhJO{GRkQQ(x)gC>{=GgAAp8D=l_%hoY_R?FV3>^s+=67+^$;pPAU literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/iw/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/iw/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..4ea190d --- /dev/null +++ b/level-zero/1.10/_static/locales/iw/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: iw\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "נושא מאת" + +msgid "Open an issue" +msgstr "פתח גיליון" + +msgid "Contents" +msgstr "תוכן" + +msgid "Download notebook file" +msgstr "הורד קובץ מחברת" + +msgid "Sphinx Book Theme" +msgstr "נושא ספר ספינקס" + +msgid "Fullscreen mode" +msgstr "מצב מסך מלא" + +msgid "Edit this page" +msgstr "ערוך דף זה" + +msgid "By" +msgstr "על ידי" + +msgid "Copyright" +msgstr "זכויות יוצרים" + +msgid "Source repository" +msgstr "מאגר המקורות" + +msgid "previous page" +msgstr "עמוד קודם" + +msgid "next page" +msgstr "עמוד הבא" + +msgid "Toggle navigation" +msgstr "החלף ניווט" + +msgid "repository" +msgstr "מאגר" + +msgid "suggest edit" +msgstr "מציע לערוך" + +msgid "open issue" +msgstr "בעיה פתוחה" + +msgid "Launch" +msgstr "לְהַשִׁיק" + +msgid "Print to PDF" +msgstr "הדפס לקובץ PDF" + +msgid "By the" +msgstr "דרך" + +msgid "Last updated on" +msgstr "עודכן לאחרונה ב" + +msgid "Download source file" +msgstr "הורד את קובץ המקור" + +msgid "Download this page" +msgstr "הורד דף זה" diff --git a/level-zero/1.10/_static/locales/ja/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ja/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..1cefd29ce3cc08792667a82dc7ff47e9843107be GIT binary patch literal 1471 zcma))U2GIp6vr=uT2=%temyktnh+I|RZ$+uHv1sbO-LX%QhlH9-p&qe?;Yo((zoth z!EFJNkCxzqu~zx0SU`c+ubA-Uv++eAe7Tv~_Q5w};+y|7GulOC;?11-%{lkn^L6K! z-gVOq>v2dQu6IDn_Xk)2*RIXZZv;v211Zik;1ak4q&&ao z_TO@S&AKd35BL)Hd%6F@2|fYNfYiq|km|n!QoJ8>{U?y}t$^hJJGcehbZ=(g z0h0bQNasgDiZ_<)lR3|UkHUThq>)oh@}pU9hR|%O@9u?E>>&uvmlpL;i{?kUXs#3! zA=v{Ey4&tWeb61=55ZW{`(?Yv@$jH7*egl~LIyrQ+;Pvb>jB%X-jWSv)wooF7*^^a zA8{ID)$FU#tBQXZgSz8$*Rlm0s5t>b|D{&KM#HaqLP$QUYJ%;x{D6mU%?d<~D+xW6 z)jE6Cg@Yxz75=BO|)yDPjO+O|NI0-c}~bwE^u;+|UZ4dMBS zR^nOyBIPfpnG5^&>>F6!-~QYSg?zBZp>bD~cz^<)cN>-?`+2o)dAX*25Q`IlO*w3@i^0SgZ zRp#5b_7~Xl$+OE7hnZ=9YND2D&Y9*#)@d&!S7*EK+UR$U{>JE*(KAMC6J0ZU+C;M^ z`q*e3JZ1ERi7p!bh0&j-o|DW(-_lp~<^OPPo;J+|qu);tEd58ke>rs)FR!$Zu=w!h z&Y7=QE_`G(9#lEWlJgUtTT#-!nao^I&VIs{Z!N}0r&&CGVrBLi!p9%ph)+&2{5I%2 zK7KuJEq2#CZ}bHdEv5a=V6`%k-R^d(Xw}Jf>8QN5e!h zBbA`3bkQ)WS=dVKSy@;~B<{I88!P_b+$$|{a=-hV^ZNe(@4NG5)%+^MSdZvHd_rtS zROaA?v3M?Hcvu@=3&Ew}VsJIs26lk!z^&jKFbl2%PlD~B0GES0VHu=655Q&M6L2Xw z0j>n66Mjh6KPU5VAnE-CQ{cRL@%?s?<{cpA*#_Ef2kG3A zWc>t4Ehi1?A9+}fAZZd{dqh6EFS_D$EB?$Vqvj_EszTqMS+R^&H z>|hBG*9E~2DXE3jK7P0*&#?=d9aa}*QCWE|l@|R-n>7qsZZHEJ ziA7vbTyRv7*q)W%4{Te&r9dUHqRxq&PWR-~XN2b?TZYH_Y0^)(lvBrgj&;rK@7cLK zl{7ZpS8_#$YZ%z&7A;41@?634e4(?a`?}KyX3lw*^v?<}-6eA>??^kt5A-`ab<~n} zfWBto^Y9)w_0g!> zVBythE}X>$!Q{z_su`ZeFjL;phL~syBFa zXVlaiX8iI$xBl9S?ljH#2qeqqHLg5*5Kc5=W8s^|_vRD}$A^$29KXrU!@=^_j5Dv6%;4cA#sHtggl>eA))${_687xQDk?6`Kc@OWFO}WOS!3uO( zjPOmFMc3|`Ymgi(M~_AsRb8*l6oj5N!k1G#oNSsg^a1i?<=NZRz?N8C9`e*ob%^~2 D6Q!<* literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ko/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ko/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..6ee3d78 --- /dev/null +++ b/level-zero/1.10/_static/locales/ko/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "테마별" + +msgid "Open an issue" +msgstr "이슈 열기" + +msgid "Contents" +msgstr "내용" + +msgid "Download notebook file" +msgstr "노트북 파일 다운로드" + +msgid "Sphinx Book Theme" +msgstr "스핑크스 도서 테마" + +msgid "Fullscreen mode" +msgstr "전체 화면으로보기" + +msgid "Edit this page" +msgstr "이 페이지 편집" + +msgid "By" +msgstr "으로" + +msgid "Copyright" +msgstr "저작권" + +msgid "Source repository" +msgstr "소스 저장소" + +msgid "previous page" +msgstr "이전 페이지" + +msgid "next page" +msgstr "다음 페이지" + +msgid "Toggle navigation" +msgstr "탐색 전환" + +msgid "repository" +msgstr "저장소" + +msgid "suggest edit" +msgstr "편집 제안" + +msgid "open issue" +msgstr "열린 문제" + +msgid "Launch" +msgstr "시작하다" + +msgid "Print to PDF" +msgstr "PDF로 인쇄" + +msgid "By the" +msgstr "에 의해" + +msgid "Last updated on" +msgstr "마지막 업데이트" + +msgid "Download source file" +msgstr "소스 파일 다운로드" + +msgid "Download this page" +msgstr "이 페이지 다운로드" diff --git a/level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..4468ba04bc134a84fea5e3c973461cf02c9c2da3 GIT binary patch literal 1413 zcmZvaJ*-qk6vsyag_RElKVp1=p+SgQ1!6(=Ws8Trm%IpJ!!Cq&-rn=>&feLX$$UJx zy>yfs3mYDtv7j(9R@&?)#@fol&{Y(AbXL(_rUwj`9qL(er@8vgIw=pko$cKo&XOVSm=ES z^8O^qK3oL({z?6$1#4Nz2(054oJ;=;JiGzE*_kpy=GszcBB+< zVRAov2m8<3><4U^|G(mLjYp;ti7%W@WK+ZsUk6=|lDOjTSmRV7txL4wTqQTPq1|wF zISlEQU>fNty(&qp7CIsI&UP&u6NiDw%84sTTvaj2>KHSL zUeFdvoa|j$6a9r=An&41F4Us$N7~+%m$|mVh$bZFtK3-hG;n2UNLsa}OO-T4EZt3u z>KyAVM0}tv?Q&E0p7b%7C80_}Cn&{@X_(sUMf(ENwtj7O_x!@A z=Ua`j?LqCSBNGbv%p0ZcvK)?7h?KfF2W#z1yZ3^!ag#!O)ec>uZP}5RHgsxTRkqCV zwIfYx^-K=RwAWmi#E!InzKz|B%X0Cvd)CU+U3uZ$a!agNntg;f8E)25tYny{XFsAC z9jD(SkfM$V#H6LA*|v6LHF0AnD>v~vCkoohO{LBB-b;69+sY(u|L3sMiR5g1`bhd5 zjq=k+;szC}%nlMS$9vjXC#gc)P6nF&q9-bfo{CjQZe*xbNYi^#C9ConpM%1oLFKH0 za&)0WJ=gQWZ5W!M$i7!O!aIl|0e?HQ2Ro%kmCL#^O7u6its3{(8W!QLNCjg(=>2Jsvw ClWZvf literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..01be267 --- /dev/null +++ b/level-zero/1.10/_static/locales/lt/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema" + +msgid "Open an issue" +msgstr "Atidarykite problemą" + +msgid "Contents" +msgstr "Turinys" + +msgid "Download notebook file" +msgstr "Atsisiųsti nešiojamojo kompiuterio failą" + +msgid "Sphinx Book Theme" +msgstr "Sfinkso knygos tema" + +msgid "Fullscreen mode" +msgstr "Pilno ekrano režimas" + +msgid "Edit this page" +msgstr "Redaguoti šį puslapį" + +msgid "By" +msgstr "Iki" + +msgid "Copyright" +msgstr "Autorių teisės" + +msgid "Source repository" +msgstr "Šaltinio saugykla" + +msgid "previous page" +msgstr "Ankstesnis puslapis" + +msgid "next page" +msgstr "Kitas puslapis" + +msgid "Toggle navigation" +msgstr "Perjungti naršymą" + +msgid "repository" +msgstr "saugykla" + +msgid "suggest edit" +msgstr "pasiūlyti redaguoti" + +msgid "open issue" +msgstr "atviras klausimas" + +msgid "Launch" +msgstr "Paleiskite" + +msgid "Print to PDF" +msgstr "Spausdinti į PDF" + +msgid "By the" +msgstr "Prie" + +msgid "Last updated on" +msgstr "Paskutinį kartą atnaujinta" + +msgid "Download source file" +msgstr "Atsisiųsti šaltinio failą" + +msgid "Download this page" +msgstr "Atsisiųskite šį puslapį" diff --git a/level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..74aa4d8985d96a07c4c9be96f006f3b58d884342 GIT binary patch literal 1404 zcmZ9K&5ImG7{*_dsL7ZQP5eMvump*E7&XB|oMjFhcNYS?IAk~8Yi8c*sqUVtras2( zdKwT<9)#7Cr{GC*^B|r)^?-kXCk3y9;7t%O;`2^-vdb1-{p+f(exK)k=-;oN`-(7L z!d%1r1@l$R&!4~zPs;uHG2 zUH=1$um8Z;!As|eUIA~m+y%w|6qJ5G0bd5c0G|fGYu|qlzJT=-lzP8`lHs4A_&D=q zlgkxQ>Rkt~f$z861tmufO5Zssk;}JoUbN-BWGj829FU-AF-2E~^e;o|NY;|8ctc5g z22*^U9FmJ@OFxKVl@HxMz@_4p=>umY+Zgar9e9&XBW=2mZRzw_Sr>WeT%jhWmHkCxl1EW^k%TQzfIrX3xkO4V3L9xG?DPIfe<4=WtdR+$hI z)4&^xB2Eo9w`s4@^IW-LqVor|S51w*uWpOC{VC6wR(CaQdfIncRMGG) zBv*eURUdB+Oli45Wvi9v9Ia6vne84ZIht?0o$f< A2mk;8 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..993a1e4 --- /dev/null +++ b/level-zero/1.10/_static/locales/lv/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Autora tēma" + +msgid "Open an issue" +msgstr "Atveriet problēmu" + +msgid "Contents" +msgstr "Saturs" + +msgid "Download notebook file" +msgstr "Lejupielādēt piezīmju grāmatiņu" + +msgid "Sphinx Book Theme" +msgstr "Sfinksa grāmatas tēma" + +msgid "Fullscreen mode" +msgstr "Pilnekrāna režīms" + +msgid "Edit this page" +msgstr "Rediģēt šo lapu" + +msgid "By" +msgstr "Autors" + +msgid "Copyright" +msgstr "Autortiesības" + +msgid "Source repository" +msgstr "Avota krātuve" + +msgid "previous page" +msgstr "iepriekšējā lapa" + +msgid "next page" +msgstr "nākamā lapaspuse" + +msgid "Toggle navigation" +msgstr "Pārslēgt navigāciju" + +msgid "repository" +msgstr "krātuve" + +msgid "suggest edit" +msgstr "ieteikt rediģēt" + +msgid "open issue" +msgstr "atklāts jautājums" + +msgid "Launch" +msgstr "Uzsākt" + +msgid "Print to PDF" +msgstr "Drukāt PDF formātā" + +msgid "By the" +msgstr "Ar" + +msgid "Last updated on" +msgstr "Pēdējoreiz atjaunināts" + +msgid "Download source file" +msgstr "Lejupielādēt avota failu" + +msgid "Download this page" +msgstr "Lejupielādējiet šo lapu" diff --git a/level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..2736e8fcf6f9e923c2403307f0b366086d37b335 GIT binary patch literal 1883 zcmbW0%ZnUE9LGydG>*^22ObnFl0!U=*`!Gj=35eWDu@Vn6%SYIC#v~L=<+PV8oUUd{}t%`e}*gYclZSS_^!ZZxSjb`_!_(p zTd=uFh;ewl;wqeG{x{qKTbqR#gE5?hpTno&U(oq&;Si6(7JLc50p0#-xD$R4pMlrl zez^G_At=eHx!OEj&F+K95`^|`3%xs|tB0$dYp$lQaXj&eABB3jp*ug}eRDN&btbLg zC_?O6*AzH~{-A|&9)JdV{ljJRVAnvQRl4{_?&D7b7KD1k z&HJ`jzT)e&M4gbqlB?mhqaXMpAZg<;-hlh5ZiX1=e36nUswzgb&SN${bnp4Gv=IQ6$P05hgaiFop^2w W+5FkQ^s?wV7=JSkIl3Km4aE({iDO&< literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..81daf7c --- /dev/null +++ b/level-zero/1.10/_static/locales/ml/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "പ്രമേയം" + +msgid "Open an issue" +msgstr "ഒരു പ്രശ്നം തുറക്കുക" + +msgid "Download notebook file" +msgstr "നോട്ട്ബുക്ക് ഫയൽ ഡൺലോഡ് ചെയ്യുക" + +msgid "Sphinx Book Theme" +msgstr "സ്ഫിങ്ക്സ് പുസ്തക തീം" + +msgid "Edit this page" +msgstr "ഈ പേജ് എഡിറ്റുചെയ്യുക" + +msgid "By" +msgstr "എഴുതിയത്" + +msgid "Copyright" +msgstr "പകർപ്പവകാശം" + +msgid "Source repository" +msgstr "ഉറവിട ശേഖരം" + +msgid "previous page" +msgstr "മുൻപത്തെ താൾ" + +msgid "next page" +msgstr "അടുത്ത പേജ്" + +msgid "Toggle navigation" +msgstr "നാവിഗേഷൻ ടോഗിൾ ചെയ്യുക" + +msgid "suggest edit" +msgstr "എഡിറ്റുചെയ്യാൻ നിർദ്ദേശിക്കുക" + +msgid "open issue" +msgstr "തുറന്ന പ്രശ്നം" + +msgid "Launch" +msgstr "സമാരംഭിക്കുക" + +msgid "Print to PDF" +msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക" + +msgid "By the" +msgstr "എഴുതിയത്" + +msgid "Last updated on" +msgstr "അവസാനം അപ്‌ഡേറ്റുചെയ്‌തത്" + +msgid "Download source file" +msgstr "ഉറവിട ഫയൽ ഡൗൺലോഡുചെയ്യുക" + +msgid "Download this page" +msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക" diff --git a/level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..fe530100d7715cdc19a6f9db33a971665835f3c4 GIT binary patch literal 1674 zcma))-D_M$7>7rVU#qnriYO?KB2uYGt)hetL1>ylCBZ;a@uD{;yVJ8rH#3KG&bG~6 zRisua;ze5NO^wW!;71IF+EldSwKo+61wrPsjrLTQ<5nO9X$iPPmDi?R5_3f- z*T>{OU(0+)Eh-V7av_#JZ?debq)w0ISz70aXmzZP)flf6MT$}#$xUxiX4T6wMQMt1 z(Km0ZR-GJZC$ForB1Kb1(Zq`;L9Q`#U}kc-zxUba8xuy?O4rH!QlXl%M)kR(o922< zwmNB9se1h2{8TbJJXfZ=I;_fMQnySy*I84JF64D%I@MVZ^O|z8Y|M6hW!g=qOu1M! zr7ps>8h>F-#@F%PT0TB5_dY$=5YC=={Zr0fboPp~>pX9~wCwsPo&DVPkH=Hao^bXY zXIEYSL*AVI()HhVc3C?6MacEOvlp1GgbA^$%){9gR+l%mHiEnj&-JixH&Y;SGbt{+ z{t03z?p+g;%KlU0jXnJ;6hm+E zO4d<`2T4o{Hn?Oyg$)#jm)Q^UYaHJCp>S-t$!CBi7ej)}A>Wy>@(p%y@Lc$O&cyp1 zdP#?v^I4GaH+|g|B8k!Ldl%Wfwrg(}`)i>kl#a*D@zz$^*>a1%2AcIZ5x;fu4@Sqm A6951J literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..fd857bf --- /dev/null +++ b/level-zero/1.10/_static/locales/mr/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "द्वारा थीम" + +msgid "Open an issue" +msgstr "एक मुद्दा उघडा" + +msgid "Download notebook file" +msgstr "नोटबुक फाईल डाउनलोड करा" + +msgid "Sphinx Book Theme" +msgstr "स्फिंक्स बुक थीम" + +msgid "Edit this page" +msgstr "हे पृष्ठ संपादित करा" + +msgid "By" +msgstr "द्वारा" + +msgid "Copyright" +msgstr "कॉपीराइट" + +msgid "Source repository" +msgstr "स्त्रोत भांडार" + +msgid "previous page" +msgstr "मागील पान" + +msgid "next page" +msgstr "पुढील पृष्ठ" + +msgid "Toggle navigation" +msgstr "नेव्हिगेशन टॉगल करा" + +msgid "suggest edit" +msgstr "संपादन सुचवा" + +msgid "open issue" +msgstr "खुला मुद्दा" + +msgid "Launch" +msgstr "लाँच करा" + +msgid "Print to PDF" +msgstr "पीडीएफवर मुद्रित करा" + +msgid "By the" +msgstr "द्वारा" + +msgid "Last updated on" +msgstr "अखेरचे अद्यतनित" + +msgid "Download source file" +msgstr "स्त्रोत फाइल डाउनलोड करा" + +msgid "Download this page" +msgstr "हे पृष्ठ डाउनलोड करा" diff --git a/level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f02603fa2522a40060bd3f1b5d65052c77530de6 GIT binary patch literal 1213 zcmZXRJ8Km|6vs!6uj@1M0TG1}Eworov@58TBL2_ajS)TU%x`DrywA6>k!K8Y7V9F`8>~xM5BFh% zd;s@@AHhT5C-5lv6+91q2g&v)I0lYF`6PH1JO$nc$*v2Y0Pldu!3W?dC>w4z_m7+N zHb`+^fGzM9NcL|*vVRZ02ETwK;L`&&w?VSo0ms4TAm#b4;b-tP&Og8l;4hH$$Kizh zUTHW1Qhptf^p`=>djwK_>)<(X03HLMfK>lZ^ZpV{}g%EROCaZxzWLzM_G6K*tH6hX%sTdt($LUZL@kZi>& z4I{%>X6M;z?cd7EIOUBUu+=J4dW+9cF1<{ak_~s>uT$@tG%Y08Vne0ED+JMU%h%Z$ zic<%vtlUs0G-K1wUB*6INTU1FI=E=_I%q^eqhYw#(!$c*-uvW@iB{KW zFSU<)gG#o!N7S2DA(WoxaVD&jzH_fPA5HD)S)tvUw9%Z7O`>$#=2Ly;TZ=-c0nKak z(zRBKU_}wl8(X?I*VXXoI=7~I{oA>w`Q;9uyguDx%Y{TQY0E^;V^w*;2yki7=)(TYV{?8_pQ^c*8Iog%4v$iD&q$RjNP literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..b616d70 --- /dev/null +++ b/level-zero/1.10/_static/locales/ms/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema oleh" + +msgid "Open an issue" +msgstr "Buka masalah" + +msgid "Download notebook file" +msgstr "Muat turun fail buku nota" + +msgid "Sphinx Book Theme" +msgstr "Tema Buku Sphinx" + +msgid "Edit this page" +msgstr "Edit halaman ini" + +msgid "By" +msgstr "Oleh" + +msgid "Copyright" +msgstr "hak cipta" + +msgid "Source repository" +msgstr "Repositori sumber" + +msgid "previous page" +msgstr "halaman sebelumnya" + +msgid "next page" +msgstr "muka surat seterusnya" + +msgid "Toggle navigation" +msgstr "Togol navigasi" + +msgid "suggest edit" +msgstr "cadangkan edit" + +msgid "open issue" +msgstr "isu terbuka" + +msgid "Launch" +msgstr "Lancarkan" + +msgid "Print to PDF" +msgstr "Cetak ke PDF" + +msgid "By the" +msgstr "Oleh" + +msgid "Last updated on" +msgstr "Terakhir dikemas kini pada" + +msgid "Download source file" +msgstr "Muat turun fail sumber" + +msgid "Download this page" +msgstr "Muat turun halaman ini" diff --git a/level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..e59e7ecb308a7648cd23aa6342a9ad98a61d0009 GIT binary patch literal 1356 zcmZXTJ5Los6vqcag)1TtUj+$cqf)Gju^^CJh(JODkqBZvyL;~La`(<`W@dTSmfC47 z`~-XfW8nv|v9q$Ewb8~-3*-OXUAP1%JNw%?Gxz+@WA4%Tz*~WF19KAdE9MmDt3JFi z2G0qBM-1V00UQPg!3l5(oCL3fx52Am6C4Mhfg>P+S3qC$CCGl>fS1Ad;4pXyj)5O) zey;7`>h*V!^?rj5u)n|h{RqhGNs#^A0Y8F|zya_lcoF;svhE*{ng4G|2HU zfE@n|kmKI2*9Rc$zXmzZceVWx9L4%m%`YJ5bp-OcA0YetTieIZSNl^S#~pwZ;4H`` z=N$Mv$HI25E$f~haMji1Jb17l9<0YPv;H+qxD=N#xwoeW*MWP;bwN40{S^!Qc%)BB zJTcmn_6{G#zRi--xzS!`5#mI~uCZ|uI< zDAG*t$pwyWGo=oR?puacPMao4a*|r@WQp<_L^SRBDmueDl}KS}Co^Ro_9^$SOcFwr zgiH{M*`~+`D{-(z*1_AHtn>rc54y^YwUxD{-u}$J2aUS0!RCHJbJ8P#`$euYJujnF zSx3J4d~-RN?VYnqyB67CNk=BmbTTJr!^}5Ul}<|3bx!KMv7VP!<-xMC9S1|vUApGO zd0Bln?`nCgDQBkV8|as@-IqkwS9EI1Sg6udX`Q7gMb~>RJ??afw3Uu~8!34iTBHBl zi0Od1qM24Aq+POY$n;EGCeKm6M7k&?+d-F=M@18=IxkHDla2^|PO9GX1u3ivbE1xT z+=^}4Zo{ONva*On--8-OUjI=r94V1Y}`N=IHv19Ut jbWAeLReX?b<52fDoT%;?`~gm~I(s23S;SN2irW1H>^?=m literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..f16f4bc --- /dev/null +++ b/level-zero/1.10/_static/locales/nl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Thema door de" + +msgid "Open an issue" +msgstr "Open een probleem" + +msgid "Contents" +msgstr "Inhoud" + +msgid "Download notebook file" +msgstr "Download notebookbestand" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-boekthema" + +msgid "Fullscreen mode" +msgstr "Volledig scherm" + +msgid "Edit this page" +msgstr "bewerk deze pagina" + +msgid "By" +msgstr "Door" + +msgid "Copyright" +msgstr "auteursrechten" + +msgid "Source repository" +msgstr "Bronopslagplaats" + +msgid "previous page" +msgstr "vorige pagina" + +msgid "next page" +msgstr "volgende bladzijde" + +msgid "Toggle navigation" +msgstr "Schakel navigatie" + +msgid "repository" +msgstr "repository" + +msgid "suggest edit" +msgstr "suggereren bewerken" + +msgid "open issue" +msgstr "open probleem" + +msgid "Launch" +msgstr "Lancering" + +msgid "Print to PDF" +msgstr "Afdrukken naar pdf" + +msgid "By the" +msgstr "Door de" + +msgid "Last updated on" +msgstr "Laatst geupdate op" + +msgid "Download source file" +msgstr "Download het bronbestand" + +msgid "Download this page" +msgstr "Download deze pagina" diff --git a/level-zero/1.10/_static/locales/no/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/no/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cd15c88de675226c00ca4d0430171075e5559ff GIT binary patch literal 1317 zcmZ9KJ#5r46vxeXdz6pzxm3a|d<+2!3{|TeDD*@{E2`eX#NxZWChjG6WIIQ@F#r=I zh=CaiW+cQ+7sSlefekSsA;E&g!2exRwZe-1i=UnMe;@gJZ0`$!aT;?1^9$w~%xAl> zV2tb*0*@HQvL74+N5JFYC^!M00?&abz$SPMTm}z=1ReoH&Bq}7c@7=|Ux8!bTW}nF zU-MIK->moFLDu^NHo!f5s_zejyq^Hs&w20zcpb!5@dLyoequQQ{ss?%e?g9WWG`|7 z&ww2NwR(RWJc|7Tkn_pGec+?o{vnrOx2I^Ydmn%A>ZL_zf>(PJ4kZLarm5`W=b%5)w zZL7>O-*ZGp<~Am=pnQ;J5vxG4v+R9LTr zb?c&Cq}r^>S&prfQchyH%5IfY$0kWe(x`z>RL~GHv=*x9EbCMvg`Y>jh2AfB-HRnbKxP z_EP0Mh336ZE1KHA=alg)i!%*zV<7HREar_#Z59h#6sa0`M0_gBf~5&B$u(bn(=RqnJ4d{?xCazSi7Dd36F5NEp? z<)YnpdLTAmS7{(1PP{Mcl94asi9}+1PF;uA{A!sWqQCgLP1e#J@rEvuCjIeG)u_ z_zHL&oC3+mBarlB@FchjQl1we?OzAU{{~3=--1+!&*l7gkoNrokAjC_hW4EWNq-dF z2i^p!UUxt$Ipw67YDs=blg_=fL9(w&^`%C>sF5z^AYYUllKnH&-R^8uf4W1;k81~m7!h)9ylfZ~^CgwY?O|s!8_53#eN#D}ib%4l zPdl`G0* zrR^Q^E{h@wml7v|6|*b@U!4i752bZbtMMX#mGW2nnJcq1vs2siW24t9Wnrs}c`9q% z!@$)v5lT<+ped}AzW!iwx;nnS&I;|8q^(Zrz=TRiH9p=@zH(RSC_`OqJWVR|NoGY- zoi?`RYFwxN(ABR`V3KC)moz_L=VO;ADlp!Wow9!{+QNF%d)$vmWXUlwR2&%HTrgJW19E;7l zzACcDJ`;)Rh+tW;2Q~|urlsI%&bL2qk_T%ViEOb+o5j!ziwCfPoA2cCtFji~wj$ZA z@p+raPIaI5KE$fLmvXo`p>N|Ts6=nA`!wj_O|+>xW d^Crc{P^+yKEfI-Mu31OGXlgVp$}sP%{Q=l!SrY&N literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/pl/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/pl/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..80d2c89 --- /dev/null +++ b/level-zero/1.10/_static/locales/pl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Motyw autorstwa" + +msgid "Open an issue" +msgstr "Otwórz problem" + +msgid "Contents" +msgstr "Zawartość" + +msgid "Download notebook file" +msgstr "Pobierz plik notatnika" + +msgid "Sphinx Book Theme" +msgstr "Motyw książki Sphinx" + +msgid "Fullscreen mode" +msgstr "Pełny ekran" + +msgid "Edit this page" +msgstr "Edytuj tę strone" + +msgid "By" +msgstr "Przez" + +msgid "Copyright" +msgstr "prawa autorskie" + +msgid "Source repository" +msgstr "Repozytorium źródłowe" + +msgid "previous page" +msgstr "Poprzednia strona" + +msgid "next page" +msgstr "Następna strona" + +msgid "Toggle navigation" +msgstr "Przełącz nawigację" + +msgid "repository" +msgstr "magazyn" + +msgid "suggest edit" +msgstr "zaproponuj edycję" + +msgid "open issue" +msgstr "otwarty problem" + +msgid "Launch" +msgstr "Uruchomić" + +msgid "Print to PDF" +msgstr "Drukuj do PDF" + +msgid "By the" +msgstr "Przez" + +msgid "Last updated on" +msgstr "Ostatnia aktualizacja" + +msgid "Download source file" +msgstr "Pobierz plik źródłowy" + +msgid "Download this page" +msgstr "Pobierz tę stronę" diff --git a/level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0ddb8728e1d5ef72dddc1537f66aa32251a83c8 GIT binary patch literal 1364 zcmZ9KJ!lj`6vsyszs~RYi3A)AKVkhsL@peXm>dKW4Dqy|yM5Uk-JMxyXV09qrC4bb zE3pu<6hyS##>&dd!p6cz!N$T$|8I9gLWZ0D-MpQB@BjWY-^NCt35+9{h16S(zZ$SR;BglC^gY3_DkUjkg^8V2+RlY+YuTO%k z_iDYq0kY*B<9wX!0496Oy4Me+EOW5GJh*=z>>q1pUk_m-WvQ8UtRL(@Yuttj8%m$V z)DS=E`y_5yrAF9A~6$c zkJPKnb{@xB&k-4!*pS4W%Dl|ePxSZ1+Sg`TPO-L5pAr(~Q+BJKIyQ=8l12@5q`XEEL(9HWXSq&QBy}{>iJ+c4DOK2kgX}J`T^Gu%F2!T+4-5Z_m|FJY}CdEoncB%=^@}k z8Y^ukWUsGWM!t2s(+;k!?Q_axOXPwX)3c#AQBz*)YTuYsCd%P!Q>MPL5a&+CLEE|{ zYf6)r%dB;ILRNoUXN)}2l9$d-G{iJ)q}Wy`Tzm+v2(=>^C{+#@RV=2IURF*jcR$wy zD??aTpZLaCOMFYpAW1l*WLmt4v{B_@b0}L2&D+qT-&mnh(n=I7vDb-`%I7N94^{E1 zcxfdiIC)dNQVDLK6_Z`3WS+>>*=|gU60=F_bfO(LmX~0$I{o6U(^gh;I@l*sE7k*N z>oXB$Fttuh#-5x(d)$^9P*fEbsVm+tv!2x!?&s);C8;hsuS6ZkWkdpvO!dtuOAFi$ LL?J8GWh3H0!r)O_ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..45ac847 --- /dev/null +++ b/level-zero/1.10/_static/locales/pt/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema por" + +msgid "Open an issue" +msgstr "Abra um problema" + +msgid "Contents" +msgstr "Conteúdo" + +msgid "Download notebook file" +msgstr "Baixar arquivo de notebook" + +msgid "Sphinx Book Theme" +msgstr "Tema do livro Sphinx" + +msgid "Fullscreen mode" +msgstr "Modo tela cheia" + +msgid "Edit this page" +msgstr "Edite essa página" + +msgid "By" +msgstr "De" + +msgid "Copyright" +msgstr "direito autoral" + +msgid "Source repository" +msgstr "Repositório fonte" + +msgid "previous page" +msgstr "página anterior" + +msgid "next page" +msgstr "próxima página" + +msgid "Toggle navigation" +msgstr "Alternar de navegação" + +msgid "repository" +msgstr "repositório" + +msgid "suggest edit" +msgstr "sugerir edição" + +msgid "open issue" +msgstr "questão aberta" + +msgid "Launch" +msgstr "Lançamento" + +msgid "Print to PDF" +msgstr "Imprimir em PDF" + +msgid "By the" +msgstr "Pelo" + +msgid "Last updated on" +msgstr "Última atualização em" + +msgid "Download source file" +msgstr "Baixar arquivo fonte" + +msgid "Download this page" +msgstr "Baixe esta página" diff --git a/level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..3c36ab1df7c589ad82614599b8c91f072a25d4a6 GIT binary patch literal 1390 zcmZ{jxo;Ce6vhX_5zG}5ZUr$kT#~s&fgHI>97~Z1L||yB#=9@;f%VL44!~(cNeM!T zzkmW7Bt%b&NVHTGv{Xn`NHmD=truc}813$F=kWX9`}X8CsJNO-Bou44rIk82E zW8ekwD0mG#0%~vyTm=t+&p?jz3S_U|fL!MXkn8*mPJmxQ*7*st&Nlprc^KsLXDc>A z&U>kv-vQZju7S_7m#oj;a^0f?p-U~+<-u`yunv38zH-h8DR$!Kd`AcS&)<;qgbk%n zVs?N_h8~GIYXX_z@lp(&&U!(#>;scql}cj+b*;T8mvv4X%iczp&|iz8r@bsxMq)nI z0il0S+cD35;)smw+mysr<%5hxssg3b8qA|fdg6M41IkG4eI&8uv_TLnms)LcbExO2 zuwDo22I6MX)8?U^<=i?w>XRs+vOBD)W3wzLY1Dn4sh}ZZ=wTRUXIW<`QaHM=ZLHEB z3GZW;5wavyf>i8XN#8^5U79nrN}tCR1WA7O>Nc7D^1!X_=B#5k}&OPu5mlqSjw% ze9!ggnq18PeE0wD`{?}IYPqW%0!Wn*zA9eO0NP-Sd!P*Z&(5Mvp+E_$mG57h;3yNf z@}T<)Q9@L?UQv!@t~hzGN|ByUi8HjaaJHLM9|{Y76xA;^5T@*t78+y)y;r5zA;cW% z6j3gq1Ltf%1{N7Mh$B&^tz>kF94xj(C8Xe$PteOytPUysU!2AvEWuE6Fj7Z>o*_qS K1txIYaExD}s9q8P literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..532b3b8 --- /dev/null +++ b/level-zero/1.10/_static/locales/ro/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema de" + +msgid "Open an issue" +msgstr "Deschideți o problemă" + +msgid "Contents" +msgstr "Cuprins" + +msgid "Download notebook file" +msgstr "Descărcați fișierul notebook" + +msgid "Sphinx Book Theme" +msgstr "Tema Sphinx Book" + +msgid "Fullscreen mode" +msgstr "Modul ecran întreg" + +msgid "Edit this page" +msgstr "Editați această pagină" + +msgid "By" +msgstr "De" + +msgid "Copyright" +msgstr "Drepturi de autor" + +msgid "Source repository" +msgstr "Depozit sursă" + +msgid "previous page" +msgstr "pagina anterioară" + +msgid "next page" +msgstr "pagina următoare" + +msgid "Toggle navigation" +msgstr "Comutare navigare" + +msgid "repository" +msgstr "repertoriu" + +msgid "suggest edit" +msgstr "sugerează editare" + +msgid "open issue" +msgstr "problema deschisă" + +msgid "Launch" +msgstr "Lansa" + +msgid "Print to PDF" +msgstr "Imprimați în PDF" + +msgid "By the" +msgstr "Langa" + +msgid "Last updated on" +msgstr "Ultima actualizare la" + +msgid "Download source file" +msgstr "Descărcați fișierul sursă" + +msgid "Download this page" +msgstr "Descarcă această pagină" diff --git a/level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b8ca41f36ebf869818399a9584cdb15619bea78 GIT binary patch literal 1722 zcmZ{iPiz!b9LJx6N>>C0{~WCHj6uL;MNkv6buUP3NFY{Oy-#-^yQABg$;>R!8?=By zpk6eZkcjo>ZEd^jw#)9`jK?>LiHQeq#*-Is-2D7zrnWZnvTr^!zxmDY_x*j}{=RSL zmx}cqdz}3X`vCjaLtI$99#)E<8sqXP+zofZ{csG9!)M_u@M&0v```y~4>WKujB{Rv zQs)c!1iS-x!|&l!u$%MeJpNn${3n!t_hA9<*pYp|2g>s}lsboC555U^!oQ&C`x}bB zF@i6^7vWp*ZFm@l@KtyR9)~}{gYZ5)1P?rt)qfX0&vOMzodC-FMW|sH%3Qy~Bk&LS zGTh71lK%!g2;Ya|(?xg`eg?&InL*;Bbw69Q%iLQRlGKxI@mH42FH8IruciMpY+9?w z*>bj97p>AWd<Owguyc8|lEQ8#P&TV@hv4PPLlNs2UpM=~=&K)EOs=bt|Yjv8id_3$EYFWp61Twd!?)O2Z^b@jo`zxOlo&{K$k6 z)k-?+UzGmEv~%I?>9doY?~lFqdLcKqSeXk!s4V?^=qzIFXM1NyDcB~ z^h;%Z?8rnx*}Ha_UXm-xW!tfr6}wJC zN81q@gr(9Fv3Bw)dp^0PldHtnY+u_Sxf$6W-wgO>O_L_|y0EwXD@jYPrM(BqO_Ddt zDEk#lk9`p%b*uDr%Zu6PU zG_bh>@urJlTp^1w`f2$AR}2{1AJVy&({OH-XdNXBVw1Appn{Ug&D59FU~!E~qO?uY z2%}Tqa+P*D{a@R!x0@kSMzqWv;2@B-rtEiw@7eZ-vn#fz?Gn!QP_`~@{!JJr^D>2; zYX|@P$s&z$lLI4H4zg!gP;s5$q8v^-E0ZiHHwb^e&1~CN%&|G1oY;Q{yqk7fcCfJk literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..b718b48 --- /dev/null +++ b/level-zero/1.10/_static/locales/ru/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Тема от" + +msgid "Open an issue" +msgstr "Открыть вопрос" + +msgid "Contents" +msgstr "Содержание" + +msgid "Download notebook file" +msgstr "Скачать файл записной книжки" + +msgid "Sphinx Book Theme" +msgstr "Тема книги Сфинкс" + +msgid "Fullscreen mode" +msgstr "Полноэкранный режим" + +msgid "Edit this page" +msgstr "Редактировать эту страницу" + +msgid "By" +msgstr "По" + +msgid "Copyright" +msgstr "авторское право" + +msgid "Source repository" +msgstr "Исходный репозиторий" + +msgid "previous page" +msgstr "Предыдущая страница" + +msgid "next page" +msgstr "Следующая страница" + +msgid "Toggle navigation" +msgstr "Переключить навигацию" + +msgid "repository" +msgstr "хранилище" + +msgid "suggest edit" +msgstr "предложить редактировать" + +msgid "open issue" +msgstr "открытый вопрос" + +msgid "Launch" +msgstr "Запуск" + +msgid "Print to PDF" +msgstr "Распечатать в PDF" + +msgid "By the" +msgstr "Посредством" + +msgid "Last updated on" +msgstr "Последнее обновление" + +msgid "Download source file" +msgstr "Скачать исходный файл" + +msgid "Download this page" +msgstr "Загрузите эту страницу" diff --git a/level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..59bd0ddfa341477cf5ccfdc88f4c3e6127046f7a GIT binary patch literal 1393 zcmZ9KKWrRD6vijSKyrit=ARHoJeoj?1A-``v#uc6mLesxmAg<-Am(Iw==v>7a08THd<;rm`=IpY4k&eh2g>u`gW~ryD0Tk|O5J~fa_(Nc zzXDUK|0PiBy9|o{Iw-jZpgi{xC@mLFS&OFRlMGV#=>h3w2I;R1(UBqg;w6239ut!4 z2~6=jJ)|#^@o`MFWBGp7wHbaCb5`#=8`;KyKjqAuERSl#ePRozQ?f4d$hk4?nu1TZ zgR6YP4{gTW1S)mLYBMzv(*G~Fs-g&qXSOtPDXSYgM5@YEM^4FEtSg)3YP-Y%ZOMdC zvD)#*Ld4O|#+Dj1ex6GgOmu#x24!ySK3$V+!<;9qmRA}zH4R;s6--u7O{SxPiRJy+ zq;ulan3SHU##L?XQ}Ut8GDb>9C5YnoIEmfsY4-#60ct&J{JY}cT{?GeUcb3{a{tPk zZ+F_pc89Z)dlV7it+LR@u2Yh0A2{}J54XBkPtJL5!!G;orcGRGY}TWzBNIC}w9P8? zwMSvx*(oZoi|&^5lh7kuE|;PI&N?-J`)^o!txs1juXogY6?)ZEJ1#xCtJU@>=)Bnr zU1l0t--9arjh>CyA! zZ|R}^TYP-iOeo=k_sEUBK5*0V4ADZtsjcUv$Fb6dIjHA}(Ucy4hGb%cXdqT-thpkjw8w z94mEnM;EAFODWoF<;0UM`ZS%T+8S2)Skfe~=jnmos~5@rll9m4U7_dmM!H@|Co1(H Di}h+h literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..f6c423b --- /dev/null +++ b/level-zero/1.10/_static/locales/sk/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Téma od" + +msgid "Open an issue" +msgstr "Otvorte problém" + +msgid "Contents" +msgstr "Obsah" + +msgid "Download notebook file" +msgstr "Stiahnite si zošit" + +msgid "Sphinx Book Theme" +msgstr "Téma knihy Sfinga" + +msgid "Fullscreen mode" +msgstr "Režim celej obrazovky" + +msgid "Edit this page" +msgstr "Upraviť túto stránku" + +msgid "By" +msgstr "Autor:" + +msgid "Copyright" +msgstr "Autorské práva" + +msgid "Source repository" +msgstr "Zdrojové úložisko" + +msgid "previous page" +msgstr "predchádzajúca strana" + +msgid "next page" +msgstr "ďalšia strana" + +msgid "Toggle navigation" +msgstr "Prepnúť navigáciu" + +msgid "repository" +msgstr "Úložisko" + +msgid "suggest edit" +msgstr "navrhnúť úpravu" + +msgid "open issue" +msgstr "otvorené vydanie" + +msgid "Launch" +msgstr "Spustiť" + +msgid "Print to PDF" +msgstr "Tlač do PDF" + +msgid "By the" +msgstr "Podľa" + +msgid "Last updated on" +msgstr "Posledná aktualizácia dňa" + +msgid "Download source file" +msgstr "Stiahnite si zdrojový súbor" + +msgid "Download this page" +msgstr "Stiahnite si túto stránku" diff --git a/level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..87bf26de683cb18c73bd23c2b4c57ef6a02545ec GIT binary patch literal 1374 zcmZ9KyKfXR5XQ}$9PjWFC=#aOAvj*5h%UN@MVlwf1j4YtMW$vtK7Sz7QA(F{dy;VIIMJx(*A* z*7ZW*5ffN8gWJKa;9hV7oB|Jk$H0AH8=M61fIC3~cY(3y6OjEp2X}z4!0q5`a1Z#l z=EvIprQUx7Io@xu0dCk(-QNlFehOqi$H8~tMQ{`NqvlU=3--Uk-Qc>7LL34o!NcHb zkab@J`TGNq^T|Ly_ZVc|FG1Eh0$KkXa4+~CYpSj^k88a!&*8idy!V z`%t7QK_wv*NO67Y#^!v|yiY#BTT52)n;gGcMsD1kzd5`1{rs78jk>VS#g&{|GD5)F z+$e2lWVfe$pxC~*IM2jgT5~@lP4MDpz zCx-(XW@_w<9uAzh?%#>APv}sH5H9X{E*5diD#H~rZm5EBHe?#D`0z|yaZ3$VV*3d1 zf=gV-^ojji64%jMWljW5^x#&@4 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..9822dc5 --- /dev/null +++ b/level-zero/1.10/_static/locales/sl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema avtorja" + +msgid "Open an issue" +msgstr "Odprite številko" + +msgid "Contents" +msgstr "Vsebina" + +msgid "Download notebook file" +msgstr "Prenesite datoteko zvezka" + +msgid "Sphinx Book Theme" +msgstr "Tema knjige Sphinx" + +msgid "Fullscreen mode" +msgstr "Celozaslonski način" + +msgid "Edit this page" +msgstr "Uredite to stran" + +msgid "By" +msgstr "Avtor" + +msgid "Copyright" +msgstr "avtorske pravice" + +msgid "Source repository" +msgstr "Izvorno skladišče" + +msgid "previous page" +msgstr "Prejšnja stran" + +msgid "next page" +msgstr "Naslednja stran" + +msgid "Toggle navigation" +msgstr "Preklopi navigacijo" + +msgid "repository" +msgstr "odlagališče" + +msgid "suggest edit" +msgstr "predlagajte urejanje" + +msgid "open issue" +msgstr "odprto vprašanje" + +msgid "Launch" +msgstr "Kosilo" + +msgid "Print to PDF" +msgstr "Natisni v PDF" + +msgid "By the" +msgstr "Avtor" + +msgid "Last updated on" +msgstr "Nazadnje posodobljeno dne" + +msgid "Download source file" +msgstr "Prenesite izvorno datoteko" + +msgid "Download this page" +msgstr "Prenesite to stran" diff --git a/level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..ec740f4852f3973fa72ed0c7f7cf59273b8dba41 GIT binary patch literal 1679 zcmZ{i&2Jk;7>5TMpf#n12FigTrXZCM$qB70R5|j2(nPA%iiifpt=iZVd#SU#+K*9wix4UV%CCk|YD;tzleJn!xzyAg~$`^-$R zf|BP7d;(sF`{57pDcCFcOL6{NvA++c-k-1p_w32;FeHVeLgQ7^hJ zGdzy`B&?ZThjG)5bl^0MnyI@nssG*1CaqRf3ytygl3zFKtP{mL3F=O4>e~0%Ctj_o z-VO+GJncqNV$@vddL;4n-04|$KCc&=z>nP650};Xpy_&-^(oOd-!w}`WnaCJdz$wf zjh4}#bIENuu}cxpT#j>fzSPN!1fjX)`bi;sBz=@L8U~dHCrI%>FtxaRre1!}gb~>) zID-xfGsC|hn|!@gG`2jy9GHrZ5ik|B9M_xHwWbqBCa%6aKU+RIj0+tv zS~OvK#;f^t*K1Vt$ptqqoproMLSHL73QKdXBy?KkSwCEgD%uOOZB#uzt@CB|6;B_j z>SM1?mz2F>J33uW*U}Z+wmY_)ohZA>uESZ+w$lw|zev~9H9JUG(p9@{2io4t;AJmR@7g|5U2Qwul5jS5J6+fI7K$b?*B^Gym(vvm#N%kCu@EWomq3c>6awm HD*E*gL}ZXP literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..e809230 --- /dev/null +++ b/level-zero/1.10/_static/locales/sr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Тхеме би" + +msgid "Open an issue" +msgstr "Отворите издање" + +msgid "Contents" +msgstr "Садржај" + +msgid "Download notebook file" +msgstr "Преузмите датотеку бележнице" + +msgid "Sphinx Book Theme" +msgstr "Тема књиге Спхинк" + +msgid "Fullscreen mode" +msgstr "Режим целог екрана" + +msgid "Edit this page" +msgstr "Уредите ову страницу" + +msgid "By" +msgstr "Од стране" + +msgid "Copyright" +msgstr "Ауторско право" + +msgid "Source repository" +msgstr "Изворно спремиште" + +msgid "previous page" +msgstr "Претходна страница" + +msgid "next page" +msgstr "Следећа страна" + +msgid "Toggle navigation" +msgstr "Укључи / искључи навигацију" + +msgid "repository" +msgstr "спремиште" + +msgid "suggest edit" +msgstr "предложи уређивање" + +msgid "open issue" +msgstr "отворено издање" + +msgid "Launch" +msgstr "Лансирање" + +msgid "Print to PDF" +msgstr "Испис у ПДФ" + +msgid "By the" +msgstr "Од" + +msgid "Last updated on" +msgstr "Последње ажурирање" + +msgid "Download source file" +msgstr "Преузми изворну датотеку" + +msgid "Download this page" +msgstr "Преузмите ову страницу" diff --git a/level-zero/1.10/_static/locales/sv/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/sv/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..b07dc76ff21128244172d2e415cc899555d8b49d GIT binary patch literal 1365 zcmZ9Ky>App7{XZ}|d=zQVMY>d0>TJUwK!GS|siLHd(&c$~H~3(*Gryg$_j%@>d3o;WBZ2ZE>JsWR z)Jv%M7to-bct;3);v|}P!BgM~@H}`DTmmnGm%$If0eB9)11^FDo&i(GpFxiE5Ihb3 z0-geY1>Xk`IzH{jUv&LfAnW}L_P`@Y+Wm_l_m@D9a|Qez{0hWU@h8Z7e}laLACT8A z9Bq9sg6#KG@FQ>;^|ue&MB7Xc{&_$WV4fmrpPUX_NMBC1d<&HLVI2>ISM)cNT zDs_}z6(rVjoe=u}?s{cR90ejPCoU&(OT{EBpQ}W+2Kkatlh7xu)KFSXs3tL$x9(u73Q%I)?{Lst}rq*YU0sH7ocX*ad*9P6|q zKG0OVs2vT8zb&|U%F`w^(-Z1 zKF^i36kcC+hKrsX9@jHt-W)0~UWJ0RHRwJIJFG|WNq7Z50sn;0!@U&o7(5PV;9F4M{{RobKj41& z@a;;?!xtbeX@>OX{(5y6M3y47A9wJS8l@l7I~meb8I-3U@UzelnM(bH_d|LjeI~u4 zB&Ck5^3z4%s2P{8W=Y&H)T}#g2QKPq>k6~t+?)DDGB7*axf^C(bKPdqPja0`u~Boq zq#)vWxe(=r9;UshFg@+8T8M_W+gC58#_GuGB+rLNEoOcl%M6n_~Kv<@xsE9lI>D`3aM?=WN&Y5*v5);gzIlEkrgR(mY~Bt;NAGiw5m^ zmz~Tz+NOS)Pd_uI!*qJT)%&LPp{J%=sw%gu@~f)+wA%QnDo0iMT~%)Q%}sWAT~-@s zt8&XvWPPzJFLmFFj3kCLZVZKXbJg6qObpgpYXhKc{dPQvXD4*l1`&-oR|ZVWnD5S zLMPGk+4yL_MW)wWJ7GI+sWh)Cq}dE7ao%TGqX8uPK%$P%oUIVNaozG6uhIA~XTs-( z77E8j3VKIkNhd=@QrBItuMs9x^kr3kK4HautE;{2cexG}GQN=#P4;o6q{&7}8xZ++ zl w$ZZQ&WaeX;?9mtGBq&}escqTfGyJc(*W8(47(T)#0?{xcP9tpFr||Or2L57y?*IS* literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ta/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ta/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..500042f --- /dev/null +++ b/level-zero/1.10/_static/locales/ta/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "வழங்கிய தீம்" + +msgid "Open an issue" +msgstr "சிக்கலைத் திறக்கவும்" + +msgid "Download notebook file" +msgstr "நோட்புக் கோப்பைப் பதிவிறக்கவும்" + +msgid "Sphinx Book Theme" +msgstr "ஸ்பிங்க்ஸ் புத்தக தீம்" + +msgid "Edit this page" +msgstr "இந்தப் பக்கத்தைத் திருத்தவும்" + +msgid "By" +msgstr "வழங்கியவர்" + +msgid "Copyright" +msgstr "பதிப்புரிமை" + +msgid "Source repository" +msgstr "மூல களஞ்சியம்" + +msgid "previous page" +msgstr "முந்தைய பக்கம்" + +msgid "next page" +msgstr "அடுத்த பக்கம்" + +msgid "Toggle navigation" +msgstr "வழிசெலுத்தலை நிலைமாற்று" + +msgid "suggest edit" +msgstr "திருத்த பரிந்துரைக்கவும்" + +msgid "open issue" +msgstr "திறந்த பிரச்சினை" + +msgid "Launch" +msgstr "தொடங்க" + +msgid "Print to PDF" +msgstr "PDF இல் அச்சிடுக" + +msgid "By the" +msgstr "மூலம்" + +msgid "Last updated on" +msgstr "கடைசியாக புதுப்பிக்கப்பட்டது" + +msgid "Download source file" +msgstr "மூல கோப்பைப் பதிவிறக்குக" + +msgid "Download this page" +msgstr "இந்தப் பக்கத்தைப் பதிவிறக்கவும்" diff --git a/level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..0a5f4b46adfda1551ae6791c3c3782525b61be04 GIT binary patch literal 1806 zcmbu8?`s@I7{^DgzpiR+74e1QD2kPOYU&G1LO_}((2{DPsaEjK=5D&TdYxHz_mbva zT2L$M3z1kXg(AcfwAS4~Neb5f0lujqQV?VieD5FN3qLcn=UrpK7cRH^*?DH3U*CQ1 zw_V$o1=qvek8yv`{W$mAxAEY*0dI#t!Motk@Lu>Ud<6aho$p_87u?C=2jJ6i2YeYi zzX^ChJOuB9$KXz=YA)3F59{^k(B)Z$4Y&rK|263Re}o(GCUki}y(4f1KFWF>z6o!@ z*Wm7LLQKL1xEEf7ufjj!vvA~2A@;zx;Pdc3_zYZw?)**o1l&$Dhu|Lg6r6|7{snaU zU4^f}Um%kFbGaHHtXJD1WeGz1>mHu2N2iC=&RtGZchR1B$iD?W+^g&V?%L)waXOPu z(25ZI7x~Geqr`+s7qcYp6yktc&|MR?r8b3{Gv-}+Jn5=|IXAtmr8XIhPLj(sij|mb zCj}Av%jqaDWG`(;g=$Nq#dOrut&Vs-Ra!<`CVAddVkS#8PDaigm=Z@q{7j`LPYRPQ ziX&+!(I@48SIcZiolwF*xU=VM^?@zFv*l@L zDz6jwvaMLG-4f{crQm*REN}ghN#a8coKPu>p z%YTFt$m|qAXTDh&g5gT~hljsJ*ry=A+<9Nb1sA(o5-xGw{Z;?6OlS@gI#jemLQG%z zrpf6>XY=H3-bW;Qrf>v2>%ZN4n4aM|U<|2-ZBn^mBghuhM0)Dv2+@ei()B(V2&(za uuMrF7ToguSy%w`N&3+IHSt#2LVBfiP)B5iT;9Jx)h5&elIS4O(ZT|-CPABOA literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..b1afebb --- /dev/null +++ b/level-zero/1.10/_static/locales/te/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "ద్వారా థీమ్" + +msgid "Open an issue" +msgstr "సమస్యను తెరవండి" + +msgid "Download notebook file" +msgstr "నోట్బుక్ ఫైల్ను డౌన్లోడ్ చేయండి" + +msgid "Sphinx Book Theme" +msgstr "సింహిక పుస్తక థీమ్" + +msgid "Edit this page" +msgstr "ఈ పేజీని సవరించండి" + +msgid "By" +msgstr "ద్వారా" + +msgid "Copyright" +msgstr "కాపీరైట్" + +msgid "Source repository" +msgstr "మూల రిపోజిటరీ" + +msgid "previous page" +msgstr "ముందు పేజి" + +msgid "next page" +msgstr "తరువాతి పేజీ" + +msgid "Toggle navigation" +msgstr "నావిగేషన్‌ను టోగుల్ చేయండి" + +msgid "suggest edit" +msgstr "సవరించమని సూచించండి" + +msgid "open issue" +msgstr "ఓపెన్ ఇష్యూ" + +msgid "Launch" +msgstr "ప్రారంభించండి" + +msgid "Print to PDF" +msgstr "PDF కి ముద్రించండి" + +msgid "By the" +msgstr "ద్వారా" + +msgid "Last updated on" +msgstr "చివరిగా నవీకరించబడింది" + +msgid "Download source file" +msgstr "మూల ఫైల్‌ను డౌన్‌లోడ్ చేయండి" + +msgid "Download this page" +msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి" diff --git a/level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..b21c6c6340194fdf35f7e5660deb42479c8dbff9 GIT binary patch literal 1628 zcmaiyO^6gn6vxZY=tNE8S5Q|hA#9RE$8XSGCI@vF1jR*HLCB?drtIlBTh(+|t9#pZ z_b^Dr#19Y@K@`-J?Yg?{x;qOwd8{6D@{o&%oP^*d#K?f}Wpw_pnH1Q&v@ z3%&tK*FWF}u!PNBU}wRfz%8&Zfe!dP_zn0sxE@@yD9?KJ9kAteKMU^WF zJC>CiI~?GEE4d#GJ20M-!R?)~ z>>S<1-6l7a<}oHySZKVs&CQhc{Mbyqb88w7X3RqzI{&F#*USvhMoiLrM6s>Hk4E|6 zc@o%qM9F2t?V4KSrinZf?58}t0JXzb84{b#Mr}$-{y{=+V#Xn)X(lNzTPtR6wl32O zGdJL5Bs-5oxB+T`zIGRrAt`^lPLZT?M?g!0angPB{%GR5vxHp0oR8Arqi zbZiRp&%w__8!lf*NbDpe;WA2%r?Xi$atSF8VXr;q_FB@_W_A(5kPfr&0p+;^8?eY= pg1vVOUqyoB&tBYSn9xh&7BjPW`v%MukJU629MMs5Ow+8v{s(GpYQg{j literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..29b8237 --- /dev/null +++ b/level-zero/1.10/_static/locales/tg/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Мавзӯъи аз" + +msgid "Open an issue" +msgstr "Масъаларо кушоед" + +msgid "Contents" +msgstr "Мундариҷа" + +msgid "Download notebook file" +msgstr "Файли дафтарро зеркашӣ кунед" + +msgid "Sphinx Book Theme" +msgstr "Сфинкс Мавзӯи китоб" + +msgid "Fullscreen mode" +msgstr "Ҳолати экрани пурра" + +msgid "Edit this page" +msgstr "Ин саҳифаро таҳрир кунед" + +msgid "By" +msgstr "Бо" + +msgid "Copyright" +msgstr "Ҳуқуқи муаллиф" + +msgid "Source repository" +msgstr "Анбори манбаъ" + +msgid "previous page" +msgstr "саҳифаи қаблӣ" + +msgid "next page" +msgstr "саҳифаи оянда" + +msgid "Toggle navigation" +msgstr "Гузаришро иваз кунед" + +msgid "repository" +msgstr "анбор" + +msgid "suggest edit" +msgstr "пешниҳод вироиш" + +msgid "open issue" +msgstr "барориши кушод" + +msgid "Launch" +msgstr "Оғоз" + +msgid "Print to PDF" +msgstr "Чоп ба PDF" + +msgid "By the" +msgstr "Бо" + +msgid "Last updated on" +msgstr "Last навсозӣ дар" + +msgid "Download source file" +msgstr "Файли манбаъро зеркашӣ кунед" + +msgid "Download this page" +msgstr "Ин саҳифаро зеркашӣ кунед" diff --git a/level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..abede98aa11b163e580a26b545980ace31e61ccf GIT binary patch literal 1766 zcma)*-)|K~6vqcarB^@&)CU_K663GrYB9uM>wQ7mgal$EMW46#4trN`XEwWgD~&H; zNI=2(Qi7!k28|(VOaz2Z{{sC3d@_d21Bp*Q8{hn#*{fZQQ8%6a%*>u2-*e9G?VVdL zD4xeyEM|9;NtGW4!Kz+u&BX3y#5Y_$YiD?uH$>6TSg=Km#9y)rhB| z#94;h;VRq)zl0CNTOLHf&S01Tf9_gR-TKX!nk)j@8 z$!wbssp1UphqNWmR~=a5Pgi}TUURlGwkp}=OGTFUD|OJlYX>grY3nL8@7z23cs4K_ z*QFa4UGulgs-KlQPg0|%ds#*3KaVrR!JzCG##p`JdPW^i%1RIOUQ(H!c9!$dcKhn} z9D~H_tSpB{%@&y@h|{wNXVlR;Utw}rW|b?J)X}`3*%SJJXq)Ss1*76y&(}50xilRZ zZIi_;O{$C})|{wnbx!isN%F!hW^Oo=-3VU})6}5SPzh4p+ooH!5B1t_nxZ7yq^|R~ zC4W0+ZXG#vWP0QK-WMiXqsF%9mU1(xD+Iil50cDI>25zMN>g=?&CRs;Z`c)yEsvX` zJ#D+Lm)Ueu@1M`A*5SmaL;6aLert9xERsQc#uW?Yq_%lHmYtWTbiM67YxSOv-uv8C zONI6KgI^B*v*yl!75w$!KM(#=@YjO>NCp2z@ZSZGG2hr+4E__@te@u_{+M44euZ<4 z_;qwx4(q3b|5Wzei|3W#eYCFwuf#yNf&j$Yu0#;+cXcn64J%wUT=~$4O>SO5=h=^

cLPeiV0|6qlnFzL#U0qn`*`iT?nxl@xb2Mx-{rpyeF$L|PmGL73Xj zjT&US*r9DL+Oc6=XyNi4J`IP)4~3RpiSp}N5WkMWZ=`O(hjnrBo?i;ppCMASYj{fI qV*6MBqwc03(drtRAFXAoSBd=B?a4S*sk|OB^ZqtY{YJQZ;_45RC*i9A literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..ac65ee0 --- /dev/null +++ b/level-zero/1.10/_static/locales/th/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "ธีมโดย" + +msgid "Open an issue" +msgstr "เปิดปัญหา" + +msgid "Contents" +msgstr "สารบัญ" + +msgid "Download notebook file" +msgstr "ดาวน์โหลดไฟล์สมุดบันทึก" + +msgid "Sphinx Book Theme" +msgstr "ธีมหนังสือสฟิงซ์" + +msgid "Fullscreen mode" +msgstr "โหมดเต็มหน้าจอ" + +msgid "Edit this page" +msgstr "แก้ไขหน้านี้" + +msgid "By" +msgstr "โดย" + +msgid "Copyright" +msgstr "ลิขสิทธิ์" + +msgid "Source repository" +msgstr "ที่เก็บซอร์ส" + +msgid "previous page" +msgstr "หน้าที่แล้ว" + +msgid "next page" +msgstr "หน้าต่อไป" + +msgid "Toggle navigation" +msgstr "ไม่ต้องสลับช่องทาง" + +msgid "repository" +msgstr "ที่เก็บ" + +msgid "suggest edit" +msgstr "แนะนำแก้ไข" + +msgid "open issue" +msgstr "เปิดปัญหา" + +msgid "Launch" +msgstr "เปิด" + +msgid "Print to PDF" +msgstr "พิมพ์เป็น PDF" + +msgid "By the" +msgstr "โดย" + +msgid "Last updated on" +msgstr "ปรับปรุงล่าสุดเมื่อ" + +msgid "Download source file" +msgstr "ดาวน์โหลดไฟล์ต้นฉบับ" + +msgid "Download this page" +msgstr "ดาวน์โหลดหน้านี้" diff --git a/level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..8df1b73310e0c606251d1abff7e6033d1f6b273f GIT binary patch literal 1273 zcmZ{iJ#P~+7{?8ixA4}MHz7bWh@lJz6qYJggw!_(YD=U9)PcpxxsJ)jKAr8h8TbH< zl>mt^fEW=h3@|dWP{DwN#01}fk%9knmnKyup2YV%`|Ricw;%r;A9>CYr_e5-eL%a2 z_Gk|th%ew?a0@&DeghAKKfp8KZ;;mh1;@cLOg;`?0Z)LpKw38o9s}=zN5K_v43vGY z_s5_1`!7J!c@37pw;-+m2-5n`;Ct{ph(FuhSLAyJ(z;h52j75~!7cDS_y;@-j*b-m zC%}W~-v&p)J0SUA0Z)SpJPAGlY2GGy4txoc|92qy`UKMYuOOYrFAzsE2s#`3PH_Yc zHrRgZAP%9?9w{GbQ&0{H+8gOp(7q^W|Kx>&wCSAbj3LR`Ob>tV+mg-Nw3lhs_H53s zo5YHk8|!7$+74gUi5w0)8?u(%HR#*g@l+_u=40)Val5-HoaZ5pg_kk6hAoOEtD7`fpKHxt1^q`P0PmGs4|~w zYF}CuMg<%mawMf%5;BoQ3pVSzGB;`7b(Ndbym+ll7=Ee3C$CPI*s^AIft_~oQ`+M| zjoMMlC845tP)?QC3^N9mW&fLyY9mxPB*L)jFaumd3$>sZlm_4E_)y1P<99=X&7mSu zQF#bj7^^11I1!U-GjxO_E86t}@}&6i_@% literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..662d66c --- /dev/null +++ b/level-zero/1.10/_static/locales/tl/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tema ng" + +msgid "Open an issue" +msgstr "Magbukas ng isyu" + +msgid "Download notebook file" +msgstr "Mag-download ng file ng notebook" + +msgid "Sphinx Book Theme" +msgstr "Tema ng Sphinx Book" + +msgid "Edit this page" +msgstr "I-edit ang pahinang ito" + +msgid "By" +msgstr "Ni" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Source repository" +msgstr "Pinagmulan ng imbakan" + +msgid "previous page" +msgstr "Nakaraang pahina" + +msgid "next page" +msgstr "Susunod na pahina" + +msgid "Toggle navigation" +msgstr "I-toggle ang pag-navigate" + +msgid "suggest edit" +msgstr "iminumungkahi i-edit" + +msgid "open issue" +msgstr "bukas na isyu" + +msgid "Launch" +msgstr "Ilunsad" + +msgid "Print to PDF" +msgstr "I-print sa PDF" + +msgid "By the" +msgstr "Sa pamamagitan ng" + +msgid "Last updated on" +msgstr "Huling na-update noong" + +msgid "Download source file" +msgstr "Mag-download ng file ng pinagmulan" + +msgid "Download this page" +msgstr "I-download ang pahinang ito" diff --git a/level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..029ae18afb5360a8c238a052e8d3971761759d3d GIT binary patch literal 1373 zcmZ{izi%8x6vqdWKynFz!~~?sQXUOIiX{o62)3@sVLOWA2n!$dC&=i7J19yL{j6T0W2%?d)gY?96-L@67yl{`g~s z_CESD`XA_*&>y~r7uw0!mBOP=;q?Z120RHafv3P_@ICND@LjMEo(I1M&w>oT4aSc5 zLCNz7d<%R6o&kRZ&w(7D`FN2cjBk&jSbMQ3yvf}|L z^-dgb=PiL35fdohSHUH48x$WIDEhw##oq%^>ihtT&YwW>`D+*d4$8W}!FRxeF7BOZ z>s|syPtwI-fS96gfHHp*lr0wzl2>wx9;q$97n`h;HKI?N=#nP7WUs~N1$3mG*A#z? zP4-{T@J)1V%lv%Rpus~iXZ5ACk!=k4s2XpwJgPPKoh_YC$-2lp&J{E^B_9n3SNjqF zXE5d_P^B|g>#2!IeHd=kWf?}E+0w+NtTuIsR9C5voRYJMYdgx-R~05`OD2Sx)s{CF zNgQphZK&MIp`-&XC zw^i0&m&u0nldwXznunqP*($Z4{f{ku(5I`PtoGDUdp(}*+f>_seb0WLJ~cMw0*C6= zkV`YBTo=V`U#;;tvZvIAMh7gN?Gt7i9EQ538>@@sDR7=_PxgBv?;s7aXZ*rps`o&(U<3tx~U_1rqYg?0^K7|^E%RsJ#t%4f8 zo6h$Ap{&BCl*;`;;xXGI&@B^nMMIv5kwyPFiiuV?c-PnoHwMdQd*;PnG+qT~k=xL= f7*f}zXhDUuwVFPIQ2d!&RZ>YE8iRKH#ZJBgJpfrQ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..d1ae723 --- /dev/null +++ b/level-zero/1.10/_static/locales/tr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "Tarafından tema" + +msgid "Open an issue" +msgstr "Bir sorunu açın" + +msgid "Contents" +msgstr "İçindekiler" + +msgid "Download notebook file" +msgstr "Defter dosyasını indirin" + +msgid "Sphinx Book Theme" +msgstr "Sfenks Kitap Teması" + +msgid "Fullscreen mode" +msgstr "Tam ekran modu" + +msgid "Edit this page" +msgstr "Bu sayfayı düzenle" + +msgid "By" +msgstr "Tarafından" + +msgid "Copyright" +msgstr "Telif hakkı" + +msgid "Source repository" +msgstr "Kaynak kod deposu" + +msgid "previous page" +msgstr "önceki sayfa" + +msgid "next page" +msgstr "sonraki Sayfa" + +msgid "Toggle navigation" +msgstr "Gezinmeyi değiştir" + +msgid "repository" +msgstr "depo" + +msgid "suggest edit" +msgstr "düzenleme öner" + +msgid "open issue" +msgstr "Açık konu" + +msgid "Launch" +msgstr "Başlatmak" + +msgid "Print to PDF" +msgstr "PDF olarak yazdır" + +msgid "By the" +msgstr "Tarafından" + +msgid "Last updated on" +msgstr "Son güncelleme tarihi" + +msgid "Download source file" +msgstr "Kaynak dosyayı indirin" + +msgid "Download this page" +msgstr "Bu sayfayı indirin" diff --git a/level-zero/1.10/_static/locales/uk/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/uk/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..16ab78909cfbaba7fa199f47fdfc2934426ac699 GIT binary patch literal 1681 zcmZvaO>7%Q6vv0QKx#^WmXAw-X;52=V^7yhotb5Kwlue- zPJ@uD1fdWPh|e20*TKPc;zZ)a@r}d@A+B8DUJjM|f4dvvq>McK+j;xuef*#QJbLI0 zf%O{p5cY4_Z(`qj3JD;1Tdg@Fj3P=dZc__x$`9$oc*S3*fo^agnKo4Zexd+ydwLFH++H&9h3nhscvH3nP?w=Ry$GKV8 zSFn*%JcrG*?O#Zh&hS|fa-{PW7iaO4wx+~;Mq8zAjF)gW3jCTCm(0hyZoI10#;R#! zZps@$UG17A`bVb!y$DvicD z(UqEbKZJv)We~@S5))CN5yZ%eOXK2NmM>DFi34k*S#d3_1^TwU$hA$?)Ql48Q%+|+ zO&Q;>E2+I(f$!M>Nwm6cv+4}z$&!STx)qotFS{>%ocO*%l?t7p6!W2~*y81C@dFjb zh*pwW{vziurkM*@FJB$o{eEubY#|r6I5iuplC&t`Oj!2O`(TSv<;z`$dL~;A5u^%qBgBK^s=!h>rLI6)qdpT zRwLUoA{Qc+BL{@CNd#$~fM}{TM=rgzQV%n0sfS7&;BP2WpLe~9L#0ZLy!)G(eLtS} z@uTBCHyGACc;3gei{}G8S6;vi>pu7*_yBwvdd_{ zw7^~PH24qrDR`oXv3~FiknZO|ioXGV2*%(?;Gf{z;NRf8;J+FBUg~@w04eVRNO2|b zJ#Z2H7+e8i$-yFT-pWp-6LJ_r(sdMXnvv>}ceKb;S{N^_PkZu%7R~=ky6bpCK9k3g z$k@3h{CHRvY(#lWzU!1jHmVk6McE}TRVZeZy2@wWis)VkD)Nisnai;32Hdk9!Ny8% zh>H8iNjnI6>?(vD=Y%)au3|&?BFFX~vq4Jm5 zMX&72MShO7Oqazq!O}OM=}4bej#Cj_+Vieshc22(u^4vLDC*N`;`w6URZ%80h#W^i znt)vNS978mS`#JfvhV|x$n#E9i<(+#yWIJS^JCrbgJ(X=jVKuk8Cugzp2+hMT?f31 z?aE=i4%v6}~kli>l;GC(nmw+%Pw3ODBSPc^>(>sY>MA6>D7i z*MdBkUV01)pAYlSw$Ly6$pRnzWH`t4n!cr5?Pa~wuCipkz0CC=x@BmuW3xx+mX7tR z*NZtNFp)tbr@2L4}dj%B? z$~?F1e_~CYdU3r0$=I6uq5ePVO_Bn=P}riFSZ}qf6oE57w5w3K+FoX+hEW?y<4|&p zx|p)Aw=sGx%}Vw#el49X^(ARiaRizwH+vA!fH?=_BQ=JATO9Uo!rm6_g(Z9Fvrf~J ziFzY}!KTjO`w9hS|3mkKY2Z8hBsWpwH*$FgF5fip{lMp#&N|*Vkp4MHrJJsNw1%8D c^9?3>eEmE8GP@z_uy-`khW>?G>aA{%rxd0lq5uE@ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/ur/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/ur/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..94bcab3 --- /dev/null +++ b/level-zero/1.10/_static/locales/ur/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "کے ذریعہ تھیم" + +msgid "Open an issue" +msgstr "ایک مسئلہ کھولیں" + +msgid "Download notebook file" +msgstr "نوٹ بک فائل ڈاؤن لوڈ کریں" + +msgid "Sphinx Book Theme" +msgstr "سپنکس بک تھیم" + +msgid "Edit this page" +msgstr "اس صفحے میں ترمیم کریں" + +msgid "By" +msgstr "بذریعہ" + +msgid "Copyright" +msgstr "کاپی رائٹ" + +msgid "Source repository" +msgstr "ماخذ ذخیرہ" + +msgid "previous page" +msgstr "سابقہ ​​صفحہ" + +msgid "next page" +msgstr "اگلا صفحہ" + +msgid "Toggle navigation" +msgstr "نیویگیشن ٹوگل کریں" + +msgid "suggest edit" +msgstr "ترمیم کی تجویز کریں" + +msgid "open issue" +msgstr "کھلا مسئلہ" + +msgid "Launch" +msgstr "لانچ کریں" + +msgid "Print to PDF" +msgstr "پی ڈی ایف پرنٹ کریں" + +msgid "By the" +msgstr "کی طرف" + +msgid "Last updated on" +msgstr "آخری بار تازہ کاری ہوئی" + +msgid "Download source file" +msgstr "سورس فائل ڈاؤن لوڈ کریں" + +msgid "Download this page" +msgstr "اس صفحے کو ڈاؤن لوڈ کریں" diff --git a/level-zero/1.10/_static/locales/vi/LC_MESSAGES/booktheme.mo b/level-zero/1.10/_static/locales/vi/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..2bb32555c3ea0dab08ed37b71cb863fbe75698c6 GIT binary patch literal 1431 zcmZvb&x;&I6vr#s{2bR9catc(#OK8%htWiG2(!#(H#@MntBVvV&v#)!JFr^_{KP>F`@nJV05}OA1gF4b;9KAkunA6pAA*NK z3BCmSiq}An^CkEqxCxGf--9oMKUe&tTK}_}KL%Ov30MQi#>)GLK%P&59Onf13wRdX z3;qSN-ajCp`xj*0y?e@hC&AY-KMlSLE>x7&{%7EEtZ#xGrw?+zzkx4+4=O$aInLi8 z=P?fP6X0=>=PmFs_%X6t9{djXqq7H;REU`#e&m%Dv(|WNyu(A%OLe5YIB!2Su?;$8te4By zUZxct%bjIsvow_dS@cRfN`gp=xsLV-{cPIG;@E|$l!jJqM~a2OdCHPb;AMxb!8|je z5+5Wu5E#l0;esOMR|IFK`YgJ+E?Oq}qlDRK7TFmDND~hLNUKno*_5*I#duC ze1pUH?uya95XS7fK6vqb$6da&5d>$e(Tqr%5FL8(*`2r*YiH`^Z>aE(?ll6i#v)Y{nLNAmS zVZLM|@+Cqff{+L(H9>+X*h#n|&YXJarQWrDsNf1G{?EIRgwekJ?VFu>|Np%Cx20*2 zVQfXTBHkmmBW^Fl3uEes3ZOb zQk?;C9XJZE1)qXHfzuJ+M)Utfc@-qRPhbpOu_D~R9;Cb#q&h!?W$*w<>pw>P43chB zQ^;m;Gx8RY{OyX^7V!v3^?n6uod9Y7@6r5Kko@OC(isEk+)qHNR|2Y~glBh97KqDQIoyw}Q#g=trLPD*?? zsWX<#ZNn6-BW-Dv{+f1r*{qv#gpj;Xr3E`?xSD%*+R!4+l|=5zREC|jvA~era$Qfb zF2|B6qIlQgPIfxfbA+v2ODm_JowhTUyu=TZx9*JS6Rh#(J>i+Um1$-Lm&OIlG_(Z~ zDK6>Iog$r3#CF65OL>v)Mde-3GzDA=oCH?XIg!%wqv`lr;kc-l;Guq;^y3ZX*zu#s zI~M-$+r2jyH8$SeZ;J%iFtEqY8kTJ5sf^*cLMP93cgEWm);WfBdxaD4kSUe6q?zDt zJ(i9gGoRpuVl zu3Y;tdw+Y?BAIRa)rh7%Q6vqb|O6z_>OFs^gI=uiz7%1XUIrvhVNR?8ES{E)zXk$;;3!9nM?rdo| zg(?BJNt;NGU78fyR1pmy`2barI!U>5;l_yr7d&hG1XmCT{?EI?hS9$L&6|(+{`20i zd%MaE;~=aX_A~4-Y~m68Ft$C)7(TWgzpda-a2vP}+zxhw2f(Mnr@$<@7d!**1_ihW z)CosHiZc!F0%yUU;1}SN;CBgsOxAx%{5nYa{sdFtmM!u9-5~khAjNqGTmxSL>HHrF z{{ks*S695g10>!1LDKhp!dDaaCwv>+k9`-U`l4+X18A zb`E+6_3&{R%F^mDJ28xp>!M(W-N{d0I-s9&TSG1P{ z75aJczeQbi0`6J1V7&!LBlM=*7rJhc_l1yrNEHO@w*t*WuV86W;7Y;|WxmMX@NmGA z+zEnEumRtZ2%`AF$v$>A&gTnH1&&t!FgxoN9eI(TAZ@v#7!s`Y=Y#Q^a>}+{!KHP< zu`TT&i4+%gtWHs$IEm+r3yumC*&X47(6$9s3cLhT)Vm_D)29mQH-#S{T878@)098m z%A7iV>U3{=|JVyJrINy?bHkpi>0X&v z1xMN$etgi;seVh^A?ljp9~9roy_FhpL*H`KeaasSGF*BsH^{!+!{cf8S;>!N`LUxt zDOTIK)fgH3eSM~5R-avJPKqIR9T5`UTRjZlMYk9ZN|&2 zSsBNyvAEKln_#AN!(3g7N>iJPqMOUL)it`->9il( zoLjEXSEEv;IrB~9#-v%f*7$q_8AyL^bp+y>8T%Uf>ocRKJlP7gdS!Fx->lK(l=-+? P`(Y`Xeqh$BP|E%Rvo4ks literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/locales/zh_TW/LC_MESSAGES/booktheme.po b/level-zero/1.10/_static/locales/zh_TW/LC_MESSAGES/booktheme.po new file mode 100644 index 0000000..42b43b8 --- /dev/null +++ b/level-zero/1.10/_static/locales/zh_TW/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Theme by the" +msgstr "佈景主題作者:" + +msgid "Open an issue" +msgstr "開啟議題" + +msgid "Contents" +msgstr "目錄" + +msgid "Download notebook file" +msgstr "下載 Notebook 檔案" + +msgid "Sphinx Book Theme" +msgstr "Sphinx Book 佈景主題" + +msgid "Fullscreen mode" +msgstr "全螢幕模式" + +msgid "Edit this page" +msgstr "編輯此頁面" + +msgid "By" +msgstr "作者:" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Source repository" +msgstr "來源儲存庫" + +msgid "previous page" +msgstr "上一頁" + +msgid "next page" +msgstr "下一頁" + +msgid "Toggle navigation" +msgstr "顯示或隱藏導覽列" + +msgid "repository" +msgstr "儲存庫" + +msgid "suggest edit" +msgstr "提出修改建議" + +msgid "open issue" +msgstr "公開的問題" + +msgid "Launch" +msgstr "啟動" + +msgid "Print to PDF" +msgstr "列印成 PDF" + +msgid "By the" +msgstr "作者:" + +msgid "Last updated on" +msgstr "最後更新時間:" + +msgid "Download source file" +msgstr "下載原始檔" + +msgid "Download this page" +msgstr "下載此頁面" diff --git a/level-zero/1.10/_static/minus.png b/level-zero/1.10/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/plus.png b/level-zero/1.10/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_static/pygments.css b/level-zero/1.10/_static/pygments.css new file mode 100644 index 0000000..997797f --- /dev/null +++ b/level-zero/1.10/_static/pygments.css @@ -0,0 +1,152 @@ +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #7971292e } +html[data-theme="light"] .highlight { background: #fefefe; color: #545454 } +html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */ +html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */ +html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */ +html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */ +html[data-theme="light"] .highlight .n { color: #545454 } /* Name */ +html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */ +html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */ +html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .gh { color: #007faa } /* Generic.Heading */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */ +html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */ +html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */ +html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */ +html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */ +html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */ +html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */ +html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */ +html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } +html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ +html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ +html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/level-zero/1.10/_static/sbt-webpack-macros.html b/level-zero/1.10/_static/sbt-webpack-macros.html new file mode 100644 index 0000000..6cbf559 --- /dev/null +++ b/level-zero/1.10/_static/sbt-webpack-macros.html @@ -0,0 +1,11 @@ + +{% macro head_pre_bootstrap() %} + +{% endmacro %} + +{% macro body_post() %} + +{% endmacro %} diff --git a/level-zero/1.10/_static/scripts/bootstrap.js b/level-zero/1.10/_static/scripts/bootstrap.js new file mode 100644 index 0000000..4e209b0 --- /dev/null +++ b/level-zero/1.10/_static/scripts/bootstrap.js @@ -0,0 +1,3 @@ +/*! For license information please see bootstrap.js.LICENSE.txt */ +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>E,afterRead:()=>v,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>J,auto:()=>a,basePlacements:()=>l,beforeMain:()=>y,beforeRead:()=>_,beforeWrite:()=>A,bottom:()=>s,clippingParents:()=>d,computeStyles:()=>it,createPopper:()=>Dt,createPopperBase:()=>St,createPopperLite:()=>$t,detectOverflow:()=>_t,end:()=>h,eventListeners:()=>st,flip:()=>bt,hide:()=>wt,left:()=>r,main:()=>w,modifierPhases:()=>O,offset:()=>Et,placements:()=>g,popper:()=>f,popperGenerator:()=>Lt,popperOffsets:()=>At,preventOverflow:()=>Tt,read:()=>b,reference:()=>p,right:()=>o,start:()=>c,top:()=>n,variationPlacements:()=>m,viewport:()=>u,write:()=>T});var i={};t.r(i),t.d(i,{Alert:()=>Oe,Button:()=>ke,Carousel:()=>ri,Collapse:()=>yi,Dropdown:()=>Vi,Modal:()=>xn,Offcanvas:()=>Vn,Popover:()=>fs,ScrollSpy:()=>Ts,Tab:()=>Ks,Toast:()=>lo,Tooltip:()=>hs});var n="top",s="bottom",o="right",r="left",a="auto",l=[n,s,o,r],c="start",h="end",d="clippingParents",u="viewport",f="popper",p="reference",m=l.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+h])}),[]),g=[].concat(l,[a]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+h])}),[]),_="beforeRead",b="read",v="afterRead",y="beforeMain",w="main",E="afterMain",A="beforeWrite",T="write",C="afterWrite",O=[_,b,v,y,w,E,A,T,C];function x(t){return t?(t.nodeName||"").toLowerCase():null}function k(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function L(t){return t instanceof k(t).Element||t instanceof Element}function S(t){return t instanceof k(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof k(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];S(s)&&x(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});S(n)&&x(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function I(t){return t.split("-")[0]}var N=Math.max,P=Math.min,M=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function F(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&S(t)&&(s=t.offsetWidth>0&&M(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&M(n.height)/t.offsetHeight||1);var r=(L(t)?k(t):window).visualViewport,a=!F()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function B(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function W(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function z(t){return k(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(x(t))>=0}function q(t){return((L(t)?t.ownerDocument:t.document)||window.document).documentElement}function V(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function Y(t){return S(t)&&"fixed"!==z(t).position?t.offsetParent:null}function K(t){for(var e=k(t),i=Y(t);i&&R(i)&&"static"===z(i).position;)i=Y(i);return i&&("html"===x(i)||"body"===x(i)&&"static"===z(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&S(t)&&"fixed"===z(t).position)return null;var i=V(t);for(D(i)&&(i=i.host);S(i)&&["html","body"].indexOf(x(i))<0;){var n=z(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return N(t,P(e,i))}function U(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function G(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const J={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,a=t.name,c=t.options,h=i.elements.arrow,d=i.modifiersData.popperOffsets,u=I(i.placement),f=Q(u),p=[r,o].indexOf(u)>=0?"height":"width";if(h&&d){var m=function(t,e){return U("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:G(t,l))}(c.padding,i),g=B(h),_="y"===f?n:r,b="y"===f?s:o,v=i.rects.reference[p]+i.rects.reference[f]-d[f]-i.rects.popper[p],y=d[f]-i.rects.reference[f],w=K(h),E=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,A=v/2-y/2,T=m[_],C=E-g[p]-m[b],O=E/2-g[p]/2+A,x=X(T,O,C),k=f;i.modifiersData[a]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&W(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,i=t.popper,a=t.popperRect,l=t.placement,c=t.variation,d=t.offsets,u=t.position,f=t.gpuAcceleration,p=t.adaptive,m=t.roundOffsets,g=t.isFixed,_=d.x,b=void 0===_?0:_,v=d.y,y=void 0===v?0:v,w="function"==typeof m?m({x:b,y}):{x:b,y};b=w.x,y=w.y;var E=d.hasOwnProperty("x"),A=d.hasOwnProperty("y"),T=r,C=n,O=window;if(p){var x=K(i),L="clientHeight",S="clientWidth";x===k(i)&&"static"!==z(x=q(i)).position&&"absolute"===u&&(L="scrollHeight",S="scrollWidth"),(l===n||(l===r||l===o)&&c===h)&&(C=s,y-=(g&&x===O&&O.visualViewport?O.visualViewport.height:x[L])-a.height,y*=f?1:-1),l!==r&&(l!==n&&l!==s||c!==h)||(T=o,b-=(g&&x===O&&O.visualViewport?O.visualViewport.width:x[S])-a.width,b*=f?1:-1)}var D,$=Object.assign({position:u},p&&tt),I=!0===m?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:M(i*s)/s||0,y:M(n*s)/s||0}}({x:b,y},k(i)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},$,((D={})[C]=A?"0":"",D[T]=E?"0":"",D.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",D)):Object.assign({},$,((e={})[C]=A?y+"px":"",e[T]=E?b+"px":"",e.transform="",e))}const it={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:I(e.placement),variation:Z(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var nt={passive:!0};const st={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=k(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,nt)})),a&&l.addEventListener("resize",i.update,nt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,nt)})),a&&l.removeEventListener("resize",i.update,nt)}},data:{}};var ot={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return ot[t]}))}var at={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,(function(t){return at[t]}))}function ct(t){var e=k(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ht(t){return H(q(t)).left+ct(t).scrollLeft}function dt(t){var e=z(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:S(t)&&dt(t)?t:ut(V(t))}function ft(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=k(n),r=s?[o].concat(o.visualViewport||[],dt(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ft(V(r)))}function pt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,i){return e===u?pt(function(t,e){var i=k(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=F();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ht(t),y:l}}(t,i)):L(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):pt(function(t){var e,i=q(t),n=ct(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=N(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=N(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ht(t),l=-n.scrollTop;return"rtl"===z(s||i).direction&&(a+=N(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,i=t.reference,a=t.element,l=t.placement,d=l?I(l):null,u=l?Z(l):null,f=i.x+i.width/2-a.width/2,p=i.y+i.height/2-a.height/2;switch(d){case n:e={x:f,y:i.y-a.height};break;case s:e={x:f,y:i.y+i.height};break;case o:e={x:i.x+i.width,y:p};break;case r:e={x:i.x-a.width,y:p};break;default:e={x:i.x,y:i.y}}var m=d?Q(d):null;if(null!=m){var g="y"===m?"height":"width";switch(u){case c:e[m]=e[m]-(i[g]/2-a[g]/2);break;case h:e[m]=e[m]+(i[g]/2-a[g]/2)}}return e}function _t(t,e){void 0===e&&(e={});var i=e,r=i.placement,a=void 0===r?t.placement:r,c=i.strategy,h=void 0===c?t.strategy:c,m=i.boundary,g=void 0===m?d:m,_=i.rootBoundary,b=void 0===_?u:_,v=i.elementContext,y=void 0===v?f:v,w=i.altBoundary,E=void 0!==w&&w,A=i.padding,T=void 0===A?0:A,C=U("number"!=typeof T?T:G(T,l)),O=y===f?p:f,k=t.rects.popper,D=t.elements[E?O:y],$=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=ft(V(t)),i=["absolute","fixed"].indexOf(z(t).position)>=0&&S(t)?K(t):t;return L(i)?e.filter((function(t){return L(t)&&W(t,i)&&"body"!==x(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=mt(t,i,n);return e.top=N(s.top,e.top),e.right=P(s.right,e.right),e.bottom=P(s.bottom,e.bottom),e.left=N(s.left,e.left),e}),mt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(L(D)?D:D.contextElement||q(t.elements.popper),g,b,h),I=H(t.elements.reference),M=gt({reference:I,element:k,strategy:"absolute",placement:a}),j=pt(Object.assign({},k,M)),F=y===f?j:I,B={top:$.top-F.top+C.top,bottom:F.bottom-$.bottom+C.bottom,left:$.left-F.left+C.left,right:F.right-$.right+C.right},R=t.modifiersData.offset;if(y===f&&R){var Y=R[a];Object.keys(B).forEach((function(t){var e=[o,s].indexOf(t)>=0?1:-1,i=[n,s].indexOf(t)>=0?"y":"x";B[t]+=Y[i]*e}))}return B}const bt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var d=i.mainAxis,u=void 0===d||d,f=i.altAxis,p=void 0===f||f,_=i.fallbackPlacements,b=i.padding,v=i.boundary,y=i.rootBoundary,w=i.altBoundary,E=i.flipVariations,A=void 0===E||E,T=i.allowedAutoPlacements,C=e.options.placement,O=I(C),x=_||(O!==C&&A?function(t){if(I(t)===a)return[];var e=rt(t);return[lt(t),e,lt(e)]}(C):[rt(C)]),k=[C].concat(x).reduce((function(t,i){return t.concat(I(i)===a?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,d=Z(n),u=d?a?m:m.filter((function(t){return Z(t)===d})):l,f=u.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=u);var p=f.reduce((function(e,i){return e[i]=_t(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[I(i)],e}),{});return Object.keys(p).sort((function(t,e){return p[t]-p[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:A,allowedAutoPlacements:T}):i)}),[]),L=e.rects.reference,S=e.rects.popper,D=new Map,$=!0,N=k[0],P=0;P=0,B=H?"width":"height",W=_t(e,{placement:M,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=H?F?o:r:F?s:n;L[B]>S[B]&&(z=rt(z));var R=rt(z),q=[];if(u&&q.push(W[j]<=0),p&&q.push(W[z]<=0,W[R]<=0),q.every((function(t){return t}))){N=M,$=!1;break}D.set(M,q)}if($)for(var V=function(t){var e=k.find((function(e){var i=D.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},Y=A?3:1;Y>0&&"break"!==V(Y);Y--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function yt(t){return[n,o,s,r].some((function(e){return t[e]>=0}))}const wt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=_t(e,{elementContext:"reference"}),a=_t(e,{altBoundary:!0}),l=vt(r,n),c=vt(a,s,o),h=yt(l),d=yt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,a=i.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,i){return t[i]=function(t,e,i){var s=I(t),a=[r,n].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},e,{placement:t})):i,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[r,o].indexOf(s)>=0?{x:h,y:c}:{x:c,y:h}}(i,e.rects,l),t}),{}),h=c[e.placement],d=h.x,u=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=u),e.modifiersData[s]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,a=t.name,l=i.mainAxis,h=void 0===l||l,d=i.altAxis,u=void 0!==d&&d,f=i.boundary,p=i.rootBoundary,m=i.altBoundary,g=i.padding,_=i.tether,b=void 0===_||_,v=i.tetherOffset,y=void 0===v?0:v,w=_t(e,{boundary:f,rootBoundary:p,padding:g,altBoundary:m}),E=I(e.placement),A=Z(e.placement),T=!A,C=Q(E),O="x"===C?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,S="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,D="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),$=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(x){if(h){var j,F="y"===C?n:r,H="y"===C?s:o,W="y"===C?"height":"width",z=x[C],R=z+w[F],q=z-w[H],V=b?-L[W]/2:0,Y=A===c?k[W]:L[W],U=A===c?-L[W]:-k[W],G=e.elements.arrow,J=b&&G?B(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[F],it=tt[H],nt=X(0,k[W],J[W]),st=T?k[W]/2-V-nt-et-D.mainAxis:Y-nt-et-D.mainAxis,ot=T?-k[W]/2+V+nt+it+D.mainAxis:U+nt+it+D.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===C?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(j=null==$?void 0:$[C])?j:0,ct=z+ot-lt,ht=X(b?P(R,z+st-lt-at):R,z,b?N(q,ct):q);x[C]=ht,M[C]=ht-z}if(u){var dt,ut="x"===C?n:r,ft="x"===C?s:o,pt=x[O],mt="y"===O?"height":"width",gt=pt+w[ut],bt=pt-w[ft],vt=-1!==[n,r].indexOf(E),yt=null!=(dt=null==$?void 0:$[O])?dt:0,wt=vt?gt:pt-k[mt]-L[mt]-yt+D.altAxis,Et=vt?pt+k[mt]+L[mt]-yt-D.altAxis:bt,At=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,Et):X(b?wt:gt,pt,b?Et:bt);x[O]=At,M[O]=At-pt}e.modifiersData[a]=M}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=S(e),r=S(e)&&function(t){var e=t.getBoundingClientRect(),i=M(e.width)/t.offsetWidth||1,n=M(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==x(e)||dt(a))&&(c=(n=e)!==k(n)&&S(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ct(n)),S(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ht(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Ot(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var xt={placement:"bottom",modifiers:[],strategy:"absolute"};function kt(){for(var t=arguments.length,e=new Array(t),i=0;iIt.has(t)&&It.get(t).get(e)||null,remove(t,e){if(!It.has(t))return;const i=It.get(t);i.delete(e),0===i.size&&It.delete(t)}},Pt="transitionend",Mt=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),jt=t=>{t.dispatchEvent(new Event(Pt))},Ft=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Ft(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Mt(t)):null,Bt=t=>{if(!Ft(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Wt=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),zt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?zt(t.parentNode):null},Rt=()=>{},qt=t=>{t.offsetHeight},Vt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Yt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Vt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Yt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Yt)t()})),Yt.push(e)):e()},Xt=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,Ut=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(Pt,o),Xt(t))};e.addEventListener(Pt,o),setTimeout((()=>{s||jt(e)}),n)},Gt=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Jt=/[^.]*(?=\..*)\.|.*/,Zt=/\..*/,te=/::\d+$/,ee={};let ie=1;const ne={mouseenter:"mouseover",mouseleave:"mouseout"},se=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function oe(t,e){return e&&`${e}::${ie++}`||t.uidEvent||ie++}function re(t){const e=oe(t);return t.uidEvent=e,ee[e]=ee[e]||{},ee[e]}function ae(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function le(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return se.has(o)||(o=t),[n,s,o]}function ce(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=le(e,i,n);if(e in ne){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=re(t),c=l[a]||(l[a]={}),h=ae(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=oe(r,e.replace(Jt,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return pe(s,{delegateTarget:r}),n.oneOff&&fe.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return pe(n,{delegateTarget:t}),i.oneOff&&fe.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function he(t,e,i,n,s){const o=ae(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function de(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&he(t,e,i,r.callable,r.delegationSelector)}function ue(t){return t=t.replace(Zt,""),ne[t]||t}const fe={on(t,e,i,n){ce(t,e,i,n,!1)},one(t,e,i,n){ce(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=le(e,i,n),a=r!==e,l=re(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))de(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(te,"");a&&!e.includes(s)||he(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;he(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Vt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=pe(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function pe(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function ge(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const _e={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${ge(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${ge(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${ge(e)}`))};class be{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Ft(e)?_e.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Ft(e)?_e.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],o=Ft(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${o}" but expected type "${s}".`)}var i}}class ve extends be{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),fe.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Ut(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?Mt(i.trim()):null}return e},we={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Wt(t)&&Bt(t)))},getSelectorFromElement(t){const e=ye(t);return e&&we.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?we.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?we.find(e):[]}},Ee=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;fe.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Wt(this))return;const s=we.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Te=`close${Ae}`,Ce=`closed${Ae}`;class Oe extends ve{static get NAME(){return"alert"}close(){if(fe.trigger(this._element,Te).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),fe.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Oe.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}Ee(Oe,"close"),Qt(Oe);const xe='[data-bs-toggle="button"]';class ke extends ve{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=ke.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}fe.on(document,"click.bs.button.data-api",xe,(t=>{t.preventDefault();const e=t.target.closest(xe);ke.getOrCreateInstance(e).toggle()})),Qt(ke);const Le=".bs.swipe",Se=`touchstart${Le}`,De=`touchmove${Le}`,$e=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},Me={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class je extends be{constructor(t,e){super(),this._element=t,t&&je.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return Me}static get NAME(){return"swipe"}dispose(){fe.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(fe.on(this._element,Ie,(t=>this._start(t))),fe.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(fe.on(this._element,Se,(t=>this._start(t))),fe.on(this._element,De,(t=>this._move(t))),fe.on(this._element,$e,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Fe=".bs.carousel",He=".data-api",Be="next",We="prev",ze="left",Re="right",qe=`slide${Fe}`,Ve=`slid${Fe}`,Ye=`keydown${Fe}`,Ke=`mouseenter${Fe}`,Qe=`mouseleave${Fe}`,Xe=`dragstart${Fe}`,Ue=`load${Fe}${He}`,Ge=`click${Fe}${He}`,Je="carousel",Ze="active",ti=".active",ei=".carousel-item",ii=ti+ei,ni={ArrowLeft:Re,ArrowRight:ze},si={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},oi={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ri extends ve{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=we.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===Je&&this.cycle()}static get Default(){return si}static get DefaultType(){return oi}static get NAME(){return"carousel"}next(){this._slide(Be)}nextWhenVisible(){!document.hidden&&Bt(this._element)&&this.next()}prev(){this._slide(We)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?fe.one(this._element,Ve,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void fe.one(this._element,Ve,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?Be:We;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&fe.on(this._element,Ye,(t=>this._keydown(t))),"hover"===this._config.pause&&(fe.on(this._element,Ke,(()=>this.pause())),fe.on(this._element,Qe,(()=>this._maybeEnableCycle()))),this._config.touch&&je.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of we.find(".carousel-item img",this._element))fe.on(t,Xe,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ze)),rightCallback:()=>this._slide(this._directionToOrder(Re)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new je(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=ni[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=we.findOne(ti,this._indicatorsElement);e.classList.remove(Ze),e.removeAttribute("aria-current");const i=we.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Ze),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===Be,s=e||Gt(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>fe.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(qe).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(Ze),i.classList.remove(Ze,c,l),this._isSliding=!1,r(Ve)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return we.findOne(ii,this._element)}_getItems(){return we.find(ei,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===ze?We:Be:t===ze?Be:We}_orderToDirection(t){return Kt()?t===We?ze:Re:t===We?Re:ze}static jQueryInterface(t){return this.each((function(){const e=ri.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}fe.on(document,Ge,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=we.getElementFromSelector(this);if(!e||!e.classList.contains(Je))return;t.preventDefault();const i=ri.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===_e.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),fe.on(window,Ue,(()=>{const t=we.find('[data-bs-ride="carousel"]');for(const e of t)ri.getOrCreateInstance(e)})),Qt(ri);const ai=".bs.collapse",li=`show${ai}`,ci=`shown${ai}`,hi=`hide${ai}`,di=`hidden${ai}`,ui=`click${ai}.data-api`,fi="show",pi="collapse",mi="collapsing",gi=`:scope .${pi} .${pi}`,_i='[data-bs-toggle="collapse"]',bi={parent:null,toggle:!0},vi={parent:"(null|element)",toggle:"boolean"};class yi extends ve{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=we.find(_i);for(const t of i){const e=we.getSelectorFromElement(t),i=we.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return bi}static get DefaultType(){return vi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yi.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(fe.trigger(this._element,li).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pi),this._element.classList.add(mi),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(mi),this._element.classList.add(pi,fi),this._element.style[e]="",fe.trigger(this._element,ci)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(fe.trigger(this._element,hi).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(mi),this._element.classList.remove(pi,fi);for(const t of this._triggerArray){const e=we.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(mi),this._element.classList.add(pi),fe.trigger(this._element,di)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(fi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(_i);for(const e of t){const t=we.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=we.find(gi,this._config.parent);return we.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=yi.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}fe.on(document,ui,_i,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of we.getMultipleElementsFromSelector(this))yi.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(yi);const wi="dropdown",Ei=".bs.dropdown",Ai=".data-api",Ti="ArrowUp",Ci="ArrowDown",Oi=`hide${Ei}`,xi=`hidden${Ei}`,ki=`show${Ei}`,Li=`shown${Ei}`,Si=`click${Ei}${Ai}`,Di=`keydown${Ei}${Ai}`,$i=`keyup${Ei}${Ai}`,Ii="show",Ni='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Pi=`${Ni}.${Ii}`,Mi=".dropdown-menu",ji=Kt()?"top-end":"top-start",Fi=Kt()?"top-start":"top-end",Hi=Kt()?"bottom-end":"bottom-start",Bi=Kt()?"bottom-start":"bottom-end",Wi=Kt()?"left-start":"right-start",zi=Kt()?"right-start":"left-start",Ri={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},qi={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Vi extends ve{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=we.next(this._element,Mi)[0]||we.prev(this._element,Mi)[0]||we.findOne(Mi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Ri}static get DefaultType(){return qi}static get NAME(){return wi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Wt(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!fe.trigger(this._element,ki,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Ii),this._element.classList.add(Ii),fe.trigger(this._element,Li,t)}}hide(){if(Wt(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!fe.trigger(this._element,Oi,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Ii),this._element.classList.remove(Ii),this._element.setAttribute("aria-expanded","false"),_e.removeDataAttribute(this._menu,"popper"),fe.trigger(this._element,xi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Ft(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${wi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Ft(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Ii)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return zi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Fi:ji:e?Bi:Hi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(_e.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...Xt(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=we.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Bt(t)));i.length&&Gt(i,e,t===Ci,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Vi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=we.find(Pi);for(const i of e){const e=Vi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ti,Ci].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ni)?this:we.prev(this,Ni)[0]||we.next(this,Ni)[0]||we.findOne(Ni,t.delegateTarget.parentNode),o=Vi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}fe.on(document,Di,Ni,Vi.dataApiKeydownHandler),fe.on(document,Di,Mi,Vi.dataApiKeydownHandler),fe.on(document,Si,Vi.clearMenus),fe.on(document,$i,Vi.clearMenus),fe.on(document,Si,Ni,(function(t){t.preventDefault(),Vi.getOrCreateInstance(this).toggle()})),Qt(Vi);const Yi="backdrop",Ki="show",Qi=`mousedown.bs.${Yi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ui={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Gi extends be{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Ui}static get NAME(){return Yi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Ki),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(fe.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),fe.on(t,Qi,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const Ji=".bs.focustrap",Zi=`focusin${Ji}`,tn=`keydown.tab${Ji}`,en="backward",nn={autofocus:!0,trapElement:null},sn={autofocus:"boolean",trapElement:"element"};class on extends be{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return nn}static get DefaultType(){return sn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),fe.off(document,Ji),fe.on(document,Zi,(t=>this._handleFocusin(t))),fe.on(document,tn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,fe.off(document,Ji))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=we.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===en?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?en:"forward")}}const rn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",an=".sticky-top",ln="padding-right",cn="margin-right";class hn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ln,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e+t)),this._setElementAttributes(an,cn,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ln),this._resetElementAttributes(rn,ln),this._resetElementAttributes(an,cn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&_e.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=_e.getDataAttribute(t,e);null!==i?(_e.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Ft(t))e(t);else for(const i of we.find(t,this._element))e(i)}}const dn=".bs.modal",un=`hide${dn}`,fn=`hidePrevented${dn}`,pn=`hidden${dn}`,mn=`show${dn}`,gn=`shown${dn}`,_n=`resize${dn}`,bn=`click.dismiss${dn}`,vn=`mousedown.dismiss${dn}`,yn=`keydown.dismiss${dn}`,wn=`click${dn}.data-api`,En="modal-open",An="show",Tn="modal-static",Cn={backdrop:!0,focus:!0,keyboard:!0},On={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class xn extends ve{constructor(t,e){super(t,e),this._dialog=we.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new hn,this._addEventListeners()}static get Default(){return Cn}static get DefaultType(){return On}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||fe.trigger(this._element,mn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(En),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(fe.trigger(this._element,un).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){fe.off(window,dn),fe.off(this._dialog,dn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Gi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new on({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=we.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,fe.trigger(this._element,gn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){fe.on(this._element,yn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),fe.on(window,_n,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),fe.on(this._element,vn,(t=>{fe.one(this._element,bn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(En),this._resetAdjustments(),this._scrollBar.reset(),fe.trigger(this._element,pn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(fe.trigger(this._element,fn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Tn)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Tn),this._queueCallback((()=>{this._element.classList.remove(Tn),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=xn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}fe.on(document,wn,'[data-bs-toggle="modal"]',(function(t){const e=we.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),fe.one(e,mn,(t=>{t.defaultPrevented||fe.one(e,pn,(()=>{Bt(this)&&this.focus()}))}));const i=we.findOne(".modal.show");i&&xn.getInstance(i).hide(),xn.getOrCreateInstance(e).toggle(this)})),Ee(xn),Qt(xn);const kn=".bs.offcanvas",Ln=".data-api",Sn=`load${kn}${Ln}`,Dn="show",$n="showing",In="hiding",Nn=".offcanvas.show",Pn=`show${kn}`,Mn=`shown${kn}`,jn=`hide${kn}`,Fn=`hidePrevented${kn}`,Hn=`hidden${kn}`,Bn=`resize${kn}`,Wn=`click${kn}${Ln}`,zn=`keydown.dismiss${kn}`,Rn={backdrop:!0,keyboard:!0,scroll:!1},qn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Vn extends ve{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Rn}static get DefaultType(){return qn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||fe.trigger(this._element,Pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new hn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($n),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Dn),this._element.classList.remove($n),fe.trigger(this._element,Mn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(fe.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(In),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Dn,In),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new hn).reset(),fe.trigger(this._element,Hn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Gi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():fe.trigger(this._element,Fn)}:null})}_initializeFocusTrap(){return new on({trapElement:this._element})}_addEventListeners(){fe.on(this._element,zn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():fe.trigger(this._element,Fn))}))}static jQueryInterface(t){return this.each((function(){const e=Vn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}fe.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=we.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this))return;fe.one(e,Hn,(()=>{Bt(this)&&this.focus()}));const i=we.findOne(Nn);i&&i!==e&&Vn.getInstance(i).hide(),Vn.getOrCreateInstance(e).toggle(this)})),fe.on(window,Sn,(()=>{for(const t of we.find(Nn))Vn.getOrCreateInstance(t).show()})),fe.on(window,Bn,(()=>{for(const t of we.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Vn.getOrCreateInstance(t).hide()})),Ee(Vn),Qt(Vn);const Yn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Un={allowList:Yn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Gn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Jn={entry:"(string|element|function|null)",selector:"(string|element)"};class Zn extends be{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Un}static get DefaultType(){return Gn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Jn)}_setContent(t,e,i){const n=we.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Ft(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Xt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const ts=new Set(["sanitize","allowList","sanitizeFn"]),es="fade",is="show",ns=".modal",ss="hide.bs.modal",os="hover",rs="focus",as={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},ls={allowList:Yn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},cs={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class hs extends ve{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return ls}static get DefaultType(){return cs}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),fe.off(this._element.closest(ns),ss,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=fe.trigger(this._element,this.constructor.eventName("show")),e=(zt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),fe.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(is),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._queueCallback((()=>{fe.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!fe.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(is),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._activeTrigger.click=!1,this._activeTrigger[rs]=!1,this._activeTrigger[os]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),fe.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(es,is),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(es),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Zn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(es)}_isShown(){return this.tip&&this.tip.classList.contains(is)}_createPopper(t){const e=Xt(this._config.placement,[this,t,this._element]),i=as[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Xt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Xt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)fe.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===os?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===os?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");fe.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?rs:os]=!0,e._enter()})),fe.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?rs:os]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},fe.on(this._element.closest(ns),ss,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=_e.getDataAttributes(this._element);for(const t of Object.keys(e))ts.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=hs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(hs);const ds={...hs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},us={...hs.DefaultType,content:"(null|string|element|function)"};class fs extends hs{static get Default(){return ds}static get DefaultType(){return us}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=fs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(fs);const ps=".bs.scrollspy",ms=`activate${ps}`,gs=`click${ps}`,_s=`load${ps}.data-api`,bs="active",vs="[href]",ys=".nav-link",ws=`${ys}, .nav-item > ${ys}, .list-group-item`,Es={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ts extends ve{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Es}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(fe.off(this._config.target,gs),fe.on(this._config.target,gs,vs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=we.find(vs,this._config.target);for(const e of t){if(!e.hash||Wt(e))continue;const t=we.findOne(decodeURI(e.hash),this._element);Bt(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(bs),this._activateParents(t),fe.trigger(this._element,ms,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))we.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(bs);else for(const e of we.parents(t,".nav, .list-group"))for(const t of we.prev(e,ws))t.classList.add(bs)}_clearActiveClass(t){t.classList.remove(bs);const e=we.find(`${vs}.${bs}`,t);for(const t of e)t.classList.remove(bs)}static jQueryInterface(t){return this.each((function(){const e=Ts.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(window,_s,(()=>{for(const t of we.find('[data-bs-spy="scroll"]'))Ts.getOrCreateInstance(t)})),Qt(Ts);const Cs=".bs.tab",Os=`hide${Cs}`,xs=`hidden${Cs}`,ks=`show${Cs}`,Ls=`shown${Cs}`,Ss=`click${Cs}`,Ds=`keydown${Cs}`,$s=`load${Cs}`,Is="ArrowLeft",Ns="ArrowRight",Ps="ArrowUp",Ms="ArrowDown",js="Home",Fs="End",Hs="active",Bs="fade",Ws="show",zs=".dropdown-toggle",Rs=`:not(${zs})`,qs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Vs=`.nav-link${Rs}, .list-group-item${Rs}, [role="tab"]${Rs}, ${qs}`,Ys=`.${Hs}[data-bs-toggle="tab"], .${Hs}[data-bs-toggle="pill"], .${Hs}[data-bs-toggle="list"]`;class Ks extends ve{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),fe.on(this._element,Ds,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?fe.trigger(e,Os,{relatedTarget:t}):null;fe.trigger(t,ks,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Hs),this._activate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),fe.trigger(t,Ls,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Bs)))}_deactivate(t,e){t&&(t.classList.remove(Hs),t.blur(),this._deactivate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),fe.trigger(t,xs,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Bs)))}_keydown(t){if(![Is,Ns,Ps,Ms,js,Fs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!Wt(t)));let i;if([js,Fs].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Ns,Ms].includes(t.key);i=Gt(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return we.find(Vs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=we.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=we.findOne(t,i);s&&s.classList.toggle(n,e)};n(zs,Hs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Hs)}_getInnerElement(t){return t.matches(Vs)?t:we.findOne(Vs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(document,Ss,qs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this)||Ks.getOrCreateInstance(this).show()})),fe.on(window,$s,(()=>{for(const t of we.find(Ys))Ks.getOrCreateInstance(t)})),Qt(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Us=`mouseout${Qs}`,Gs=`focusin${Qs}`,Js=`focusout${Qs}`,Zs=`hide${Qs}`,to=`hidden${Qs}`,eo=`show${Qs}`,io=`shown${Qs}`,no="hide",so="show",oo="showing",ro={animation:"boolean",autohide:"boolean",delay:"number"},ao={animation:!0,autohide:!0,delay:5e3};class lo extends ve{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ao}static get DefaultType(){return ro}static get NAME(){return"toast"}show(){fe.trigger(this._element,eo).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(no),qt(this._element),this._element.classList.add(so,oo),this._queueCallback((()=>{this._element.classList.remove(oo),fe.trigger(this._element,io),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(fe.trigger(this._element,Zs).defaultPrevented||(this._element.classList.add(oo),this._queueCallback((()=>{this._element.classList.add(no),this._element.classList.remove(oo,so),fe.trigger(this._element,to)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(so),super.dispose()}isShown(){return this._element.classList.contains(so)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){fe.on(this._element,Xs,(t=>this._onInteraction(t,!0))),fe.on(this._element,Us,(t=>this._onInteraction(t,!1))),fe.on(this._element,Gs,(t=>this._onInteraction(t,!0))),fe.on(this._element,Js,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=lo.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}function co(t){"loading"!=document.readyState?t():document.addEventListener("DOMContentLoaded",t)}Ee(lo),Qt(lo),co((function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new hs(t,{delay:{show:500,hide:100}})}))})),co((function(){document.getElementById("pst-back-to-top").addEventListener("click",(function(){document.body.scrollTop=0,document.documentElement.scrollTop=0}))})),co((function(){var t=document.getElementById("pst-back-to-top"),e=document.getElementsByClassName("bd-header")[0].getBoundingClientRect();window.addEventListener("scroll",(function(){this.oldScroll>this.scrollY&&this.scrollY>e.bottom?t.style.display="block":t.style.display="none",this.oldScroll=this.scrollY}))})),window.bootstrap=i})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/level-zero/1.10/_static/scripts/bootstrap.js.LICENSE.txt b/level-zero/1.10/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 0000000..10f979d --- /dev/null +++ b/level-zero/1.10/_static/scripts/bootstrap.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ diff --git a/level-zero/1.10/_static/scripts/bootstrap.js.map b/level-zero/1.10/_static/scripts/bootstrap.js.map new file mode 100644 index 0000000..64e212b --- /dev/null +++ b/level-zero/1.10/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.2';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null;\n }\n return selector;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\n\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\n\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both

;`N3IbEXUi!6F0JBqo%RoF0CH zzQf%#zR8BNrEl-Uukw%{Xf<-@j2iN1GrOf>@&T+G<`gW;r1j?ebk60nL2o!T*{?tf z7mP_VxPJfkq$pk1Y^lYUWqR0Y26IB`72=_44Rma+GC4IRDG|3((kaK{d9a3+M#ZRa za_XgIAO`2ztd={L-`eG&>|8H35na9AsK-J}6MM%j&aGg~x{_)V#lS3+7ZS>FQ5T}f z1cf$e6HW+DG}GU&ly}?6f`=!0nQq~`E;GvUcPX1$rPwCq|Q8E&^ zJ5}9dtfb^>rkEx}WooU@Ocp>6shUIl@#4OR=xQgbw;s`QDb>qlProGP)KZF=S_U7J z;t`TZ?H_xxiVBqzejcSpVz6?P*~I+0xjmRUJ`fly)DW$@mH&dhG|GphL3tsaQpo>4 zvk;@$(IS&%ZC5bWAl2o}fG#~o#)a=6aifPj#t z&Psoo9z=)<71q!UTc6LML^s*C%G~-3`iX;^HZ8us^`32SoDfKQZKBG6ehLQ;Jdk~B ze!z|^aF&%B)p|f9WurO4j?=5U29y2|VO7B*%_+HCY;ZCi_p=k;&Lw$S1h~P9Y+~m((rHx)#Cpb(RLUhj|Eb z&HzXeZ6l`;tqNTFsZ7H})T@uYYyz!m?*aS@7MP(C?D;;n0>XtrG{taPUq!BSsY@zi zbR>qMJkg9cZwht~%1q@Q{oS!NnTyLmhfE1BVzRiVKp92xTQV}g<(3feJ9%XpR#v>7 z_|iS#Dlhf>6l1GRfzTD*IT$Bpu_(fv+Ua1*GvXw)T#XKs6@4OQZk;s+3xC=tBfB%q zW?_%aEqpRM>p#{=ktk=7YkAX&o9B$qs2BXX8|V??J?MlZq+h%)hje-=?;*4xByBW*1^NJUhNAw>$p2OqLQ~nkXgGyt#D*dhVQE|mrw0WuiUt%T{iNM3s9N$36PZ`n znEFMOMaq9cMvugW0LN<(2Z@?>voqsI6D)C!OZ6hjn2>MnG!~c$1UxKqEt4$|LKnNg0_Ks!z=~Q&r@cxZ(&}Wx|e@C z&Y~}10#dQ2g~=$Z@+Y|4iX|l0?yvwQt2#)tSAKgN=6LwgK6wTOM^C=^Or-Tk%! zLK>evp|)&cIynCzo_6bn^vX|#b=?sPTD-I)tJHu0jsVWjX1x4{>3dS^ zQojQ5nW9zF$_)Un>l7fb7JrTu^lrLmy--rt9MXdg^_4|RE@ziDJqIs)BrF^=vp5M! z9au{H7gDPF>9-u5jx{PuauB76@etyr@<9if{-U1Y{mMMe03NcSN%ZJ4tC zI9>bDxFH2mx4LjqbS5Y;<|~rq#Ai|2D6ER!A}e{7cCK(F&>HDmqs^IX5XsnWQHvH+ zn@Z$aTED$zS-eI+% zkQZNrn7=I?p%!iPrv>8WgPOvRPK72>Da6!!!h#S-qXQcpHh z#ZR(k0RO1%_gf?<}B;J=_whF+i11f8xK0pRLY-Z3Ihci=SK!-^Jc}3l$w5JsI z@>*0n9^9xrp18hxP)wTsIj3!$`%Bm-7-PlS*GsxL83FGaEqs$pRh0ABQeu&5jKfIW z(;(3pV$nS3V{brN>}%_ik_^AjdX!L`@_lX9i>7CW!|rqpmwZ{!UGX35*erG3AY@L8 zaLd2^l?Wf*TO66>h13=Zn64Hi0Xi!AszA?#{~AB2-AQkjE?km1mvIZu38LIs8v@95 zwrR>@a7Y~`!w%f8T~ftTPdOKee2;SenyDyXc(;(!7UJ3Cj{5Wp35=oj3-HddJO2SZ zcckrU%#*+rm8iL(Ve;l_3T=+CQFirw&xSd!10_8@rUaHpyv-%Spsm5!bKlt*d1X{dw|Z86M$%YIbCSedSh?x zm29kFDC&>blWY7LPI?!mp~(y}Hfd&+Afw)0=j+Hgekf^UwnsUJ=<{t&_n>QZ9p%YP zIwj4$ZUaPg;i^fNLI=Gioy!U+=XUK-eZ4!{?1CkjRA||}%f9k5=?4m3H3n-Kg1G{e zE-OV~SyvAJwt2O}N=eb2lwT3(Yzd&0E?w|S?NZV{Z?z0WNYE&PnWq*CmItjC>NT? zCa4yI!PJED{@M+Cdb|N=-qG0F=CFzEpg>it=3WE16}7WK*vD>b)x$oTmQh2HlmeLn zL!r12W+piHkBjDZ>6YJ?(1|o@o4t&;^f~c-REhs@V8X zwb+*1qY!@Dw@=2RFpX4{@j%)!o2YI}m-#MqK6yqiVz1|i{C?z|JJrkI@`J+2;@ zKg5TWT03wh4(@Co~lYhwpugt{A}msW&?K?3~$3-#q1a6yd=2hb3FR^o5erNd>r^CU6v#7C= zBN?scIW5@|8#lOMpuz;#?;^U5^kk3Qz8R|6F-isrEkmIeQoU5J`7QFfABBl-UORC= z+NmUtYSzOqymxW?%8^y0ehW=#K(TKw#%p?!sDrdENI&LWh`;Pt8?}bLIkwuniicE%N8u$v>q^k=POhC|xf=YnCoeXNjq;|cAh2F1On|| zj_c?A2R3E_Dmuz-eK|Y)yuc-@J?`ElMFsUC3njSfVF>^VpHP>x!Ly>41#pBNfR>+8 z`VQW=-A1lSV4mGy4ntmHnN6}xnSluY7finXD3BF3)swJsBt;<-Wyn=0Ca5(16vMxA_y|i&?pEbeaSwQH zt*s9My$`^3Py6X0h@IhXzx(e#J*Iu?6P;9(irH%KV)Q;sEFx(!K^A{GOk*2<^35Y9 zUFzWT;NIhg0C?6#lR8_jPT(}`lCziQE^+1D^*O3)C}NW4RBJ`vcN^DHLH%4!o~`ju zn_jD{*-S;=rfs9>z^3orA!RQ~F-D0BR0<&^R%?_LeK-_6TA@y5f<<81XhLaY@-XGE zl7Y@34)HwT_*8PdvV=@Z!7th^+&=4)2xOjrhAN;__%br;Z2Ff-EelJrpn1-{LN}@j z#Qo(>s)cVt`@5)hl3EwJoy4rD&qb3Rb^pizrZjzP-~J${a-oP7CABu}K3CGIA&Rlz zEW_kgd6eW&Mp~diPX~ppKQwEUuCQ?-uzG0{$2$ZLzftCW^4 zslfQACWlUD73)`|XALk>>3W)2)xJ~eWy+rsw6kZWohbQ z){|epqnocPmCY0)+@ti?AEZ=koux)?$>e?P5FBC0p~;4v0WM-ASgGs#zij%>-6+9% z+ew!6!95PJO}FOfsAoO;rC?MhI4kNNQ&l9#)2s!6{6su|5^h|~a4SD+zOMbtFtW7Idy})8Vrq3#g{Is+`73m3AVXUC(du#qn}gNlzVO4Y5CRhIQH~mhTvc8%unYmO|DgI9HM7zPl0S=INFk;F00Hbno$R zqjU(@j24g=x%=AY^0>dtYRWdYh_429zfEYZ@Mw?TW|MI@>}O1qvhsxTBwA|4G$>HFYc05vcS4O}R-UwWI@mSR3% zXN?+=KfQLA4zrc~DU}$P&+1zoO5|FXW-8@g|7z=`+PU$+M+5hQ2wxE;ioN-v-Wwcq z_NAXKe_wm1Lp9<{RW5q&3owxsWiF{B;EdOy;-PR1GBADa1 zZa#q%Dj$`xhRpjmU7fG#k%>wVP#y&XB%R-qMP*q;4*UxQ&DgT_aP_d z%A}B%PoL+-Uj^Q777=Z4dOUkC=YbSbFXkwF<)sMnisz4qtJ__P zs)$1{l(#m>%P$1B%pa`5*Bp)NW@>Rfwh-;e0}S$1V;0nfkLhb;jnJzuFTmGn3fw zAW-z5XJ$0?GHDya$6&^*IGN^7fu;&)ibWi#M<_TWNC8yyP)uUmR+}oT<_w@xSLRwnoi|qJv(vw= zz=W2G)E!w43yiVzwiwG;#R4YDo1ujVK%iBO_EN?Rz(bgrB#{zu>&E;kgoxLRiOute zP)UX?Phq!gZWgh2+NTy}%w1nMtt|#~l5Ld+46HiTjz*>q<8xwQNS2>%fx1=h)P!gx z?23yT2M&}F-ysTo941|X*qY~^i5^FQ)BnFZ;wMaA3nGAkKes+dFq}+)g6KE~f?lHg z>hx@A5cbi(pLV(EM;0LT73dJYv>T^8E}Ia3YK0 z>?3j5UD4uLJ{JR4X@95OE$m}l0U@(2u9Y4eivu+C1ZJ5Dg*aCnd)t3x5~oueKf_=S zbNdim_Lp;!e61mN;`NNb-Fr&x;|WUE$Ej+Cc~ukqTlpUujpn?U$@c4Sf%bCrPcC7i zdE^HtxNT?s03biCrmd;-G+T=_KDoO^Vd@rkZQYyT#qV=?b=-%4I$ z@1f+dQ8V4_K$fKybZ&pL40Vj*9Gk{&t|4RaXH~A#WC~@o?qj?vA;ouY-svIG&K1}4 zs878xD#Yn{n*^F}GmuT+E zeGZGP1HqR~4uEYX+q1=StoOQ_DCl8d;PjB#CVe=;CgqDX_4#Qm4>@$5T0^tYT~-aC z66Dp^i6cuu0=oyT8K5G}4tGP_q4pngd>Tvm2HB-eMGo(KX0GPv|FM7Ou&q9dbp(ZI zuxY?%PG(7v(h2+0hn=?o1mv-|8i!q)wZA}@(m_kk*860DyA6Ep?=0Lk!N*}S(C<*Z ztxt;FWr)n);5jKbT>0(k2ACmqel!)LCQ4T~&tb8dDMcR3atC|pa^GyM%AwcGFb9vV z$9TU8`QAEhq!$4rNgbI;rutvlAKzP()hb-AQPwD zYU63ia57Aqt;gS=nTW>AlyE4`*0nIL76UpLKz;)tT~{0g)2YA|*f#Zs6BPy$=!3*r zQ)AGCx`EQA}fjDW)mu#;y)@paZ6 zD4x?~@FY8X+>|J_aehKZ9*CI6IL~N>sM=prXhW3U)sNsy?X&u5O45R`_6{36zc>OW zL00DVM;i~^xApTzmNkqWIczps9<`37)AONDqZan)ai(<(oM~Pldrk?vR8-QSnf{go zBajL?*|C(JDkmDf4qJ1?2hd@?OcdKz9m_s(8sP>h(OT+9aMWyfRFrX+!T zsNwLRTO2=j83&qw3>>1auX|YrD-637-%>H1(mG5%Lqkb`VQJhb()PX}xHWJD0A&-5 zu**M_%_3Utn-k!bt&Fu!FI|pLLGuGSE9XHa%IFi9+u|9{xIf8;fzC!mDz6e1rZ-$} ztNm*@8{z8w3dmAIzLD3Vv(r5tt6a&hOkq}W|u`wDk`E9isgAgw;Q z#eqAavhifk?H>y|$f&yTydL~a-+EqX3b@>~Cs=hV-nLVKmJKpIjM%HepZ>#Y8^0VG#zu47(|ndA3ams;Ab_1v-EOBJ_&(cAo{m zwP?oB{CE;+G zwn^b)pn9S$=JHnyS&mkfa}$H+V`;XYmK}1~yhZjMSx)W_>z085<-830&3|h2>?wnD z+2DUzni#?@5R@#iy`aagjA-wGd1UWhZsMnrL~-#SoQDbHITb4%dGo_*N}s9YW(x%C zi&`lonXE0{q2*{@(grMA$gzOh=(@iH3!e1OOi* zDdoaaG|?s@2=E9vZ|We^yP2p?t^1BHCb~fTxu4VNkI&UkFq!@@?<59NRp)P31q5IT zEe8!ewl(qL2$c6tDK+-1uI(nY&x0jRpKwh8>@@-SobzL)Wp(%1xVn&e8&DC4SIO+! zouLbphMHb$??k@Jyw@N*&ByK;O8Mo}^h!W-C|OE*tfVUtGKJi?m37ipg6oFup$B-` zW`pU_6D`Ys=u?5>UEw#isDiglkrPG38G5PkyxCqH@&g6-9?NrJtc*0=ESCGd%)h%E zA!q><&yicbQBk)^gbpU~893gEucWnliJA{C!^e&$CD?FHk|j$FT!GmOCf0*zTak~g zBi%EWKUN^Gq$1bcAaCJHxm! zyG1bi2Yw>KG=bNmMtsT`AIop7^cZa0f2BtcRLt=DWfv^DHlLLK1)j#um}8Ru&)_iW z5g=X0#RWg71Gr^k&vZVq>kwfY$y#DqyR)dQxM>Rm9vHD`IUd%;3EX3X!ET#rYWNk1 z5*yFdf7gYyCUh`FaR5B+S5~37t$gCu1)74@*%mfMuhw+xd@KU%=M20v0VPDsnEN#g zb&>)~NRXz|*lZt3V7j(l)pt{@g--bs;V1={E4L7QO))-J3dh-#9$dRuM6V47AdAyb$KV9lEDbjW9 zQ^Le5@vM|xVGLHFoG2P)lA-mRZaUQPx2QO0>BbeGj?4(9uZ%ZL6fF(?%y{kYy)e`{ z%WcJZN|jcS>CY&%f^X(~X&ByG$K2E)-(*OT?v z3;qj#F|wnDQBIYjPx@COp$Qe;bJnWU(!W4Y7zT1;2eXIPs?@qCK`CnfOCJj0z|F#D z%%7f~>CFu`8PJ4pUW_Y+wEgDY$ScMhCnJx4E{;QZYy9&R7BiefN=Ywt;#rOca0-?-in=eoTVbQUf?w6jm z+d$dZtZjCxLSO1+I(Rcw=h2~oT+&XV(>yE#2pbMo$k9CA{~ezY77I{nxkrG3CX%}1 z8TX_Z(_DBK!U zlVM}bv3O7{uD)6gW3zh1;KLHO)Ma(^8Xo15RB3P3TYA)`!!1anW4sLV5vJ%xwue>L zcko!q-qz(HwvDP|wpWTLj9Fh-I)p%bWn+QEbvKU1dR73M#2(8(ZP^DXT&W4h)sZF5 zep;F*2Ov{1H5%vCn0+@!0M&$lCqXt&F=ViGN^v+| z`|q47x!g}R${~iW}66|MIQ8gfz62jn078B0(-_`6{gXFD zY|yIH4-CT(wwM3bJ>Uc-`TWSdvQ;Ts8Z4LHp=#KqaPmiF9;ilXOvMS(E}>4H6{lPV)1GX}5#I4NLE~GpVHDuS-JKtdlSFHVC&p z+E2ysdZP%-RjYtvuPk7g46xJ@Ta&_$9TIlJzgeL+@FJB^zbZyn5YotHx4&i#yiaaA z&Ab@v)+yG8;m+GI{&&m{nH=5obcp>WxOkLpjOd8Q{ciYckOmw#d8S0HV)5wXPA)ys z2;jyk{3^L=*#JDPEea2f(;vxS1=EGl?q^SdXc09KrZ?>>O_*cF=}QBUYBs{=COa&d z<8?PunO=@s_Zc>`T{`{Q^FCyuFg`|n@+=%Pw=a{(A&{j-529;RPPrX zR`g{%ZsM7+|3-@*ruj3E^*d^lC&$C{%HO$#ycMVY3gh~l=@{(N4)NaaWMHaUcQCd? zg?q~mN`(Pvc-HyK1qycy!xm`GbB6IX^Y_lzvqtR#?LSiEneFS>vAJVq>^pGN24mx` z4f*D&h@pifCI}*|pP<%4&%JCd;1EeDuksQ+^?1^)RvQk=?9pay4VNE?ShS@J8k1D-gV z4CFBwCT-j2LEL;}&D?}$fID_1bC3ZZBKza@9Oz_b zo^kPzm7B-GyC(;U#agV!O$`D1f9dgT78px<=Z`fkYAiJ|yMek&#~qj^p#)p4Qc?01 zz}wyw=`&+#12u$mOe8qi^3o>vk-sfM_s2o3q)EGL%a^@zgIvyg5D`}y;UWF`_$M2q z@0vEHVAk9_@x>zzY#)+a=1VGGE2p^#O0j0K!SokQ4op7tz2&^2@h;!%5JwF6e_`wg zAG5U(VP>H}o5ftqC%Y#U&lEKC*|Y|P*%%dRu_5RrN9~y!_ZA8%6!ICHFZI6BK{pX# zB`ehg1{K^O)`G9?8wUINuyOaaY!JX3QJq7i({%O_?GJsIe-v-*DZw4gR+1_WwF^G~m*BX%Qipm~lTVi6jg z$wUSU3~RSQDi5xm1+ah)gU5#g#fwoCa<+&1O&#er#V{sq2-$y(rMy(6gVdNbUn+{r zv4)Cs8Vu!J$4tN|2PwOjXVBJ&Ei)Qri0ver`n}=SL;j+59Y`wW*<4avKdaTFM=Nnz zCut6InDL*7m6;sq+ACFQdj|Wkytxhjuq0m8`%Ty9ZLDM;GfEcx1-==XUvy#$*$<+U zvniOD6Sc?2c^)wxMfcP_cO5lbljS5-ux8{V#f6nJwAvxKZ90l zYon1)?t%NxqC4(+KtnXe_(xF)lWPjym0}bStwlWaW;(=>O0iHfo<3GpXZw<|NF<{o`I(!|L0Qgq6g92EN_J*?2i>)=V@r5{~UtgPJv%V+NQW zk|v8CWh0UAGm05uN;0BsaeZc)g~OjH0V6gpfN>I(XL`gGSHK(q?NoA_Qp=RcSC*%Q z7MJw-{!Ub) zRqSTlF?!eeeJr9NKP@EKKlgU5>ONa%4CnIk;2WVold>&$j!y=oqS+1|Y%Bu96r(og z6~R(0X8I?WzsLaPuvR4bsXZ_@E3@lS$H^tmiym~4#PmV^E0nj7&~~lHZ`yn zhy_R`H1iz()(vOleWJ4ML}R>UgKuAX>Jl*@^RJV73>g2TCQJfGEOAjE;Z@-JX5ZD* zIQQ7Y@pahMdmZ9`)tCg4S(tzB+?8(QJW^k%)%r`+cR(YseF~?wYeV=sF02QF(KiUA zzuEjgvid>)HD4?T@YT$~s{{R$@JRiD1+O%oB5OnWt$uqG;37M2B7i8COu+0^0tH59 zJG-vft3y}cj7H@rxz>cmhn1uxEaUg^Y5j zNQJ>6HInXn>O~#~FZae@tlhM@!1Nv)g*uoGDn%uDBhCs9Q}$ENUd!}(MBx_=4aD98 zJyNEQPD}eCpu`^d3TkxQ{XC@9T+?oV$fy&)-fu*6Y=_p=Kr|;YjNIzwm-;7Q)`|cG zX7Un|wIQD-C3>teTLR2p0zgc>5$43n0FPn|?|QqS=Ihp;J8&%8!7#Tpx1i-+=G@}% zgPQCkrp8$=Bwywblb?N6Y0$j67SQFs7-#wOm>aH58GGUdkT6e3H$R5N_Ys`GPsng(6RYiRG zKW6Z(%r-NCMB*7$HIgX?si3Y}PIOApV+ULM1XVwYGq|?E-c|#bkI;cUm5dRGQaTwC zbtv%2RpkH*-elSBNH$dzQ11KR1o!iL zZ+FjKbRAx~t=)?+bM>F@Z(#PF@myYI-S+(Xz0Iu;DP<04kj7lGgQT{1ZW<;+Z%@Yp zG>z|bd$9)OT>xT)obFS{CXbtwj=})(=A&Q2hwuG6^E zKf|*A)>yny7&`t3A*wOMe+GnPp-|uVh;e-9g}NYxcS22-5R-vzvNw%mXYr(AW(x3tc{2uYK+uC5Aj= z{97LWl|Nnj`rU>G*eQERjl>--HG{{R9d39{KVDfcCpsH4#&H&cCG{E01b8_VI4qtM za0+6W84jaQJ7Q;%Fc-WSzm78RK*3FRynIKo4gdEN$bB$slRAIR6`;`2E-G9U29)VC z3e6vA|27_Lq+{g2WMitp$g#-o891D?IK2$VRq|dLrSSlpZ?Xi+@pZQI@v4OKZfm%J zyp#DQMP+}vdd(O3d&QdANf_d1odiAHcSm7w7gKaUW^``1)`+jE)s{#kho1wrDGTDM zkA*A`SD-K~Vudnd4(Ix61ehc`FT2K=eVuxh@f)+)x%ka{mndssQ)M7yzpSZ43^O@-s)2EW103f`J|cHfxH;DF!I4OUTD-EcZuGs)#3=M$1zacui-nj?kx6 zu*Zw&f80RkAhXw!Z>AD|hpj}i%?a}{ru{*!#3A|^5ut~iMuV;x$^sp+5xMGz+xdsv zhem1tI%-15qMAe)A=CHszkZcswC6n2hC{;{4>y(d>qh~}@TozCLOed=Kx!bAnEK!A z1P{GQ-UP)S?c+ef>fNOQv&JgBX*b&9P!0?;VZxTOOZ78LG*0%erzm-1|H~NC8D86) zN09dfyq`$#F$ZPwz28e7%32+{-qX8SV@~muY3SHqa0=`J3tUvcB&)S2#obTLF-ltl zC#=q?D&HLpcGr#AAL7lL0oPyUg&P_tu=2O^$bLqyO9O`6^gXIG7h4XW6Ld&RmKhAY&P*Z{X;4D|7gz=WfIe| zze!AGL|X)W6a891;}if*i`7LK4`!9AfC;XJ$B)n9u7_DZzK-@y31A`dnhu#{_g>3L z%?TUtsEZTM(p1PYPeM6*VIwMzMgM81ltw%>sTjk-y?Qluu<8UCbIkqzR6;t++&OMi z3MIzyBM342GG(GVXRn}OwM~&dkzr}K{QL#HBlh@5Ap^F!Sss1~mbVxpdT@3IN_`x2 zFx0JrLY48z{2&GsOgp)(kK^0DR?hT|(`q&T;qRwX5}oEku%@Pz!$`C-nP$ubD>`fA zDUWDO4@*9QHtp$pZ!;f{2WtM*Cr=R##nNCdlg`M?w_gxO@uV6D*`c*A7f z@~3|!h%t!PG5v_&nGRcgN;MNh9-s>>lur_4p6n4*8l_n@D13r|Ihjq` z{*`JCf|&Fs;UEz9Ad(QdbN93ndz>aMfhd#Fhvtrvxs1ZVCnrF&Fu692)LuP0htnd@ zK0w+(Esurfn~^QEn}RX2J1bU$03==|{JDnY6S4nXXkJ7YY74y7so+DH1*wmauyOqV zR=N2HO&9Y!l%vNyqM{U~Bt*fLxm=V*I)sjB_j7INAvr3(ksI+L*X`9Tb9?Y z;e)d#eijVWqJZr6jbg4sq@6I(FW^JnqlP&;QcQr*LBEz0AA2G*d)P?UXYpGSr1jpREUv zk#3CZEe}MI#uZ-GjVa;ABd-}U7-V;cz`k}Rmhw291q*c3pjQ1B{$0vYzzqEjogW=J zjp}o^PewspSQ!uCcM;agc>Lt&S!F-!hl}X&!j5z>Xp~6)?UDP6)zH(8@Jv`{WrB~} zBWykYumyd#e9Jblwph1{cvNlIwPt`TqVElcW@)QEZQ_hOhvM;Fmu@fr|S5Dn?=j3vg82B)V%)7Ay==lSBN>*$sb^l=L(e_Qfo8Jho+`0gfe zg8UW*w==vp{ie~JZ)?unT=x#6oq?2ZaX-kM{gEF3?e34+w5A+=FFGGfRYh!GJciv;cto8K7Oh>O=LdG3d^WQ+XmweRO=iJug|Q@@nh?nk?^cP$?O~?uNh&X+gXFP@t08j3H4V+Mp|c>Ws4f zk!iJEhD6QYtdi#pyGuk+IiPS+M+A}MddnzefkjpudHqA${>lhB&cXs%g|Qsk2T`|i8bCED?@XxT+l+F5! zGgznfes@YR2_l|~_XV49s{f)BYr$SPn9?;5oh7c8zi@l(cY`?B6^8XUZTv8JO!D1g zmyB$bfv${SX95&l4;uL$K0Q`%Y)A)Bx;+-9nNbN4?&W@!bn6%8t1p#ZTQ`Je7ANQgdXr`=?kiZ5>cm85KV12!=)MGL_i0iNyKIMPoWDQJzxN;D(#CMDBo~Gp;pX1GI54mStCtpF`9bG{XA)s83Y}tEQ&^6j$R{cGAl-u$rHKYY^^%f))`xTCn`q zRhRp;keEZ3pVvG&Q>c0TJkCqxEb!{CZ9GbrZqMq_%ju|QVz%zzL94C4A2cKL;=Ia1 zA=Jr`71l?70V0C?h}0#_@+3}u?%xhG*h9yzgh^JYH4n&ME+oA@E)G z$B4KZ0tMgH{=Fl8Vka%A%G^?ippLnsg6zJ=n3>UBk>5U3bu74gSQkkG|e`6nr!xHQA ze%~h7eR>}+UI+@9a~5dBzQf_5yPrk_;*z z=DJ`wvcT$$;&~iaWf;7I{Ca=b_tK^llhEniTL>~_a`HKjWB;;1H`i11wj+nhP|!DW zk%{mB5-gErL+np-KO(AtwP6y@0&m{u=k1obj<)|#M% z71A50e#I(IlPFV2#bRFkJzaTa6lbZAd+mb_+nd`x`0TPmKS7R)i}b zO~6>w3Xz(y@!IEZ{>m}*G-PhC8jN-woBex*gwJ=x?a`E+kCE%cx{Dn#*3Z$VhmG7u z^wu;{@__d+fOr+l1e?%U0DCla4v$a(xTU|sP0|qXYs=TQM_;Ab*8RsqlYo3CZB;xj z77>WUY5#7(Rj#~~d?kAbslzqDHh2vi__7~)#9)Sqm3|w6=t3Am&99S{O@N0&_*Z(@ zOw%YXSF@bAMl#1$oh|M^nVDM=BK6}H_OHG6j2m-j{8=1vr6{ahvgJ4-z@sC;G7l$c zKuDT`c_Pn7Av^fQ@mrA3VdNUInHl7^WZC%4+K<+L$znqg8UNvr2+fL+Y4cyCJ?!Ua zcg!cp|3t^gU?eOIS5hmDb z#H&)_dafLYQz|`w?1HD%hj0-F=iBYGhrf$_)Iqp}PBP@2g3m$Bj=Gchj-1@CD4U$F zS7~o%1Qn_3->@g;EuHf1P{w@>VJQ8lgkFl-Av&gSYQuy%IQqhI3_QwGHFZgF*%FZ) z^20%BkqC)w4uRLK*!Er#WarR21Ln%g?fPFQC(f$7*ZlYbk6DeYaTLP@Vdm(JlIxh8 zu~lBauuq=NL1(f%F@nIAa9J{~qC?I}>&6bbwyrmw)=7#5b}8oc_L8)wl} zpk)QM=}~VeY8Jn?@tePvKxUDNE75Q0N+hu{$09fG^NyE}*A65QS0Ey3O0-Q696yL0z>zq@{n8x_f3F&Yt}G;n9#?p-bO9EXLn0WEyjD6Bvl%c*bJ%>VQntD!m&JV6_t~ zH9Xc9Fj8(i4!6smpqg`!erFl`kna2T}!CXD1k0{i=Q5##EUI4;^PTCNiI-p^; zm<3WNBEX3FRz!#_G_Z%(9vI10f(q2*`%f!BDHSd?@$JsOeuDQvCFDGWuo2Qf)_YLi z$eYsx6=cQ0lq6FpC;mXbpg-SnLN#Yk&V>FG=QBzCH2aqqLjDSfI<9Kr(2Gl%4niL) zMeNtqh%}W06CGS%t@Ie?ti-@3{rPTJ1T})9fC{L>1w}@-_#(LIA7rgN+q+-1qw8 z)I7EP>H3v!i*m5dYbKG)o-}dpzN&7c6Zu7g}+T;3;*;1=_Py(~C zBy^%F?A6l10{eNYVcE!B<$$R5{Z)BTcgtbrQ>E6f((tlf)%ZnS9XYrh?mw z3UOfw@B51v%Rcvn_#6+H{L7wy-uxKo_^{&j<-R7Ym;Qb0Ex-s<+sSPWdKu9s?a3U7 z#?7g(ftj=3U!f_@ygj8~R~sb`G0=MaFK(3D0_|WSVj=f_9+T;a79?gUgQA4KQ2Fs* z03Y5ng&o8TK7S(Mgk}sRLTaQ;Xlc6d?k5@6B3mQ~GR;gys!{(zir`T4#6D!Lv$;h> z#odwf#K$p%Q!D?zJ-`+v%5m*`w#bs<@lbf5T_Y0Dyy(x8@EyjDT)BOR`JV@_hnZM< zz^O-x5j4zW5W&74DUrc&ssFhH<5)Qmv*N#JIbD%cqs1F;Sp?B8tIUE8Btr4IhlU6_l%8dG@%p_8L2F$tiPQUbMz=xzUv=cj7v~n=BXS9 zO8YKCL#z5}89^#fgK`r6LeCq#7+g}}gifvldKoO{IC3^}$!OD$_)EC{B&NU*JTr3b z&`b4%UMIzWT8&4rGw#dra6=HoRcpA3_&gwZ@H-IY6+2NoO~;M= zJA2qs^0e>qyyL5RCnzgP-tai;>f>FTvwtnCjPNYQf>D_RC+ttgCb8i%=)5h+OtGK; z&^qr_XvIAlLG;9IE2e&KI*94b%4wZgf%5t}{sRZ(Jt1H|AnT|v5-sm@`o#ZC!#lcO zsHbSUWfr9oJ|*96R%LBC6%aRwCWJ`?Ds^YIw(!2eno#j_posg-#(d$bk0M12VkmYk z4yC3k+Yv3N|Aw4e%2_59V)o07!zUpk5Xr--fJJs4&%uOZ0|dfkk?`6>s9O zLarGl%Fy(3<}p(^R5%^t=ED%}KH!ts;+tbZ^f4DxgFbS&(0Pa{`=%z>{!H~A`&5!( zzYG9V@HbWNF(N3t@&zIJyeASa-CetU*{;gg_*mM8YsJJz%{1OZTj)g}NoIdvct2yu zQD>WG5*WUs5Q0%KbP%HIrgShC{k9td8jpLXgz=}=k>G&dq_0a#Dceu$wUavL#|-_P z&+NuuPJq~9#(+<{O%y}xPOHy%Qu6HXhM3j_40lq zgMn0inEW~zI=u}Gv)n&Bp&qIpE@QyyjD7PstzvuYvz1 zvYU$`8;7cuuT8gTkFu?`jzNxu*X-sWMXFh}t=&JJE0{Tv9)oP!PC3>S_tzOd?>i{H zw;83%*ZMI=wJ4X%zna&cyRK$pqX8`Q&#O>J3o-9@#BXi#vTMKoCKwc+(mV&@%KuUQ z+Ws~cdNGDaF%sI!SNmQa;WHYGRM^f6v;1qPm0iUere;Aur$r`_v_XqSa8 z;CfsGrHGaI`Ck@of>_w_2^n+Dfd)l`m?dN0egs&49*Vw)R3 z_lGB4k8yELGi#I9E`#bNc#siwb7DaEgzG=av{HP|Lu<1=OcOZ@oKW%hxkSzSO05sR%3_vPLx7}a%Bqi0c(IyFuW6jP(8WV zK~Yl*pf!M0aMg5kmX+G@HL&scSDpa)fiCs!h@;5VS|2ssE2{ZlpNq+adh*DApn>0F zz}FptL`MbVvViYGJFk3Fr1_05JlYAfOa6AeI8pR7OpsT;tItn;!*Wa{IXAA*9F3t$ z5cwpG4djaWx6F1iS4IvvyX?Zk#uVV&7CBr}SY}RQHsH@wU$B6NsA(1%0#Jy$kbRD4 zK&clbcs$+`1?Us#Ha$-O*VN;2d&3Afb_$T?p{WE>N*rH|6TsZiERwCEM|S%g%PT(e z9`Vx|2x(j!^4$U4n6cOo>8VcM1maD$T$~<3b1~i;9gPGz*@YJH5O+2>(BHh2x@2YZ zj`e+*cGSva*l5HiTMh%yB|Jl%MK^p&oS=8pOhk2AUs)uTsednSbY?uxUqw(^B$G^` zVi;x7mp4@l@%oNsd2rrmGDn;X;zWEGEkgVn-!IIMOP>L0XCQHoV1<{FG$`l2dAfBM zW`Y_wp_+>DgUKhW1icdG61&ST1%g<0p2 zv7e8F`1d+oD5|ucfpQ)dr^Di*the2L^eR;(zxM}CnrG8BH}@ka)VBP=;WG?5+&Y{D zlRNC)-=*C`lPhlMOIYvH^KgxAbb=%q`0(<7xLA0%si7QRc5#k9ZF;~4w3cp(okdua zc^BuLUg&YZMPHnB2W;46JL@d>LpM+Vu#qva!|WN*``{v9Q7QPbe_%b@Es6eZ)|5lE zS`JVynEQ(E)~$V`1z|WtOA}?!#5|IEPO3kK4f&_K4v9ce6gL+5SzsoW6amOScd>2% zIiR*qs#n#0{o6;P=IosxK9)4)#V)0N>sAVGICIZR_2FiE?~H$AME#Kej}T2d z7GZ6lJ?KKMg>0PCIAPBptRuvSMjt-$Gft@egW5- zWq;Mdu475z^Ytk>T8r!{&ePj}RBWkWQ)BxrfGj9L zwU0|3l(LcE#<-n0wQhS$qmFk^}emYmQ_?^B=Z_<^-lt{5(>z`B+!$cLw zy17gQ0-7XjSg$Bs{)cG6hR(rrR=P11ZX$0!W4t2g(Vr)cmlz zjJ+;lb?m2Cs2l!Wk2}ONvQh-(hDAo?`#7-vC>a5hWj?2%f1B}u=|Hb@@HWe7A`jum zwJK&K_J;H!fN@|4^TNcI%sNFKZ?lF-yz^Cq6%AoxQC~-T3#O0`d z_{Y(zyG4U~VNQJqi*lxOj-jVsHyuhBJQt(p1*}t(Y8&tCfbi)1Xd1w2123>=lG_q+ z3v=DC#Q*xw?7e$>HCkX0H5{#*COQtU^${Mn7hac4g!jY#<2vL<8eAcZ<-FW4()k@O zUr7umVS1;)+%1`aiu~dx#|zRT+qswZ+b*TnM#ci!_E0y+$2Bhh#DCj!(8&f@g$ai5 z=xloKXJWQg>L!Kb)}<)U>0MdDF8uqT`EzF~ULtGxD_8QKDt%!dmjhtM`lD2AQ1>iH zO?`3BYr8nVgNU;1F-+hMUqwwU9dc|U7_xP)y&kZ`3N0Oas&qQRrnv!?2aX`mkT+FJ z@!ah#>swDaKZXUIYIGnH=YGFSvSjeuRh2m34>e;oe^T<|n>e?r&08cQQ@@H9t;u z0uRu*7!WXrHEJ`oRs1PHVz@gb^zLAyD>WA4kg(yaxaJl>s7C2{7IBQmg-e2AqU+hn1@3jsy?}z89xvBN%BX`HJ<{l zd<6Mq2w(xF-v}>*t6LS0rLuN8sx)uY{a>?NTT@cf;c< zA2mtpFgWb07aeUR>%L46F7PKk<#WG@A8NmB8SbLoN*gDvK8s`;ejHF~#Ff zYQ$*NJ{lh%@wkKg`Fi1TkKE3M2+jc@;@>qQ;d%a>2H2_i>0T$8$)AMl-v2#YEp9FW z^2ivbB{Ck;gyUn+`DL2V&1`-yfVQMUAIQ(Ge@c0RkrcZ=ke2?H5+E$J;imDj$#OdGDU` zkG)pQXK~+j0my*8k!W53{gCjV9t6RwwDEh$<&7&%Y|HYRtftYG;^%IcA?-g9 zv+jV=15oF*5(13S0#H@PqUe!v+oD21raEoDXZh#&e zt>Z~v;0>2}lRzJwl=gGH$`|Om62$HH;{3oKpm42DtQqU@Ys%47lPO?q?(J0VoL*-j zmYnK|z#=lHu88{xt%ZD61ATu%7R6%uU)9}Q6f?J8*QH}==jF=!4ZmG;7qK#QV3{)| zisR&O^e)ULe-#}YSdT`cgtHzBV(VaMV&SA5IBwXJm2hmw&ym7UfboX^4vVqp+|<1 zgc_JYOUu-~w)@jsXhm3bBCtb>lRgxklcV~HDnEBVV~F??i&-+{|BOGx#NY~IEWR~phDXu| zt7MTXNaz(xkhD(kFe`Rd5TfW?E1y<-6xxEzzBxLWoXznhabpZ@Y=mu9yZSUWnekXL zrnfRDG=S#PEe=zNF0&W;ZNPd+G`qun&U0)8a4-0(z~eFlz-9Z9@I!Q`FA}&|!ZGHt z=m%^#ye&2XW%8mdp5oln4Jy1?_YLh#Zg)yvT4LNph#N|%Z+#khjY=q`Rdy~|vgUhn zI;A$z;xHt*J6~ZoOQ|d%p0I4J681X>-ug(F&9xevQZ`_F%cZTeM4i=}5_S5j<_n^| z7RQAo(@@S=l{^qj3ZtlxS-&vTl04&|BuzAqU(XS2=+-i7k2gP?o~&6(d5Gl@2RDhA zW=to+TkV4YrY%4OnjdVe`9)wkBIWHgk_{gLzwQ_S?F!AhHFgME--y4)*3<)T&9N_w zd`&4x?YXX&nKYl*Dc>fdh?j4kd6%S5w<|N>JyN6Pw?H}<5jC6-;lX{rF`QuiMKz*k7X#0=K;NuKEUqR4pb-7B1a+fvN@0=0AjD7BYc02Q!!Vm zQEqpST%2~v0^SAY4@xtGZ>gX_IS)t@NN!K3m$!dzNCg z*UR&vL{rzGiOPtEe=9S5byX1zAnIq|;`WTc7}OgPhxrl90m&eyR%v2(Fph`8m_!z- zh&A2AjbCC$Ogv)-K6M0u5hcz?Jq9xOuYg5@6DAdjWocC=3z{tR`qtsviZ>4 zuN~F|RlQlUm8JkLQ*hB9wxv`a!fdJmDqe59+UzA!;tghOIu1+*Q|08L@OfW*xO6_3 zlGl_=1yqRjUfCRxyMGFGNrY(3-WYq$*rXedojvZ3aItM=;=(E|6?`6G^A7ALI}or|#0mDo!8NI|VI2h&2(Lhp6iDg7M= z&5S258)M8dX4Kdf6fi0P{lFCdg9qijaV6ZM%9;gDNsj+vFJ^*D+s$BOcQDbwuZvOK zsX`F_J%vZwSCQ+tS$Mc&e)|ZwH3!3}jzer>cj;(r6bG;nCLbNy0tb9phk?NC;TILJ zC+OlB@lCOzCRDXVPasE;+mYI~8LjDe1BjAb0Xu8e+r{FS$yP)v2}$sJFi0}Twb;tb zZ17rozS%`@8*-&Rb8{v$81>*#p8Yy+EDk6N18|M!>|M&+Yx9ZWf6{R%ya{S3dT$4*p+2*) z=%bo^g7#8dFu(m$7k+O6ID*+0BPy-)zM*}utkd&;8+;!QoK!1QfD=kF#Y>8k0HN`5 zMy9b=*9}^9|B_%t_ALI8jVk!*uv((FApXfF2VD_KO^BIvG+0@$a z0OkrO9K~v01C+3&Ubh>C^&r2Y^`7r0Q5-9K|9+TDMDch?HX$)eKC>6xc&M;3La=fJ z7O}~~Gsr-DOo;W^lq3P_rgzVP>V&Bk>2EA6T6+AxQGs!gh~Yb|3EStnQ$cI=XI<_2 zNP(p$EZM3%+~~AF@`I4aHG074ajo zS$4HECuvcp=PYt8vMf%Ik*AspU`==m`%lqOemzkreA8f?nZTo1*Ncnw)k;w#g4b-f zYT;R`6K;fRjV#P8LdIe-Sdnq!PdR;b%vUXupO2iCY|oLU1c{EPSf(0-d9(ssa8fgr z-7;mN)@;fg7uv$kj?oD04%RDLl8r5<>B30m1DJmY%$XgRh$^`U5;e@KMGr)qpjoqh zOhoPLmtAvKVfYR4`mVz3bY)yy*V{l~NQlqdzh1KVxc34+v|+g@+j62~-c>+wb!#dG zSc9~Zr?GM%^0?!@pf%|7L2ae#Xj3D?`LN)Pilr?d3%chJxsNMc{ths8=)F{OI`U>> zBEXBq*Xez5LCEtlMCg5{=8Pv`zyVrRv6SSn7}}g{JmKi#%lQ@h3#kqwh}tWHIqxdO zoL#fh@M?s3yNc*$+`U%$0^F1O85nCP)M(~f=S_3=)P#ymou)Pj9(6wg7l?dXg*);| znP{W|3KDI8(bT7ba}@_`$=HrP_yzTGyf0&{u3M=DGzm$qiBDvpPtcg(01f-=hLpi& zmW?iBY9``_D1oQZ? zW1oPDo`xwU19wA|Vd|Mf+4p(ic@mJh{*Gs3ZAKIIOR^xq@%_)lw?hx&&Gqyx$`KGO zW=1(2{B9XfrMpMqFH-KxE&UIE_-?xm$a0R7H9JF%|HeDgCTIP8^LCHi(ex$IKckwM z8aprs;^Uw4vxhHlSIH#E1i%%^H2o35q+y1=iIqxH`-S~w3{eu-T7jo70xn2bR|4xg zlV)Q*$MDNmo)P19A!neVi_1*(qjD;>KngDaiP5|Mj+J2a3W@h1TA1hO?4$tPh>&^DLgJSZ@fO(FXns#ER zaQA%kc-*Zx(+r;L2}#?Ns(gd)1-sS+p0KT$UmC=TJDRgp$_3^$0 zv+?e0^FH{y8)^CNka5kJK%(NagauNZ1guYZ5<%;3E?a%T>1`QmQm2QMe;>}VcH_;x zKq)Q;aC*t7T8TTH`q0&|D}|%~m;v*xPS*~iM`GSz_)lf3?XqcQ(k&pV!PHcAkhFOaFwc-r)c)q&@oy$a-Ju$&#(Nqk( zQ=LRek&W?>uNp{&&A(9_U3-yFYOX0?E2*&|PoyAV>8T}_r%V$^iI(uq3?7o% zEM{9XRm{R-0JtkO)o>k8a`y0Q?XNh#3s}&mm*5xqx0zli*Vr$PC_#9-I6$1 zCk%Aak{i2FB@lYYmaL}lsqS;GD7XaUElHWbf3 z0k##gPKk}tpXvpeI0%)QMm1Um+2<}cJ~Rx!2%4A-Q?rf0dNn>oX1ng}J(#|4lmRSm z?3f+~G>&-qv~7zn)fcExzHt_#+??R0_?1k1X{du+_4td$6p2LN--(Sh5OHqsxj=#Sa{8BP!g|?%6aDS(4@-pWHyApJSOMP+%P1-oQE zPDsZmCGF*Xp-~yaVM=wxPTgbt7**~srXuVbJupabUI{>|=rz9U(bz zQ0A5lx4vE?HyZ1|LfBE&DlpIGuox%FI!fLWXgYZd?Z?*_{g?5t!r!A&12;{|fW#kY z2d`B>yqpDR${jXUD@hk+3g6@b?O5*Y1sG&Mrt?Pu9w{8#9>Tl~=u=fE%q_SsxRH@SYPvhh*+PRPi zAT3=PS-^ee7~ePq0tBAhxlucBTcfGln$|CcEp z0b|woW3(W&Dh2lyVqzP>=`>Wr;dN&|&?@Mz`$+F)6hgIE^VimPP>kYVpvu~Gd3_(R zV2{%DRkBxMRYu82GOyD~*dOLGZXe}Xk73+GU=C#_Ml5n{guLoUs8Sa#r-Pca9q_Wd z-8_wBOpFwtr@;dteXwxIWWA4SjjO@DNR{)L5f>IzoYbO$@3W^73*-a+Lpf%% zqXku*V=1YrbhjQQ=2Wb^_9vG@bq;nbwkQ23b>;k_>6J7nEQ4NDT%;FY`5WG^M5)n_ zOsu~j%1G$bBP(OVMU%HK{DU2n^_Jl1%OD&83qrZ1cP}s<*mPEscV?8j*xK#*qEsLf zak%*yrq2vCZs8;P*lU#Ekg>S{MlvE2tmb*r^tJDj#sbu-N?yJV3j18|etu)bRfg2G zORNcHx|YKAIjsGcJ@i@~#y~iptV%Qa?~;m(rxAFC5#bNZgEG9$NT`GkHx$Pcv3Ete9|t7Z?%~1>Q}FH7)?!4IKC)U--Zt zHyCDby8D4S#^k}bTqWGo>*?XxX_O%%U|r57SBZt`_S8X@4E)QEt&ZVnPUVfkF?b5b-GWqRb@ zL%c7QMODf;Plb`4p!=0-2E}V#?Uo$V?mXa`#ph{7+p65@MscR{uz>pvniOcXQem!U zb9Q8JSt&LhHi6CU3kTRT4ROTnnBbZ$PZLX8ziA;Y4idBNuTYKp$DCM8uc!V3lx3q9 zh%Jc|2;>!Efk^RoQ*9-t{nzWP?#tI z#Rp&D*At%?jwCe-MM6zaY;r+YvK>+vQZqdrlkOE3O#3%jD?#T@7%~mg6#R)HH^3_z zK~2RCIcM^pRWhI!HCLjAk0?(>1`C9B)UQE8oAt@TO&8&=*Viv^UPd06E}d?#H4X1*_;xHOQ2!>k2z4l8X1ec4@75S_T`{*@&ok`2n=4@(H#yG9fn&9#w2-j1x5g+#jbAQ znB0Ep*7zS<{Rc)Rn(7{V@u*-~#eP$c3ZZ+1t+Na)aqfnbF;W846v-*Gtb52gkmkXm z?3xBcy>qTaOOZzT-au0Yo6S;l8sv>K@OZ$oGxK%?^f{dgyY@5%Lu~E_eoabUh(D!v)C^BMVa5=zUpnVbQV={{jkDa+;Q(}!N`AFOdyIi(URl80r?fTMDZD1j`QXoJ3|`c&T@v}l-QONT zmq3sIKhe*BLazvrYmc$KmW5%pR|oF@QUWU1PeWQwjqR#joZqMpEv`FR$TN8YWGkE1 z`hZw4;riHPJ29cWv8oCS?z}geu6yjV-cpP8UT!N;H&dIF%V^duwyxqgUqUwg+ENvqzVorr#Q!0Q!$L_&OwqXvc?hl%;=4*J?0FcdhHN44lLFu$lbY- zkm<%(2C9T=K34`LmqA|gs17O?@gTwQ69_vL{qDHNl8B;E{uCnO8BTBzGkQ$QWmCpD zbb)p#v>;fcA{&_F=`;J8O>jpZe*+|jh2eAjLOue8p&TMc`-96GnOJxe&oBV&f)!$r zF!>y=<9F#8b}Ag0u^@>kxb|y8(Ey=xOp@AryS|m#<(U@7VuC4kIyHcYu~C^7MXvA9DWj*YO(tU14Nm7Dc-^mGAY3A4j#A z8{FuVyp)1M24zW$$;xO64Az!@rcoY0xauP7h)bSbrJmh6W?E8)1N<` z3^6h9AV7^=)hg6Y?|^LK$l*5j`2%G*n1NOS#Kedw^}<)hIO?{z7TR9n8 z$SUQnb^&!u*-ywA^~Q}`bb@cT%CYe%IdAkBQ{`H9qO3KuP5)GXp+=I!aUyF}?0B0Vj2H9(RA$Cje(#u`8!i6MF7_?{Zk;{e;--xe0dzc7zdb#-Xum`r~lX;0omk91$D7jTo5r`i9{Qio76D= zBLa2VPM!4m67(DungTJyitZ7BVfs6pV5Q;bV&f*J5J?U$3zf^X{Ela={XkAeE}eZ* zhPL!Uy1->-4=cMe8}b)wd@h!;26J(DO}N_Lm_yj!$Os7AU;#1q>34LcgYbZ>p>9sd z6^_8eKNd5uJF&||-aJ1Uys)}XI_OAnWUx$fFH!8#ZlVxym`X*}Wz|iJm$vl-g3U!Q z)n>E%^po(e+^cA?vZYapIADN%3s_@fZhDZT43HOs!p7gg;YC+ZG4W&ynD>5FCl>`m z_!U=_kps^Z`_S&!ufQ5S1H<3OUE!mPg+wV)U}66lEL;?Q&eAX#xCNY0SGY{r@TD>?eL17im zd6A{(MG=+Ax+u@l1ggGWxYi%eRLQjFQH~r3{{7mA$J?$KX+nE=O8tKNl zOjkbiUY%y2u1yOXq3P%7Fs5~nlG*y&JUe!ljKUHeWO$nJYwUnNM{*pY6Jc1t#Ue*( zl?R^AHsF3Qs%lauGHqY6Jmz!aR*jhv#fCce(O@JsJsLS592pvH^oA32pE?{=KjoN# zazZTh*CA$5J%}zdki%o@Fjum`}D0F{S7Z!F0J0ehb2F4#?XAfJBmGY-#8VgL3 z;qew2LXq6>pNQhpH(v)z_uBV+Bby-miLvNYF@(U?_O)pD-+}6E zzx!mZjU;7xbQL3PO?N@yxQFMH21t>9sWOBb;0f^2z4YT9@*hSqT7~Eq!}=9O1>637 z5v|gw+&_!eHiwEsDN?R3k3Y`=1L(EF3|4F37ujl@pwIlh2>_p2OV~hOqskvS$hm~1JpWltT*6CAF69ot)t={CHmJ_3_;)~`so`Xp@hNTv5ld2SVH@KsM-6ZLvDx_ z&3vsObfGfpc}&5N;^HeHE>oYM)<}JhJ^A)~*jC+9eZ)WCmD?Afng{q}HocXxBxg)t_5{Yjrfmi&N zxVelxBC~=mTq5b((qd?vqIEFP{D$np-WW8+`oA&L(aI0?B4nIIpqudbMOa=qnA@Fs zF}s9C`ISM4*Bn?+Cnu7-C(7K?FTL=u= z{$~$h2j6O(>Q9FdZ)Ka$gf+1zRqzu|yfdqFcKikc=>#(R#`tHpLQ-Gv+^=L2jI>=-(+EZ5i^${Uz@)s zW8seUv3=n@o?2A7Wzy9z#wSbJXR#UT4w)+l;WtDV|uXrs0YuBvUnhG66XiDD%b zsUu04!M!0oehz(JJiRd!)AyW;W#0i$@Pze4V>ORk;2=#?K$##vdr3}ZDy-5e?&k5I z2_qJU%NrRRHm}>Q-zHr6)pY;AoQkObG4W*Wi#wcFYU1&@r+!$y`0HTvg8mpvWtk*I z6Td^BPQi>xldZ4O57a!ABcy-Zr6zyAAyVBq&I__Upxeb9O&z?9?W2|Cx)gJF_2EeG zH@I}{vbD!C`dghA!~`a*e2N5B7A|fQJZv3=L>3(ti%BIc#h;8jgYf~_c&sJreGvhn z{zMCZLm|pXH!+hskybc9A6a>JCakQ9!eKVSJ8?|k2q*v_^G>=VT$w zst1Rw5qyvo0M;?)YAGfZif>@NJ`VvxqvT(ani=3L1RB>Ai&a637E2=DcfWuY#M%P% z+)p2N3<>7Wo)9?k9VIEMdZe|wqK)ZVdNjEV zH^CEw(ZvY`vT!zwCE>a1`d z@&eSe7FLQO+xLr7LVAZJ<;bpO5?%o@<26R3iO8x`yoctSGiw*60~x%ps|lx|BJI^R z*5|dkxO^B89m2%#ysPwd=qYFS@-j_T-`vdRuK~4#(I)9rF9vgm@n*+Ndie_n+QWCC zjn{sA>?>SF_TwxHd<7GKSk*Ff<9snLaC1SxWwYI0?%^V4J_vz!8sMbR`Lf*p|yG~5gj_OVihpya02V# zm;vgj&4*&pyb*e7PTVkZZ@;Svbv2|SE?|q5E{MyLp;r?6Uls7L+*sKqidYD8cA`X+ z1~jTC<^k7tUCRJqBvdwlx70iVL!v1YSSdod>8&MT=$yn!2Tw@{U$4i)!1$X5d9$0; zbV5t=Ue=m~&^A83T-QnPu;xDv#eu=l9%$Gf<5&@dG)0ZTM`P#=FbE9rnAHB6-=n@2 z5z%DtuRT2GyGJ4>xuAi|`i^ISNRXM`NCns%1p0FQ=KoMaJ_ z-KdlwWHFwB!)Q5&m|H|U`xxlQ$Ixi%iQ)vo?Z3C){DTnu(SkJmM_zNfBnTu8m~47=%<`UI?KX0~ zPUhvtaVWG2&XSgj18a;Ry9%IXB>hQML3Aiw=YafID*+3av`9#E<{3R(?wL*0wLFXZ zT3B!lT%h(u=7;hmC}C14_@gZW2m1vX&kK8wPY;M$KBQNrCST$5>lthaB}LOFUJx-? z%#1vsNKRFR*2jOt#zRy5=}+5+-beTEJaQ}g`Om2jGdd2Ou&ZD^ke zLMdv7w4*g)I8OkQOXH<1M<^Q1R5QG0S^!aYhx1Bs3AmKl8DuiP{0A%3o-Zw2@BzM3 zf5Ac!a-4gGj7t52-PE?)%9jBahe%Hjj0>Uz9$gDQuXnKDuHmg?`!=6345{O;L`1;` zJnSJ&|NZv!ffMst=n3uS@-*{NebuLzkJov6ud6wv!*s6rafG@UWz(I5p++XHBpKzL zs(0|f95=I%25GD88qh98)&OHm?RZ(phl;`T(-HV|DcikwAk5HseU0s*CG{0E1ySJd)1gl0fzu&=)<`fa)>BV*9vSdvR5zh0`p zwRfo0;=1p?Gu)&3yR>#k^S|7yR3G+=Hu>rd$iyK$>~8&m=)zwN>2*FuVz4HQqb_IW zd6*Im>*$GMszvr|(X_?c87jGTM(|4?|EHWPlv%2Y%eYs zo!Gx8(E4~>xUX%B{Gt5c@CYxnCMG zT#Zp=uEgF=n^ZP|`50E8$6ulVn>sNzv&l;BfSz@DYlM6T<_4L$-&)erEr<5F2E1-= zOwZ50{_2Db`xfJ@FnQYemUFhC9y$$`hDa2*P_i_bQrnea#goUIX5T<~7kw*Al_sZq z{HF@Qb7JBxIsuy|u*De5qL1ZW|GFyK?h!rEj2aFbNLrlDXJYmgkR1EjcUcQl=IDMVpIVECcy&5Tw zaVVxT|E5XKN;vhKfohh1aBZmglfBsS4p`WC7->~et5*Cp8!}2hvpryDgrH*9RIV%9 z;5X$U^)li0?JsIe%DYWP5o+f45Wry!MDJ?{Dts<8KTrc+qI!ydje+ZZ`Gw!YWH3+= zex>^-Vsk6(OMJ?O@PuD3^gL&D<;VQwo~~998T-#U>Z3vY#VlrxoxYh`r}oTM>g$1w zYW}PGUVDR+v0L(vAiH}GMA*D)%gN$Bh-R*~V!XX(@o5i3P|?n#|&U7w^- zd2uDFIlS#y3^v(R%$Q9Be=>_#gxCJ zka>_}KN$cg#1l?c4|@~Qz>9!C$@e#R*5=0z(AncQo)7^Z zQ1HIWc|m=^u3HM!J>175A~jp>r8`Gn7)>V#lD2bhZp}|5ZtgFvd))BDu*)t{Kp|+? z7hxZ@HOb!a=k|(6+>b~xoFG8)745SOj`j0zxfqiJ%;`wHNgiBm)VZUQh%?2Fn-z+d zs20~gt{HyO=9-*>x?AT#9uirdUo56;A)ehsq)l?3WXzW z;DGd!KCT`TKA#R3{3!(%Jif9|zMr;kHlg{@w12TmrS~_Y#pX{U>KaSG5N`CrK*q)c z@Z1nS9*~&3+eCwOe5k-*89GVcq-9_D`n_)w|BCro01P1rCa^RR)x`_=b#Jrb9=r5~ z>|+FoQeFh+zNbK&Rn8!FZNQA#;mO7Sb(Hj#CcPv!eKlP(d)1rTQ~WdSX+5OlzxMx3 zTI_VQR=l-dea|qzWPk_S`VwsN1I~-;E$%%puMkr&W>sF;>2n8@?F{K}NHyjT0-ur{ zBr7c(ttcW!rbho_Z>N^sN0Cm1*gLBhX@}})%xk3H;3--ZjkQo zl0I~UG)Q-McSs2W5(>hhyHljQI|TH7&hP(z<^wR-JTrUtUh7^XK1igU9)uPup&8M7 z6lguu#cFoDLc+KGCIaGDu(RA8leg&1iBD`w{LRX_K1)~nv*OtwxlJO?T6TtJU4UC_ zJd1U^t}_|;e~TfXIZnhf47~rgfuANio{ij+S}-aXnY&sen8?GOrDLuF>T^K($Gx=9 zO1S{gB*mArF8WKI_u5D(Y2dfrDx3}Fuif;~Cm97&kP4Zm{o>(dVG{_sY;r2uXpg>J z`Tzr-pI+xSMgPjCB7;x~J$dLqWb%vykOeMEAU62>Hsam^Q0Kj%e0i1MzrcgLdymJR zx2%>~$$AXv-O2xM)|wg$w9%oML|O&_1AmqXJD?HtHjE(9?9=qV!d|%@*jEne9gfb7 z?UE!zmO=3I`{ngw3+qd4q?V(a}4iv{0$5dX^qGb^PIuaR2}J0Py!Hj} zn=Kcy2?Vlxy??qPnKHYf?>)og`yrxKD64I)bi$l*4=wxp|6 z?-G-Ql3l0u{mNTjGH&%S+DCzbw`Vp4l(w%@Zxy>8Ed+tHVMq0>o0gaUzbNx)!JMq%j&6Xn04iW z4k__WGWt{^=TOzI77*nE4k*7Z;(qhHxKxkBYd?zVw-xyv&OXcjka94kasjjg=i&h> z@DvMuqywpOzvHewKpBMc9EYd(66rYsz>*3c*4HuvHpBjk0;_9@UR6FV%GgWFi#6hUF@?BS&e>-q7CWyU9;ZWnX*Rb(* znACCkjeTYiD2Ed+2C-VGHcW*8L;ASOdVn!Z?VhL78NQOwrK z6pp?P(JYAtno&>Jsl%H9wgN@Z+E?N&Ai`)sFZbvIG%n%V8&Ko^o@Has6rN~`nLbkl z{wUpkT0rn)tLaEUY%$)I{Vv}v%7ho7WN9Hri?$-F*Vyu;)SQBQX^xw^zDTb+Nyaq( zU}0IoCK>4uR7SPh^wagXUSo`elX%D|0$u~RFI2thaBzd|(77nrW$l7Jmtnhb;+pzO zzqi!<7Q)UBWhJP45J^&62zQhd%eZfD`g{5O$XQqmc zg9yO9V}|@jz$NQC^9TM`L!SslUuufL+CJx%)3n*t{LAA8Z44Uvg6#?{K~IXC*`zBh6b?I|EiqTdfE{8qK8re{sxjTwH)1yoxi0H?)x64+)WWFLDImXX- z!_@T6?LxXxbij2+xnDV9<3WnYt+|H$O1Y7Wsf4Avr(*W^$B9Q7e z{rH4Vx+qn9leerl&dQ3tj{*;;DuAN`!pd)PT}8e@%#8iA_4g_*a`3{HJDppmUSQ_Z zW1Kp{5zDF!;Q2O4lY-U9pW9yW_sYN9co?kT*{ec8y%j*n!)^`JTOo#@h9xDT7ZOIC zaMPYTA~&><6daRYB*Z7pM8xPZg$x>BoIG3;It(C% z)kfJ2a6XsjwG=OVJ`pb{nV5s?Ixn4tuz8klxkY)2BKvzxKaRBYU;=OleC3Y#g+%tV zg*}Mnw*kw#l`e`# z5UK=Dr7fcKJf>v5Kk%i5uniwLK8`)YoKyZH`iPF`8y8vF$evFB&3kJ-_+DZ%ae-+; z#n{8bhrqniBcSX?1-Lt?X*6oe>5qnz9i$Nkv5bBMSaPE>uf0hZ@%X7S25gld%iZ`$ zWq8b-?O$W|%NJLG&lN|fQdaM6X8a`k=y>iO^kw`grx#C_LwCB!_BrczQ}tghjK^Ku(N4$~ghV0zB~# zqjj?NrSx_QMAO+VR;4DA{u;j@$2!eXX9;4MTV=mU<7?>u3vVUa==9RZ%|zu&H%^X? zj(-Q;gf^G+MXbokfXR_3NUHObjzgtf^6NR#k`RkQ63qq2KjYRe{wys%*txX~Pjr>0 zZomo{i{!6tirBo^`i70a+vm@Rm~x5n>t1xu)4Zlp?pG_ge5Q;>xh%06O*90I5&zjUu8cF}E6 z{mm$^2kj1sw|xQi8g#|p%3$A0t?0-c13 z73e@-Pjie1muiee(4$jElHPF5fSLjCY%01|KknNDpd~{6@-Ct0O>guJ9a`cXj`#1> zaq>ovd?k2|U1iqiY7 zo6F^DvaN^@!-P#e`J@FTa}*QoYKNckWRb;lItuU(KFfsq<8b{^HlJWc1|S@wkm?w6 zJ?MZ+Ac&RMzBdkJ%Ei^COsU`8kdC?2hfVF4ew5IL1m^f64zOPJ4PpP$xSY6tOUMLH zKP2eF;bne#%D&J#r&xlEDC`WJAzah;L3SoC z@7I2a1cY4|#gIP~K0V$6-4HI<*zuK=ovr}yg@m)$2B7`(er!$vjrT8b1m<6D-iI|C zOL@Ek2N3lbVwm@DJ)e14)+yIz)3bqt7e1>(0Yi}n7Wf5G|Fh+be=|5gKmNH0yjmcK zhC^_jbtr$V$;=+HQ4Lr+0N@%>^C`4&d;ru9Cq4@0nOGraf^OQbdPD_dbOXRWTmHPI z{Glb7RTyuJrVMYZ$v;tHiVMM7b*b95vsl&meL_Z@Q|Rl6jg^BzpR>sZB09E*y3{K+ zvatZ1*yZ$rz%9LpH=@c?xNO9op$V^j`(apvgE?aP6796b>y`T)v-lz7czVcZ{P&_< z2}!pegu)h}k|%|zlvy2Ab-+IaSlF-_-;Pzitj2g1bFT1p7~HB#{~7Q*sFave%UJPm z77xMDbwh|P?3fw@usFWJeIqth#r6QaBCS_UZ&kO+#QJe&;ma8Fh8s0*2b~*eg4Re| z-i<2cwH4L$BD%`nrZsafwx=3is|mXUsOx-Ajow1PJ1tKwVFEsj#-I}X1hT0XSH_a1 z#u3}Npy5Qb4UpEd5N8oY9gA^(k9WFk@0V*J;#BuR$!8Nvi0(!X{V(K9>9%+o`d2>J;16wQCv2 z(4ZV%*Fmw z900spe$}b2#diV*IuWq4QBv*y07SCpkLU)gOmr&|_lYa`a>P1a2G82%su#W%K{*GH zbwcur7o*$)-|_-4t;RPcxOlZn-t_n=i&PT5*&l401A<4r+p}MmdzGNrRcyNC0|-)LH)kLwN2kl4FSc*6epo*GI{ku+sZvG(Yr{7 zyWxTLGd)Yx?VN1PM|nm?#I61NBD?kvbHc)h-=zQ%$Ke6D=o(n8ZV|k>1C9d*d?*Za z!%xpL=0u&6ssy=0;TLvk>2LM3>YQBQRoTPiN%dxjwI1SN+D2X;ma!pj*|=8adRE7wA}bvIZ7Q^sdQP`e622|?~huiQLXkzE#vBvQX^ zlB_YOJ>#RLZ6X1pqN-tD8dqhfI}(ujv9|H2TZ>S@YafD%s`}E-8tN~rwV6E4l5_G| zMlx(lWXoBU@W|wjxX+NV*A3unB z&|Yar`HC;gQ-x@abJdShoFs|Nv}?^BRU;E=u_bK9cgytgtqSS=^lH;a1*Ts}NOE@E zz_j_^9}W|)m6@G*cKBgv@@o|K>9w z7uLW@$>M1qPVat~TcpT$mL-`)ygX=K_Voohi8*lCO9pFZ2STPOK;_IDpB1pv);KYh z-s>^UBVdsSTpl23)gps@a-#Oc)IPY(vI=`=U|OTeT)`EvRT7KU68za!tt%-tT%HzX zlAcKMewEI$#n{ z%{TAIUIT&Q-jOb(eq=`4kZa$rCFdFK&`Ac;?TbW18h z;rP@NJa9eT2rg&No8~0>{WXapeySXyHt&lrd%9m4vZN*05U9tK$d&4$79wRWYSe#N z{qR6X2@BeEjNPQ(zmZL<5B^a!#e-VlKyExP=cFH!cTkO@TNp#wT{ZZOEAv@a!1F+i zm47?XSL@%q$y{Ew0U7cz;ZfARbwxxQ@^Y4%0X`~z`UR?wZI>7$t zad~g4301<}Jm6U=P_Tu-Ui>&!J6MXw~AIS#3u@djBVvawJekBToifkr{l{qambJE1|`)GVXdSeTldJcx!VsWyf*C62T_rwk@#t0g7a9{zxk(*U)W zI9LP|0vJO=EzAyPl4H-k4SHkYTcx45^a@NPlCSs44FK!3>Auz?i82C(&me~78f1Lm z|B92PVGU>M_V3==>h>b>3SXOmU+nfTw5odAf$e1(`hre4Uj`fjM94cmOcWc9Ei^+# zc8v7f@h=5UncdGYraNO=-18N=(MWCzCf{i!xxqx4jA~1@vJH5mTao`9Ig_J@51|tn zCJoTD4*&x~An-b7g@!dj_NEif84Y0S{p_#(UC!lWTyJ8&e+^z))YRs8A)k%Fv-45) zqdHmu@LQ8D?`3ThY>XK5Kz_)gmt3go!!$GpT=1@ z=ZCKK^dcjQ3`u>s;`JPOW14ZTfZ)R$+{rvF~EW#5d`7s)B_=@f1`{jC(8p&;EFV@?W!6vwT?6GGc0<0Vu;8c*; z(Kp{GkO8zBxdfl#7T0sW$t*@)^34SSW`X?|ZdxVSdT?)&-;k*)US`~(k^SSB>eAA5 zWkIx06E6cx|8y%QYWVFw$QlDL>F+z>pI#SFgO0_%VP@}bcas@Kx?j1{XKHUNb_)_x zs;Uf&Ghw8#Bal94r5E2&Nj%N;9L<;Fg&IcEH`~R=Ce^Z~N@S_fgi1zwQh@7Ac9|#i zv(fX3^kr}vwVME2So%0U%uWgI5YV}wm5yOjNlSD$`Q!mn*}|N~MfldX)7j@{uWzd} z8IAOMH}`KdWv%LlYuYdt6~wPhqVjt!yvaTql1y#h(doII&W3p+P@#A~TtEHwG+x@heM% z3<&8Fa7vPjXIe?}zPISNpP~Vpttq!e=|-A#;uDa+@}w@+q*RoavE31MBL}9hy~;b< zS&V?eo#zew&Edy$-yuZzuCEW1CUsSrFhBlo;TeiGEi%!RR_4>1^aKAV;GJ$Rvj9gF zMH#l(iH$D-KCqqFo_ixE=z>F7NTWwoSX)^bDM^PJr)`uSM6UXa3pg7OJqFhJ{Nj8| z#sbFMFjsRr7-t5c$weAtGi@~YPWuKWA*}wozFVhdEZzAkMiWk{=_vpLX%cBQM7>P+ zb;8zL9>_d0n#gsy9hk#YNMZ`V_uOYfSuM0v=x4Byx%2_lZJT9-09DB96gsN7>-i(T zqeaD%ygj5@2ys$hKRfiN3MJz9^f!l6yIP+BYoTcda1*;aC5p?X2f zVLGTxSCcqmlJ?~0u_=8EcqCtU{NpvvP8|oj)s2420g9<`KM1>J)|P{QJIcS)R`l6}=z#w0G#Mef?Z&cw(Rc|h(8^bGtHrBBn6NM3$@(W3@0~r2z zB=L%0{b=z$Vw@a~=W|#_ip`&Vq@MDVX{XQ<{C=$U}xXXR7(qoaSoXm zzuifyLPjPW^mp}h09_x|#ygz=NIQ@#8(4WvD8HIxT?)+&@1J>!t8!wzchuBi2i@K` zPMxhYj|<_&YF5*yN&9&=6`!`61w`h!^p1FiBJ=aFR9N^ZIq+8HMp7Lx*&E7ARG?jG zdtMpZmMZ6S4!R+(>*4-O>;C6><`GR{2bgZ@$J*qkc$LKs;sV6d*^ri~a=Tez74ld{ zxZ@Zq=xS$S3e+4go;Vlb0Xlwoe{h1Dz{D3iAV$(0kKj> z0NHc&JQB*lk7nmB4@UjVU4rD663z*z5erIUd4frobUQ1ElJIl%Ptwv|%Gp;;H(hJz z=M?D#8p(h{6`oWNxnyg9lLB7;0E2E#kjq9YBzB1(9UHw5dZ>KM9Zax zTy>D7Vs_NZAFk9mh|KjqDQl%;@7w;^o3_Q_KLQ?_fn-*s{GRM>c90&71^1FVrsh!Q z+l}K?Gn`PrsMuPpx~~TWbU$5>e|CCRd3e29P|^%7{)Gy=ibl;{ISpGslx?DUDWo;L zz{5Qc**?&>&48&-*YCw2UGhB6e8016lp1o{Qi%AC?IM?})agA|3KC!`jh;uH^b_;= z^n8v?pYnnq5dGbc#hm&na8Rx2&+SY-uMVfWUUlHq{Y@MR6Uj%wKKU;%6=h2}z{3M^ zs?LT>R7LxZ8J{56?VGG~Pr%@_honMV9UJ=Dg=Eh?0>!&==nG=N ziOSqstY|XrVn9x;r6uCZ=YKs;H-CU*M zf_@yulw#@@R(i?og$mYJKfMI>A1TO^^rb~wRC9ruE8S7xXm^J_rR9}wZJ1Iz5e>sl zkUdmNcl30@YKA+%;=OPL;!!K%!_p25S+P4QXkdm+u3N)39Wc8iLx?OCyNy6eIhg^w zdl!!dH{wy2@uap8K~tLBP4}W^aSoarR_=?}Nw8IJQ^{-5f6?;##Hs|7zxZA88qH!@ zKlPT+a4|=#YlP6&3DCN^#*d`(wwj4>mN4pM+`*385pD=0 z%0dL4$qz9SV<{yCQW#r3tEDx90KhtLLvzXSX`Lfgxam&J9F$fUkeeCj$UV{5A&C>w z!~BriQ79WR7xBqa{bxFH)y(yi;a`hQOF`u|Kn0O604u5QYk!xLJqKvGba<*-TsaUA zZ-(=!oTKvWdA3Lmr@qF-;P9}Pznh7oL-xd^Gldtf>ft7|9(dyfs=Sk?cS@Ot8;f(0 zQ~vCmrh~*Ct;>uR=^NA$)i9Y=Ufd^<5XLBPOtwhd+hrq$tXq1+h{Vn>p4l^+y~&xOWOJB`t{?UYCf%& zM}5j(dUS8gUF84o9?r<_03}^ncBDbfU|9JSU4RZLHuQmzTiSS;GhqIre;#hFEQb0} zS3&R5=q#9?nOa5Lx1M*Eg%cLB(eY<}r3sKs8WxuRk`H<}rllgLf;~!?xE^#Oy+7Y7 zPiG8LGk)73_%pRC!``KIT7Z%_qJE!^iB9jow8Q+AhJ#av%Tbl6iSY*(zTVcy_PG;mdY6quJ{S@ z)B9x1(hEt>^|X;q?I7pa3dcv*hhdkZ*U?wX+e~bHU{apFV7vm0MmEbttRmLr_xUhT zL9Otm8`^*G_yWWll#gxe;Q*o=7E1ZpN!RdLdo9Joz)AU}aM@bXAiv^6!Dh`fZY0%IF_$ zf_HxluGX`)q5Wi74&PtYB19;z+reFZyG4Gb*4B$=S&=DdQo`YWRPcgT^9hDqc-k2+ zBcZ6Q#ixq#WP`D1S;2JRvh^t$Vr8zs*X8|#+KBF*s%2#cCcHbelB|q{t}shyiLg5q zAYE~X!z?Pn#RV;Y0A`L#%vPlS?!2L6?VR^V?eIxfWuF6D&vO@oK*GCh)2BAfeaq@^ zfWRNIEwdxr$bGwE<>yRz011sWUdJZ&uc=+y!94pEOzgcH0smo+Ru0LT-EnJ*p+LCP zg7Q3F*n*O0*`irl@e{5p1`#=8KXopee84}uX1EWoRq~-&_=;qg1`Jb?f+SJY43lJ= zu0FOC7_u~pnWX?+RATIqyM4xIB$Fbsscj>!w<;wDx;s!^Exy!r#iN@wfNGEU3uzkS z3dfU{(P3xK$J#pW4VE`Hon{$3=>s`j)uLe{6SSKNg~q9A-)RCFZCpbbwevFX!uPiw zZp8a>EC)g^e@S0d6d0OUzVlx%0mo6WT;9H*oIcT-CHC*M;N^n)`C^MO^*Amc#<}1YqKb7to_R-vSC& zoz2Ad_y9_crvH(ZzTp*jcn$->rY1lzdHD&RSXGh= z0R(ZP1rPEmmYiRz8qaKU`?QYtQ0|t`0}Y5UqDCA`=Fr^#je4rH|4g{0cU9|zb*#}o zzfXb$xDYPZNDm->&1`JO7tpjzsK&V@@-uVZxH}SQgFYnAEWyqLUm~o~mWP}9hCLXEW4nn31>vU z!z^M8J5DjkL0jD^A8D&<17#Nr52bJtWU34U@j-}HqRK-$@gvwdD&O-RqCb;15JtTf z)>5LvwB#BM^%r^Rry-ZrD#pMuWtlPqkJRF`t`q_Lx6e`O%N92e&(=8uw8Q(wuz#N3A`CqrQZAGz+P9^a?`y-fzzUmtV6Q1TKKyT9QX6BD` zwpx8_od-5hD0cNHrYnd+02CcoWY8~?Rv+^?Z!)a8&<@S&U;4WGFt#&b7n|B!chqEn zmg7z5_v?;CvTy%j7A}pf`7o}`Vg6zp z5t@ZA~>!6azSu$c7_C}kDwYIwel+8MV%napn#@VHoVSr0r zM7*OK#sm3`^rM*?gP#m?a_d;o+Yd+uYPy#HJ_MYXh`+@Wvc+dcrKLuz_<$V2w-sNF zY;(W`Patb7*$qND5$a`i$`PAx2ylRAqS}6ZFwb7XwkFFLWUZ5|)nm!SRCtRr{-zg` zQy;_?Q{iYGkpXe!u79iIL5Ve7uGM7F{+dDylj8uzs|a{(0X4WvI=X$4sl?7xe^QiG zBgk9=_qa*@Vmy#`L@{DszGw;VmJ6MUAhN@#$>3vZj!T%`_Iea{NC!~Jsxyxd*qm3V zi*W8HEb3CQq+s`<13VoJ8QL0kP%=rWU_D~o=N}#r5Me?U@J{i9PS{$IQNG2e#X<$w zK_Y0t-9vj(Cw_Na<+{DYFN+-a?^fm%_=*h3e~aB1%>m(ZCe}Dfy8xd-^07>6A}1*! z(y51;&Rb~&pek!jMr-VyZjCg%i5ox)z=m%KRRZ5rfij_ZQvF#5Q5Lk3s2OSAh85VThtdcPA~ip+Z$8Ei6wB$CE@%wuc+g@Oek`~mqQUaeBGSN_qMT* zS0ITdLYC?w0QdhGp(WlDXH>{cD$mYus&Yx$#1yZEs`UH?X4m-k5gUgy_&KTI@qFbc zvtqjgDhgk$(RqiHxyC0y*H%0md@!amW|xR_Tk5JnIn?&TUi0|I`5#E`M`5 z^K#g!jm=+t=8OGvh~+9>FF+%=m*fycqVwC>Z`{j(&CAxJYnaL$7S3b!SGZQ*K5k&6 zqhvX~*&c^VLgMR6+G4iWkLdN>-eko7U_LAm$?w~bn?X^+Ghg863@Wi)Pc<$cuY7u` zN7n>GzZIXgAW@6%**$mCEaT5(px`sL=`PQ{A@=d{egV12C+j)a<;~E&TPp2-Dkv2b$+kJf+ z##lko1j}@i1fh4nKS>VxI3+20){l{u&$tnASS1OO{%rZuX00EWjq!K?yMPJD00?K? zP8`RM!8K3ERtqsQHa^n8V4-*L!*-tt_DjO0t1kw(mDdE^OQ!Iiz&jP#Qq&k=DSi}lL=%0biK97<3*&RYPdIBs$LlOZ zy$NXl#OZH!G8S{rW(ou$zWDSDBY9owcQjTi-4=}@%k2}jYfUapeS+7+i%n&2uzwOn zFyC66`c(&GILa}y=2EiRG6zF#Fn%EnNfc1bX&CLnO&L ztOJF+BUVs#ZF8Pw^b-e@kBZl*>dIvbAbRvG&!@3?OG9Cj86QPojX_ z+dwBPKGOh%yFE1fnPII_c=T=wt*`WUJ#avNg$lMhN?P@A(rhwu^l-X8V(1{F;4554 z2m~=4oEiOrZRWd@rfA>_vb0$8$djroXF=JaDk8GsBQZ$yfcMMmFbMxF9+VGXCJahz zjC86__ehx*&c_XAZ)bjDiuIHjX+p9V4ep*gyXkX%)+r3ur}C;u??_mxL^_#l z3~!ufc*8J{Yf%T<$f5XlKNV|AxkcSx4zYGL=a*8N$47B!4J-5D zs`SOXmX3es6yWiC8I0Zp-!T2@myf$_tVJCepI}Qh_YhsL(6$g}(~qOlEXWO}_K zG32X4Gr+?-;uc62z-z~^7q$CM{*%-pDWL#NmF#arn_Bn+CL(g4@I$^e2?{j%_RS0v zcbzd;UFpCbGm+dl%S@B#`h((dsI{TI+0x-txWA3Q+r^rXOqFNKbYV4ZRdI^H&dK-y ztjiAz6{MQzeKV&>(AG#A+0yo)MxooX{vvM9cd5h0$E)b#VD7e<=^g4qW*{*FA6nM4 zG2SknAS2%*WTro19tbGPDpoWYR6r%8f88k@6RrwKSr498M_fJda~}X-cfRKZKo9*d zL^Ty(0UQ>)U^TU7B-n16| zYU;JsPuL;GG+oKrw`d&)h03|D%|Huh{FRCYKpK~QYFbpFp~Q8BqesBAZtF#aB!q{f1cJ_bO8=#NL1`)gb|vnArq_wALC6d^n_o z!4FsF!XU*C2M^wdPnqfWKKu-{<7j0abEK#L6%H}jaIVB=Mir5-2H7AW#7CV+`+BUZ zI|hQyfpRQ`3CN+Y9NwJcOMg2c)@GYvfGdU^%NF+Sw?pg*T*mHC(xAjpnhx9Zo>EVWL38EAAdRzOkV^!Uf&jaFZI zWPKi|6%Gd$ag!UbDRT3^krAn&S;G}ObH!Qk6g^As_#$b3T=Kli_+W=9tGi#BZTd$X zk1jMTb;%}j{jpL8z$e2%zcqhk56h^buSv#1zj+T2s@MTLbAWd4FA+ci71plh94o{A zpu@>IxJ_s+_WKC1OOD*kG*i;e8W*xly9&V3Lx@~wYuswn5r40F3s5@^uRytj8K@Qx z2!1~=3F9OXJi)lSzd5(JhomAo^OB5MvFE=|NeHDUQ}&%{$JCS!HupG0d5`wEOys+> zmHAN3@?_^G|LuR|v04;xbS-KuA_bd<5)-2O+(}bR$`;{-tg-waEdVzFOe#64se9|; zjc0+>;9HHLr@3E7mi7I`eMnYoP`sgirfCLCn!P`4q-6M}mU%#Xs_fFvn&a{YR#KbA z9w5f0r3MwLv(IjQvhJGVo&JVrg9ZfRa)?Q>;0`KPv1{t`j|=nxexK=m*ClHGa#uhb zU>AmX9UU!C4lOwRB+SucynJ4K8XKcW*Ki?{JV7EPfLSbQOx0Kf2s>H38AAUido_uE zZUO7tjp&Zq)_f+%84Ft(XIFhdf7u(ml{D8_6#%~nHWvbPa}jK25iDLetHy1B zC|KOM+rm(ts}ca}Il%sjM_YL4sy}LQSP@4l`SvfrcY2IYfFi2mNZ@Y>04$ox8HeMc z*UyG_9MP1lzdVg>ZfEQ?irh?F`|21FpQ;iAR#pfD$g?o4DZt*JpeWXWKPVB*)xWCd zHC+z$b*J4(a_EpVKAvq9M-SVN7q$$-5$&Zdn#*9G2Jb@@6@abO{$2Tfj5A*vMIh&` zZ|n(q+80Ct`J7)8u1vsgrKsz`zDsW1f_6mu+4TtGjT$9U%~2(B3i*Ua%mu{~dO9>A zjMlU}PT&5azNw6ipbylW$*L6YG{mZdUy8Xd@5g~?CPv2oB!M~9{9tml_jomJh7Xd{ z$c>KnjDr^V1i*G-|M{jbjQkMnz%tDJ5Q=*EWVg6=l*H3?E4na7YQc{2R6ts1CROO- zYK;?bjSjLGliaP25!r)UOiKHq7L)Lk7`>150lAOwM*!*wGMw#CPq20S>o_aLP*lf| z+SYuJDSW5taLBHnPw`;a*IG*LQI<^oaBT+4O=3q?hql2O0TYHT`(Y9buWuXM?m^R7Hr=reAhDcUGso{so8Lx0S~`&GtWJw$~U1<7G}?1RNfy>E{hxA+|&+7>h{Kkb5rGu`gq>$|Lptiw(IJkqMZPn)Y5T4 zmD$sAC@@ZuN#mhY5q|W^d<+vLeI?;1LRoe!S~U%OHS~B@%wQadar*%%3#6d8AX)D* z^Up#n#)aBX+Q@*^jeE_;0-Bt;WkJpEiKevIZJlM{PENcjEG(cQoFunIth1$#I3)75 zYe8$X z&HYxOJNKm%JETs!{ko6_#!eKx)gR8&HBy)G4l`JU0XZ$$QyTb1n+-P3Z+n}P$R9ws zWO>OJn4rxHvN;SsdX~(v6+1|;5l!!vrMkyQ&v@p~V^sqy`?e%F&2wuiZo7?EVBe%UdQ#^KXuVrC?~ zdO;>!f~fy7fV%kVu)`r_go>`@bK#;20Tk@v3qn76>&PpS=2CoC;;b&tNd59u16zRx zPpa>lDq;b~Ffnj?pw)@uV~Zyc!sZ!pdgwCrc33y`Q|=nGveZFH7cvkXeQmx=X73#p z_jjaz;e2S#{8%3c+1>cW6oV2*DH=@nZU9_PqkBAWl#v(&FOJ#V2$1>E2#aJOpsn~4 z*${{70XA!qUvw~Vh+UY+k{}}1I<&q&Fee4oG;!q4O||~&v12jqTsJ56DPI+d69rm z`)XLd_<1t`?ywOFFz2@sZ+rc=dM_6!A4GqwGeu2-y6~fWrbG%UxOgfjPA(C{oP1I} zJuNAWKoOC_yIRHwFfsN`a3yiL6O(>x!5%6SZCjGA%eRDQwps~~md7(}Tt<|0K2SL6 z%p`jep@I2sLj3h!p^i-Ua;jrz$2>h?TdVG&PDwRnaKJ$909T_ zU0+q}3;*wg*WRB40xiH9W->@9wXigJA4kWGPM*ktLZ{6m5f^SwCgRK1K2rskO{AXZ z%AVuEKpUTqpGj8R`$?257L958R{+Obv{R!n0Q zTY9meHF~xzU%HrQivi-`6|7dPXGm(^PUCLkP(2<#n8dg1fqe&KDF*CbK-u$KUA>(h=W$&$~lbyhfe`k75!$n4w zy(Q5$u9Jc7{C2{Hjd)%Xn{AmY7xEPeE2T0=aKs#@W_yY~1;4PRPz_dhWD-8BaA%sO zp!{PyRws2J1`}Q2TJz%$Szq8@mf1_iK`TW>R>I9(A9nJs2q$FrySROyz7)vQ{AHi~ zlbyDHsGH{6s#$T3Pa%u8olc_E4PQ&_L1T&L*1YhP$LFhlufBxMa7&}>QB%c3MWRf; zBb^1TB`IPsTdTUQQ{C0*pJ@_L^`P97f0gJFS)$RPXkg*+p$k_?QxfZnDM*irZ*%TA9s{EU+$3##|$Gxa-mFOv-rI9Vkr|$0druCWP-~+;wV~`Z^{uD?!^N$}>P($S=QLpJ{ zjYBTE;*>5CV)7|DT95%iDTE~2Y@fz9Ew(cKXu45l8G1 zwYLC7pIrQ$Fajn1!&zx>>Z$rF&OIsHmgKjjle)q)%PvEgZ|txJfOTBp$85tjk4gIv z%=cRYjDaRu;cqajWZUDr>;KiJk-e2@Gy#P_j*)%RwQ9gT%J9mKs+?@|5HF$-d^lI) zvFzS2QwLFdO6LKYg(Ba&;?(f8dR(Ob#*_{0EcVtp!Z;)y$vgIGhT^+fMLJ2%e1O*7 z0rL3_`=sEa*s%~9hcJqcpbx$GNj_;SQ66uL1> zjmJ7ml_U6zxu5N0_&fJ2Wmr5*qAld6@q#b3GZhd-n-9}1nOO;A=9**1l#*$KNzbra zn%&h{c*nk1MZkt6hi=IK;()IgZjy32%qiGgU5myGbmB5H|eMskH;%G^B@5-vDvkg2HhJw_{{zEh3${cA1hT z!FJVSugl@@cqfg?B^4jb}6^)OdSXv8$Lo#VRI(2wWGV$i4YnaNL)7+R4+rTlGzp(pnJ zbUei&#UOw>-1>MHL06MU;3T@gc#-OJU_vv@EsRO>*W~gq9jk>R#i{IXx32xL53_rB zdDGtj2OugsblH{~Z%4my>KERPTHCPp(^|8oj-8A2j)#U+=qZlY?8URQ_O&i#pVbEK z8DlHGc4w$uwqBAbwAVyh3`IzyxDEn}=>1bl&X~fXu~eryPoPuDh=p1HT91g#7_jJ6 zW^>WW7C&=K6Qs?Q8$Z3tD)Kq(PU?GOINrNBUOGE2jn#C)>bh~R54}PIIC0U#JZ9%8 zWY?bxTlRCMs2WSfr%;DY+R_k})gCG9JpZKK7K4YTGb=!PQDdRy0QI5=B$*4J= zZ7=A+&)y_&B|b00tac&M^IP(k7fO?Dr9v&iLKj^>F7i6((_Icx z8>*z@_pDtfPbFP7kN_7KfhEEW-QN4cxAhD|KR^2L2!E!`!gt2*k~EXJw_# zX@a?d@~a7q3oftZ$WA9zNCe2;w76-8Zxl(DTyFHjLRxEu)URNm)k#>eK^@ugQiv}? zrKb%wyHp=z=2V4>T@^pcb@6&aQw1-nGVPGbGPo(?3PREn@JTr(1=@DL4L`0TsUyf# zn$drrn6vMy=Le;1Fd#}{+B%OU<0hD}#mf2tI*cB#gC+=8E%D#3Boygt>|k-TFySR? zK)F^GtZBTlN7&yhLqFFK1+?^)?tpj}5GGvL$_<zxRR!aSWVa^(yt07l*v8$0-Nm7p)f76?3Kg zI&zpr%>_3ShCIa?s$weG19n20%QV`kvKU43iU~4}^o=;^`NVGq3M!{Boa83}vo}5H zM(qIh3n{t4oonYFdA}>gg|m-_R@8+3>YeRo>btGa^3^%^D9cqJrj%EDI_~q>8?j-_ ziPm0i#EF-<1S>H~&3K-OIy=`fE0t5f@TEghpDH+)EKX#aGk^j_8-88OY+qB5P+^^z zo@BjpytXlcPf(YZK;MsInmV!R!yvv1``5^Ey^@`bi+aYIaU2Fiv798&OAkI!$v&!} z%&ItKMaZ8dHst?Q2AYNubN-uo9?40FaEov^urWbl+>>XA-~&(Sw?UeQW0!- zrUEj@%_4%qJWR~CbqHGtnwvnflR?3o#blIl(&z?WtTniV4z;2>rcgCPocxRzZ72FV zne1_?0^->y@w|V#w7%6k{oS)CbypmiZ&zmydjJlYLap2&u98xjZXc z45_r#!=!v*EmnS)8K=ZRr82h^*udc`D?shpWv<>~a%3(iC+;*!Tm^krV;i{hi=Y8f z!&;R(j{{BT{LUFy$5oC!U|kwG+>iz!q^DaO#qMbv<|!pkcG0Cy7)Oy4w`9 zX+u?V4i{cj=sw@Vcz&PNf~Q>O7R$kmQPL;NFH?g|nJkW+fClnEI3TF$%0buJ4{(yi(rgMYOH+*>_X6Ev^KH4EfQO6m(QjIwv(EGoqxr!PX~H$kN<(xNqae z@x{aOA)yTUUVQHw?Kf4czzt!BBP();l#9dxOCF(WSU$*6LiYXKrjnCv{8*z?*c%A@ zN>U3M&|oKOCF46r`0}pY8)c#rm;Jhr3=4sUOY$G#@9xDUUMzUP9_ON!(+yVDl znAhh(<9*EG9w;-!&cAYfkwVV?WyHPyt0Ef1m9_PU-qea)1vc}hwLc48HXiUNFfa#n zF~Xl&%Ui3J`(N;on9&6e-NzH}$AUG7{9m29T69#8%;1#Xt)cL=bf*#c{0daysh$|I z`d&Az=hp7E@YN-J8sglzOV!&eu9sWGVsRw-$8K;}7;swzGW!v+nA^XxC+zD4QCs7b zw!qPgglrWl;=W@tXcvhi>67FzCt`l~JDehEsw#aBy2^H@A4!*v3$!#Z*-eh}B;(T( z^Nn1d1lN?RTIQ@yUTLZDx1W{xdoKr`yo9L?%aH&nTPdsNq}24{>IUcbQ%G&VRpZo} z@RVWmAW&i0XezhhVbUmQyuMKRj05v(lGE7)WFH21HIOv&RID6vR_m0;;)_NV3 zl1EQQdB>uC1^hPLtd$uYxO>XIUAx1`Mtc(Y20a6G8JA5oOq`A*`XYcykGCQoAs3X_q0rO+ZDc0Np_}PD4%Iu1R-T&p>T(m?y8#AyQ}Sy*8|5P3SxO z!_IzwQ)-Z0_*Emqn}*P*z9?n7pggR#yFPcFXW|B+t4wz~*yv2yam_QVKC{_97qCC& zo)UXCIJ-(i`tb3QdeQ7F^Iv_XwGO#GxOKfJMBKfS7_e+v_k@cZwNO}Uh0@YU2i-RE ztP^Fv`K@)yH!$6eVR(mw>eScwTaSz4FM;DG|KVVktRqQ+eAhqI66A=*(-d>%(q$h( z?}I{dv{5sMmO-DZN{YkmF;4wQDC)C*WR1C#xy_)!&4T^GRY{|&Q+39jDRdT}PQ&tO zoVa8o$c<_PX`{y*?EPYTJXC~F)8wicUOaM+O@pb&7Yw}iL=V*B&^d5>K}~9T@l&v) zZ{mkf$<0a=>nvH!oyiV(mn~x$OZx88vl~8@?IhQsI+b&$A*SWXD+ZJ*WpAmP$SGoO zK-~hwlzLw1vozrW&xde(hIx@RNa#6CFtcMiFkhQKf}@vgN4M(?f6JdoOm(n~3$IlHRfKn@+Xfu6rWjBS2l`vz}m+ zD1gVuIk_X~0WMr^sNgc&jSh^sZ82x;`}}n5KEDm$a{`Kjl2vQE)E^OutaCt~^= zqZKnLkBsq=VU&c;H(x0C>f^_9HN0#OzMJfEW)<{e*$p?jFzysMz9M{gDMY}MN(XN+ zJYWaVFHBA=tu8&y6&^}?mRb}#cit4#rA>9kt4eXv$ObEc((F^r37oLpO(ZJ1bjb+W z=4?pHBoyA-6lk1z!*_(m?R-EySTYjHw7V)df=}wlWb3@c16#P>M2W&EQ^IDv$|MEwYg&a5g~cLG#4^>?Xs6G%!M z%j7$+J{=vi*Jju5AU&10>N5b1b&Wa<`b|a^@0SY4nygkp<+~qQM4q)an^z5p9cCeL zeYx>Y6_euc^3t=>FO|TCiaxzb+XGMof7|U_hh=D=TMg<--PY{$Jn@P)DSgj2kIk13 z*U7vt!OJI*`s$}^iN_pC>s{w=^c26l1MQAL#ZRi|A8e%nY<%m<7H`EQUfrC=$z8FlBGp;tV0O%(9s>38)4Rt zM<9ruEKn@}%%hq70VUoJm89r<@t+$=uV|-gP!0{x*_tJBxJG*KW$oQN-rIW){EgT7 z#=C}IcM4`T`w`Gqjveb9A(yn4g>(mlHk8EeV$68z5bcy@N`r-exMzFSlFE?w|;-|rJ+0|1zt$^tP+^b?)c4RCf4~p znLU&A#Z^F*^nySG?~R?TZDTm1f>sEBRXmISu8G@Z+^X1gY*g{Ik94-JREsh}ATfE%MhC72C>F3rzRoz0o5loCV-=%*scDjMS ziFAf7EIXiu;Be*EWS8W*+s{mGn!`RuAx#K4Uv-I42%hmZVGtB@bIHo^5d!PG0Y!2D z6GIFq&QI&G(dgqn05xNL#Q6cs40>nSF*<`+_}M_&7q><}s`HrRhuxlsjdZoBUO~Ce z*HO2xH52Ydj2UI7mGf=3&ILR-f2FqAtyj_Qlnu76z9~q{lI!f;toOpl`)_}CMfS-dI_G%njLg=78m zeHV5mV8*V6?S~5=zwx6=SFWR`7Hr&Xh!N4=R;IKUQ5?Hb+ZL3QyWyA&Y>fxn#3J|e zqZm_N-=s^S+rN^Xhuxif&}Fgy`7XaxTd_Q^d;jbE$l{X(=!z~fFgYXt(}BYa9JW>r zRKgvFCa+tU(h-pHPv7_8DzK0h}f+VgB?iEZKqAU^7!!J4;@mU*>71wFoc!tLjWfTMvf1-TF zHxPK(y89bBF=&UsU)466?oM!6WF(-)&yS6dmCS8Kn)!=Cvr-Uy?>`~eMn0vR;uPmHbtv^b(WZ-NxOYa=wongm_{xWl5W~;54})CP z)~7eX9a1JsZ>p!c=W{WISHgG`?hp8>0s<*Jv&|O`Of5BemAlkCcSvbJ!s4m*V&Cu? znu0le`=ZQolzQu+g8FV6ya>~(Dp7V(X_CrmtF2?v&^HlwMz3&>&F!bsT8{9&^nUuF zw8`G=-lPIMX!d-_ysG#rY!zrD0b%Zylcti5+z-{)gGVgCwlXwOH?S$(vq872CvF$0 zDaI)M=++J0nXC{a%R)v~2;&uPSTQFSRol#YO|=r3A01$BCbDqXRKd9V1loa7mgB9L zz49Z;&9_`_*lm+yFKx40WWEQ+%ZnoTIm(}!FkSBV zPJ8n{&(TA#TzAY7<9aesOFK)tcayrZcHv?uxw7h(5fQMd1}RI6<}Znc)lGdSvXl*W zqpK&9WJ9m1-$_LY4yJ+O0Hq_n6#N#$C|h4s8ULO7F3yo89mZ?sd7H;wN@aZu90PUl z=g@Qkhj9&J*vZAGQ_QyTZ99?^@<)dPl7CM z7zcuLX6=-YRwdZE(ccZ0VAcXj#8mGRufP{-^h0Q!sIBR&8>OLdi{0jX(-YQ!k37;4A*J^`hnm^iBqeG*0gtwGvuGCw+X(v zu*rxspDMudv@lDz?494-lqbwAN|E(V(H!Sw+cNzID3l;yR9GLzJ#EhxETOT)0#CdM zFyCFzmc@~scax#FSBhUWp3@hIQcsAk_=>s{aF%gb0~v73|U z@{*!&-@m8j5y6=7Xq!h)GnJ>MN9ld8Q^gEOF;$J33A_`0~&X$^# z;a*NJWLXMsB*9sD?syy@l-qO*7!QT&drP2N6H$2s8tYR|GsDfcQ>_{mW+g8UHV$UXRzoqbYZ>Q))5wH=Xi$VM$A^LIw)B;*~t0? zwqP&j=sAGaQR|myNZ4#mZdH=k^NiJr37xWs+U6%4=*k1P-^kCP2}E_f(j@aQYo1MmW9EcxDA&TL>}mHPv;C!7FfOy|DLvl{vG1 zq0#)-42`$KIc=Kbije6cC2HL2s@{6eYNxW+Zcw)PVmw3w$zu3L8vso`kBGIuH{gXw zcuqUZxoK?haU~0yxCd$b31?SZm3duC%D|a=0S)?ZZFH<{xwmIb(*Q z$+DZf@*lsmsvDQwpB)sPP|-14H$>@?8u9qbsNl1)uk6HZtd#*V3LX$^>iN|ZKX;D4 znh>P?L0 z9GCzgq;;1j2qwzdH(5LVkxNeOpowo{7p;#F-fYEFGafB55x(eF$TpR%f2+>w)gc4KMT=XSc?mdny->-#}LGH2u3TU8{L~mdM-8fbgng=5EG=U z5l^~qs6*+R_htE6=qMiWaN@y`wHxL6xQHN4kNRSs*&ouA2G#qU6pstKKW%th53rpL z@8q27HO^0h2%z5B+8qukop@BUt7IJljk=Y1beF8<7E{uwY~q9^v*?7OPQo3iBOI;SYFM>GpU+0{vQs&ZKoKP3DNFN zVz}jp7#r!5jPV?j44}|?Yc?(IeRck-wWbMft>ex6h{HV{l~c-cv(_s$@x>lidQM0M z>q$B@>_afdfVDZ#a&J!ZC3ghzsoDZ*UvDnxAV^j=pcfw-8lpN6fmEyGDl*Ik++&xZ zMy;fL7XDkP5Fx;%VXh`{t~1o8U51u1e29_6<}e+>-TI=)+e8}WfP1+prMSr0S|`gH z?}54C<(f?yJv^~QoSKEHQO1W^srvWkZg)c1ghG4xOS5&Y!9?IrPVlLUCyxn<$mG<3 zVwzA!u`X*hFK1gdw=;%3%z*y;CA--*=<)GawpAmuTK z#;=JFqI6{d$KsOmRJi}*BSZ0`zPc6i922A4>sw>TX)tV?JhynuYHU89m;^sI(gX#o zbAdE{_a>^HYww#c?kQWKrn^dECb64Uy5XkuF@|fq@kE>k4_prTTMQl*Dq46-+$%Rx zJX#Q$7!t9-9lQ2){G$V|^C4Nt+NyWWF$8*gx7RX!gIS5kN+YKeG>}e4Dgh|dtNYt8ivT3Ac+O^piCJ;gV;8C*iS5eS@;Nb^J=7Fp%1rUpg@ZwPyJiu)`p zY|OM32P(|wu2cxs?kx1qj7Oi((U?Y}eUf2S*iewf_=EMCdQrCnb;>Wp**{W$w)C8u;X-VV;ZPOeP9Nhlw|DCmTAe6<9`3On46sS8cAf~% zJvgL|5)3;wXNofQK28+ssaX=V%l+{ z#a)+a;B``=DK(mYfEdO$Y{8cBS^t zi&Wy@%0)d|TC@dU^sjBtr~n zTT2P-1L4wu8vXhj#f{)^Lp}i#W%B0nezeMrWGG8DpyYmK3d#dPXlNIRf$Zt|p&YBh zHt4z)M%Za*Qk&)q3`n1gx>9wFWPScv zJUaL&$|<>92#K{SgB`?!dBIf9pxr-<8QSqzCqX?>;TdUN&_TiYv zc?7c~sAVU`qjndrrpp0}%L4zJ5Y@5(Szpi)TUT_x`XUc5?AdV}!4K~o+75`vqBmehmz9XplRX#kd><}jGeG%Y!tyimMkCy7!ptE$2)}Rv#}0X z8Ms>IgM;(^ZpeLf%{{Z_JsCIOBjW-(<3ff&)z1JU6y|T#ZesA-MI|@7x1`^ga-hE8T5c!Wb2RE;k{Nd<^1Cx-{t_AWPc8{Xh5T$bwU+_Ne}X^ z?J&&Pv2?GkY~-!rAu}B&8B7AUhYt5nOKy!B+gycd^)Cag6WHYm zrr>A9DMM!WmPc!sM=g=+QRrPPCLLR!jz-F2f)VFN8dK%lJtxZ$i?47qRJ%CCC9alD z`2NH}_>FM)Z`Pdws{nE7sSzJRp<}D0Yh?sxj zdw?vr;Y}DBNZ+?b%yRjng}kS*uzfgY8!_~xc-)W6ZD;AD)Jb4~Sr*`1X$SXl;s9YwJjW_BcwUj1Eu_s|_!x%{0o$3z+4>2b(0t8K`aT@n zfkSCwI}3W7aI?7eWe?o?y#eQMuRCh}6qAgYgQJ6yyYL>oj;LzPY224x?9_z!R4;B8 zxrun|XnBGDFtGg_RE_vYrXYn-mhD)<(1-(RI7SQCN{1a_6PoZPXbY{v4$@(-GG{P> zi@1p6jrjhb;i$(GK{N+QTpVKYF&QQp29%HPJ%!bP;Ree53Wo=n_b~`cB(HyiuwRJg ziL2VIal&|_cGzviz81Ex5!a8~nGoI)G5;ZJpZ6#X*LzTU0+(V#)!2*=c7tj%y)wNx zZV!3DwYs;CfMKJcQ60+u76BJGov~H8j$O9O2rW0kze2^}^dvzP;FtdRP}TtfSMH8F5j@rb z79a(LAB6o>gAG(gPJ)$m4*{pCB+})IoLK_Zz(rL@15cIh8O~yd#%z8-Zzl!~<*uNJ0*A@JA z1%G|)|Bv9+cEQswdER+*=CRfWa$Ssp^#2+ltqqn&%T}kF!wWaV%DuL~h6~kt;0|_M znN^YhuMpSBdS?_b4S_|YWEn^cH?2VsXCM@+MOiKti}$3%R+(rHKveyXIlc(=!f@V8 zS?7ft`n0|W_dVqrPVq+c=KS=HEapGsVUW_&+hg=|^sL|Cxd0=R-Rg^El(YjH3t;Tbq-zrm&C#_Bah-lJ6j3D?Vu-==lS=;7dQ} z@F1k8A|8zcsPYSaF&r)w z>RuyxJnRXfwXOIZ{rr~8M%xt8Xc7UZv2qF=uMa>-U-Z8K;%n{gvT&PAdHxed-UFTIFTZ0nddcEtZf~Z{^gk7@d|^q$isSd2e5J#xR%@lPr81kVCtTBK znEo(}VTI!-l)(rquyPF{NfQs{{l~QaDODa?_=i=HCFT2ipl1`N;rg>Jk&NpG9_a&O zza;Y&T|KCb#Dx41O$2-);-ByO{e`mD*cv7+IkYuq@pTFeA;;7yABO$C{Evf~ytsGz zRG8OSQThz0zc0U4^D_7G2Y&!q>!VGz@1>bJe{2Dk#HL}{595mz1<}uXf1%U^fILIZ zzbjvF>>=ne{C0Bt4%Z=N5%K&qO|Q0*krDK06HNE>*AF=v`6Pi`zu^JUQL97 z7r01(^u-PI^=waCIs4qdf93RbIqD){+Bn{t`d^!zYjeM_8P-n!Ls1-H4eOq~m9zSX z#R+85|M)Nl$<2)D($Z3t{sPIbod*N|o%K7ak02|{q$mFaf=5%3?+?g_Sx`!A0URDp zA%=T{A)Y$LzF1OVk>`tVAM6ez+ zoxuL^Eu6yDg>cy3myBShFhm^Fe_3kQ&6tPsd1f`0z`Y>_WLth)P2s(_Y)1kgu7Fqo z_g-&ayJ2o+WwnF9E#uTOX!|`_v;>S^AtwEIm6O+BZ^80eT3Iy?Js~~zTklOP=r5U? zH;+0kZ(QPJ^7@jI0QWuTyDx#^@a30n{C04&5btWG1-pm)zv*T}KJ0$74l&-ZHwTX) za0i9==A;l<42U47k%d%Hm}(BEn-(f_g@^fmKR^nfygut-(2wF;ko_-K?6UjmE)1CA z{?2lzv#U2S5N5uG-=T=C-Z1i0G0FJShAB7g1FlnKg^_YDWIqh&#HN-VioWGOIIR9U zfB(aBqQDM=JUi)lOQNdtudwdb=FM{KvSXb7`&7tH+3jnu=R;{W=;Yl}za&CTGFR|l z-Wo>-_ZHb%ml)L9qWVv@%=e}vy|(QI7(08Nd!HW}ll=Zp<@;a_>Hd8UL!i+7sXB6> zarc*Rve@d9u480m1d@^c-`-N5gy@(7HVl2sFAvTmjO0kUZ$7Eu_UV3Hs$Q2HbE zY0qVn2q7`IFge5||B&>zQ&yd@vlN>0D36jmkHC6ErtnjH8R;_Una5{aj;?uFArM>r zkbZHzvUT5`!_%&}nTNWkUH;uMZ$%GFGW)o%Pc@@n5JIn7cad`+fc+A;Rs?xZ(bTX8 z`t3@vEq7d`Ky#IuG3W8?U^i}hjQ4rii4e5Ry9u8^U`;y6(?k)PKA@xbx zYb|x_Ur*#&V*G9e3Qf!0P+IO+LJYzazk^;@aMy`gzS;;YtP%?p`VevB=D+YMx%c~F z**J%gReEt^ET#zjkm&FoaU?Xw4?LcC9Yz z6`nGD@eQX!ahnHH+MyEj!12}F? zJ##iv>bL!6Z*q_Gv+qYnMuK1LVtbDfLNqb=ASR$+{*DySfQ9t_cg5_H(TXy&U7m!n zeQEr|SF#)dNh8&!d=u~d9?&6k9S7|<4dbJN1`Cv!ovP{#C+Es}}SMb*r{BN${bE(SiMMb0eQRKnsG^ozl9C66^87=cMUec$yL8m-1 zIH-3j61r9wM(#KuY3I!;ZluCCZLykAF#$L&y0@jHs1Q>faeS`gU^e_o&`fP$c~RaOi#r^^d1R6g)qlSap6rDQ5kA@)$kL W#>Wge%7a{?zfx1Wte7Wn?)N{0$^s++ literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/core_device.png b/level-zero/1.10/_images/core_device.png new file mode 100644 index 0000000000000000000000000000000000000000..424871499ef08341c9a9daaf25dbfee77bd29774 GIT binary patch literal 38066 zcmd43cT|(x*Di`>i;9wsZm~fkMNmW#5D*fGiV{!+QB;s70@Ayb&|(j6h0u!%h=_vp z4kDm}hTf!xCJ+cMl!O3*l(Sw?zu$Mx_{KP6+;PXff2c#qyWTbDnroJ4J~K}*>tc3p zKd_yLhi9j@*10P@JR3W}pD$ZCf}iY*uFD1gZ1A{(Im?sPBs2m3v)Sg%r87J{xdc9z z#b4n6+g!DbJa~BctDrv{h%TvCJUo#Y?Q>@ge9Wlj%tV8Z@>w=ZV+l`r&VMU}Qo587 z@pAW@IQ;I5F-ZeNWx7z41`yR;gf(;+;jO z_gXee{P@gj}kNx9nPKG>hbbKSj&#jrctvy_L6b)yfx)me9ElPvuP#Tr93i2r_jQ|`{A zn9Le6K4!L>9lXlwLDXb#!n!|UR;H2D-j<4~^4iz^c*pYo&a9p6Csfkzn|(sLx~vwt z49r&(X0Y^1qUiUhl@1c$CKmMhLr@ZH%OWHJFd~&x*Tc%{cdbWrD z=!3eT_@uCBqtE$w@+zQ2_tWoKwKtY1CtD8aj6V;?E2yXoG*rK}k_xRos{B!3>gtby z)a}@n5s8u&#j)xM59U0K3F~7w>F*!7A$v38eMZHK7m{m5*%sA%m-Cu_xVBlma*5&= zmH5FVg%%snZNav`EJb6h69*g1JDOe@BV;Io@%T@rv@u>aBWnuL`MOyWU95IfMPI>L z_fpxV^uAP&M6!JRLGk)carw9AU-l!k{H&?d*EXl#zlV!$(AaenM)2Ri%OQPZeMo^}4S^-_a-X6kzdvEBG#y?zcG1Wp$mgp%_>q){qv~ zjuPKM4<&y`i4SmmcAKn_A`slry)Cps&YdN^hX)x^TOjro)j%3jfIakDZb;7aIyDw{ z4k^B^Q0zPEZq}>HWkvu-lQ_!z_N2k~zb^02!krqksKuN{if^IM)na;3j?AsG_~Qsq zMM9bueQO^g%+!Li{2_Zn6Y~JOMEyX2YZSZ)^Y#YAZpV6=dc3dd68Nl zxdojdz}*^$7eiRkOa8Wof8P|7gEeWWL5aJK$qBUZ3n%+W7HYH^(pzf7aFLNX$3dLc zjAy2ZNUGkO0x|b0u`5WOgK$P`$USUqp~jVODi=+%Vk>>7Ue22BD`HidY2S+*S;l-# zhr^jiUg8fU&d`I z)B~D88~?T&Y7MnXIL9`Q{%ks2Yy-7rn=M}a#+b;wLCq!CD1{3HtdZc4GdS@dAtgHr zIbP@D@Mn0i^)oXBev5YRH)E4f&yYo!q^G1zYOgBo1S@I~$H}!t&5uo|^xawGN zfT7rZFq5y4#lQB_x>7l*&o06kA;ncr!s2_#2z`=3>ChKONc9)=AyY^lnA7TY&^}sF zQbHwGx8P@(bFu3e#LgWonvOdHOce8YQ_MY}H90=;wqpL1;`yJ^j?|!@xf8Z{OL+dW zFXr1%M5v4zH`Ni?srX64c3zp%ipimuLZv5Q@g^(8iiIrSQ?wxkLP#zNk5pH7pGD5WIC+zS} zaL*QgV$I|SaMveq0rMi)q3*g*BeWaE`ZvXp$HLe}_z$7)(asN^ zb*Gw~QpmCW%EzC?#CQtlvp3)Qs&h^e?4oZ-<`%x6>suT1a>!g!^oS{hL9kO#kH!hIlG z-zP_g1c5U@$uXoKsmC{?{2|S~rG?$<6+1=`1uo58MEOghgU^c|bhsU+?+I@gvTZA8 z!^G`Xj5~d64dzWcT%8H|0RQDiOD{7d2$G3H$vRlYqOaQ*z-Gb zuy~;rVqzrj(WsdJ&+z}vUuJwdyu`6^z%)Domqv(QayQGHT#vdt2h-ZyiW%Jb*2G9h+T3?I(X?^=akJl4tY`X`*oP4#z`K0gQ4a44!bzi@NG+&8X*D#b1c zCp4jERC3}r?k9#d(sN@8IW|-SF3|zEj;e5iZ0GTL)(+FQA}j9RERT{jD>$O4uce6d zs2Ab#fG?7AvKlQD^4uG-+Q<2PreZ(SvY0J)6InN=-^d8Lq!%#6)Z+{{WHDX>mn-K$ zEQ(M08sUBZ1?Jn7@IfX1$bb8V1F43CSqc8N$-+h0laIYhAVt=3^d~+a-UN9EA__&b zpn4tQ8qQag54Emxi0HDVj>K~87Z><^FPw9~_3c>FkH5Kwl~gK@Ir#XDZF9Xbq?`PyW=^=p@qyFS#77eEpErpRqQw712*aa+*?$(H+V@?KgGvt<|EFcUQPWex_UV=wZ#}oy4iy1Sd07FkbCSz0PY>L7z|=7)Swd+;%F~gM@jop>!w?oGCfTJIU)e?mw0|?Ce zz-yj>Rr&{cM6xwrxO{61iCFnO+JSXKEcKKL7vXdQe6$i+I;+H=lEsAqv^Wy|?+zbE zQNP9{u8Q{7miU@QFj7;=rbYx#;ks4yEZG`F2azJ&BbW(mtQB~15?Y9PnR%;rr_&VS z8P31Oy^4mYxO;PAdcHU?RoC#{`+>muyy#-}+(pzo-D!?R{fyZ)kuLNW*TLk!2e5O5&_=spJCm#d1@{#>+TZ!m}>%?Pa7amK_ za{6Bx7gPVicP|!@CQBU56V)w@{4!4E%&M06<~q6zeja#iU#zi8{BR7{SK;=$eJL+f zm@j&=KZKt#<=FrFRdV6Q!1&;SOnxfDp<2ai&bUlC-LD#DpjM4;e}W%>ki4}`MxWO@ zYqECu%u#~x6*YLb)Ba4~0fDU@$B4&25i+x{ealyOVzkmMnT&p--MS;kd-sZ^r-Q($ zbsMf)hlcwMM!~3vZ1uS$DuVV|-M*D0cO-e3uP{9c9;xo<(Cp;0Gp&)3EPB|wdE9sY zngicCCO&^}_|n}^{Y&v>38o9Sm_qDuO28Wdg=hZQTaUB~9<#<^!p#-$SYpqXIyGNl z6lo$V`{!Vp!uG`@pP$7X$4*&NK3lKut~VZt<{eFkmkT?gr}q^sHW%PhyJ8jzelBEf zMXhO=^-Z!DpVfEHJZ&K1^x<$y*xtp>FOof0#e}C+7aK~mIx>W#lu#RsFBIas@zR|t z&)WD4dvh1XG7tC`TN)Lkj>6in!5q>@zC4!QyJF^C++-xpHT*bPS7iCEEw}Tt$}^No zOW|kI+}}gCRKebsG2qYo3YwH)ts(c-=q@I`>W7}VCDLH!5krhk6GLY*_g;}YF1l;* z-FYlpqoPILl>LdKk)1paqncj`yxMH0wPx0i+&LFN18cZ7Q;YHW+cAW^NCEB?EolaO zYE@{I_j(;k|87B*s+s<(P|9$t1`RP4Jc4MFB&$1^tFbauaI}BVhx@zqNHA?~oe(GZ zJKgdb?<*L7oS5YsNO$11mxF0{qt4RgHql$Y>Mz153HW79@5)FtZW;IKCTGYVUq%55 zvd-gs_TBR{p;P9RHX7mn*KgSat?<-yv}z`v_2Rfgabszq(PgBlGD^x8AF>rcif}0J zLPlDkurbT{nn$yGRjT%Gg;j3+p2ZqyGo$M}T^6kQ^}I6XD-zE?(s2A)QJ=wEzNyG- znI$$iTFb5~i%aqyU%{^yN`-jUWRLh&EJE2;2u>X7YWD~`u10uf&25R%K^rWgy~+;4 zqj84GXIJqRlNQ2dK1(RpDnj=~E&7fZ=Z)lj_8CS^*On*vSYnojd{74yq(AC(Eh)sd zBDFh?aBHru%FjA{XUN{cSQ@-={M4S6K225uFk9vf}*H$Z(T8z-r2^ zaRunqggNH3qBw=UnhVT}x2mc#g!RXU`l&uQ`-cptN)100jCAK2PbUjb`FsoZOuuV% zWAJp>*^7$6>7i!~IIZ?ho{=Gi_EcByBL6(hv$(2fZfix{w|Ut9?hA@_#sb#dpi{fG z#}K)zh`{Dhr8*Y@_Q8&Sps>G4_B= zo-50rjVIZ%vJ(g2P5P#J_8P=tW+^MF=jBV1QmFVz^Pau1dX5FVdZ~}wlK47sC4Iw) zpFF{?1ZPVxIVCSM_&g(I6meXDBw!74y_^OO7oSrc3*kJIVy{GBZhg^v>E3Qz)3NT< zM$4f*FG{>L^&s!|fJyU0BwiYLf)I~3QyJsyiB9MFGaC&S{5yo>YX$cjH8{fUV z_EV7>%s+Ls%KPVS75oUI6V}J+_Z#c?ORZnM+KuHtBNy#um~G|gZ=fPJ&|9QU%NV73 zxXqwSBc{W_4-UfX&~<2yn1aGj)QWOz-^oX-6;Y#T|Fg4RsS92;Fy~oy{1oDFv$3h@ zAXijx%v<*Dea_GeeBc!jLJy51_>Aw|ZQ9ksZ&O_53%kffV_)awU*f|@SsTYMWk#-i z?C%eW;xiMpzPqSW#{mwbz^lYXWnwB&yFBH5LGow{ZT0fUrG};Q;7%KuGm4Yj$5j$6 zKOa_&-e^9K<34Lf7wq&?x_D(f$UlbXp(6i)_s`)Mc;Q~9Pj2rXTf%iSxB+G#K=Sv= zYi=Y5Yb(UvYLD0bj1sq?Z>`1L97{?*m~y3)9|;xsEQLy|w!gVYO!m#cz-xm2OAyhb z1!8rm9VC%l+33m0c#Xr%!2tnI*@eSl6lvdLu~SJNyAo&KuH~hRgnM3EZ6{z*Hmj$> zs=7CdaNz}2K~Oq8cT8kkEWYxr^8*|y#_+%}BCJMP?3wi{aYsS2BRs00$_6e$1@-kA zB+UVS{ms%Xdl-;s7ZstP;yV8l)5t5MU8Lqe=4R*OS5o^DC%v2N(@#OznKNQLxCG{e zL^H>tg+CE%(8*6kh1=rahI^g-_5`ESdChik@Mg3bNVsEO7t!hx`uJIN&pxKv6F-TIvRmq3nN|7kM!JDtD^` zKuVOI~l!+}UaTA8tF|axN0#GhS z7ChWZAVcYq30LdRe^j?=wW#*bpHY3}9yBPHLBS(j;43D zJXAY2qe~{kxa1#bcWd~rHJQb2EZip%+D%4vq#-$2mUlZ;V*+Ju1jXy`!rv0qi05K4 zhd~O?OB>RLvqyGP5pH85X7Gpx2L`cwU0(&*C)%-vxe?gZUCHSx4%^_4m8`(XlB?oQe z5zasfxX0xNjR#n(SEyBt81QyfJ(c@tWl;cnn3R5IfGv~N)|{aet*YdN^d|VZbyLAh$pe4gjE|UR3%_8yT&%|9%b#&QadzW?r zPk4A75e5Mu`(rVE*I*KuC?E`|&v$_>xc{l2(TLkxW^6HCq_{061VSEs*vZ@1gyEG@ zr{C(e+yYd@QXwM%CL~t}K`5~p&Dw07csqYXauT#NM=k)XFzQznVTwRwqzFIAwLD6P zt7yxxEpyL+W2m{detrpk^I^(*f93snNvOiAzB0|lK4}m2OTa0+aOUgr%3KaJUP^W| zoj1z#3rj^*Z!`T}-7^8BOLt!IDwjtqbC=6zIV&!>oKs4JF@4&!@LASg&W59JSR;iR zk{dNb$SR4iKE2*6tJ1^7G}}mSf_@_G0?)f4Be$PPB)2c5vL&yN<5^j6x!2SG0|G+0?l{`(N zUSbR*kFjaP{TE-*cm7)DZHRr&vh@9UN?lIzq-x;U*P5Tqp)Vd)lZoPqxz_>m-I^3O zzfBGU&X9*2yXPn3gk|0w?95oqbGbNc%iR&lBfFDFXnNs;HS*e#en*%&dj(z#&Jm0@ za5gANh;jdJmkII}$y_|E#Tm(pDG&UQEiy4Y4h3i6xi_{Ry7udVcg~y*Jo(#Mme=p$ zK0p70<~hXo>o;4tJoltOuWxuCYZFi2@6F7?cxpEO|K|ZK3PO$jo*}FILKF#O2tHdR z9TrD&_X#H&mNPquN=|-}CpE64mu?v4-7frVW6%bm((xWkTqvC8k(v^)$~B^~KKT`m zo{~-Pqt@S;9hj^)RgDj07F!GJW3{dA4jGG^yZ!h;zpcYzMMa~z2y?R|HcyqC%b0mh zw`)D*dRU`KDl0wShRPb#>*`}J+|3mi6KDQYTZ1Ma?Dk8g%vR!vXtSkW)@Z`GbbF~W z1@XosrtU$BG<|HA!kc$e72R&f7@PIC%cakT8SQF-MYA$xpC!`+;*p-5nX<|m)%L5` zusl0{BJv+dvor!XU)uZZ_`xD`KkgzTLp_`z#QCxtUuoXtCxr_YYGV$}4l>B`vuati zeqtFF_0Hom1xcu&lJC`tc~!7$0;2}C7gc&zsraS9dfl#Kcw0|0{Zj42GBxbf%k+Vj zCv`8SjvX%h#9Y~gjGta!*^cbW>dtbnB=6KSs~l5T&Nj_Ap=6u?C|&9}UE#Y_GMfTy(I?&yUTgIfFR53OAWcKb>6?-HHKzbwr zd00N^Na$-LAB^drL7p8GNE4PD6UY?aLT?e^E|Xjm4jg#-BKE^=e=9QL>W?4t4P#^9 zKmgZQ0?%!31hAV{xIJDx%%v*pM0vOsEYHAdg<1ybQtf+IaRAF!%LK`_4{qNoJ zQwOFHX?CD#v9CZZuuAN$un7HxE#~n~5IUBjw8FUn_ewZH=!fy4T1_n_j{b|-SERt7 z?9wj9P7p5zP7p3Y;Iu$n$Pwtd7SwYPQVDe=k+`Q`C8f7H!!d)tOJC<=GlW+*6g~vL zCvTq6w%oqpa$p1jaupkpu;?p6YZMRZM}X~Dr3!Z>8#FMiWRET+ z1+Up5@Vq>nM}ZgIBdamQx0MxuN#1z_$+bg@8|z$xt8o}tKJXI}1+{-<*i*uLlG!7m zD?sAr+}L$%3^HShB@l6sP*cC5?%v78?Ss<4eAX}ce3_W>+71e0btwCGe&zh;|5+>3 z+1>^_Kp=hq)bOGaT`~~%&Z{I&@jt-U*r;D1HDnx@h7k&-13)pr0CEq)L4{%iSF{Jn zG3E(r=#JnrXc+}T*^2@HuQlCg5k@Anb8(o%)VUX!e6!iq*o$53mH~1c;1k>a0!kov zfHx;Kh&fPQJ!+Ytt+jD%Ee~}q7qfr@A7mQ}+@HP})55C8lwm}A#H;)UEzmw0@($TY zJ@OK)9@IBi^MeucFBDIK_dTP|0`dp9@+&vauB#DE>s@81J4#Ks8T>)eEX$1DCPEUO+Y(}^Jn_WCt$ujiDmo@65><| z$E`8I`A6ot))K&=dlAMy>?)|2 zwht;Cddz3LOWa-;pE+~ zjZJ2WQM!-?pdrSueU@q~^phFt*vED=^~Oe;8Ee9I(1&Ll~V4L zcWSxTsq=27)6(Vnagi|CQhI{Zv1Sem6q?W*S>LU>bGDf0*prK3lOu>>p?KuQ$MMDl zhS9~oV$Z4vN)$J5y!FAU-ZH+<$(VmP`Hdk-ayU-{=Oo3PnjpKo+`2ww16#*}IQcWD z`H$hg!How!p7t-ku}bWUt`vkk3+TdtzZ40ZyO1O_((HhLO}g;nbz*Pxo(pVK-i-c` zO`RhFolo$~_;g`E<$C&J0?{G8T~{+^U@o?prN%s2o+}3-suyL)`pYOiXBcl84FL6y zwc%Dh>q6fxc>JpL#PHf>T>yX9d+rD)|5!d-r*3Yw0{^uQN8MiUx}SeqJno3i$3hli6`0X#j$$ScOe5 z`w}N^Pb@r~QK`T9{@;|V>5(2sxZ|YTh`hcEo78R(!^C`BZVN>kfU8fno|OM}yHtz& znw`YC0SYl3=i5gv)11nsqr2Gj=3WkylFnsP9HcY_R}uv?w;70H18F}6U2OV-9v5Wv zD^XUggDVC=3AQVs=?z;0k$rbsdXG}kq((G@x{0J>5b5M-N;xp1B>H|JeR z`hj!;sqE18oBYwV%DWOYM0lt`9K3bg7m??N*($tM~Yo*Guu8=&e zK^xT84fU#a_VFpGy5wh$vs*6R8RAvag;dowdMVVz2=Odu*P*Lb_`Rc^C}kIBd-r99 z=nwqpLVl7+Vre)<#f%7qBn`hVXIccrnsfiAFO!BZnXfkfpwD!lnho)qO58)M3@n|Q zJnwY>f_Sq7FPi@(hO&rJ?ev_E^DuR|O$AO?6!=0=`+prvDy%9W$QAjCpxReeF<`5{ z`2617qHk)rFrk0Amm|tXU$0tO5bYhB0ldIIc?{&!N+1U7{A8VP7->a&?@U1CHk;3| z9d`Y?d;DvWw`X$sG}Y$rDbmn@)NvP|)G6UE$6R#-KL8x20(eIy!$D|v;=b?#teJy9 z7(iVr!w_2q*MF(=LrK%g>)p}Bnc1izP*oxzUj5(TckR@yo7!sx@LkKqTJXTFEK-3 zgHRI#=%_D(Z4i9X#-EK9FBuRZ&AAp-<@Y9q+Sl3-C&YI3i=M0n;AXD}k21 zXu+at7oU9v8sP>=@uv`R<10m4)`*h?Gb+G!yWFu;NtFRceJVBc%_UAI5gk(Gv!!$o zW7{H|a4@>rB^NhjgY9ZAxEDej}jNpqk_6d#ADg! z`HQYhwk!rV=(MtCdTqN%9E-*~R79QBbaM3B)ye+JD<4#^ z<(gElWM3E9n>+iUWEOXnLFx>jT8lKi24h;Y+SyoJ;JBBJ=LxFd%=+f$67stxrJGcq zd8W7j`*FbH8)-7f3wh@nz@=7Z!r1p8LLN1z5X6=()F63~76Cqj8B$!G9{P5!*xT@> zsIf`;W$!bu{6rd|V*W4gz5M_X@Z;>N918o!2ss5QL?3x45jzeVjiR8vtdEqh90=2b zx}|LM19wcfyA>;wNYwann&iogYr%cfouDo>$oCWpky+m0GMaXlEL=nS1e6Fq;BBDF7n52)Z-r_GEY3a< zdiXDDQ12Yr#G2E%1(yTB1{4UDNC3Pl5L5sCc?ts9moG$nVU1aI@)NL+BxL3#5;!~!zE?=+H9YBezQO9xXs@Dg5hQJt66$Z>0y7#-#(T{{VO-wlMjHhhUbs)xlrC1YoLeGQ?>L2g%bWs+I~s>W=NTg|fNb zP~Ynd`qmTBuOO{wSOsEqkPL>~;l-1@Zozwge_%6|iM@jy>@9fQ;rASnmoJ0GY9KHT z;7CBRgluUl$i$%RDC|7|)^0ZfrGZ9DOUTFHi}HyR*fFvBI1C^fC00~mGco5cJOZ=JpnWxU7`=0LU1 z=N(}aigMRbXjK*0z)#+;3&{~;M6D2dYg(9|F2O(0d3t(|+)Xan5vsX@(Wl}}_Q6;E z=e`mpx6dvmsM02C#mdFAnG0mzfcMrZR^?V5?Ht~X8x^62^<^#IgE0BS=7}V4Q*it# zq!(*Pt&7!ttGF$)x;ug|Jv}9nhyVzWo4v2EmE#*%i*uSc2lv|eRi0X%_`E;7xn|Pe zi`Mt_3*TdURi1sG*R_AP9@@eJ_nE~CL!6bbeL{RM^ISIp5r>lHikCLlkRP`mHOg=U z@lw{(TAl{8aJRo{cCmhHB7ZNY*-R*xqfOgisG4_06frsX?W@_vdvQRQ4Pl9=X~|lF zLQfypIEaSRb#!ZMWG5qH$aFD2?%xYbhepG&5(-ZK56G%{nt4}3{0<>PH!kzGKjP@W z-N+=G9rdH`3J=3=o$)@b5llwUa2u$MO{qHpw4(zs6rK|=0s8ZKGk}AP?%{auZCi(Y zczAXL+Nl-5mUtxAfgkYkp9r2%fMfB*eqO_iU_2-8<9JRBf*;@7xQ-hAKVRsLGe`f? zr`y?=LvkziYY>au&x3c|dpgY;X^*3$KaF?~a+;%J90S9S41Tx@PnF9vlx%*btQYxF zWbnI7FGq;AsWNicq_)-B^jD@20#cP^D{|2-!fV2k5wr-~*`$PHW3mYz^%~6jhaS$? zOWT?N;=t?in2ZUJNA9#|G?enlfR%rROD2^upcW zy|5{YdQYl5*7sGGj6( ztdvA`!JE~Z-(>W3a63ll8AOwWR1Og19a>=Y>9n2!_RVTU2@1C~doj>!_G7DCnVPTg zJg|hYFr3b%z23sCTQi>6Il|{|+i`LZQS(8qKK$Sw2|UhG>%&W-H2|d}tE$R!cb-=; z1Ge7+;F=zL$<+{*>m2TO-R=&A2KLR0QEGno?ZKFINxlF_ z;9A0E-0k|^J&7Of@ww+s637Ev^Gt75s{XSYgbaq z$Zc(@&CPpJYY`lLQUZUl9zCFlBRdqSR6?|;l67e!zyN#x`D@rmC{f@T08gT^+ zyg}*|mlahO304sr z!NFFLH8jcr!w6%8C+(PcNbY@gyJvs`!rzXDiA(8O;dDmlm)@I=0v*1#r%@p2rHAbL zUGq(?+k`m;{(MEhsoOoN=ZFcyQMU zxn>oDE$(o0>UU4;jnbA^EMj}Y{YH;vlq;MTOMxr({vc(Rs!gb=(v zq6)1fUJ7c9#tDcU`UWkxep(eA1DQXUB5-9*Jtv#c;g|RomB3$qjwgxGed7m~|BeP* zH*d*4VCUl6^xymf2lOsXUhUBHU`=QRna8z5@Am)42^L06b|WmY z8`*L(nDD{=ywhtN^<`rCCGjqfTF)brC%`cRdg5=}T#!5ij$`+=gjmkGNa7%P@pICF zBYL{4Ydf`?K~&_nivO2Uo=o&Af%2KQkXTN2q~r(m6QHE4rGJd_Qab`T#1HQ@x%-Zo zm@L@ZEaf&+3CBNi!cHS^OA>cZ4Gu6KuXGqxEH9_|xuaA%7yjX0Y=GI~6;;Nv2g)r! zGqd-dBDL*e^~6VjL_E5%k~6)y^j-4(G+~rbGXg62B-*3Z-KGhzp~f*};~7nkedAdf zx=Yv1!8z}i(KAA_*mhf-I@Zj>ehC)vb-3_v=6o{SGK5C>*`0a{SXC}(#Yb!q%e%;Z#jQ8 z>+v#sq}9i1XOv`1;@twVZUhcX`iAx@`UX5NTzmIyG^ppnO?W$sFyjN<=N*znbFZii zWu2HyA%12(qo2m7{U}jW)Y|#FrYjbdBErf7y*Hu4nJTyHwxnd^?szSco=0cZQ~7%P znkVi`U{=4+JU}JO1FBMjkT9}Zq-b$mFPcJ`s%@o(1B9mK$ABFZ@)*Lt%CL@wg$$yCYH4bGIX-OCH56Zyd}gP zSNF6H01N=4bHARFnT1;}OfIy1pMM0|H9jSLfBQtH{6*x=q5@cV)RbDuHz~~*^*0lL zLicuJ1s}2_ij9DKvn(|uMiMp!q!4ERjTLG}sa&4)8{O~VXhL z-1`dk09CDcS|(0tk{R#h>j*GA%H89UwYdfLE3dLrE?PU@y_uM7p5tum)O!m(4)}_u zF6FvWLqqn&k6z46$S%{sWcO#FXrKHm{eTE<8%YXf*VAvTO4>F5R_Uo$N=s#i7vGXX zI-4B#c8HTCCP*VH^T!JxC}fQYL=-)#A6b-)Tc3Z>+E`{yLT@Y+7QXVnBJ*G*;Bzo) z-xPe@(?&`&2*$GxKww)uL_edbEMUSs)CR%x;Nt{dPc|H2F4l+bFSHlyQtUPteS6kfo#Upl0J zE&Z%=W~e>YP>eKrT`NAndrvs+oRWBlb*A2$s~~bdp&4uf;EGjvP2G zO1ss1zeImIn=kQs!=towi;@QLGIRx~8KGJ@6wIQy_&6RZt`Xo*$^3FYZ2QD$ezrG| z0=-y6diybhu?>n_5m~q(Y{uZ?;^Qzk3I}tMRy&lqKRb05F?BW~`O}ca&gX?h^7;2u zh=VZ`xk>D*g#977n(lFf#2*LbRQi&mnZ|shQ-EhF&HbC|`UGFt3na`oKF7byK}_ug zsy(JRapKy)N)8D1l9VCsYl)}`z}A>CS+&>W+AVR2eZ~k~(0T_0HDHRwC%xUi^#BoN z!ksgl&3VPhbAQ~9C~QVcQE?~Fuc^F%rSX#ZEzAu7KCEs|ZjSX>ghraC1?6Ty`N+^z z=Zvve%=6&)nMj15k)=j_zM;)Ad4-JfU~6CZlH!dW%ECkiEtv+c|tD|yUe z39g=r0+O8UL|3Cigb|T8R=!c}k!bvGYV_lJ!1n-6El{vuH}L38Kc8z%1_U_2@{tPW zafjnh!5N{b&g1U0xbZzY9!68U*Fu2TFTjbDtKU!lo8mfvIrM`a3uMZ2nu!SLH{MH% z5Sw%cj(<9TkD>ygI9=jrs7zi+OA%gVKGUj#+boIR@hLck%O!qpU2N*^%BZO1YLJuj zGg)?%(wb_6ey-kS0V(Zy`ziEM=Ker;hFv7CWGo5bRnp$KsiDhtmM#3+qST<1u#1NA z_AQa&D_Z=3X%+g^8tp#EBsRkSTF-kQu;rp9TcC15gj!RA!h(Jj&$X+` zxO2lxgpynlIUWAN?$CXbm}^{$^ezd^IRIH%usHL#{QoPl*li5g-ZL6k&R%mZlRpu` zaYA2mMb02~AbL~X$P`FMPO-JGz_n9oEeMx2v&mqK;h{81hacxYj>sDiTZ{Rrs4(_Z zX^qDX02qZI?6YSUGBIq<-yd(cR`~O1L5-D9E z@a~FP*P|^4P%l7IH#vgP31LYBI87hqo4>YVGq(0Sc?N)Xq~nIjC3fc(BgB?}gf<+) zE)ZT`-@F>}78QPBGzmQcaUwpXJ;PbeJ&39e^8)-Mkd;9toam|s_6nf?uWk2{B>up` zS_!aeEikITFf$=kwjaD!wCZ~vvWB<^?!#da$|h$87X zlDBel#EigPkBDMyoL5VtD(^3S#tK~u?_&~KNZFX#54W)_b`ommns>S?$qjlXwAg*i zoh-^^5N=@so2TNpTAsxTHHM>Bh>Rr(DHz)h44#0z-IvKr3R?mrZ8G_6F+=!DMDb53 z?DjB;NtSHxtTJvMon?CN#bK9E>>*}S?yF_u4d-&nIcgZnW@0w+*efC^Gk)=Em`SZ8 z@0$_q>4hOZy^7U&o>~v9U@HKy$m}50k`(*URw41~%B)(7&A_ah=lF>1#=+yY*Z2ca zbAf|t1F}sC`m2ZtU<~4-ySYcCxPU{-`4;y~{;X9_K#TX}Lv^NPt&MIi;N8^vnhNEz zlHE3n{%`>78C7-tQ|Lb2WMA&cW7svER-hQ)LhJmO-S3+d4~BalD+XHQ+1;~@_uYn6 zRX>`Iw|ZNfKH01rA7ONsw%BSuG1|IDiKo7AAWgQAn)THg! z7DdNuB_zjach(<3>|BJMso2B>e({LjOfr|(IUWBV1%WN#k&`RLFxF|&OMe@s3B}@{ zU4x4(1cVEHmm=Ie4qN+3JDTTKCph{4&*7UtIMBIHfa8pPF;lpA@-x7f&Uta>-MF=t z%rP8?;IKFBU66Dqk!^lRBvkO1j8^}83Qv|!uB1Q%v-!}#Y!oh!{wV%G24=}_Nc6SR z3!`#KZW28e8kiN2{5>#RF#K;TFBtR%J`3Wi>s46^U{BdOWAa}ezo!_M+vzUhtD#TPdP%$&kk@$=`tp(uY+bgYj0k^r(+W+kRr+F9SDak@j)UHTN>|~Nf+`od zLdC$ZD%7*tmQoVff2=+d2bs)T$`Sz#NuY1eFyLe^F1F1*2h3Cn`p9SgS+*a&(9fR@ zicqm!i1xF&pi12eYkecFz#)EsI_E&_@AcyEekmHz-Jd-61JlAAES z$cR-8mYWP3x_-h=cKS36Tx{bO5YYgm2bggItI9!SujY3!ZO{fN-5<&a+?qKRZJ2sd zFJwZX`|I{%s+~jC$kD0!t06crTqku8A9|z&_ouCN(yTg{+ zmiU7tMQRlxcxSX43r`t$WfUu+It#sGR#dx;%7kz4$nwhAlaf<(q&;HM?0mf-HqV}W z*;oQ&oFPdmE||!+=5Bhi6*59w?zs9Qvw=qXLMVsIz`XUk<}KS295Fc5rrEJ9cIpw1 zfVz!-Gs1Wbo|mB}fsnaIJZA4=IU*m>)K=kk8i{Y?PZ5wUHpWX2?|&RDDl{2t{cuI7 zSLJ$YbI*suDvz4HkMFz7zp2{je;Bf_W;LCi|0!qI-wW0J`CabW>1CbN-hit2%sm6^+VjHV4$8(jomQuSjoXJGQQ=5Kebx zR|)bTbLzx5_4C&QN`Vmfa?||j9<=l1<%gBmkoZNIUsV;2P#81lljzR3E#B&=~MbufElJ zIxLlf7C65Us3fI(C$Zd%l#Q!u1<^R4S+5}6@{CuF<&=~3@fBbEN6n9xg>0pp%~=}8 zW$c7VsGHqXNYLV5-g_$i6ZbqW-OJG}mtDni_v8!*W(MZ5dQ;YkXTWb2u7b|)N%?XV zC+srR%-0|?{g8L%Ilag`nBN|=9k9TcS;=6q0%}L2pqYJfFiO*Ko$C7Afrupf&&&JJ(04e1aR7+) z2B>>q1TOCQvq~;bS{ovLfu+TMul0tXBaj454=AYG%-iyg>0kY=535PU4H?5-C)Z~p z+W$ib;CYYrZYv0CV;lh`s1g0EM+*r7HN*{)gkv#9e_mY(31Ia5r9h8>S_f@!gSI?0 z3cTjUe3vocaBML%e?Df(HGE}=JVDq3&2Owl{dXL<9vEj8AvnN>@y%W_dY!LBne`lt z_(Voj;(*B?U0VsXz9M!%9Au7uz@p1$)6u57v_uD&O77>?ati)C5b!VP1_Bam#MK`Z zJW={=L&6On}7qAoqx_-d>`_JCNA#OgN~Hy<_{@)#9~l7+G%{L>vPlTNMc7dkIq z-^sXVu$C8UaztwOMHorY9qm7!Qc=7_6EYIBhCBM7_Fa29lKXcCcFU!Q<&HddPNo#RkU2af~N`u{6U$Uj-^|5aNQ*w(E7^2C4!aj^pP;?S&rx3RP!HEPo@Ws?!| zwI9)}1(!;CdU}>QiDegDcs?DWO7K-!k|ZqC%Sww$aUN4uqkV7a zp~^P~Sg$41r&-;Nb$>EqEt#d!z^H?sGZ7~5JRUZ!rNpc|OT55>^1K$MHn#JuXT>n= zhT~Utp7ityG1pkKgnjFrnE&{;7cjr&0#}FfV%E3pS){zGy2bvj+cy@jnJ(0+lTG#( z^1;n`?u6U{AWvlo?@|8!-7Np%IsOSbU5z&D2^b%)`Au?OPifz>EX!zw&d|TxB{xvP zw{fh|X1Cg5A|a;rf6-bROptvha=7_U<-zh3j!gVIR~dLqFa=UgZeL_GmH@Tnwi3j8 zjm0Endux4Y2>}C;fZuEh@teQ@Vst}SiGpyMMqj~jQ!@Z#T+SGfN}n%dC|TZ3JA;Q2 zq1)FIO84Kq)-dsP#srVViy!|pXW7?uHuaAKzch*{@~UW4s4Cg;2SfD@@^Z)$%jWyq+&iehu5?7$1rnTdG z0@1JP#sF<~<&Q@cV~M>61QYOGC(RH|#rgM6LD6tsQpIM-7nA(k!-0$#gqhpWpcLcJ zng`e;!!9+V&7(1dpkXS;b zc{aDe(&^%QU*^Rq$Yb=zsg74SRe;2hqD@io_){Q}(48)Res{3s$7&n6Ev4+R5Km#h zYV@RUc~!RXuIB4_t0+~E37J#9`%E)0YEYz|h~SGlI#n*>-M1bV3I}XcK(C$l5F9-c z?-1`H=q3O%oOI#NhaH&mgjV;<>PB2+_964%V&-Crt407VnzeN?Dsuu|jNt|`U>(wvC`@ETKtczIZ(|^~%F_H^KBE#KZzVC~X<<0AH!i!$~`)0pr)AhIV%$l?qg6 zZNe6Mnk?+_0h}wg=H(dkiJX~eDQ-@aQKV*xveJW9#7ew$%9YtOv)5qEzX(M&BeYfX zKE2QATVQMp-0lPH|JB@ghc%UT{W_x~mRA_;O35fF78DCTKpatGLqt$P5JW5>O*)}P zM{qzD#@hy?^ent%{cQ9}R;K?I}(>Ai*)NV#h#z%cJup6{P~@Ar>0kDi>f&pzku zz1I4b6??_vla2J+hi20JTV?;yj;!JJN}XKFeQu$qjJpQ=z9K7B!vHgQ0Bh126YK%ReDL_(T2 zeIkenfnF=fV97wGuN&BdT{;srwej>VkYf^ICS$zIwLExtim16TV=gOh-Sj#M74RQc zpoAz3d^B@z1Adm%hu}q1Dqlo;`@1CYW0G_VqGebCBW9)yuBVScn7OQJ>K=rJqvVH| z1?TOVIj=L~PlQarwEJKZfyA9IgP)!QeKGz4AS&XuXMO<@p=2zmIrd~u1&e53n9(Q=oZ?0s z5^+!OPZYL6RW)qmix&!a??$iA9bou>1pb>S(K8rH6H|}N&8M5MmJZ1XSurn8c@y ztKfRO-*?_0^4&@Rz+N7}XLfAc!Uq!R2hLeq!$hh;3LDRIZ{WIC#Yh`x zy$mrL~rt) zU>Kk)q`%SZA2ppKn;Fa^n?>TXW|7TKBpoLtMj)R;L^f-p_Z!-0>~60l_0GhYxCBGr zo{Oz3)N#QYznAE4oenX-397C`d!Xu?+x-(l%*%cYMo%mM%KrND#mn|-#@UDY8)w)< z_hGQ7rTtShzVPN1%K*f5Oj8+Qwi3jkI|d9oL^(nfrG>>IiMS?ACbQmc^y$jqMqWJKGvZ1Kw`=V-H zLda2I#Pz%3-Sl1tfR4xG{4krGYihyATWG6(d^9KA7 z2tE3({+)XJ5MFm8>UPbeLqg)%MQ}3tkJP|j4<+p{Mxzq#t!XyUJ~VGv5LS24C@OS{ z?-T=xx6D^shkSFLjbRZa*m03VO6HuI935i^fig4wRBulFgD5|~6Vy-)= zfoOZ>PvFHkK1Plkx-qfL1fF@t3G7`iB4+m58~*`;y`k>zalBnf!CHwWk&;^z9!geL z$2AK$XQVSxXNkZatO9`c--%AA^M~MF5zx;5le=5HTdmI2i5GMPyMAJsf$(KOJjah* zf4~8c6T0dIT&Imh9_%}wk4dGV7W4yll7Iy{b$1Ak-Fctd5Iqql!bdP`2uc)y-nK@< ze?>^5kb9axPpG4sC#3vyr5P-rq;fpt)3hNvsC= z_NCLmJueQ>BB^n&)wX~M2k`b(`3vp_Y1iXNO z|3JWd3>342{|&V;O*n_Hv#EtB4+2|_|D1j|ls8SkqX-FpIx0G2HNJ($~-iCK?|0{eO|5&ntN?cW{iHebeQB`IF zwL6l%j$9RAmAFlT#wx8YYyRN-VQniIl@U@exI36#I#>X7Hu;wEPF5gMW2wRH9imx* z3`OarvP0h^t|k4}S|1n~`ASY=A2!LVw=1O8-j%EEu7gdejm{_+Br{v~orK8$>S6I- zOm`+lGfiXYW7K;Nc)YQDznp3}%~v!>T*$=TtJX+Vwo$)SimbFVwoi*H>vl>OVT_7{`w4J>N3R&Fau>Q-t# zQq1@8wyCY0d+nqweJspw5oqoD2?#H}Pm#|U3vo8y%>K$hqy@&?=8 zX$#^tU?0@aq*>(KQkw8xe>Plw4K_|zjhpD?Nd<@cZ!a^n7Xy7OldDa>J&zaj!ca|Z zge*bC&gGAHN%f9tQDn+)xA=obSLu{{Uv%0P|3ud#Go0+DmW13YtV>X08~A12CUlf; z(pw^*SxDM9_Gfh3xOy{-{IjY^4%W3Ro7eLO>G4td$kr^94z4aM!5)nY?oUnWS(WKgQ?qSQ^kbao(QotwP} zMc;E%&9y5fh1mIiv=|O-BldlnoaPOazuB-g7d&TPHz`WSo48^7iE1^>PD1>vq(xnN%z85| zqA}Cy%`tf?JN@XN+~1tvtt#Kdzw%WZ*E}L-d_f!7+k+#pr@+=$CF)r+2wBocU5vX6lV^Pm^@CT)()T{_O*x2zg=*uNQ7 zR`?x)#a4*7c3|JZU%*Pbh*{|^HC6OA+qPVkFL9^)RZ5hJlQJ=O_P zm70Qtw+Kwv&1m=T&{Gv02mB}n0gWm!uB94>B9gx;RC=2PhqUp6`dW@z0=xVTb$*D9 zHKH|{tuTPN;%@80Vc`1$9m-X}(*aJFqMEm*_PGd2)BZSfbltu-0kIlFvjeX-iE-m0 zV}v=7MyC`Ise<-`(hEcaGc>A;f+IFM^C5si*R#~2#S%FkzgQxj#gFJh2=PcmhQiPT zGSTDpvxb%d&QLRB3i6#AQ-P`)lmKH}7&!aW;_~EtTnb1u^ra^Zg!HB(+~%U+YH+Wn zC}&+kl9TvHHGdLQ1rmS|3h^0IXnbfX+z1@4NtwR~aejKF3ofJ04bjWE!FYa_K3Mwp z-g_doM0kP>;tsV(8`OryI`_B`WKV>Wc;^K#0^H()fPl*z@dH#z+V*S~neA@2z2QV0 zt_>(wegalnd^FMUk$@?sxG8&-EWCF`kmJJs3z(0Za9qe_yQ-mELGKAJR8B$gvFsWp ze?Ag;@t`QTIW-j+blSwV!WqN<=lZt`Nu1_aH}5F$#~S9@H2d*dHWT^v<_&MXHBmTq z4@5FYb)zwBeO&t++s&|VIu*QBD0_z@^Ly^!@4~qrJ*iunGzi(GeQWpAp&yI#ZZEkhZu}x9$T3By_{JW#nYak55dl0iNX9<_b!wN_puB)I5=ne-`v(|6T@*o?B`D{B6Xf_4a=%~sS5Lpk z{UJcOe`1a;9vAsERd~4k3;(LB5PRCQ?I-4U0PB!WE)Jl$CRDco+$iHJagQWSD&SOL z(R;8W)R1@#WWpr9ai zf8)y+Qz^e2RP@<}T?r1EEIqfVW7)dxV(R9>oFhYCMCnuP_@WbA$Ul%#5ar=y2%f{P zuQTZdqo777d&XdP5Z+&M>ySSK0Ij{dTt4e=mG%AQo%!bz(GvYRNAN%NZp`7<=PR&( zP`Y)fkjQ_Q8c}bWdYo|6=Whh)9w|L@Z}uJo>ce7obYaS$d7Q zXB)i9LrXn9Y|oYcg_UUhuVEaJYF9i%V}L|nw=p+S0$wp1dY87Zm_>4GVSAFEE$WRc z)o`(eH324j&vAGUZ?;X@v!rzh{Bed+ z9pu~dfiVI0L9YbNS;4^t!gI$ZL-}1el$N2{SBRatLOB?`%sGL6q*yp(%7Xx5LpWQ; zG4p?V+XyxYbm_P|#KfacrMqPQ;W>c}ZnmV$xVObzM*#`?$RAF^$ZS~)0y(BAoDCo;ttVj zkEsoo>RP+#^EJw18L&dhX|!PD6YyBm#!Zu?oW>Y#EIS=}j|*qxSrbORX0JDIFa&S& z4XB4;8IVe_YWFxaN!lg}WS{$i+fI;2v;Yn~oO2kcF_Rgwu|1flYhO!Yhqa3K=uMs+ zBx|xX+vUUSvns*PlYr8GaGl zO>&^r2KEit%bBsQ8}yeH<3ODP`WbDCZd6aN?P5)4sH{9pVBBUUHcl#a54V5h#Vtp=m6yV91Bf;0PeC(Aco}0@{iD)eDs>!~e4K)E zQAbhkPhZ!c$GfauRWwd^bH)0>pXbgKVxrb*2yFewe@B_yudtB*sdE&N%S)1u&;a6q zJ@Hv=HhDb5GWh+Knfd=d%;c#zR0iLxsnRsixEWEDZ zPXW9j_X2Q1aV@uqcJE0aQ#)yDpM7f=xlgkf+48tnjs&K<8NHMZ+?3wq#^gJtQ+9ju z3s^a!kYXB{uVC|5@#XH^xdLnCBS0h87NUYm;fHpN3U2v7Q7uV+bXrNj{H@5WiKp`T z;zIzY2)^5UTagmN6}h)fTXukK#*0;^&(mjWS=-<`q8N(6>Jh9G+3SB|#A|}uMgkw& z;OoIC!kU%Gf1a6^yQ=&>?2c%yY*_?%w;fQ%hk%Y*L!**?mk}3~k|9$ywQ?4&ScfP8 zQ%-G?=KWTH*iZd7n#l1u5xhh!e-@T`QwxaSNmCve$59z{E3-!Y4OJyMQ>(b zOQc3$cWS8s{{>Sg}TkdnuwV z0T#A)quPWuaSO&Qw3$AGPLcjj`rymh}q zf%3)l3ZJxT5@{0hEeK$sh9J5wu+I>Dp{C-Em_JeA&K4*+V69F9oeKyN%E3L9F>}vm z{H&5u#I^ztR^fB`2$mRio^*beo49qDJeTWylLh}I3m?5{3|G6Yy3@G;+%?;{Oaqb@ zuc@9aa=_lXqxss{!eGdPs;?#@T zf0Gl^g4^%))d_^lQAUSbMNmKsuB-jDG=4X(%8X*Q#QJvOId~Gva-!?gdcs7^7kQIp z>4c}2#P?uhC-4X;6pP99I_mAy>5Mb-k=0YdpqQqHvc(j=mCeZTtHo8?^0E;Y}8;oP5)C(lghclgJ5mK9gO zlWDl-y{c-vuMY2?_SWk6aYOq?n z2r_s8F=dMgXgX^6js7;QCJYndLm&q4L@3Eqq{bI$(LW(U`kJGGPAeU1xV*tZnziP> zo($W0Lpgd!S0zL5DA_7d&VoT^Rdm+SgLEZB>FaNG!az#xOwiyitoU+!oa#_XQGQVr zYvyGon9cxVXv_U$RU&dpc6M1r#VI*HT+|YfDZ(9yNmD300sLyD!=5tECe|%~#3Y!slxp!0BuTaM47Wgu)UkD^wapVSRtP`^j-9RX z#wNm&%*HXYpDxtz;Ebcy2fW~9v6X;Cjj~C?JBC}&*0{!dPz)v3Yz>g>Zy{&mIz!!NJX-} zCiF)Eycb|)8Ek{k#@$D1KvTjIQ0apiflM)&0~{fwR-Hs%DX%s*@EC89JHR|t(z4cr z!JO9;pjZ}Lra(q;Gp!j{zW0!M)}O~nDFTczC4)faB834U&x&xUW3VNd5$z$hPpDG>$IR)0iq>?yhDx% zOhllP2d*FAXFjfIju5Sjk0n;@K)CS`ym^+D02{GK$pshfmV^P+_5nT*fck#38wnSD zmw$2nx9izY`6l%LSF1^=9Ow*(0Cpy*-258m#I(?hKqSI2_kOGR7acZ02kw6Dc z4wLoUh@HoAk4-w*@&}TW%3j2rkF>9LyB|uj`ZOy}to3}mZQR=jgsQ8h#qLv)WkS%j zQ%Xsz<7CJ_tPAm7^kQYZfta%ZB7%}7jGzc^wSxT}GA8I0;vnza^`p0+ux+0&&w~@Y zE~NS1IF)JFMuR?qe}!0{(2FP1^U7MPxAGVnpQ9u*9n_5FBTbFDEe~$;98clVp6 zt`;A8MnwjrigMZ#eY)lyAWIVz42(^Sk9pW zx@%-#CeQiyP3Hcwt?V~iy1UW|k?u||#yktXKtgd&l$5+HCC+y{-3D8sWJNr|XK2H= zpDYs{9m$Jv@W@)(#3JKG_l5ucTt7RnOirt*@hn3w@*10>YFytlL^CuiN6JTSs-zqr zDWCuGs?@@G_-l@yy6$9)@?k9(m6qKS-$}0ok(Ap!{zC3QQ>c^UOOtOo_-hG<$j(O73QrkRVmFmg;>jX-BMjoB`Dn{wG=q2{J zZX`|qmCxzM80K9wwtD!mSN7?-pfv$TpJ^6(xYWQIQK7pxwgGsWy!|h(>pwA zOgZy(fxqTP=qht2(Cxrq64Jr7X6dEo=bvK5hFN{26gu6LU&iK+F5_PMqQMhK(%=Wh z%Q|3TtCLlG=7lch!SeJeUC&)plUur-TpqaXfGz9trW%eFe66RV+NSfQ2e zB&vxU)}nT2*79J9<=YQJm!N{0-g_P4uUpN}4?J^Quwmu(Xpd4;txk8Y%n;jef~wN* zrS$WcB_#n8TAYdURe9WjJg0x`2+yRJQc>ry6(WgT@~v*Ew{9KH_cM~sW9@$<9BNX< zpJjmO(t~Z16XPv>&gavU*Sq}d_*sw>*EX<+U(0Z-(lu(I&|>=C_UQ&L@!{Ugi|)1~ zzt_s%t(K^2S>XA>Gw0DF(td1WeA$Ze#sqGG&q5PlE&FJhKEf#OBqrOsfb>`_LVdTQ z&trh>W z?#;3DP91|k?ay?4njp2S;(jz6_hQaT(mI?cKJhmtIV*MfMic^;CP=r~4&_sikWB)~x4a*7;%MLy z+APljF6X-SSl$x7qqvSEf&0%Cd@hea(YLsAC}-&*u4XjTzG2IEo<($8mcgI8i(M<4 z(r&2o?-`EpR?&)LwVAJjJYRqr?^kX9nLl>rY48{;VqT{R@thpo!t{b&(2FuFN2&-n ztgfz>U6d{H>~eE`$I!NSK66&h8deRr0CH+JyLkd12(AH>e|`7-+I2+qwbV6CYPcI{ z{S(Z%B}!reRk%F%&!{~Jtug^F38K6R0*{g|Vep_dftU5=4pRhk|zwd%1#PRJph(Ulsa)F z(1k}g-YfJBFdu5enCGxM9c~dri!I0Gj0rtF*-a1;1hvLLc^!kJ83XMd0tzp_RZGjj zT^Q9(Fk@uyLKGq7C?yCZLaD%7hJ!5mns8hHG)WNpcf2ObvqOxr5VS(%CPaV? z!$B24H|KJts5xIt)qP>$kH!F}fDA$Dg~r5zCjo5tw(!b>e}M@Y1}tzPguOY}U5rl3p!@W*pNYc`XGoyJZC^^t-aO-Ey)~=&~Wj$(54oA06LDpLx z`Qgu|9}-wlLC7Zsm+_QK=IO_1tVmZHjy^aA;lXV3EO+&ubyCyZ>sCt7IH+|LIj<@4zz&&8{#FPxe%hil#AhU!*vP97AM;r>WxAxX`vKV-mka(j_1 zmVk^T)7x7H7zziHWNc)&Zs^{Su+b)5gs-|=kwLuJ6KhbQ8PgxuvL$s-bc8gUQ#Vc+ z6w~vX&SDp=k&a%Qt2)TePRaYg&=bL*&kgd{If<|A`1B*?W7(&|Pw9zgWPW>Q7~DX# zbvo_$aQxn;13z;%u#0cWf9t%ntg`K4DAgWOtTqDvbxvQWaJ(X&qoKZALrqoDvFl?N z$74MkI%+*=dT619gXF86?6>F^r*CMB=Xvk0x?5ZH;AGjidC_klbh8-;Q@(UQ^<>Au zV|c%BC2w8Fw%-Xm71eicQ-~)~Uml1O-r#d(T#u6N>LIB@_jQYQZERiWlORh98oK3e zguS$g0*qaO)xbRVI$2yGm?7rM1`~rd@X0~{3iK-`>G;SM?KRA8kfYg2j%`v|Ak6(q zXZd?lFD|6{I5kOM*rdn$bb1Q{%^wv0FZ3e-vEBGL1ySkA2*v%PV^Q+ZF{J313RH|o zNa4ft>oNSHgeB(Y6Q+4-YU^K%XDchyAC)f+$8De~<#8C{8+I4JIJ>fz9d7=b*dL;B zz7cdTRcE_>cEgSxW?mVZP#Vi7^ge1;CvqP>_A(#2F!;g;6Y&5FT7O6hUelYz zLQe3`jRie5x#NJN3uK;GO2E8YzfC*=iC|Fc0FXFAUsEg6gC{SU@lwHr8o0hYQWfOQ8aP@wv}piW&AoXC@G9r_np2dOO=DsOe$aFa^h}ObSf(?l z;76}V&5#(`ZJ&e3ct&%K<@4qsDgIGYj|5nmnIB zQaswvbgsQq+8j&jv1o9MvpGhL@f=d-wophdi=)4rdkmKq#dg{B((~QvY1f}8t+G2+ zIAz>EXXEiOXN z@4nkpEB|~hRjEa#*NXA#YI;2ejNdQv!}x9iE7;w5J|^`ANgR0lKAR*z{rR zo)16mUh5e6R&QdzR88WaNs4>tH7!e7L@?8o=A6Iqn47D5BWz*sN*=XxmFO!4Lrk7W zD#yszr`=I!T4=J4H^}FnvqQ*LSe2-+VEfO!uhi>5Ld$V{7J{|F>U{|{oel1L*%*85g_xB6zliiP2Qf9K3*!T zpcjD888($s&=ql^n0Br)q&C7i>^{DiyU~bkiDJkhmHQmcM zver#3+iTsLX<5yuOD{`(*!h(Tp6SjP*|h5>zqZA&6!J~S9%m4_r;FQC(Q45Ie(2WF z24JuZTgfA}ds4sfnonaZw5XSG?hg02^j>+ZseW|Kq_UjY!;Lm69Xv}Or{~ir-5NddShc1talwI&%4fE=s!t+T|P>e=MUI=bhs3e zUSiT!G=>-6dB=>&u)IG`jq;IZm5m*|@8)8ck`!t${(W^#-HRmmTg#TewvqfL;EF*l zk3`?yV;TOSVN?C|M|*$)#sbjlq;NR3pLmP74>gzv8~XZz1-TFRPm7@XjXB3yF>e8Az5Uyuwx3}9nXDMq0E$jbY#9lA0Zo^<0-H{0>|1m{EX z`BbgT*=}5MdI;rCPrWEtd8I3*fTdiMbm=~EUV~2e1nCp>r)*EM+Q47n6T{~!Nb~Q- zHI$|q2ZK3_(8vYWkS0kpu=*c{dd6w&M+xbjNEY@XpHiS@;rKK;)Dzn3_HJs};wolb z=e$zt6xKUOY61%C1NV9ipg_D#0$oi)1M1y(?T;KOM6yhfx1z^LKr8d>sVSo zF#S}3IskhAh0`+E^^m0)7-NA6*FSwkArrU7nrcg724&9tRV6Nrvsni#kHn^7Ac?!~ z9A-Fk3LCVlr_E@^UhoE$20`hz!wxYp(ov_P2l#-Q0ixwSR&CagL7F&q%D;uW(4!U) z9WRi;x(M`co&cJ;2m(SM4oGXymB4iGAScdjLpJk_uPVe_Q>s+-cxF0p#^YI>P z`kb=)Z(D&MY--tf1#NM&&rJqdFJL%Aaw9>|&X2}w)`k-b970e$Z4F)m>N|ZddYt=N zS3Q_!$-SgANiPJ6+U_kj!=KrX#tOz6olj5yd3CK|hQNI(G`wt?!MB2D1HdQfqIyxN zPap%iwI|ayXSjhw_MF|2{>@n?a5gynrMd+aa891K=RA+_4mw2)9?UqNYIaDgM`>Oh zV0wb6=dY5T+`XrD*3yV|Bfri>ioYcOm{0g*w(hE-;L7!I@WmAU+C zox_h_Qsuu*l-Z~dFF$hePRmwidROl1`#9qBRytqq!KxzTrZ$3#xm%jikg1_EkzMM< z`(B#n=1b8JJF-%A?lqw)1mrNuF&F%#I@AV7p3}K!M}q2F2E?LNIX>9_c+Q_r2im>z ziB-|=d1F~c?wJ0Qgd^=jq%dUe7IK{TWDs{teh46ir&=2+4XNKoUXxr#59DnoT*;Jk zh)?wFme}I(DlxRjNeC3iq<$>T*!ni1PJvKB>#nM6Z&SK22&+pe$@9}ZzA?p)9yywj zVYzDFWf4K%GmeKBY!d|5l^WyFI7-l3E(rN-6>C7txC=nsDA*+yi<-zibyIzq>G3V8 zfE&9EtQ9(@V_M)mT06bUYKLy9s4Tqi0h|T`DFD*z2W~L}JC=a!2sEWK#)c9~j$rFb za-6?O^!q9+DsQkM`A!KuxAGrs@6&?%ysGI}wPLJ49ac_QK)`FaN$t)lbh>rD3+$kq z2>wJ{j0|tE1{-}wGV(Zn$L!b~UU~@@cL0I*qE$Lk^*kn+e{xfR9=6ohqZ&2hv%pecT=Th9k(}t%Rx_cqXdYEm4WV+?!LnpDV?$`I0H{ePUir8wCvy-ngy^w8;B zblh=}vavnP&Ts^OGs(%Ak*RQ|WhK=&w|^3y1Ny;1&0 zWpeBgjqbYSm7dmUOnKm_*t^gp2cS8TWN-CA9`}6Xu=ANF4CRhDgjl$Do<~v>8@aEj^1d3++l9cSl#GT)_6xu>Mx=B z$25tLeak0mE{#-4Yo-syO*l=m`s-OeXAkmMX3V@tw|R}H3!~rWt0*e3<2mYfw;e)c zyamWpVcg0g-h~rO_O-@jWJyRjVUpZ(S>7=&-VNBW%PzR|j9T9-i7vSbwKW6dZw~tm zUBYE%s%za7BfCqbN5m%QD{|`mq|D6+^E7@mxbCrYO~gHYs}8hBRvCm>`iHAla`n0) z#aN69=IwPC z)6dy^9J=~$RzT?z<+fKBA<5j;6S8^{#5xcD;sk6%-ir&)zanhpbKo*BnFTViL&W7L7oNLsqH3uBN&Ah(#K0#>4(t@_{DAtWC)MDU*p7=Xcet1`s@!Ap9Bi#? z`!DI&!~~vpGZveW=c|sJ{@F`3;tl2vkw^L-8&~L-^E4;Z3G$~itKKmkvl3+W`c6nl z+jXV579RKAefYg}T`0F;V&0fh%Uk8*ZNcOJ4C)U~8^o-6$}JFJ1?!O=qKs2!LCt_i zMv+X{HUyr|=vAEE3Y}yQkdC zQA2yE4D6vG$NMCA$b+g-U#qDOgd595BeOIgteuKwk2&P>8m(Z)@dvQyR5ZYe&q4Yk zatdNulLANbR--QP(?y%E05HF>f+rXr@UwOP#n3={0t`0q7p=E+{)s%`R%BvETu;hPpa) zg=ok+g>$)stUhywQ0VDBM207K05t-$QV*U^B+%r;etmKJOP~ynQ#UsIfy;30%qgpI zyfK9;x=C()1h&^ZBLcON$|q)n`RQ^9f}b!8haW|3Hyo_h3<&H=OC@-rp;DgTRO4(Gjfbywl# zUeE)MMCI=AZR&Z@GQKAGTgPv~_k%}*PlRM>?|I?|CAK(~U3urP>YiTYaBQGB`NZafH_vc=uxh7p0GGI5=eY50bg#u6$wg z#=*HOP?nR?^)^MA;0H12%}B$h$lt%rJtww&*d2^VLFai>@Pnv23h#B%44Kel~CY=J1|_#Yo(>3c_5hJbJxvEmdJTP;gZD3Vdh(}6@-%swK>iI zm7B+B)g%4?lU6* zv!P^?VR@P@?@5Hn#88CZ`~$r&@;!t@1X`g^oB;(UYo3-I53>0oR7WP}zc+JLFX8|C^Q6WmFX zV>VDo_BZ^Up1NGU8VTcj28!0bl6C?kiTV5Rb75Tmd%SCKNKUE_5vd-e5uu?e zxX&hjp?znl0V`sSBL$vaK3dt7qR=3b5b4;!8}K2#uM*~=N!~w zJR=W2btwjH8WLygUv)ss8K6gK(e2=+soBHHw8risj)gzGPcJZ4;U$(NG7Ze8^OG9j zr@(#l@Iz(Wbnlsh4Z)&|bwy-8BvO>L>t=nvn&C=yDZDd)4fa*CcMoR`<5)W+PFZLv z>!%r-LjY@}p8gHX?3ONj!`E>Dom}*JY{NMj5%n?!Q3-F`v00CT(%O=(p?FD%k+NA*iL!VuK3( z)w>HZt08?KyHd!s=e(?D`L7;Dzv9X=MKcda^Rd#;1ZgOOvy5uQiwFD91-*OiNitd1 zWsxan9xi2e^Ova_Cw0VU;<0O~60|!Mv!YNtqRE>j1%5{2-e~IA?$Q3z%}JKbkcJ(7 z5BhV9KR)Du3_Qm;Hs?4}J6Tl-{u+GU(n7S=ETwF6GxaxtHWdLGH%iFq35p=smy+bQ2EQj>{t z*IA|CujP4=d(c%^%k;|*BQi2>D*#&leTcxG>ci5-Ebj9O9(rSrf)v@!z7C4Mewd53 zefpOHC2kUy6}2vD|005?&J$x*9Ngl!7piPms+xL%$#Zj&Qc1VW2aiKZ{@EJM9Q`z# zxz&;fqAC}|i;5|OI3Ad0&AGy9ba3D32Odq$6wU$LT?<@Q(1M6RDazkjqv+eD!xBxV zEsA`k;VL5^KRwp7OWc21oDu_5j_|e@^YF&oZO4Si2zjr<%PaKhW;rhfv_;P~F zKZ7LOyZGiw39lMwXsfgJkk=yq9(g-ky^LOw-e$9D4M`}XO9R)SbKa(>K&_@LnKRbNH`K&+$t8GI?0w8RZgd!q z{OjbQ(f{;daBXixDo+SW)0cyZpuT(2Ww`T1ZcMkUs z_W^B}bSyZmw|_3RcRuuj*Q!A^8nG$sI_pf+rEntm7T2vEDO#8_qv~q0!#kjYEcjlI z=?t@4#uLxNs6U^-v#>`n92;0=-2S1JXNgFseH(O~#m}u~o z%a2CLA>2jUYsB)$L}sq*TIvx$ZkhiPF@QVurB_*XXRbJ7VH5p{m65crc^hg0=sX2a z?qvUb*A#=0nAeNfl{zc-Y^fHknli!Ls_L7V=Z z6pvw}nwc52vzTO>aFzuG$AeVm__LPZDx<#zNGmAI~V4?AbNOVDgc^app z#w*a3jp_Uk^JUdY-adB(HeLy=hLHz$aSYd4Yk{|Tdg5`PMM1;LqpNw>ML*h!_|N}+ zcFF>)3sgViFtvqQ>0VRJ%5LRnR$q05I|_#BbX7w6C+HTOFPU%ZdeftoRxOF_g zr$kmPerIp%$8KvYUst!z6J!gyMwLt(6tg5dot*$aHtF?(qoB#)gx0}zi&8*ipwq9b zv@D9k{DB|Y(a|#xrKN;o#cnsgl*6H0^D*d3I;h}nNKz({YZQ%gbTu;0z0o_%7e!ng z|N90QU@rRfBwfYN(a5BXReU+`FOfsB)M7O_E@iv=TuI+v15`s_?QUeuhOBN-%nipR z_JyM7|9&d3D-?|m2lyD97ZTziS}aRQs+laG$Mvxxts?uy;|TCL!rf!N#o`mshn^5W zCs;{{*L=f6MvG4vdhb)CDJV@s8#vu?LP?Oy_AKOFt%u)F1a}iO)(S;&A$#rvD+e`1 zel@-WRAHwlF@0pHP8HvuN+8vO2%V`p=2-F>Fq>@Cv(EbLFQ@hV+6p%5{i>WRii-a95!huim(%(RP9j zUos)9*IA_fI~&ra*bo`!W2>skTfO!1!lugiq#X660g)5|Z*ur)DkDAJ zS_=#ckh>0K^KS1|Rug_!e|one()+c=P=z3D!)(LA$ft@`*-fFc3eCE2)sj)S{E^D{ zvgHVHIU3o}XHeI!{E*TrA{SbfYi1w!DRnY~%#$=!KXMDKtJG?M`N=ZBwQ5L1z}vGo+@9ZKRl8LL6EiUnIq(RJ{vc>13$*4;2wfwD6T z7$PO>P5B8-ixD3(z=2q>Xyc`X`tQlDfzM#;0@04euxV@TkFFc^1}+d%AX>F0O@(YC ziCn~+q2yVdV$Ayx_<|C)>Cd0>mfM$*XfU&vMjiqXbXGrSRCh?vITv++VAIICYuQJ22NROX zz<(n*daM`!h=%GufJ&qo$)SybRcL)FeI&?rBoN8OOwrJzWtDExce@8^TvT}7lb?NH zF!$Z$KD;V@PX99P2isbD0*xXIKB3vBZclrMEy3H8`lRXkM0duzFb@1o*dR&ELI1zF zYvwSXB0}Ko-bNja9f+CZT>=CfG-#2I)^k{#ETA+klCqC^K~Lmy8TTNT_8VqNBp z*2s}mkmD0TL`K))`-)yi<8dfv7G2TE33|? z*kg54Y^>xtT?Zgu#O;L5h*_lkOg!ff>Xi|EnfC!tA(ox|36W4l90faw`LaJQ{U|q2 z@?FyAUgBeydAD)Fe76ct)5t{sc}9qRS7=fv|K$_1?+9xCeeFW zb;ts2$n8z!R2A5fd?wNI^Cy%nG5VmJn+nMT_|8n-GzghAjod$R}4M zhF{c?Fg8%|m>zc7lJeB6!hXz5F=-XD$=c!C!wCPRUOOfNg>P6h&Hol&1L9#o-infYDldpYUB{ zqHh|0YU$?+8!aS=o-uGN!SFt!B=9dXFU^p$R|SPjeK+ABT>Yr|e*yl~)OyAbvQ(ST zWq?)D-WS{d-u+40cu`qW*dyjFddpSj>OV!BkG(XUBLt+aqbG^1M`bU6Sy~2o`#Ehj z6fG;9usc3ikyKq_WSI<0b|lG5mF6$7@{3j^{142hRcsa)GMH8Uj78c3{j>f<^U+Yf z#VCM>v1Hh%cHEraF`8;7dvZa$!j#yj{&x5l>7rt%egD(ryN5zbNBWL>?Ih#?!lkdz z*-dB-U%U?Gm4B$jct}TFaWX;qOD-UqG=#6dqhT82?!ECY$t+1K)ETN5To||iI{8W& z--(bR@Pb(*o7JLW3964MKBe|>(!BT)(yb4fTr0P~>+g}CjG+IXe($Ot(5BLM(zY#L zwfAW1;~B-mk6SF%OlyiSep0}Ej zpl)v<58b6;1~T_pkyhqO{cwBTLffj z)RJq7BtCcE+`M7Vseb!X~d^1$ii-}6|)v@7Tt)EHWTn#R~1oq~%HYZ)F zyt#gVfZgt_;9#ofVS2ja{tUfN7Gl)%&CIxdDl1%nz2e?};R}Vm`VXF%pUXv5)8*O8 zS*VG}x@MUod^IB}!|yRa_<67BV>EF|ixfi;itxOW zbvtzhCX*vZw5aSt)~P*zt8ry2BZJ40MVFr7&7`#NXJqnyWbKl~+cs_5jTgD`mzp{3 z|H1XjSN#LcapTXAUH1lFKTc*RO?-(jtw_hgjZdNQG@GjM4*N0ft8DSH(w66}HUv9A(OOBi%jrLng-y8{e0(|fl@cAOIAL%WF7fjxnmJbx zu`zGMiMR2~Ds6+Q(D}83tHIQ2k~$r~{|~5>eZ#JNa}%}JyN7v{??Pfj{yl&8 zJU%I3Awgl&|G7%GDEgUhb*0j7P%Ina2ra(hayzNMh&OL3oseV#L8z-_Y6Ib_T8L@F z;&Wa!kM81?DsoEwF(p%ztIVD0Xa|_|s`zSawcgOpsm*+Ws z8(FMnESUY}&Tr`8341x2UHfN99VkLrfH1XCO?A#Xtls{J8iI5NvUE06u=f)T)$v{%V;K z+3_9HQps;So2?IY!^l^}428@^S2g2sH@aXPk>69|g03xtv~s_(Q$c<{`G_=Znt$A~ zzYJLs^nzU}uGk;kZBjWp*VdEVw$2C>>E^isdvoJ7o(r0KBt1%Qd9XEP6Z_1aGUJLy z+KD8B=PQ!QELsL{eO#IiM9apMN7koYZh9Hq>Oap%#4H{4G(-g(yZ}MEHoz3jM0>=k z#zJBh92b z6=?!PIdFgxD%i_#{_5<&O(xHEMgE3|UUyJlCzG5Rt{uE7ZBp`Tp(#Vn5BKIENxY#W zUDJubT$A$UI(kdXdjjFPtiR9$eLm`7J!~-VLODt>DyD+QJl9Et8)^E*|BJGLDPzsP zpcXE1jKVJI%e@J!OddF;jGWiiN(Z)PVt$t*r!~y%Z2U21p7YX$i|xrBv$NI1*ff2N zs93(+ciKRjDhjY^7-1}b+lj5j$;sS&rL?ccc0*n;J7oVL+uV2fL}oeDS;^gE0?m><5+8I~t9 zH4w8_R*3t5Kr+liy`{-uA6#n7+_=~Qi3OG(uLeds<=Y>ycK)leGZTV0txn-)LqdzD z3VDfq>zY#`CuLR(!OUM2c}|C@c&a^Lr&=S2sFD`nVO7luCE|d6;;?G*cxcz6CMpM& z=QAtq{I`B2yBu@v?PAtkRTZue3kOn1sE`<}=|>|3vi59yVd#p~q8ZDF!E+bq~OB-JUM+2aB43O8gW z5EGUeZY$86a74V<-O{1|{wM6=B~t@QW@FOL+TRV(!I>ANR@#dpR*~+U9>muJ%|R7V z@|`=NYeKmXGD2?tjz}5{3>yGl)gNfQHWnwLe(Iz;?kSCUk)5+#17SN(4+opoIYJ%n ztII&e$m$zu&km8phD^ZX2>VEYdbNS@*JD%Scv(>heTK^i=xck;6jrvP5Tq(DRz2azeeJxG* zZ>M7x&#&UTyt+pr5TOX!5^PvZ=2)_#17DKNin{+I^OnL`3}s)#6k66cAZt4swIB`O zafs-;8Nhsl!Bw#8(QT@nD)mCY6s8^&*E#}`Kr=W zy<4(rYydY$o)p5|+9bNOt}YcrM*6)iiiT~TCXyEVvlhHJ?=E=ttk|Yz=`#`piYu4? zEE3b&9pE*j0qPANfXudgAe#F4tAA5Hdpkx99;3mOg75750yZlFmaCi&U6Q6a zw@2UrhwLTfbC_3y^I|1QO9!<6e4t71u49h=bKCVMr6Hx6b+Z#%-9eVF1>Cmw$!Jjo z4o=9dxtqZZ-Bi@wtQ_&4l|Cf!y=bpT)@j@fc`liYNFZ(s7b<~Xe;ClYaM-7iIlTuv zAarc3I(GE{=v+weU7vYe%!8DwTrum5S-qUVvo_8@NuI2)(vT*b3;Ut$id!()VvHre-4!?F24qKT z8y^BMV#g*Z-3c`XF{Rn}Nk2Bd(lXMmOk z5(d>qv+!QP^(jH*+na2g#Z@&^>-2yd`m*SsFRQuD&Tqo!6|hX$2y@TO!1C)**l;{j)HcF3^y3R_TTW(#+=5)TaX&=V`46=5zW9T(yVa zd!0Dl;~=!DG$-sqjO=U;N9_F6_6k@`I;5im>TcU!U42F6V9S_K7;&Wye{)4D+W(S^ zs6fJLOAq2ioQl7{6a3Mr%6!DXjl@B0Jv{?_WW z(XgndVH&K5bi{5}gwIP$Fy*5Lf1BgiKdVNy?tCzsg!D6Je~oLkDZD{sjKQtaD_Ucg z#W7Fm#JuakJIjS1$;njc5)L0bfN;}qkRwKI@Cv_8W$voFQwZ|Vrc#kP z&BDwVs|D~M=Pb7bwhW~p^ypeA4!y5FrN22B^BWt*F8F!fQY5S}m-aO>2)jo!TtRip z@OH`$n4tX-qdN~wOshtFD4qej7MbI9JueM8NQs}$s*}iujzTe`8+C97Q3XjS3e(*> zi_o?a-^%K5BM*_0eq&mBj-A)$U+E{`(DN+XIPNb+U`o_himW6ZS3f}}7LE3a@j{M* zZU59aR1qmSMN)c}3JU{Z#o5q7&y@=z&l9T@*n_gL!0QS4d{dXmc%*NwM?-@k3qX5) z2TxxX%o01p$>z^~x(rzwfX$x} zUw)na-ieTkLI;Bv43?i{?<3bR4aY%esJTwSxi#x_YdNXE4QqRkVQU&xgY@Ey*$>>oFQTS);QsHAql=X1e`=Bf;#zuu{~!m)4!s%0GD27wdleC zm8<#{-yA2uk>&$3zg@S3#f!JZH3T++3t3Woi2(DP@(F;m1*r#Q6>S7U#KFJ3z4d64 z@>{eia~&6;tJ`wY58tdiY;LnWVQg8+lH8X9Y$cE*Izj*m)Z}-Bc;uq6O@?o{Rsd=d z^n0I)tEw5o@Bp&ySbdSg4Wh z6ex*x$Bxh#R%dvGW%_LY_MH7_(`qiZ5&aecfjLF>)9{N4X@Q;k8hXeA6PgmLgg02K zPmBd}?0ziS@TNwt%{}2AV+n9tO`JAf{%XB4Id2L7xBJj@4{QUgHUM|r2EZ$kA(gjf zT3|E()!y80TOr2V z{QDU*yu(|+Y)D;Wgs+s1&->vBjzDbP&DrP_vg{x*Z{~nqsm!RNIi%IDv=xc+$^`Y9 z-3m9aVsxs+mvyASW2kQ?pe(cPU)p|b%Rl6Q=6-~e)$HAT_j@mHUV)`yJj8L23J~|{ zLH38j*A8aUQL!OEf8ftc#2JkRcx?z`3gA##!IitThaQd|HaYG?Qax*e3;=Upi31kw~ zP0G&wSbtmy(@mKB=@){g$4u8nd+G!bQ`8_90PH@vM&#y2D+6p`^wh=Vg`NN5Upa{(@{7B4=RPi56x>ts#p zz!?l<$W`yn>)8)2pm|k2|8EkbHg2S&L#+qUB^Bf~83O65%&sLOz79pqJj;hdN4Hsg zYVXcM6pA!-(GcIEE2EDOG0w9LfenvYhaR(fu-{;M2;)DPT|Y1DqCD&@L{%5)WLNV- zZ}I(RXfzi8n%%St$FxT>GMwZOTS>IjRsriHuv>CgR)1ocfGg1Jtx6bm8-@sbYykaY zcC&AQ!)^3Tm{{G=7r(`e1*`gX>rUEfq3Nu&tDx&N+UpFNC20&dU2u}E>eS2cyES-2 z+Z#(0PO@p?3)j}StG_s$j72REHB!&+jf^qc&02Zs3_+yyjs^6NWt*t|^Pt%TZLAz- zq*bE^?tjQGamRBGi={gZ+iZ{npUsXiD!ku`OloMAxTJftx>&8j5?;Y^lc>Ykz3-E% zKfXkr$JqC-`GZxKsOApHH&|H&nI1wd@eni}f980&{`)GnwUBiH%yCg_n_hn4wR3w> z07GO{F4<9oPb}yUEC65oZM(OXtEdiDm)nzH`HCK@8MXC|-t3!r-p(CPJap@RiBR-_ zn=)>0F5_QpcD2vxv4@9qI1-BzLEVj(xOO%lPCTXN&;FTky6I)`kZku?^)W-^ltekW zBcm}U`g4TL(gH-+(>Q5PSl9|;`HqD#FsY=%700M9HuNY$X84W9GshHzl3=H`oM-}` zDmw0?PK#o)oF77D)AGIT(?4EZLw!%fiE9Pp z%||>?n=g{5+2iLI6Ft;K-KEYnws8SoB7T_Yknzg4`63bU66C7G+BOJzk+p7quqt`M!>L2oG2n!7#qAb6CIH9VQ1)K>| zTQgnhckdv-fa?wBv8oohp5Ts}f0(Jbtir-J6ph!P<)dBTz2hTrDULI7bC4eH!L$-7 zxaKE`kqa~BZTQsHkMwba?D}r22#FdSvqTSQ_8=yA!jTI!ZYd;bM7E5dVP$vr#x0VL zs*A}NgY-%~E&(8c9M_juW9|N_#C@cFsH^b1FAdVJNz3Tzde4bW8#|^n*W1lyg2f~M z!Li6OQr6wthgsgY(#_}zRV1YPE&-0$ko{$9TTRo<%;~=F{J_QK()+cVw0}iU%Xi#9 zAU-pG$s-lwmu!x-FF)#h)~T7>_c~4l+|9PlS1sR-g`qqIl%7q095dSZLF70-iqdOg z8(YDfqN1xl7bycz7)!}R4-3_QA@iymtfmz$d%5*N-uK^f5c{E_6=>rO*07_y(H-f~ zJ8tLwY5O;(c1QgtTJ5s0dbTmyOzR}}U9?;K2G_4}9XM5--}oo$;hHnxwaHDaC-#~K zus(yT>HQ|l6VZx)1o8Hh%*@IkWF&GEZXGqvZnz|Yn~!DrR;fWZA31z;RiYC@BZ{IqE+17BV)ns>@-E%3tySEGuf{*5kF;T z>jS0Sp_%??xmW6b&-D-dr9(>Lj}9F+_Z|>6_P+pb5G28yZo;QYq|aL6bZxI<`~Eyz zAx#xMuv-oeymKI_Ye3;Jomy;Pb3qQPh>#K}Y!ZU6<%R-0mYub0>Rhgdyc8Q-=<~$B z8KiTVS&ly0Qj0UqLtSQPd~LfA+Orq3oi7WPu?RIxyIX_GSmB0kF?+L5cWxZf2c}M zmXY;3hR11N$d!%KkD|HfKL0uW#SBeobUnNb8RdwZ(b-6+_euesZXAG?$1)s84xFu` z7+Yz0mWLdtv2AwgHweal6TrG!b{&mDhAq_T8+wT1gbC!{Zt6HEP zs8**rD+WIRGxsHdO=LsVr0>E3=F4gz#T8E=nh|#F7kD1-&7VAZBOK0wG}d*>nP_;GC4>&OjfN~n*7po~@ce4utvj&a@o z6EgvEEpQq0HXUMK!_ahI?77~@Uz>P~;>Mz}fzH^rH31`s@g@x1rlP)jim@(a<(Ngn z`Yv!m8EYEaeXDT6P{>g+wO`9fpahb+Se*}IA1K)T_hUmn`7k=V;G;n+nKV>A><#_f@t}9@(BF zYrfhUSnnyTl;Tq0ZND?({62am_8#)m-9dT;6u5|xok_)KgO49zyHcF$;b1fnb8>TQ zpB}Sf3g0rjhQ9?3AH}r8qoK>@>1DMsR~_FqGOj9_=4TI(pKSuy6tGh%&fz0%$SRWS zL7*&SziGRk6cfZ~##WT<$JfX0W8cZ+AKER3h`?%G&leYE@oAh_;tiPdiNYeJ+mz;e z%BJ(JaVTi2s?N*V{|#>zcwX#i?wABZ>PNF|k#BpAV8dw0?%DyU_YywGM7rh$Aw)G# zCQIGr2aNgdy**zjI|u-|-MM82s6`b%VsDm@gO}))Cx`{kSS;2;Hh=r&o^;F$xc}ny zM|@eX`TN@EP{t@SsZDDvz+#-w|C;J1R!9Ti1f*J3)27qL(t7bP+;QNSO&yu((FF*w zw}kq5Fs%HXRk>~|6hkHLQy7464Cl4d8!jBCmhzxpw6AAN%&xj5xq&TGkIkGT#_o`! z>0a0dT{NRAH&kH9Su=l5hZVSu~nQ!rUuJDbkn93V} z*vZypd0^p=`)t6zo&j^?aG`}Izl!n7((0H{gsLK4tPcqRZT7=#OS7Z-z-hSN?`|=w zM3R6fN415-@g=k_p1`7lsCnOr6johX^duv83E+@bFRY`-XrSsLz3 zdgsFt-w?+Xcx!6R>ABmC>EnRgOl@mu9`DE+UDp@g4@0^S2$CYOKO?;MXU|N=j4M&U zFAp^5r2MNHSJvqRefPV3)9C%I;?$c|Ng`x&y<1cTJoiJy72?#I`tBWRfYA@b4I4>2 z8xybZYCQq5>9?sPAB7%*%a($-86KGq9~*T29SdCfJCbRhSVg;2ITZ6kXwq}h+lx-h zQuZvSx)OX;>H7pUn^)|4%ge#Dr;&D3CIvhfGyWyCIHF-}aY8jx^PBMRqMI$Y1Up(^ z_*XLjk%Z@92*9bA{Oaa}!$mS6aHHBcIE$L+T2C+laOZQak{%;H`bl)=knWtR8F2`Q zt>QBio%<~513 zU4JL#J*ow`3xm(=)5Uh;cXsuDCqi58B$BKBDE`YnrQw^zrN9&V_PK*x;-YV()`UszmkbSyYp9^EWaSSgaxB+f zeE!GH#2k+x^3A?w|Ulg&F?l*g$eS>$nZAC(7{y6({#u%Jxp|W+BT`i5`LvP7?HSp6JxQ*fmaAny{K+57ODzsMSY9fpveru&27|;pch8`KZ=-pPE zwAt3WzH${#5ZKTev+82lVR!^Kh*7V5r&tA&{y5rJEQ9Clg{`*MxM@E9+BUDzt2VHZ zZR)IN%&u{WjU=m)R-GqlM+a7~Dgr_4^w>rGKubU97pBwfY>BZyO6wQTtV1%VUJSZS zv!i@Itk6Yw;_oJMvVAfI9ry38URLXd`kI3LzIrn4C6+&6m4NS)$CGI?P+khCkH2u_ zUgrhX6G*(UHS*8ks<_}Jufx}k5y8yx#BUY`*FGp&OG5*L`vf^qw^93>ts$WAo6Fxf z%Okq7g?7wK20aax;J=W>5JQ1wYx& zU=g(uY7+$tu8GPDSLaw*ZlS)_D$tFX?)qLeuV2-6JbQ6{ckI(L1H-s-MDdrEEZyF zK`*BL=b|1;uyuUS_7~0Od~yJfS?h@?U+AWN_9{(%08p>jZ9!*S`KwC!ET`;vZ z6xuJF(KERJD{z+5w$URRuRf39H<+#2AN5i41&We>KKMIsr-R<0bSDj$K0H8M7rltY zd!u$*H^_ILXQFLM$V6=%HZ*ClpiTweN`By%`H0hHpugW+a8>eTM#x5cD_K-t1R?+z zy=$l7L5>f_LLa48q5mC}THwWpkLmPuUT>$RN+0tqMtOVxiAgoI_G8iv=5)$|aT}qn zfG%JAmHp1-?s-c=?6?I=v(i;jtUqMbzNvU-Xw>XP8B}HvXGAl<`pLVc3j56D>K|N9 zbUqP<$q0~du9tq^lPio}Xsz6XcnhKOq=x(ZFS3I!715|)Qgil??QdVHS$@?{Bm+46 z@gVJ?!31>4c3ckgE&*4}zg=@e)S7rl4a6*X7!w67x!;RfluAwK1vc?kKuA>umlZ&r z>>P;OZ~x_|V$F!%qCJ?dDdH)(Gc_Ja>}6;&$dkMWUU3*{k;Nqj+X?=Y`jBch9>1fN!lTe~`hnVvdt%Py z`x8OA6LOmnxyGi{%1;Dtc`9RS!wxM)RzZWj=<%p<#>W)re=e>Iz5SrPaH6l^F z{Z|h%%4U~@d@F6jsmnYWMsKO@5`2F|M*ce@ION5*F!Ip1IB#Wio|1PtTj}X$nTz?X zW2ogTKWqF+X!XwiN&w*_q~$J|B@Mztcxwv@`# zHbhz46?hyCy`P42?upCBIQ}l{Qs2Speb)T7M&D0)l7Kmzb=LMiqo(NYr=1Zz(7~0@ z%R%1lY$R_Y%?3PH?w;U)?CBjzYh5Z}GpgRc(bsUvx@xgLmJ4lY(A$wDCg5W;9JM=l zwOMrOoldY zG%t{&G5^*um4{0BaAR)yn5(kRqVl`if3Bx@A76b`l)tF|1Xr%1TWlfsH5uS_ziqEu z{cHB+M{#aA-=B4yudluBwbpf-8q9jYqSE-eCHTK1)GpQ`_QPkrQ{}#DQfFDSJ^km+ zcByWt)ZjV~d3?$Mw-wnWCpcVffIx!fPoRv=gAq`mo)p*Ur5bpTUXv9eimy8=d=J89z$uGT@E(AD1eKTm_cuP4MKCsK4Zr6S#IqS@V7hHyv(3T%1rwxf&%csI zYLIJ>CV`S)Q^ewDw!giS`c-%HwqV!z+gK_|vT|xx)EL7KL5L>P&aZW12Jq!NK$R-` z=Tl#4gH>jMZ27^}{PitYut{qSb|V+C1No0|Hcj6KWvsb7JNB^#3xW6gh9sZO-vj6R zZ!?tY>uP@h)eLb>v*Hrs0=;Q6b5={OMvtR4J)#6O= zl|po_cxh$a&B#DAZOb~^2zCaz91N`jkMvD%8RPr zm4bVt@&&6Z9s!XhRD*|}1dh#B{476Kyz^A%Mg)rNrG*PnDBnjHjCwMjQ!~%y>%(8> z`L3EN9ElD?&+XHFX6ztmYbo}6`g7CKJWi~r)KvaQVm@tkM}+tH&k@c;7Q>7 zYjP>8Jg3{fg!qsY`Tyd46*0FK*|$&kavq>*80$+(?crKv;JU_QR5_=dXWIQNn-M1S z5AdZ%Yk0L}pRHo`AFt~`#SgQtLf_njZz0|M65zo{`+Xja6c2;CVKjE)st%mK;MHo2Oj zVoHx<7WG9d4cx%>rCZ!*HSQ<}VYrC_%yZrMK=$0zU^+!*iPhgy`JAOKxHbCSdKw*!7#zquQT}GyZ__X= z&b#uYnHODj;{5WQKG9h0%f)nWz9|_X!m4FD)>6~(%Muws!=U^%nOUr|1#B4;v6Ud@ z1G>D)0^+yVFisJyVBZt?)hkDcM$(}jusSfOe?aAwMT_)OF`>Wv-W}fv>6`>NO@~V) zHVPCOfQ6#Jk2B#~Z|>WKw!K#TABVx6`wV|o9Gi$3XwbKrkOlPZ!Q%>jHsFCLj%xw* zQ>SRuz_P~eT8h7QpZK523Pm$i;&}>Y!r)ZxhPm=dM=gKN8K5PQu@9CTi+sf7x=D@Q zZTca@D40;izfba~gRg!Msg;59EHnSpxUVzc914@od17=l!Erh8roP4ZX$Od0A4b$D z`oT*{5-9fd_z-t*mCMIrXyB>7A{G5XTD#VcUZd#Zq*#@zsQ`nn2GxN3Zeg02b&cZhO}Y|K z7|vc`jRmzxD8q^>k4{;|dj(pX%sa}nsb7v4x`hI>M^icNr1OY@Jx_om!jI0m)&lI! zep-YBZbVFWhwM10vU_MWN1bf=sB_8?)XDsiggxz*pu$*P8Z zk$r33SbGIr;O_@Ls}DrQy$ zshq(^jc#XIf}pEP?FgazQ)dfHgUL1MY2G^D*baX%3xRf zn0*?%o+@_ye~9|ZuqeMTS`h^i0VPEGr?dzN$k3pqbV)ZzGlX=GgmgDj3L@Pwba!{n z&|SljLku%>$N#<0bNRxjd11~u?>=kqz1G@#`Ks%MBoU<_jr0%CN!`oec&iP$^qRiU z8|Sb&56~LxiuBQU`PO^8Qw(~j#WR!w?b3!__PUflc-~*|h?UNUXk)z;@+?PIW^}#4 zg4s*!EcI?3Cz2q8#qxR%Ft*4Nf|3{g4JgK~Y~&4n4{&F51ib^B3VzCd}>;C(E##TH6nTj)9Gri2pmd+cPnoej@8aL!XsZ@CP^G^nDic(XY*3J zth|ySKkO{#oV3hokI*S(>lz`^s+Uq{zV8;l>Y@q#*oVR`^yf?jlW!2>z<~-IKV})e zJ*D&`)uxhy4 z_Jp-ZzJP2Gd>uW5^F$S$lr~-#MA$!p*tVOWL|7Y+GcK&}@NDCVv^J5$)G`y9yy_{0 zFEuGyr)?z_hvh}G8Q8RdZ&aFPjO&UK)5d3u-HHC2-njm%^3ZZ}8EvMOXIXdB%7>~F zp|N@s>#LS!&jr8J^1Qu!Q0iPHB^W>Cs%BgD`%hO%Lb3XexNZDPY)bVllAXBEk#bc? zwb-9*(pft+FM^efPQHJ!?$mIS8ZP4XzZVnnAHCKq3i6_UFWnvjlx8(9g%LmDyTv zDxSOu^Z)xX5M2$d=jPx(YfaFGX7v~X3!j|4@;A%0BhiOE#fEIgSZ(N^nWhIG?9|@i zh>y=_BmH#z0UsNg#QRiR{XTt;v-|m>L`{x>>*}?et)zyX z6Uf`dCijliuL1B{3y8-}*Enlco%`$sB9g`rn<<39$}^net@rZzMBVjjx2i%JLOZVj zd4@}ELB7Qi{P zoPW8Ia|qN!$KUvaQiMZ<3W`=-=a6=$f=*=S&})MMOSI0 z1>;2P7UP4)sgTA3NkN7W>#5Bm`=K8sBOXg~N)y44OPx%$55n96cd{8H0WW?{_BMSS zD4^xsEb15kA*BUkd!J-^3}Wx*_{Y+upjP9`G7Zp*`P4J#(cC=uSuR`jXgT$$M#@O1 zb~b4%)g8hja`*9ruKGf!Y?DnC-BV-ny1i5nd9}(&f`s;7O8@`pV4tQ_K1^NM(O5!C zxw|NVL1{VT>l&FZeaBW_`LXDO$PB+JhS@0e*RN%(lW$)cuq3(}Pc{X);!~GX+Xgpv zefeSxq_kJKxg91Ke}zez1GrZubRbUwK0ARQSmeib8ptY(^9c%`I0SQO=Ejb@#um&0 zx{Re&f5jpMiRLEO%@TIM3du(Ewv%eGdG-dcH-FW&XUCA9+*DuK+~ zk|T0Y)?x9w=hc4n3`^J!S5=_}#D0E?Pd`9UQjkdemR9vuqxjQ&6^40RB`#*RZ_%G9 zO2jXoJe%AN)RwS$BFJW28Ty|cnMZ^U&8*DxzGudK0I$O+arJ?3ryrfjNU7iUQ2J>m z&GDaKlXS^Da+$OC7^sTkB#eIE1q)+Jbk8_wA)xci%1djlAkMNo?fG}KKKsAH z=({7Ru`kTh$rlPezN!SZp)PVU&tN4zjB%pouDhcVkVE`fU54{?38jze0zakFX=J8Z z3jb^o6n|DeJ!6j)?(fi^o7M>Pyqm#~`2YYc{Yrfu-<61?9PCHmr81a}_NX8CA3hU2FA>m^Pf#T$J4J90f$3gR!spAUsz=%z_$ z+a1_e2z-&zc71enxBCfz>UTX}nvrn2!o^Q|Mz?0FbMuJ%m+`*(Fa0MuDAT~qZ@!D) zBugHNGsDcy6@Ku#e}+u_Qgvl$96zM~nYDoSnTo>=e46NXG#Y`}u0~?n6bB_2szK)y zRN~jrO6Yb6L!5`mW=P`0G9R~hIo4YN7yJevu<*L5j~|!Mdb}=}M0~NL1MSmt@Hg`~ z$M>ZAx^++NH;fJl1ge+F`uh6voTP@4_^so53^Aukmp{C#e5;hf+xJ&F^JTsGgDrt_ z^NjCoS(NV%@Gm6wA;sH!WCj1-Y8+6zoL^Cr&3FFo0ys@6Aul*P>bAI0HFTgQ9Tw@bV8uCfvtkqtVkY(B92 zggSQ^zPoS|S_%NoOlZHlDEKEMeS}Y8+$@W-kC~$(fF0(u)Mrxw ztl5x`cUrVn3#(dHb5dlHh-LET6nP=Ou9 zsk8e%WwQPYK3TqH1GOEy^gsf*oRL&5dMgFl?0Dj@V{jBr@b-csc9x%)7}*;-%X5`h z5L-Y9M8I_Pt&cS3*tf=o7p+zhIyAKt0#lFtq>?U^c{SR~IH1Y5`b0lkg2((Y|Wc=V*y%fHwd9y8T+r_abwx>^$3Z)zzh3N43n8cC0+`l9Vgyzfxmr&pTW&U^uGXf<1-G7wob{3w zh+K^F!HAr^g8h#z7-}0jP%wb~{JS#_vYA5F1|Ez4#X<>`?Uhqg=iYhV^_@YH4;2sw^cc`wSUmnAW?~9_|IL*~%rC#__MV%t3l^fM3e~#K*6Cxd zYA^FIHoBhdLkwwpfH_V?2Izk}hjHlO-lz}nKUR_zl)n3#G5VjlqLgkS6;MrQ`fn~P zx9a4!4UJ)BK9j;$m7>c~(%(?B2l8_qvo3@Nj`3Lr)~YpqTl94@6RUC3ALz1Jtt%WT zV|*WQjNZNvAtUuf<_T@ygxzM8QHr@%US1kpj*5Z5ZstdpdU(D0u55ioYQTHIvk$NR zN5iZTbXnN?+GTJDQ+&B7*{dgd=F;3rnZyJ0yiB4U$9Zx@c6F-=G9#pK?gC5fTG`v| z$`5pDrzv?uUgpJ(RO!b_eFtD`Vj*%@Bu`S6{O4baUB?ecz zAoY<4s-O}mqG2td1xpp}nEugKkY-$x0%~^F&9HIo|MhqgJ_dj)VLaTI8(lVif)Ysz zs}lkJx(Rh+W}2e5uJ`5t+4e}R&|7V0iGymgy~pAl;5u+?tm4BGQP37!$9>}cCmX$F z4@+{o59I_JJoIJR^2z*QUnVAY^@6FOdLLJRKq$o3iATExOCpGksszvopm=;e?zZM* zd6SN}g|?2_%S^5F=$IWY!!fIuST=EI`wCV8rESTgfXA1M%7rhdPH&Oqn=6)wK*P}1i}sqC08%4R z-gWZr(Q+*4g@5z|Fg&x}cFk+zOxUWFu$dtx+U}34raVF3C+eXHcPi;@%R?=uFwV7Y z8o+tl!;jg1=NuRH@x!;mOyhbD#-?#7XAhvNxx8^YXn zO^#h3rYmnOn@^R#A#}() zWy9c^akR^*D~wFKkfCm8Yj%H)M7v{eYRTz|ArqA=*&T6H!=9d*83$8a+w5jjXozpPLSy= zU31-p9Igpp<9eKBTOVBfxj*T*IL-t?*J1w&-OV2&KFdVIPlDeu_6-` zA$p?yY~UIqfW9=Y7xP94GFt{*y|?LnE^>Nl1S_)#y+iVX*PL}k4mwAUgDWxbxI`h& z%__P3BP5v8Jt~d|cqFXJ{m;c)lk4g?!XknuK0k2Jmg|u{tYTLlR+!#pIoocOznUa8 zQ|)@%Xo)HZ)^g|A+QVw%>f#ux3zggM)4)3o=x78@naiLv6Kt3ue5b$5{x^Gv29UPB zVhnUC0lw7JVxXE+9g5EeG}7lz1MzMNwt23iwCXa09npd3PAzl`(Lhv^qk}V zer#Bu%5;F{J63gN9^2HO+_Wh7{^*^gTeXUjn%YYZ1YD!-9m2@a_PDZ6Tpd_ZlmptL zVX;3~Y)H247Ndra6LZ;K1+O3YI_#%bngl2relC+=?{LkM0JV$VtOu8FcU2$|9xFM! zoURo=y=husDwRCa>2EDihQ45wU36bCVikYAvdP8D7KFgXCyxHfxa5qP?i;GH9I1n} z-=B|Ysoq?7U^p`&jof&xJ*Ss5s&eHIa~ioD*B=fA;?vu(V(vfKQ+*c-?K*B~%7|YI zU;?r@%$>#t+}2_9(K6}jR2G~AT7?rtttLbLn4A+gIG8}1`9>pd`hlSm=HRc%B2gT= zM+JE)0o-y2_r684Gp|UHh)xkhF62HBa{iMzhZ578rO_eCwWs5jUVy}&b4(3X|HOm= zdF|{)?z>UP+zqJV0PvZKn^~t8JV`ep_j;~Hjowru1f8biH`9KBP6EckR-JT~Ju8g7 zkn9LB9isY5*1^1T<+vPt^b%gR;BaS^S?i3)^+w!EXT`JK-)muF>HF>{-D=h9Y(PLT zY6}`?PeLrThwCv8QmJA9Z3_VWS1%Az938d{t2-Bn12N(x^gf8TOaza6myb@=^c7^g zRx*?+Adg7;HWDsgde^q)SdFbFhqYsve0%17mzEZ2Z5L=yC{qI*=-!byP}|@xKzfhv zJo8FP{A9nrW1tnKmB22nQ$p>y-q53L$ApWjM8(>u2LIlC6=I3a%g36h(^ITV5365j zh7!XvOi;CD_+p-wY19X1US1(VU-cE z{E&}KpsC9M?ugs(;0Sd6`?+H|-F^{vt_)a`E}d9t-Q`!P;V@Xe9ruKQ&=(9V3cF8B zUn*to<$}aRJ<|O5MAoWVbG*9ejeUVv#rMCKj+bit_;4;#1-g2b9NKSpoBMK{*Zi+3 z8Y-GqEz}|uJ?P12PUe)03wX;~y%S8<3TPN=k1Gh{+?{(NECwQ5(6dV}fOYNG< z{nv^ff8`BpA#{se71Atk*e+8s^Rd}|)Rv5UzbTIe(jr_&#o-*JelN?vI`j3x36*EC z|ASH~tRXOATosrjBYv0M_YXCPY=Nl8?hCCSUN4&rxo;}5reHg)iC_6K!w zPS1E;%s+C-YwErncq2q%nEtCz#^__VV_A}_8#T3z-`ZvP*C3{5Y>+!vU*!_NS4Iqa z8e3>`p@g&>gO_8A?1FD2Nz%Sd&Mi5P)>z9+Nf ze!R*1i(!n0vkdpz8}`VnH^NiZUKK!84~IiOZfyNo2kPfo({)LneYQ;+C1b6l_yqmk zApo)OX>1+mXK!r)u<+A8eYAjmQ7*`og6`gbLlsq%1aKtzPj)~}K8^AdgfRp(id{}h z-KD$@z_jxI;GxQtFQ?;h7XQ%yb=-tvs~m3N)Ha7$^>q?~w_ePqtzppDC1e%@vGp^m z5=Nz0*f58Rlo7q%PC{U73x*_M7Yfv(Mch)M_!Ya+t5e_e3G4~=`30QHlc~WhO$1mC z(0OLjc`TZNvG@BC(p|i)p9wiv8K9;5gRg%W0zz;b8D8Rvn+n+Px*0U4`)_-l_l`A9 z^bS+*{YS>LM>5bNIC>EjY;5>ZRH{q1S*@JU!9P>*h&|;frEzEcyKaWS;yv?4{Kvhe zc?;t$bQaE{V=F>iziHe!BqZ9@P>jTms$@nJpX+D3S|-igiR{V0HN&v!>x~}#*yv^x z8-WeUR>nj+iz>3#&#x<5;iAZ41_apY{y@xQa>=P0BktPfh$K_$l){gm4E{#YI=JDv z+AC`KA)2->b{O*bmpaK33Qh@OSh^xafLcIfCq8#RBHOC)Il90MLgP*+(z3r;!pM*H z&R(-k2YHU89Brr;ZNp_(s#HR)jIi@Gk7I-?HWT#I)*$^F9YUw-&*! zAM|K4{SEuJ@do;!^lOFMW2G7{L;oZBZ`Se0P8S9c=06yPUsyO?BHLq8SaF_v zHDV8I08wWK?Vu{XXPyJ5sEI2OSLoh6i02fr5>~lC2~d8}k-K7Bn4P?+4L)Ue>1P=i zM>-f(nFc!kxX|gl`A$vdERrbfltN}$9m@cxls7Q99M-x8Hmv;B;?EUj1w-sOTDD?E zl5Z-TcB$*7mc6!OHob8=S!YND*B_jve>E=bW%L3ft!LEeP#@MSC-1nY>9ic?D6|ALB zUYAZk9hH>^7gw(?iNJ_>9<1JsjoBDa8OTz!@+jMv_T5yX{|Rwim*+S?i>~-{#Da** zjNR=aTy>K3P{0W(euEr_#z`ytGCPD2#tgZl0y}4Wgg);ZqIA+vita!Quf+n_^m0)@ zXpSqxL>+*zk$;*#&Px(5$){#_Y|AgC7OB0&UJG%kKBp<4iewL z5*N|Z zyu-Rwlab`m-6S!I>*DyNDGH7IwBo&~yW@v9FkAj5qRG%ZlGZ(P7Z2sP`o8+;I^VmCX743v z&OoG}-3b}+bs-qmYM@ewt!v@>nh&E8r@a^mPnzElSM!A%zzObuh2yc-h*|v6knO0d z>_3PV61lY;oGBhl>AI6f4tSSRZ*Ug1eOG;rt@6yd3ilN)l0{rd(DNw)C-enZ#&0LM zozG64#D-MZ=#7O%2~HKyJXW`ro0%~y9e&;Y%AoEOpItnWokRHD57ni@N5=a~nIcm; zxqQZ|?Ggf8@?un~Y>vI?v5q*fiSZTC*9XGrLz=6a=@en1P}VVT1+bs`fK6fe0Tx}! z=O-S)lAHC-SgT!%Pq{4EG})|lsE<>Ky;MkOUlZ|dQ=Zj0fVn;WV-XWwr$Gno!g?v# zWKFwakO76JIsWa`KEJzsO9I_@?Z85neh6b&+v;ERmKQc3G+|GeXuo=R>v*1Fvd?}I z)(*}dYloSaNp=*&Yi8DudQ(K5QdmzHMta@vMtwFa`@?TcGSj2q9z!0fh{v{PJEtdj8=8%*f@eM*~Tp`U~a@| z8&EJJgVveV>z}If*CjEY4Q-yQIwV`!=*phHD?D-FYNWreky;o@`?n8#CGT(Z^2-R5 zyn6iOs#Tu79b<~|qwu=?@10zmU~-YYtStZE{QIvYHkviu<{DXhaEu`~U)i17ijI_WWGG;d@<>ZSR#*3n>5X_-X??IYhjm@jndzjM-fVY z?{PW&KOJjH!;RqtLo8-8;GM;`CB&anU}5yPQ7t0y)m9X7-E{}zBNRB&mR0u2*qfW= zU`8vk|F?ON)BzSJwpeOkW_O26r;hPPJJXBNdh3g4(6>5P=W2I>l#*B5hE z1bIhgS+X3}%|*Tfdem1hpU`TT8z$Ik4RbgJU}WjE`(!fLGwSLkttj79>AeginD{eB zh}ReEQ(gIiq*!Lt-o4&%sY1Yr%6~(n?Hz%b3l$Z?QANwiQ!-DgJ1d%tMQ+EL+0&*^ zY%8BCp zkoLEoJv>x`Ob5rAxBjT;EfwoleNJ%jXv5%Cz5rov@S2e;YF5rqz>V)P3SDJ5eO8`2 zG3fPJs`kI#w}s)XyU%SI{kvow+% zr{Itz{Ob4C9Of#jyqN4T4f54Q?W%B}12v@UzOFv5%O&X5G?htWbMN&=NmAr|Hm$L@ zF!HiEQZkaA4)F6`7p3rYI_-0#u~0$NQglcglh=WoeBN#E;_MXLfr4LTbr7~G`Zf7` zQ^LQVy_w@J%!V@8bM`%|sa&;XnDzpjx_wbh%_^McdFDXa{#<2lb>aou-1qgj3lEN| zn>UYhh`cRQJW9*&>lihSrN0+^PCL`U&h(&=WTXtAQgFUxea)Rs&P?|tGV65~&NM#v zTA~VV={x*?jc76D;S(TUB@qXfAP5jV(0gX=k`x3(izE_ZnW~jC^dU+42t=A+B%q1NSon*Z36X(gs%KQ|zUm?em(Zaa_Z2Ia5$(P1C-ZcR({_|S zS6C^>j|X+-7u8A_nnNu_xS|me-!S-Mps;DJAMr>pBdIN$@h#8?6glTH>bW2T`bb#{ zoOK_er>Qs49THL@S-tkTG(xf)^^f2Lcu;XX9AK5}uzG;U%}jLD>&nYQM;A%;z4_73 z>dhbAVKUwbT<{9yS^KipW)!+;Q&{Uv`y|e7(MBULOS&2B>)!r)Oy?#4?^AQTsIWJCV9g**y=zelkAV#2y+tPfDwK^))kUV`yY;}oIYhWuieRjj+VP&k92&=#C4 zt0Lu*zPOxM=|-UL+mu~j_Ybo+0H3UIfFUy_>e70;|n=mBeBVYG#sunG+gBk(1%;66d3n`%1CpXHvJpn7sjfs40mn7_dO!-oNHsQd$29zV8JAlE{T92+ppoV`rDo3w>3;hc6+QtO+m<&rk8SH7>MyLGS_kCnhSAU)%gEo=V=n zk7Zc^*0Z#7^4H$We1nfa`2HhuP^NYaPKxcL7C#nZk2sVkc*NbZ%}C)*u8}!g{K}8? zKoR)&)d$6DGHxR*2Ofi$YvDuT8r{v5;iiN>5+|Nah{52{L zNdpy?b{sb*9-z~ZeGkceKlh;YCS{L#Zr$XMD!K#HWaZM ziAwL1R6bZd?|Nwx7}2T9V8N0bUi_^o+wI8k%ci{`aL9!WumfmYr|J9hX|4p^x_;Li zWgj2CZUc2pB@_xG4XJ zWS^LV-~48YjrcSABPQ{w^eq#qK(CR;rpmdbMWRLaTv5LMB9lm>%%)0EiRUotDP2@o zZC*N)o~5DV)w~FIU~_U~(v$51$?PoYr|mM!@oxYW>hbNp9F9*c(*F0(CRFcYgJSzf z?*~Jl2#CU>BLd}OTLVmzXoolR{xeX87+uXS=!qTP&BY4OULm2;@-F^A@|8d?L+epDZUo}6ko%wolb>v7C3q%tEMJyQP8e^788Uz4Vo9k8 zTM0tC!yS}X<|B(jkFH`PH9O76dn46~D6DpFP*<~y&q&tfSBR`xUU+lk=eG)9x?X2A z3Tx*Sap(-?20cAmF=vSdNAzS0&aqNwpx)bd4n(Xi6tHj`O6NuMq?fa~Y z2}&0*l1GIZ4HMqTLa&xqe|3w0*K7qz{vM=6ul zul%OyF-5_wz&v4>V8T@>p}JfUH{{QEO;Aw&X9m9wlg$D`<9}CJw9Y@>$ctoJbLdRD z{XBC{9Tq$jL^lkg;Lmyr8|hR;W)F0ZOeks#J%(u;ib^et_|z5BAm#&#q7qi;-*5`I z!+c&Ov8)$a7<^#j=4&kw_j>T;OL%so``nrZHzZ{L=pnc4`-Ov7ze=3DSj|#+B2mXb zxZVDZDXSDcz09bVeDD2U@4a_bNyEAZk9N)=Z%$lMe$~T4z@ejBkC}n9*-VTDzaWm` zi(t~rb1xE7pO;h(y^1=UQ3y7**MSJHC_`YVe`0T;N0fNA{$^59WJ5RTvETpJksK?d ze4fCREZW#dlSJ^?NgpVctdl-#M@D|66~TMBsSA(T0=O_sL_YjIF3pZ)`ZXdN(L1w- z+oTfEMadJKrgv&dH|aW!=W{sn4f?Eoa_Ykkxm2_9&Ht875PL}yCi8g}{inc^Q{^5- zdv!_Ps}&}s~?DB?k-PzG7T(8bUHA;ZzLPqS!>?^ zv@0Y?Ixi$q8}fWMWiXNL$T>+6A}7ZDcHUAkHdCLNv@eJ;4;Cp{{-4bKdV!{MT1h&y zar3&yvLwFNu?e#ot90g2p;}u!AXsOa>APDO<^PUBG%xo1aKwL(#F9Miv?4O`J`2i_ z7Wgy$f(UceSY%5^x|66cQhu5Qi? z9ByjzzFl~I;8Atl{kKsj+J~v<4o9ji;JM}d;b5j_F_Mnvzc|_w&hcpFBJ;OP1?f}T zE;Ly#ihfNbJkKF>%NSt}w} zxSuG1;=8(z^7g+yOnZ57d><((XPvf!TJ{4XBa`8xFXRe}@a5jC^T-T_%Cx2=>C~jr z9WkpA7b%9t;So6Rg2roEV}0VpzU?1X`!|Sz4kG5;O^Fk4K4xNWl-E70`^f0k&yzbK zzoiW;1+g^GALG@n*d>Li=C*c-ftDiJ7^(2NK};v}dP%SZ_=#N{dR=+(WcS-57h>^+ zuRe1504*_PkCb{>D8c>6|159pPgGoW81d2&b`oDURx&%dU+5*n;#8&wYZdtmNyFU# zF}hwnHuc3#q%>jgdQZqkm3FA~F@kZJK;EMaUuQAJfvwE-aU{chQ(lhGTrpyK$pnmJ z0j}af`awe-QL>rmaa%w%qd;fBL+3sxa1_78LYZ-1N-{Bjj$gpQpHO?76Susb${>7` zF>t=V&NPbRn`RWcuugmWl$}(-4U0V1n}+-Q9-z!~Q^#I8VGCbH$Nuiw&8tg}Q8`T$ zvh8OU;8px~3yW3IlkH5vosmghXjhMWcv(A+)4Qg9FS`QRCig;WLSs#G*BxJ>|Gcn4 zn%hju)D(Dh7k&NBK9hgQYRzNn8}Q$_LT%61H%S5)eN{L_0DH5{?0_C7WN#%y{Sia% zN{>R8dj)m1JVClV2dRqs9?))nMswx>%%9}atXyWWyn4*Ar4jjpL)v8I-lS23UT`#a+S?*{M~^pU2eCj7;D{;G=WVM zBS$b;55$uZ;6a^Bk@vLm={6nUD7Is18CjW7Zt!!=|5VuE{5}c%tQ4u&fEn9eb}ev! zm&0l_P$L5f!(<=zyE^QSfn-G}!z+JmF1x1iKch3V5I@JI(>c-q7fe7h!l?F|@3r1y zr1H3=u=rHGl{vAC&>_TCM|3?%T$Cf)2CpZXDBV!2@I4N`PQ`^XZPfM`=U4)Lt=0(E z&Ipo<-UYM1QLUqH>l4{-qtLG_ZoY|tG0 z!_^c+WUptfnTf8fb?6ofi+~f%REUp-!Y(~%P&t*5?rKj+O$OP_DmI7zdMQ$txQ$xx zee409xj05x`%oS-WYoPEEt!f4ahY)Ch;4YYn`#C_q9lRX9hwoERE^QMpxg)t=M6kss%vT-j3OmaqH;%AF8Xiu2pN&J?k&PUfucNDQlHF zI*>~P(Enx!{B_y_fH{MfS;B~5bJk)p{tVVo2G7zqglE!hslMBKxAkj?p8a*4-d1PV zyr^GvqW}L6aNk?`Rf)DuA*L>Qg^)G^C!O3-SWp3ML#ylZ7Ko??AvpVmJe7)#Y4J{I zIwn*N^-|q|&@zASJZPH+2raum=e&%_H|W<^>&$GVdz+jsv+Jtz6N* z#Vs=Dm!4(wM>GkG_@(`zM0riL!~_duMIR4X&=Kn{_8a1$O8vG zoNByD4DGRjrKO#W+cC)#*C5(oN$bkH*qzJZp3vc*z1Y~yXnaKKOF}U~-mZ4s_3ufF=c`%z3Xt&XYQx_uW zyJRz3@c6H@{(H&TAL%3O?`lE!DB=&^a=A=7dc~GX$>;v=smP8Req(S6dp9yjVyk}^)grc|g?TvlK{uwbktfCflFN$K4 z?=3w?mFGWv%e{2KWjUfb=67j@C>{J6cU`K5FEACGj)E&P0Rf4A^;zU8VdY z=vwiT;LPYjV*xBrK(X6t8h~&O0#t$W4(_xV->lbV%_~?7H_jx{IvPKM6E7b?(E0G04=kw>R`Et1Tp%=rt;wu)B~M%3sgo_ZKka5?YuaA0JQu=)PyBQ-E00R@M7IjqqhN zf4B8kw@}}~{U|f2S$iOF*IOX!WuvRtgYhsqT^1b4U%>tr{}GMvGXC*~l!=pOrKoa4O|B5?0&p}>2%Ht^ zcp##0L9sLh-#IFC9g?)q6jAONpA-BFJfM`gH7TE`Gir{h04!3bIzP|iqj_(ocx2eT z_!oVll<5tXK}-sm0IxWu98UZ($vF*MdtzQ~+NbWV2I|MGUFk%+R~SuI&_w@_&SQ*m z#X zVvAibJ)SL^TKMkj;Inxgs&~(JFgQtp{gYyRMp%K_Vu%L!RiE!M%U8izd`8k&eNWSm z)Bo{bT$R9`=&TexeJONyLMI0)Mmk!Wcq8!!t?LU>4{TZVo2v}V1cyF-vBqX)S#I({ zDt^ClnT=j7yMNXmvoE)Y-ru~XXj!L&)`UgxyKsGEeC_g;ws!8>Ryhb z5I1p%DxGY!bi$u27mIq88xu?1g}@X}?XA1oO0n-9X+}Caw~;-V|DH($w}`UC9o=v_ z$r6<_7=5rzHL=^-Z=?3fyZo68lz$#EqF3t8)J7tsAVNSMymBk!L01ed6+4#rsNa=`5epD@Rk zQsv&HnB&HRSQ4Uh*O2l{$1Q)$T#MWXh-OyyeAZYt=mKPRK4R6u4u*AVF!%mn#yUqe zO3FcJA`F+Ok+4_3J!oqQET>hA7ho#o%!Iva+_k15}KO_`+;|*74(3GqT&VyS!LWnH&+twy}DArl(?=0)^cb^1AZ(o#fNJ zAdg6<4h2XB3T`S*ltzu{0C(9YRj}ArS=DH`S9dn}fKuh6u&*8xyZDsitQ7L@tN`F| z@_(!OSih#GDuu*`M8#yJL=~&30=q3w0!760r_3K9bElV6QYA3zx*OSQS zY#JtUrXT;WX@t$jD6xJsltQnNbw02_Rf+?>ue^U|Pi@@|lGu=S5EXF^ z_Vf$#L&(T!pKC3#6!elQK*%+i|F;+x z_5Vr}c%+62OiABMm48hahJ=6nZNcMJzMk~)$D=!ml{c!`4o7l{hplE0hYNn?oX5X7 zDGT~2ZgEY4y)}|YDz--de#;CiG1yjEB%i%KGOceIq@ct; z~Ugfce@^0Qp+CtET>wpV%qZG!Mqf}W+QDQRy__kovWA?>kb?;!+fk- z%QXtUE^jpRaqt14oS2I4*eMwoIP<31zHfb!;$3nQ=Fn;X1GFDl;J z7;HW!ANGIp$7~K3C<;-0T(PM7=Aj34Eo5D0gR?{{4*2KyJEI7bvCfkn%>RqMS7JTo z+MNg55urmk8cgY*-#i}h3AcW(_D+Y?lWuq}0(zB_PEKAbn5?Pf@-9)cO9;$JY#I5z z8A4JqYTqO5y+-c$f=^35Ui_Kw7H%7h6A>k4Of; zrm=sE$N#*P$=l?19Xs&Q<>pV{aK24BO4D^D1+kNH3G`5@tFT|T)y(!xSamy7}5fOa83pJ5BMP5Gvx#S z*hr_NNgI*EY!14AnCgeuf)k}qcUM&o+{V*Y1?R33)J$M~T68*mdJOuwRE1G$OxoN2TJ_6xwnU_=ZWFDON8!q?qfg7InX6rWQ?BoOo`;RLsZ!oN zHa#kBXq;Y>6FU2!)p*qmrMj?t!iG6DJ;MXa8)mE?f78kYjJ7NgqVrur8B_wXgJBL9 z$oXAv3@f)=eyg@f*ez2Aj(k}s1Gj!hHbsQavhL4ukqGHVm5w1^EV_7iWoEef1Zx?H zKAl%1_~Y}sfoYJ>x>jmk`!X`*rL!SuBBvRSMLC-#7QpNak2kGKO{<^ec1HgbbS#cm zmOsTUkior!IE-Z6m1JD*!f32)@WoBu`{)@?0geFOK84m?4HCzY5n>B(hjUHXaaV3@m$JL7*0Kul)pCytT zqjxS;+_g+}DpW+@os7SHcU+SX5Ow38W*?x+rXSR1rmf{ld4Tm}zu)>wpk}_3lr2XV> zp8^Hiky>V1Yn&Uxxg7|%s6Kg;(UMe(*QY{e7VeA;A_ECX7VUd&b~_P7QZ zdVzPV;Ly%pTiE(h1)sxM;cJi2cXdb+Z@Kl+e7@y`II>~wvcaf(V=@iI1;NumzNYigHlH zTCaA0?V@vdUXKM+JE(l)3&tSyj9P^caW9HL>mhM2g1^Tb<+uld}h=`fq}HK*G-Uj<>SjL>kdLq zZz)mIr}_u6<_xK zeun8P#p4zw49O5azl)0HKkR-PAmSr<`(3$E1}G)rsdc{uzG#YPPUmbVf2>KNW0dxI zea~cX9|CwPcV-^P9vPhF;4ii0;Iv6OM9No@eRJ{0w|~TyLUhq7|2f zKo82QZkg&$J$ARzv6r8_QtwlxNqaGZyT*7bt2IDZC>hl_=}Lb4v^F1tHNef-bDpN8 zoCPT_Zr*+MpP5ac{fU-vj+<{5-j%egCz(IRcrbyUgoe~Z9m7)Ck0w};uT`uvDsduj z-thJXw@mZ5!-meZ$J-HGAUe2jZ2O(oX@-{xdm+nw2- zt!`fT{T&?x3@jTpcPDKJl_jFEns{(daAw#4$t~E=^)PNV@-zKxCfjzC&9@RjNpmN9 z5KLHK-x_ZFphK!xnqCMBe!;Uu ziW_P@1^=P?uF$eMGmV};``9u`54f1yK;BK|Ejh8n+r)1r?fz)w>#$r^87gyPFh%-4 z9rGT=&4R)WVulapMsXHazc_YsFHm#L#0RP>*A3zI1=275%*ODGre>EQPE$jo6Gzt^ z(za4=Sp`7tI>YK8K#viO^!lmZv?D5r^8m{4bVa$GCs;W_(RW&_R|YCiFJv`Q#!tXv z_y{?jcyP~)cpTEQy#qv`@(dy&X1-ZMKI=_Jy4dOTx<}my7r!%`VBx-x9SOoB)AWW{ z>X2`T8Yde?KJ?(#`f4m_ZfsfwQ(~G?)T5cQ$S3$^4F~lnJF=<-c4R_fkFY1OwO-1K z^#VMHinTbIXW$;nmU>d7$h-B{^WtoTDA;H7+_%O8fZi1aFK?mSg-s>J*$ZD5oYEAp zx-u^&IfTm|M(Y3a06G@ec%gfbFs2-gtfxui6Y52{hnMs{8cPjPgNxlkZoXt9;rxgy z-vd^U_>o+sC|0>9c11eQ8JWd-dKM1Q*sIDxzVjgH`Q?K#fEZZodR{8S09^CyJKE(N zgn&DNooDtTGj%Ve49?@7@4t6UPt97*k-N8mu2V5=2kalG2!%X3G|MNV$>yT>TWx4u zZ=*r3XNpfENZUE`Q%cg>KA)2f6lse&+_}F6r1O^*VW6>zOUn(2-9Vzi;#N3z6R?#mU@^$Fd5`$Z!` zl*zX+#fCeri$NQq?l_jLT&$y0&F-Gsb9ETK`#v z{Jwo?-@~YgUu!@Yk&z>Vmf$m~TNBFNbNw3+%Ih>xSp3bIZ<-a}!%22gnGsWX{JGiw z00{bZU!VJN3<5ezXws$ub9M+Ih}XFX{6QIQ16rwOAug}xHe$DQlSL-g3_X=q`wCJP zw5WZY7bGBc$o)nU&tefINa<aNgBwGex>hrEWxKbG2*CkoBY}3$<_p^&(;{?y}`r1249-3u^HA} zA{osG;C&;c>A7C$-Sjo|+?4}Bf}6BA0Ilu%Ffs?d_4g0nam?E$h<(tyqyTQXQnAau zwcgsVBhptuz1{DmtgQZM#+b#Q&W6@#97AcbwP2=|^5WqNPcN z_mhA*DTN^(Q#%)TB9Xy&^Yr)UmO{otZa^R2LCB-+h~Wu_=jPeS?7r@UwLHCG$)OWu z=JQC9ZBtW(!0DR>HA>G;X%K>D#%D#;xb}Lu()Y-^@rFO3*KdFK?w_(joPgAE|Cn+* z;7io~@{k7{vTd8KAHlI!_=xQKNnjxLJJy_bLzKrJ!cXs?LarBy=QaG59jzj@vvr1M zQRIN&x#5o1^I|aIppvq!i+>brthD^2mS^$J=a1fRwp?0z_5+pImS62IthbTd$ma<` zJbpcaa`wwQCUmAM-vU0o)hR_=wqq2f;UtiSI5UPy43~1fjaYDTmlXgcl!lNRbp@k# z4_){uXwmGH@}Z7RB1@O|LdiREj^73hy1O=<{W-G_!bodg0K}(NfOHyyIlo^!{hYjV zmdF>hM};urxxK{gwx%^lxYRA@Qaxi-xL3Rd6n&~u#ep_T>`0^JwqW7a+QSO|l8T8m zyQ4A6Hw_e^iAVRKS`Hn{A@Lb#s*-niknJ@;2AMYlX+|^)?D~eeEGo{UN6|0>{ssKePiSVO%_e&(c!k-;fpLud^bT zca!CC(|Puo#W?8vJrSuHN7|m6T8yOqbgl2fohs&9YbqIv5!@&9!QTsp;O%IVn=68nsYT6 z&!-z~iOmY_EKW5)*kkNXzs;@g;{Tj!k=);yt*E=GqzRE}S2${p*heI{fA?-BONbsM zWSIx}CCTdcr+ROzkt&Qfw@!R8V308X`hK-FPonHHZ7eoYFIoA#iWYz=TfY_>Bm}0_ z|2s_~en}4}@Rudbcc;_VJbx~l+6=a*<=UuP#!a_NWw9!LM((zws<@QyDft(-RvNO5 zq>!U`Pmh*>E(5!CX=*J}-2H?mqzL#Z#$LQTmh|->d7{#|>8SL-Aa41djG@A1+L^@& zxu!qPv2h27Xl2oUe5+cd-6ap0R7rZ;rE9heG1%FuGH7kqGC9nj!RW&nf3v!YH7*m- z{7bpR6EUAiQZkyKEu~iFigoEE7~@#2v<3pk0gTb~2R}|Be9am{mZJ?)m*L>BQn!qH z-BJpb1s{THOSucP^9y^_Cfo*Z-D(= zU>8DWS5+G`_fh2~Ek47XXK{%0QqF+!9ppH8(Nxr*NtnfEa?kQIoKk$DQ!4VVTS z&x2JU9mPY-PxF{dljR8-GqMVHKI&ipfHG*T_d_l2{tbNjh_hd#6pD7l6awZbx3jta zH3b4Bo~X9TdK(y?zy>e6;cEc;zaYkPC$h_!A<$aw?NL7OEs7ehdQca3tUj&mM*VU; zvS2Yfaq+|cZKK{m|=XJBum1n}ZZk`RJYX!5NSsUWV&K~bGd2KqBU^nUk-Vi5ee zJmnk;XTOy8&Qi7J0bEI`LK3mg|L4Vq?drZ#hS6X%IXIIn^Q9yg>uJ#{8{G(jPq`xM zPp}Q_T?4&A<0QR=LoBQ1jMIZyM{Wl(f_;Gt~fZHkc?i5n+BPImn;m+APhdl)tIAtNQHlFH3?uaXU! z=-K)5)n$Kfz#GxitdF|1j&*2}O?ip=hpZf>IAla*hX2<1^Wt^N*b*iHeT;z~&EA5# zZI(>+K?CiRDYjZ}e-HZKXtpgpi%ge@FA8GZtN+E0Lz!7n^emDqUF2^fc{7eK*UBqh z?t9|7&0sAQ$kX+^K83~H)3lm&pReyog-ZC69ztY^$TEF{`Mw4moQ(*D($2DpPSegJ zE_-Cz40>|y5S!;O!uQcyU@?DpCJw&^-`K+TUNMgr^0qVCI zb^6euSC8o20Op>32*5nI=h90c-|Nmu=y{UQ1BWPwaBoTJ5I5{F|BHOX3B7f!?5BhQ z4JOsnLUj&yZ~V-yJOzfMfk-Z*P2zjhQ;LS!Jbi~M(0zb>z!NidTj1pJ)Bp=8F4Z`* z>6npv-M!e;tHP1S&`}G)4OWnj!1gg#|9bqwkC!A+4XQs)=SzIrE{^A{%JhY;Pi#_s za5aH%*P6>V2Mb~;Ju0mb3F(eqlQP?uIKq5Et*0>xC=eLqZgFI~{s6*p zAn!xl&^p38bw6c0NR#{-kG}%=!3O`EAFR3bZr&Ot#qRu!8;o=+er)qOMgkq{NB8k4 z*DI<_OFZnbsdrWrf&ICCN$Y<&`y~~oiAyYl&2q`TfAz$!7sPf&@%8{xkek5LJAVuD zLUN7cO>(K+Adbrp*Ux~=%9|}MCoxFwlH(tgnDY>=<@@RTBvc;KZA!y*T)JA8m@0&QCRG@uz4%1V z2+oa_PcR-ejporf$_N1C{cs4A>o4gp)|VbB207x`O%ln4XvIhzg_1Yp850T?eg=4z zp)OC`%(Nar&=z~k_f~aTg_AR9iXIQ^2U@PSAN^vii+im;hi>=iF3v@jsekEyZr(1v{f7?D`Q<+C3;N9$?Ot|Pu^jAOE&NN z@k8(lro#dyeI08#321o%$872{SM(=e+W1(gQwNK%zQ0!6lU?U-lvausfqfwWhaeJM zCf>ei?Q6ryzj!lG2vP$8-yEQPkOaO1rWbC4jcgj4Je2cx)3Gs+ZLGSp1Y1#-FGuf3Cv&DQodh-9wP^%F~6YgOjREgF( z@{6m9#W!+PgaR9Tzs7k!0HA&#kU&vZ$?uL}yLN;;t^M-1K*5ROjq2N-x3d7PyX(2J zSWM9kp?j)rCWq$Sd$CkBhSK*#0m)yte%K?kG#J`sN4=XmIK3XEwr4d;io4dn(}RhbdC+3Z*wo#|7fM0!W7 z_2w~puvc<%tQlp{ZbTtK2ZIm@H-6=XA10>JCPRy)Jdc)EF+u31M&ONR@Ug)%_U6f` zbTa>eksc-53NUH`9zjo0#N80K2-U9hee_GPQ^D;*$7dNSnu6luVbN#>%azSb>9Y(K zEQcT&Y|D!URBUb+QUYP!R`C z4{{=ZTk{kYZuY_LuX@c6m47+>@#&Nl&gJH!w*zyyrp=WgRM_T(wWkD`>PC^Y4C8cMRm^;Po*NbRg{zx{riF<|-1ApTu-< ziMwvu5o-6|jmyp4Dd^1z^Wx+e*gv53>?a_DdzOd$5JMm&SvJ?Lz>PyEHr)`xZ%LM7{O+ z%2mi#-FK3{?&JkI^SmK=p7oH>{VW*3Dmm<|C+x4X;on4><8PkyA~BU-N8!n1EJ^M! z=!t)Vsp`*C%XsPO#xpr)m}-dwH-$T7CG`?4C|+I;_RZ;iNAkYhmW(v$1`R4erOnORa+sQ*hmSi2R@ z{glCcsClW@P@LTb-&6{t_^&dF;=?_(O)lrg`j%8QuI4wY7Ojk9!9<$#tC9&U`_)*? zI<<;t2IyP3$^z6qp^6<0)Oy8h;H`ugY4)_K`tXAi5k@ajlV@+9<89K9a3N#*OHxVdrR-Uu};G}tkIS_V?~Pmy{7AWq_a z;fR2fAeMSj^;nb6nS9VIVu{Hfj%Nqq^_ejNz+X3|TK5k|(pYRm$HF0M_57rc{0oe< zry|T~-yqv3%knC?UByk_7n`0xm)G(>c9&#t$G^;|`mZlHT}r)}7QG_+@z_h=<_SvIi0h$KB*U)^Rs@I@pY&kYz>uVZ`lja*+! z&jGY1p4dzgK}}W;JkLh|+u!t+eQih$b3;%BdI5`-dLnWSstX`^pmWm%M`|oQ&;MP} znRxr;WgQQOh8ezAXt^`<+z+;|q{B$X9}GF2Pqrmy6!wmX#=6~${T7rwBCUyvI1LaiV5j~YaGZK zCJE&{0~G5GQ`oQlTb=#{c@snLDWD5uJn##VrXiB&FQI+dzF}ZDEoq4DzoT?fr5u>Y zS5X0@^#jTuKQ~i!-3YComwTspSob6RSTFffp>% zK8C@;X|{?Ouf+R7!G^e{0TX7lw~PRDg4UYE-{k-}mkD4ntFdsAcGPFDYvEb!Ec$bJ zT9foTLAglb<)XFLm3zat9Wk5K7H@;AxNjg-Rg^n`Tw6j1V@9|cb zM~gmKif38PfiH0DzFnDXF70F2{#(MI0xWLAH~f=-$})z^C6&C>k?Jg2wan)sSqm1^ z#~uAs56GSykw@f!!wJ8J*po7c*_W7&?%T{;wD z4+L5pzDfb$_``7kj&z=`w2TB@_0xdXlxD#Y%;XHE-R zn?gJ=Vxw980fp!K8ZWER-f_tE-SFFsj6#KOq)6+JBd2+t@c;14 zZ5rOj)|NCS+wMY8;TaLGjCcQ~)#3apXIeLWrx7AeGsE}u7toFEhx-v(fJMi+XKho9 zc_}1SEV-dd&W5jMLYIjDqpX?j7&*2kz&h#(QAAjIGBT?qs@BYq z7KFHA2a-ya0nw-Vn)QSrKGf8g@2gKD!xI`lF9m*X(?SO*uuGn`L(QAEb2mo=DNk%q zH-sZPEvduhM@R|J;X}g&#sbc z$4kP6pV-B)WR3~fcTY&OFALF#p^ABY3Y%Ll`mL{4L*$jgZG|e2Lc8zTqz{M;or?k~ zBwKSIa_(uD)*k+&kdYOb1;+o(WW$_>Rph12CpUbLONk$B&y`39vuMbHJHoO@MbLJE zUjStlldPPI*76^@CePI%eLz~pQOA^~(Tgd(^9j?SRW?`=uvy1=k_<}q4uk+zyOI05 z3+PTk0>GSjqeFn9*vy$+h$!11PD(e1TTTrMS5rZxN#n#dl#5e zt?#9T1@xbekhqxipBArAP0Tbw9D|)D;UPJgv{Gx@go(2~A4+N>?53o3nkJQ1Ki~Bjv$cQH8 zuO6wsY1$##xE!`l+^i6g=({aZzD(#|mB^^Ft-^65-jpNWV##wgX_qP9GMZ`dWWxY} zu1K1)ClA{?*mK{i6C^>3qO^P)e6&Ic@zfzzf6RWDE~YS8yQ7`v_w6Lq$Lr~QOik$q zq4cmFtFobwC%W}us*bZC|6qTbw%GumllCwdVBs$s$Z^{sI^`$dN*Grmsm9mXJhf%9 z(@0E%vzJ4QAF%i&`#g2^dGD`$R7xQ2hiIkZaEbDy;K zDNeMm(aA3!kf(Bgdr$*Fr)b(*b>XMU>3c{aC=&j!dui}C;d4=U`9r!VCUzqK*14G(?HQjt56|@66>-@9pIdrlQ%!$eYkZ%wp(UhDU~-eyx|X}-kGrndVyEVuOTfxFrTf_ZMOWLrY4GEQK?z*I_5sX& zyIO8v&Ge0M4n;e4Bw#6uqkbkWmD}**DUSvo-dz}Si-$f#K^I3?v&>89XD@Gm+d;I& zy<3E??*vQ!5SchH0zJ^*b*KH}8o_d3!gAU7DX-HxO@xX3B`c4=t)3u)dDvjq1YFGb zatAGp-L?*MQwk{@|Iel01QEqGU#HA&uOJ;H7oHw0I=lm2f~4k#A>kE$^uv|;`Ga+( zrc*6b9$oS4<&CacnATQRJp=F(is1;EvsC>r^11>wYX7iqV1r+A6YYn%O}LouNAU=o zk0|O|LQKx@%Czh)wcf}YIxk7wGHR}Nqa_NP@rdyExGY$clYXe7yZ5d@Y<}@uIpx3m z(ahVtynY`^-Urh+wSYaRK`j*afPK`huNlf4)-}nN=DjrBc7>be0LF#i7arD~?lqJi zdTPx<luna==|a6u zfAds?1RmO)Cx+Vp^s>LVE!;ZlhWHlui4YA|N6I=%1h!(&5 z1^x{!I~~y7KP?KNs2`Nl{NKC$Kc5I>MoqOX>W_8*J)g#O!xY$Q^m(>?(QSVI6BYvD z=#RuhxygT*djIlT;Q#Xt|Ia5sMOqe$6f1c+f7bssrdNp()oAY$CE5O6B8{oJ3Ghq= z#q(*E^v6usr!_9sThtCjDn8JEqb%Y7|365LlPKB$ca7`R)zCEduyuNu1QO7%ZSEGM z%vaWmEnSvjK@Q?JyJxe7V0-oRqU`OSn5I3gCg9u#Km%K3=CK_2KT7L{W%l+*9y0__ z{4X-BdDJ?$cSTV@O)h*Adzo5Qh9T@smnD~9#~%nZTaD)B*3Fgf*;{C7eD^V0Xjd+} zm53&vMJ^$TR|;FxG3%T|taE9L2*Y8V;8hT^s%$EwMkv;LR3{6Q2Yv-pOx%f}C zeJKzpN##me?%L&tA^jRyLd5LsqQhYB^wbzu6@|#PZV51TT8-mV*e;g5!y_oBMeIME z2I{hYub?&={@dPJ&?e()HMeNo+omROb+}#SvM;Y|!Qh1Rx;7@jNd^0sd)J)QCmbP? zh#kaB2s+B7^oB>5P6nAYM$t}fNc)w-zckHfwUFF)66!9ld?jCV{VWZz!@V&nlj63;%GQz79twsafV_J^$!RriuLIuoze8{4F zgUk6qrT`QIq=7!_H^6m4?G_S>J1$zrC-Z=PW$~&egZvCo2hv;go%D~ zrycMoub)-evNuO|f%~kk?&F9H8B-jbP&{EvU3%k@&{dW704@D1f(!O3 z(5L~a#+gYIt-9gPGu3$LS*H7|U}UeWWa*a+$wp1@e_s8Ff}m1zoN0XMacEPz=}IH= z!@aru?om5u>1CvDClRp)N`u8baq`rKjMq}L_73lk#msQfLT;t2 zD`uvrqGiNZvbpxvI}^Nl(is^%Z@6?=GDSlIrwem7p@U|2h9}10sK8R>7nu(6-X|;5 z*?W>|BQ%Uy;bU4kVs!_V<+ey5(PR_LC0H7~tQNa)hoyf#+f4CzGZ9iTux$64L32s) zFJpD;(?-#16z{dQke(^=J=O~75i0a`SQ*qm)K*Q-ZE)Xus%d|e0QE8jYdkknQ*jK* za%dqAwQ-^GSe>e77ESv>w zt8CiW^@F?B^4Gob!I$=0ko8gu2_9xN1~Beoyc4)J4%rN2MM}1R_DUArZl0ls>Y$k$ z-WX}%*5D3n%(U&2-dNt=ZqQ-#Ae$~AO5gX=wM)-^udu;T2Cmo`2)#N&qGE>rV0R`l zTQ!%KL$33obz(r&J%9mU@M?xcTJI55%*emeWwpFDP9X7ol^mNiBgVE!-f?LKvr z);(-y2%)Belfz}eQO44d=ZxUZX}%ldFrJ-m&s9YgPA}$zQ*z-#wjH_qb#5n#Q0Yib z4K&E~6;(FBgt-hImQ5?0lOVfjtc)Zd!Xy*LWyBwt2k&9=GitpDi?>Qji}$2EW;ctJ z`$mv94ns}sM;B|rUweaW~Y-i)G7>rw=jBCXJcgGS1#P)r{D;q%W&^D23G^(zcowslA`Vq8?tQLS&BtWg z5610W3h}8Li-!R1`Py}t3g5c)m-E?%0@61-Y3`qH`)Q1@@HIq z4_zCxCsAY+z9CwidF{cm6)ik0z7&1l!_x!hux@-dk6TQVh&ok^`QV#Eu;JvC)K&F* z<2v5?>+ODNYGLSVGo~`^ER6r9rpD^9_B)mEU=y-y*iPbjzhoGP-c@r{8k(rih;KAD zM9gf><;<+;n`O3gXcaJQfTcO%2$9KAUQ-!Z<2eg8<58!B_33{4N>v%hXLR;jCv!bF25Lh9_P}1$c4!d1##qpn`6(c8%0I3Ek$Ke9;U-&YT ziQC!EW|Hg1fAw3JE(uZ~I2nwNs?2zv6N_O@;AyuZZcKN_`|R8V_pF;%_i8k)fcE`K zKSgV}xCqISU)f|H+$eLkE7WUM5=qFbw>3xzlnagu9i{U;WYK}H-S$D{p&xTWFjZc( zf+@+D2gTlIq#$)(NT}9OmjztP%b;6k8OW2OaU-+SBO~97yd{d3%0g88hV<F8OhbOX=PLeMmm35-)n68!t@$6Dek{p*cBe0?9T6{ zL|+-N5eaJR<#_L)jDGf%CiUX4c@!in6!8O+XH;$;ZE+#Uur|eN^~P42Xx_*VbNXtv z&I{T0wGh!vWQ|IWK*|zaZZETu4l!LKl23IjSzI8#jO~HM)j&U75>WH*1x}>Wjp}&p zDyuYNjsrT??a>(2&E4?Bo1Nknk_VwPjbo-1uc}}!To(L>%;aPHBuj>PXO#7=nBM%+cU{G>Ye`#Yb{zkZ)nG z16L08_&5)&a@N?ml_`A~-{x=owItL{>?7E`v=x2@Y?9G#l>RI3fwvhG;eE?|(yGpSFbZS_;xvop)haSZ z2gsw)3;zSUbwdKrkWBG%gf8qX+AExM<8RbQ0f}F6j6S{;V|;ptD#tb3;Pd`KZ=oS+dWE`&?h#*@T>J-+pO5nH9Xb ztn!ek*3Ja`_2bx>F@`fpWoKn6=v;4^>@uX2Ybz}jx8MWAy`aiPw(2&O;0vR!-X3>l z6#@}^1~kz4f{5CQC>ak+57Ns0nF|wh5QY7CwJxjHFp3*SWY#_7U9mu<`LcvXan;OlhvlH-Ydkr}Y&9E6f&Qgx(}}~e>2D%`$71b@ zeC)c4h)sQ?_?XJxH=BMK7J%QKg;I%uDTNW~1l&1=q2_s^4iR2hh(fV!@=b9)TV&N) zczaUDBn8H#!<2kfmXJgy`q4!}n44P8#r$HngfDdh#v(DEi&@x3MQNCJ&G?eh_lUj- zZ=)t#JdR7IT4~RU`C605iqr9Nj{QmcjHHTFt;1qlx%xBWBZ>FW4j=kY{y=RTJu@mT z;Ctsfeqh;P60#0GF(tQ1lGBgk5teH;UO6*tkqFky7@>P@c6dfhSRc9wBVWCQBhJ@1 zYmQfd@M13frq8XTlbu)G)rLk@Un?Y!S=^AITU06B(85twPp~f?x zcCtW%4%D!y??CO!mRek!d&~=4Ux<5AMb!;%vTx_8Jn9@s`lleTY zqC{`743V03wk46X(D6`f0>~Vd>E`o^tn*DK^_<-We$*i}8s0jdU|%tUCSa=gqqn|S zko$O5a1(jd3#bVR3}Y$~C@W0Lw#QEDnVy7Xq*$bA8TYw85XzRX?;W_?R=Bydj)(U3 z6LFuY)542iU7E%;R+#HJXq0znQ{J|#z{Aww>z#9)_eIp9oeULCo%qk$+Q69=ge4gl7B zgkd2&z9{tPxk=ga@w8y9O)O=+6c+x=<#@X=>CfZx-!P7wg>)o6y(B%2yR^g0v`WJ7 z$zzPN=O*V-Ux#jyX+Elt+%0Ie%p2bLqd^MXA^Re8rh=`O#oi@npAIAksnag7aqD_g zSq`MTSub7*Xr9G`97Vo@SKOboa{!&RA1K?giPF~|>s$$*f$_C&OAphUD8GIUBKs@q zPb(8`Bx;I-C_;sRC>qd&GV}2T;d@K}rlvirE!UK##m3=BZ$pjqv%$ZM&{CH3(C^>Zh`@@mB>;0Yg$ctlf za@K6e!K!a#luFb#J$|pq!<8~4OGLU+)x9%c3e>yCal|tFdGiYA-G_BW8hUyyJ+)Vp}qD#PwkJzJTy1;HXc*x}k$uX#uL zr{1wl_u5fZtOb8cw1s1B?~{et$CL%q)RuUg>stFO#v8#tQS1GX zXU7aQ-gGjK->(p)V&mqm6!>B&NPEnPcT%ImGZ-F!!b)k2R6Mw z_1-olv8R`g+;W9qIvnI+JF`c!BnmP7Z4O+mDK^3XmL)v* zH}E0>-Cb*{Zu^nMH+^|Y+Lb6&;9Z`0zJooqX)hZ|0A7~T;;}%j| z;Sp#NR@_9#1j2B$r4dK^SKCGW$cWIdUVk@sF%E2dDo>L1li#ogWZMK`A}SUsFfQ39 zZ+gJoQ16%g4%7wQh9SFb6S%&_Z&wARUSp7Pq+Qf-?hT+XCzd(JAa;=Z}`!>;QORcwA&1)graMz@+qHJnlE_BS;-eP>CI zsvb_f`_jXJ!(YU!b7D19i72=aRph!tuVCbwZcFm~BiP)*RwMmXUEzj~L*o2+r?|d; zn9U}KyyDaE+mr>(nvL6pTfMEIy|+3my|18qW|2epO{6a(?8>AY9pCcdN)S80w20;y z09fcBMnX};Yrrw2pLbx2B~CrggQ0TE*kW45OND&sIz;?bNX6ne`~`XO?yh*Rf_~Ke zT)WffJ3!W%n)Md0(JVyQTVr@I;J$^?d8!PKiURZC?(Lc)`c1)YjYieqL3Uy?i5XPUV%NH{H{JFxa zmYrt0=5MjxmxW$i+a4iQZF%pA%b!252$zE*do?Z!?UkL#e97LvMjjuH5`)~-qBo5F zaloXE!BS}a^jp0q@QNL?*uZX?i+zBfgRP6EhhN{@pujImjn?M+*0N}%56Q`DHO%Z_ zpg=g!@i(3aMSf&g4>)25eP18#mr?Nc>pS3|C9HUQMt+RwSZS)C(&3c55@@OFp;5n2 zSED*&KKzJ`Hh(SuquIC0LxhFn-lybua9uL_^F#ITMjiMDsp+Hm|kZ%ZL4p zDhG)ljtXGCk17jLf%)eY=if1TuMVdl+xKkSsp_;JMdqzga`jh&iFr+~pV{>ZYLo=0 zhVzFMN1@NgSrAV%)#Ze{PAu-|=`c)I59Gs1x(Vca9G=I=4r6{_F6VD9AI3Nt`Vh~( zTA^#ZT-K-k&6~j1DXX;ovvrZ}RXImZ{DWI@?WE>rI2G8Z+!~dA-ahZ4aN5?|N zN;-p0WSk2B^$^R1a5HB+?w+uxojM##$dUZ4`L<<1m4+eitHp5tBC^fa8;3Co+qp=1 zAOEul11m#V)K=J4Rhd%GoA5m^J%I(`!jU#J^;AI)VG3IONzMWzMhuZ!gy^txJmFy_ zAtx`+1Cn_w9FbFlmoTgMdp(en;A(i&nz)!JxcB@Qtv<&6ulpHgu|Zs=&KRY0 znr*cPbB|+1X>I*^=?~(!Co>DSn*_HyQy4tD^5=qaEQlRER6i5EmSUlJ+E&$z!Z>o{Bn<1- zj6M;wiNoA*&|`aZpgHX5EPO{^b!lH%?C(prj2lm?+)w@Hb4i`BobPf+Q_0vK8#Wz>(w|8Je*xv0~1$N}; zsOP$W6N#9=NOY@-zJ7dN_gcuUp;R}Ee#P?dZ?xLGlwK=wVjfRtiA{>2x;kYz`{H-T($aH!7L-En z&lo>FbBiss)Ag0BR`P}Iv&&M=yCOYd=uMZE#(j4KQjgAg5e+VR&W08iLyQp7yDlH! zYD|#}L+<6Rt=T^_Lsc<};dP;$q@UZ!9|P|cbT@8vxL?!ujx1a^I5|W;K<_9IE2bW} zF}UWWQtyl6F?DA@!=QHFw(-UJu=aEcn`|ZT@#(8uGTno6^^z_4+}iUDk`4Xvj@y(k zHVeFc(?Q{ae|>OV*`$S)Lz?FDwr!nXF5;}}D?o3`86w!2~7_W2uSOz_}E3X`H?Q(q4T#?nJ*mBKV{BR{XyPNN8{UN<2 z=uD-i_@4Nl2aCK~U{#XbRbnfs43CyhpH$FqWh3FMe!1)Vj@LrG`1_4NeD<<$Y!Yyd z*XXQIW+*Ng&YASgUK>!f8ca)z$?s-okko$kc+vm)!Ry+xAeNrmN~r(yc|(#y?X|uG zGPXnEx4vyJr+$f0R5Bl9Hl{w)?txl$_Nv^^2L?w2)^0Bg*FGvpnk(RbKp`SFuvq?^ zgGU3t#Qmr*n%a4g%s_@Fkh}MWeMBk$J^8&sYv#+#`S(0J{S^+o3Lor+jZiigB!5>C z#QW8=ynX%gXyF!~v9w^4+of5nQ%7cXO4<0kG5p#OQ*gW7@>8byFLJ8$#gk_?DK{bB z&ZnxH++G^G4`+!b^&=_}p9Lz-`+f}W7iN0MxSL!;kFHKLuWWScH0o;l6ZgY(?)7kP z*rx59#6g?-`Llzb!&L^P2gVE2SCwCWo3oTyZ45+J6T7C`sXsnQv-}krO}K5_dk>k; z=oEbkdvKlRb#3(aS+uK{wXDf(YiHm0*j6<=GH-@gb}hm}$v-XU ziP?R1^9%duv5AVd*^eK*cJnxK=Z3>UhwfmF*7KhcBKEGukfSnZ;!5b0;x#O9-lb}I zLo3R_)KKr3^pz0$%|~8mvfsRYD0JqZ5el@8G50EWzi>ZJdFBE&Hgv)z=J{&FD-2X`#2sErhO!bGMy+82G-54E z=NbXZp4GI>Oc`YN8KvHD!fvxGjHd55 zi2O+7t=|HLSDq)0+_sD>9e@_w@z0ZLUG!}j_HIuxK${!4I$eq7YoP{Z-( zlj8HGOFf9k1$6rDhWIOw9@vmAY{eC}e(F-w7?obf$-~-Sa;yRIf@^B3=vj;VxW=Aq zyQ1EnjlTK?a&&he+%SX(zN@QkK%913HMRA=M4W!9IR4dgsl6u6y_+L_aFBjkZfFY0Dt0c=HGd+B{mL(BO%{w|oQkNxvQRy*xe z`~2M9bW=e>T^eA2scC4mPirgegFc&BQ**1KHfuqrpzS}wrkieRd+)us&qXXvXog$R zYJ~+ww*9fI*@!gXiG&HK@*CK^Pq;ofAJ-FTa*34P@2Mlv z5#d^tTzs%mS(PKvN#&q&iUOVAGYn#d`hqT@2kcdo_e<2uy9{FzPM7s@^|_=-mC@zH z9TM2PGWttzl5;}@vUZse6VX&Q91k~s90lJ_2wtXUPML3q?tHRswbqV0_Ts`~?F;>X z>|81{?}Kjo#AYu1e*8ag_6651xOGcY>L}_+Jc-y-+F2GS)LHpCPw2D~7`b$mDb(k) zic;PMq|8MgcqDbSLWkKUW|A#63#|5wH?5#cFDvTS&#K>f7@lTbF>~fDmuQ&qmKFBs zhge-fppJO>xp5K7Xx0g+9cn_6HO`u-&(sS*bnaNp8fQzTUx{&z?FlA3m4ksk3VLQJ@%+Q{O}|8@Iwz{|MleY z#~-(=uDZ&OKKf`MIpRA3#{q_kTc*`kWah|~W8E+R@;X5cZPY-~($Zozjn!6FUujhh zl~!9{1znS_3!F)6@s~FYDC6RioM6?GG2`*&mZu$ovN3)+S=Sl1K&?=HRJe93nv2JF zx?;}87njB5Auk<6avc7}&#+YxB5&_QjjIzt+x-HzUaYGIH_VL~XKb4ys9CHBQTY8W z?CW?=YAda>ZUN3s6(&%)&LNgN##BU|8-EepP+|G|P)JD#v zk?gk7-Xdr&1;bIZTRjklpw089flzz6C2w?yRuEHB&%tb(HO%PE|zt6DX}kf#|K?l#^qP12JLpd^J0E>+AAL5# zzW8#2O`JHvCQSHx^4Vvf*?|Whm>g@wcL1DvH_kc6Dd?KY`?2mtdha8D|v+x zd5fLB*KKy>PcE_wOk$QMfiD&EE-fm=Ov`6FId~ZACme{#siX2PQFn^Y0V<_+2dKM1 zcTd==9t$Jxesz~jpOimX!kXqxvIP%ciW&44)^D#ftpGE`hM5zsY`Hb8=hg?yvF^*) z(K!pP?`|jQD^~nGe8@r9B7n)pn*f15m~|jY5t#QnpM~g1kb=L@Cu#aplyl&d=4FFN zTf>|w_SL=TS>?NrTF(uBDqAx@^XA=08Vu#ascp5B-nWK%({0$^r(x#Z&zcs@v;kWm zXhoQ%FX~58^c4GoIgqas$??ZsKbP}|?R%Cr&YogZ@3_EbKlOJj>DtSRy7a`&kGq+v zSZ+0IME&WqOqcW-YJ-0Ad;9#7U)q!#kJF8Xp4P`r)KUjdaw{K-%isdtREK^3NnCO? z`)3{^z9Vq3K=Pj!*EJ%g(RBen?&?qg;%=}N`>tYF?ERE&Ic8U@Z?3gZzIwyf9KNX? zvGt{zd6JljCcMWDxZ!1)mJDuyS%d1!=mww#v769;n|RaDk9?qSYHh?#V!iC{0W?Iz zb*P2?95=L08N@`qX5J+D2UDAUp7D|=#WBvB5vv)oB%DAXmOI9b%CNkv4{gMZx>a9q zbuUh&n_+Lnq@w|`>l$io*u=md^q)W zTVwb}cIqBC+OIb|&MIr>>L!4sskY-4z~iC>FfMO`*rq1b&oTkj=lb#-vh7(Pj!~9l zdHS|T#Py9e_Uj)WZ@=2?7))B{+N3$-ZT*p3+Qq+o(7Kj&&x!X=oW_Odb8Ot+C2zGq!m+1#f8?f3f1Rx+yw@hd*0kW1%) zs$%_Y8o>v>yq!zqQnO5m0kWlzK1Jo-;nzh=;jo>wY9FFp|5NaqmI4D zS{itfK}^&iz$I2&kUh%#fK=B+nYFE~xB|0A5F1GyGNjiC z8#Q<>8#QQ6>(g}*ZY10dXAveKs|;CRpZ^c*y^^gwbR8SfZ)Mbnapq16Zc6GEd(7aq z(Z1EKD<8}Sno01yM)JI9pRtCb}p6&Qh`b>Q>Zy zuvNYJ5XiS&pY8JL@v3(p(`U_HS6UDClvvHDFN38^tPnokSKr#IKYUj94DQamufB!8 z+g&^HUDa7JVol9f*`}KDuYfq$(UN%G)K9F(xGnWnt47Sud4NS-dt28P*VgCYEj9D? z88pjwS$-Vsg;s~zIBy{M`FG8Pw{w=NNvvH*t)KG{8^O=8E8l%mq+ULBWqn7Ru`7nJ zW~Kd?SB$2r*=XBqx>4W>F2Kd5`zo8_W}?^@e)K%r(V+L1B+jpgRSaJR*C5P*`KAE8 zF=$#a3+;Y0r%m4^SW{(9tu+i-*|s|KUd)8JR9}W`IajP)JH8I~-+zC5?6Jpe>eQ)T z6R|X*8}`%#Yb%T!XeFh^9MpJoImrDrfyvZ`K=<}am^FaVRv)^t{qBe7*wxRSV6RVn z$|{O+Lkxe8U%Ij<)HYPvp6efO+pfBgiV}4o&T}6=*rv_@(yHp`+wBK^U>{C@%~l18 z68!x9k@s)0-PSo+dE(x;{%Q}tbAx8{w;c42EvT7ey}I-RVY&I+U9VqdJFNLDs{r8; z6X$$l=ltvc^f~+?Tb^k@7`>hJ1ZT&m-uo+?Johsj)N46AZ_m5zy~!`z>dS59Jy754 z*V$dKT`6)OH+(}oV!I2h1Vl*8uAX82yA8HGU%k@qfBkP(0rKMkb9O(p&q{XYp10UP zUcA)qLyT_aJ#iiiU~95c+|Xb9o2TuWkM6gNA3n)DNxt?T6v> zm^FO$If%Qb%5$lGAxN6UZT$Qj9i z7vbim9_L~qZb}xs@h_Bn9d(t8pjj`U5vY9UQCom^2jV8!PR-2U__w}h7V22=I$|tE z;*R(pf&*RS8rKEhh+{x#Y?F2{=^|-kh-e)0%He+as0FjpzA8Sma;lXS^5%_YG}^5Y zJ1*g_H)3lM_e1aBYT4p+jg-P`i-?!hOUox7ut)TKV(-ud7|xl$!PoS-?p$u%zAfS_aKl|Ehgr!{^9*c z+tIh}VLv&41$%qai?+i$ztm^GB%D8NbFR&+o@EDJzm@HB(O7%^^QTnCT}zX*f*EiN zX1Bv+n=DL)AiXTjo1NN*YTRHn=w^b% zef1Nk*!JfvkNUT^HJ9JmHXgGbj-ehmIW<;~nR$Rd#sat$&t?C^wmaX7F~RxMt-IR~ zPVO$!-hYeZt#{Y{vZuk>KigP`n7z98wG(!^#-`1iXmhG&;PUQQHNRm*@?H!yEJ?ur zrJj^5iBpu6TE5(P!bZZE!Pb*?QjTS00l0$31PFt(WFw(+CdRi%1~{`5-jcVci(eK=OefFCe6d;7^_E<^{yJwSZq+W1DEhhNQ~x zBp1Su#HhUNxcQ(Cgcu;Z_fsC_xs>k8S7& zo^b7eo^_`5gyQ7Imvqpkh=}&Uu_eJ+3lD+0SvE(ezt#8G5Lornc=Y{|WTDdV;X`1s zphN-4sou66ySvS){>pB7`FxP?V9nz0dgBTaajz~Q5fC8p;5&b_x$vvS%z9SUR4r9M z{qa4TUB5l$dHEDr5iU&`%>qB4^#RD}PU}_C*S`1)H|W4$9{Hp7U>-JNc%PAK>wB23 zelhbyTW7=;*01|un=)R`zJ*K7eAFuv1`*_-0Xmf!r*Kc%k z(-gqt;8W)7toTE_^jH73mX>Dw^PT%?iGFcy{ZFxUqJEFyh8zbYw&-BmIg=w!*XNvG z9T5qPTs`?Iog+e)k@zySCFP`ZWt~uuj!Yt@1V2ifIL@GQ(qSN^%BT+Si;#hA&K+_ zVK1zoCqKq1#*O8|T9&YmaVpw0A1DgI}>Cx>fYZAxN%jbS>{;qX(^Sljn@L z>IQzz)Wr#C(P!w6^tmrD?ZTtCzx@1OJ8{=*?Yw>OvH?AY=mv)8-}$-r6M@kA{)O4{ zkH`JY&fe=EcJgl5+o9W>>DsGp7L3u*TxUOAc_%w+hrignQ(m<{-n6sc)33W+{&f(^ zdr5%zSHHWBJ;#BBX^Nj^^ZuG!y*P9Av)9Bwl;JF!!mu2yd_loDbl|-wy9f7)Z>TGY z!#Y^T*GaObKa4qL+SJRsSOVp^gs(VofTVv{oc&s&gO7-aSUflm9pP%6L3okp%Z+8u zro&aD)rt#BK)A2s0^e#sTmKK3wJosv#yTzcR@X0pzDdOU!PHl5c<<5HrL>10DkH%T z?=wm@Ht~TnjBSDsZ;Diy_v4r2p5rW_yWVn331iSAoQ9t!G6a>3ALl zUq6ZNgDJ0QiT!{rPS8VnTmt7TdS1rC@$zKN9`ASZ=SIZogE((Lz}4HCXYX}`oFTnB6^Dhf zC0Pe!AZ*p^R1}6t>Q*e)gL2_UfiK_I^vy*eYf3~!#FE2}F}HVg?FJQwxEpV@V=$(d z#S1V)UVz!}ZLeKu!+Nb`m+bYZZLs2xY)H=$cI@_7+X*}TO|!pe$KMB%Dz?*hxz$!0 zFwTCq-l6u(9~@&Zeg25euAHiwwgc;A8x$QcT-wzhUZWgXGdHqxz$?%8xwLC1gSfo5 zBy{XX^k3OlAHK1jzWYtK)(V^0z+TH)@6@urj+~AZAG-+T`u^ls?6a94*zbOHx^270 z-ZpNz4eav$ACcYHkbo-*JTI3#atv-(y4rOIKWE#lv8N5|v!Wfp^Hp}(cIVnVlV7su zKlzt+0r|fEh5PLMz^zWQA-z|y^Y^<)D+fH+eA4@0Z{H~U9f!YXo2|T~ZL|8GcJ%>I z+KK~KQC+Wn{+O*ZVl&%*&He1hYwU%Y^;z;SLK`aU=G&dGTxt7la)h0<+jaW<{14lm zV<+zRH+O@k_tAkj4ts9&do9WHql2|ZY;I$RtZie4tf^IqrA6RNg}m#Vau2REgWXGg z5*u~yK!V)MkR?GnbMJgzL8aA4=^ups8+#N8%i?KY3j2TXr@__j`rgA5=g>;=(w+D;5zE@t+_ycsQd?#-H>q!?A~<2%R5)NHbqi(#@Xz^nSbOu_N?k z^KUmh)lS*@CVeIBl`kIEYw9 zGxrcKPrKz>S6}!XnKuK>@iW|Fl+`st{_a_oWQjeHFMRk^^%aku0K!|@&e-D?TWk4E z?dm5_wf@}(*$-FQMc?^$zW!MnAbiGKXhnL8`|?MQwed6F1IeCf$L)Njy*U06t7)k6 zvsYipgSszgex!%Q_;s^iZGMcMz4vXl!KkgQv8BmAnfjKE0QvIfW9r;5?4Pe*i&^g$ zS{moM`f}FCs*}gW8T<)%>}P{|E{A%ru*0`MALqHNRyQh2yV;G;oe%#{?BE}rVh7;{ z;NI8%sx}ni+%d*|uU~IZynnZCz1nVS!%x=wxz*M$!13j_neTJAvhG@vzYsSNC++rE zEz_T{%hlGqTYs&tEDfMvu`7ME_;7j+I$#&vb>tu9vXA_)ip_uW8e3^FzbeLQto}F( z<*UJhq|^Dl-;+4$r2!%b*G)Nq3F*9^yKEdcphULJLeBw5e~Mzzk9*mi-q}!w4e&ab zpw`3tM|`*7dl0`W)_I{-v+z~1<5sif#`d@3QqK4|5aprkfKqrrH5S7lb zgiE*XGv18imVrD)JP0jVrp5c$L6zIuxl8+t+MU441v#dvXZ#U~ieEviyXT&6Y z*4NzJsHOPs@F9UOtedA9A(xKX0Di8`<>}tt2KshpY(ecDJ!r-!#`(22+WEsRtb^@h zd%EI=gG9&A;JcOg(oF*^MitT`Q|46gv&-OL*V-n$-DC+pS*{U?Pnz= zyg)-Q2Y18F%Yh$`8jxX}%1e%*GC9iZ_c8$f27rYbFW6;rK8h6d@Co(F=3MBZm?RSI zeS=(_?4BF7I$TGnq9&{I?NLPJHKmZAeyUcRr2~HM&F27k1H$^5=jZOLRS+(8ix|aZ+UzM+K30gC_W6=l!$7O|mSmfY`H~ zORBAG0{$W*B9!~7ZOg8m(K6KFUz=bo4OWwKiRyfocBrU zlaGrfkp~@F2EINHvJ&Z0fI>%C&ezLWD$AJA!$&V)PWAGoO6j=tz~yxQY$|8roV9;sB!{u;ei{|m4>(G% zG0cbA^wTc%(w5`e4S7X!c3v~^qNltWPxY~S#(_6 zZ<#w^#Kgw^b~<9=z!XtsQ70}moSb|cq@4!qIjS zdU+p_wS4H};z*nVdRHgoAe$1{-~)?mg^x!+uTo6ahlGpk%CVGe^rb{BQ&=kGz3oNs z*yMTjKG(V7Inb3VF}3ZMKF+c9HK7 zG(bFAv-fKdpkuT9Ys=0rCH8^f+4DIFy}!@85`K_{fk>@h9B3*7fp0?A6nI5ML@a~A z5XR8;W7rX_y8^hE2%BSCuF#XPbx}~xi68eI=Njv@`|CrvPLNo2VStCoS}xA+2-`(V zZu*sj4@)>_q*9+@vpxzgFp;o37nTZn^ZVWE1f3i_1a*Ah=b0wL_~C$|Aq*^i)e92* zSwK4ml7Ch>$Xpqx2m_b?D#uVvM?^#{)6kgKpmn0lfFHzOrE%?aBw&tv>cY5Z5I5c_ zfsDh`-L8xyS?}u0u#lr?JuS{Zm4zl;Jmli*3@=}nC0R_BMszyF&%74{4JHZ_6#XW! zUkcMeAX#(xaKLaj?Puq~Uuo$%XjlT}xGc^zZ`H#cviJA=AIDQfM5h4)E|I)*5^n(XuDIR=8#*9L8_tz0uAAET&VNCk*ngcB( zx@B>91CX6*`^qCaB_eq*25taC*!dyYfMnf(BHMbE#H-}bO;X0+LF*+4Kghg)AZtoQ zL_{Y9$2&%_#=J|3WSzll{J3}H+}VPEQjT_B6coXG!R83tiSzgIyq`+IMibMdo{nNZyNp#zfe2`ASPz zKF{$;@d_=Ay9FwUA3(kgm$USj7RHE(i0J&#H9(^tFTZ@PYlS0Ej&)uSk{?h(8Wy)K zju%N*%i`fWBDlDWa2u?;dg?v6?!#(1E1d+Vk0fz|DwWZ2>cPq7K zD+Y}h<_Q0Zgp(qPQTThi5dOCxC&k~gr0Y&gd%nw(_;wbh+Z?1l|IRJO|L9a+W_=6l z)Y*7ZSDyfUq9e1zkM?6YOtu<4a{KufLgZN*?zFlZ(yTJWdv7a2j zstsJBkChY`xo@KI?emuk5w?Fjb(Qs(T9Gw@ol=3UeOYH_9nQgL0p8|m7x6vEclKY! zx|bJQaZxAjVO)OlNshJF##+nN)>=#DY-?FanPV+gvyi9wymUxc&V?|Kz4Y8uH&3?a zh4Z}3m#(#PzO^FVx^RKDR;AOGPO8)Cg%H25VY(`tu0@(sQ|;5(*HLPmFkkD_b+y)7 zPeGc(ymWO=8jzMSOVA777Ef7 z=B4Au4c^vD2_HeUI$Ox&P0~MW;htZ|p(wA*pRRe!nh?!33)D{IfaKjGukxLA$oy|3 zJEP{6BP@#tLU#R=GjBJ;rZzjf4tw|3w_O%@_P8t_(H@oxdEd1E%CQaQ{!) zj}YGea6BM$915g7wDKEt$VlvNNIwp0@GwbunCO*NB zN?j1VPJ*m!lq;9mnDlyP6q8D38JBx)I@U{IR-IIbi;nlFUMA$JlgPl0kLx9gO@mL! zp3;Z7vgPSz(q`F(|EPr@53s5K$^Y_>SO&oE8@e#|S#f0T=s8Qq$~l$m=Eyj*P7B5j zZR`@UTST;jr9$3AdX=Hmb>1GwaU~S`)1v_dEy*JT9gmGB>Y0}gY3Y1Iz8HkaXBY?j zLgd|DH1b^fP)v%mXLT$ebjWirowo;_ZZ5novQUaNf#X)BlLwhX4eN;0K)bJ|8Sg%4f*u(s!oEjL%qB6voodfA z51k*j7H#G+Ms!NBTjI~SkiwLn3)k<8Q|AaukKGcQ?E08nH`6ECRgJ zMdTs5@emPs@Zu_hz$l|xgc9-;D!mS)(V6`~M4m3LJOvr%+r$hy`UV{~(lJl*c?t_~ z7veH6GV^%})M#$lsn<)qKGc=i+R?k<2%RPEAl~51La39-0P*_7MwQnGVOA<^ zLix0w@pU5*Y@H0ge`!^Q#}U!_z&_{_ct3p_eLBpr)s?wJ##wo7;CNvYV}%a!t&eCI zzCU#U@JiDABJwcp&eJVZS7Sqec8ayuSNTDP4GBj{oVtWGsQ1G&A(M=sMEZPca628# zQ-MuROeGef^Lf=F0{|WVlviC+0x7+0KIxPIGD$t$K(9SFv@y+Oo*qbdogC6m>IA|K zkW5*B&9n)HOPsv`Qeh)iJ9GhomZ1KD|AF?@*Tw|k8xF3hZ7>T4V9h@YKi+pN1g4z=wAYmvMc z0g-ooEy(+1kax9CpwJ${q9Y}rYa_?mw(Qb5yYuyV5f&0U`_#1)vqK%zKCigkBcIeo zr1X?z5kX1-x+EqgrI*d+a@yb$0=rEh>nv#l;kb#M*`(JiF7`CZobpfX*vP&F`c4S8 zTIBsG$oqJZ_kW2<-rp|xgD6(eg6>^xyI-)nZNJ98R#I94Qg1e`ocn&Mt@#Y}bu`ZJV#Qi*$~>aar{r=PniUo>SFmeY=(9Uer4w zvgD1KcOA%E1cze^heh(kUpRp}UXohk!#%7CNpg?8cHGcT19eC!5OqFc8y)vPPeWo$ z?|oU{How8n>zU6fhfLZpX{+~7-a{@0h8R?LG}ERoF9y-(c)2H#2z93067~wwj=mFv zt&im0dBJhO&#O7}-tWqF>`yyhZrv+-SVMDT(lfbN*F}P9M?Y!g=Lx6FvG`0@mr5nc zoD#?(pR4jnDLZn3wj+IZn?kk`LN=Guw<(kd*ca92^kpQAtaDDWkZBXkD;UcsUDMk* zez)MI4wIg4WxedY`wz7(R@uci8?&PtTg2ap;PVoGQk2ZczDewU^#?X_ZiCNtc7%7@ z6A0gNb^vv#)NGr(gt#fbOq#S51Bpb(e0w_XgO2KyPJxiepVC23brbS*n+*S}e>u6?bUze%8}Q6OOU;?U7aVD7!wkFO|2IKRYKq#Ufl zFZd#rO(t+EY*V&Gmx8xa>ZpfY(NHh==^V0b|ZPGEHuY)M>buNJSr7Z~ZL7$ZK`e0+(#OC#~ zA)nZSo<3d=(b6D9$LYlZzM;-gMkdCkAd}R|EMt3pVoT{2H`uUiw>=RN%Nl&YL|-i~ zEVZ(taw{z>BIF(teo^DgWBuqX0~OGGI{R!<+IBfWrp(jMr2GSRo!2A@gK zwsXlFdYO<`eO{arKsu?DJ0IU=yp2h(SJ_~rA*D}j5fRHC!iALI?Jm-9@)v`|ORS`@ z(2BTJjC@fcF1=ogih?fa3nf|>MR~?>zF8mnp`44E(m_g;FHyNRy2P*8N{X`itoXM2 zdeeHAcd@)qKDludTe?2@F&=IC?Fd3W+mkIH1p0KnY7=ARwuk#fpE|B^?C#v<)?0$M zJ6qfKEW6?eo8+B5S*~p^B6%+fFi^v6TR*g-Wnv0WsmK+3=6RySkC*5(C+dBk_9PFX zuXGge6LexSi1f(&*af(=FD&nZbdf9P^;V2G8v`5)2=@GJ3wP>;<>k1tFs9eb#ysOf z7_+#{3K3U7(~0`RY@18u*=2Iy7L+Y0E=BAT?2D}c1H%dO5EmQnItP%XJ=iOYO*lVl zkJsxsX+vJePy2rdMhFrSv9wW$e#?t3`?dSr)qmFO$8XRjdWd{w%hOSycQL8UFN^U{ z8^%$NPJ6sm7G<#K2nc1J@bg~mIR<_Fpy!?`?vu9ZbL60PukYAAg=M}M71ir&r z%x03j*AXNto^bgviA|ckg1`KjPw7+udHH*tSChEszIcayc>Jc;Qd`B_eP;t2XH9~x z67MD-jDfne%qrh|+}=54l+*EThCaUy1x2M+H|1k{^A~-sVfG{uaA8TQL<33i?V&$N zyKctk_Q6r>+6PB(;PzhLK5%&uI@_d5vXW$dy@?Hw&Fd4}qOl}iw14&Q%haxh%2`Vg zH6r3a2QRm2GUUgGyzk}1MItOuHXKpDR2-;$+WAuv^r5XzoSu-K#|TOEisSOIIKAp~dTg|J z$A+}p6#TMrl4Doil~ZiQQk~wfvx+-`Zr2fT)DepYW}@mq>UHjfwjoy#P|y)+LXscz zUYGc#d?+GG3d`r|DXp#6Wrek@>cba6v=cSsB{4VGF0}WLT+1fkc(j}SvLB-ZFMRI_ zE9%liOL9a(DM+~tv+UAx&90|MHS|ygE)QaQ=89;A(+RR(1fg zo!CIA=UH|hX$fGObx--nNmf5|LXIsTt<6m~_qp4wVa{Zm|Kgoq8xgVeko_%kZq)J7 z{VB{MrPU?3g2xBb5-ZAS*lSEs=X$=ZzMP&kR#^@yS5AH^%ja;AXL;&aT%adjY8Qlh z+1Mf%#g~AcDz=Z}>!x1fbE=&6xuo>|IGs48SMPMqblT*lI$4c^DB}*)@SWi$U^5WnHXp+IXA&>);NEr&3*AMYpGda zhW7E;`A;|Iyl^{a_#dGth8BuffAOYt^WS{fS{v)aS+L3vpS4=})z6+}b6>j4=Dz$- zYp$LzTXS8t&3f!wkn*iI=joel-mCXoYg0X2lmq%!fANMj&YNZ{{Pqg?-slVw5lao6 z?XjPRGMs60 z28x%1BS}Zveg>*bjn`+RP^Eg5U>&SW7J4{OC?T$$8Gnq<#-Q#R76_Y?o@pm-QB3F% zCn4>ebLHBjxNMJnc>Q3#szE|8S10sxLu`mv6MT&SCGbo{bbwO+ijuXs40{nf2Ro&D zz1OAl+_>K6bxJrLdz-S@NKdc_dcS;q5-W(a^jvcrtN!FAmjNmMq(?FjqqoZYMi1WwF+=yIEK!;v=rj2&P<&)a{h|C8KQIorN^ z@M84XBAfr(y*A^XbKMW;w1b)O>$my7)?>9TbR$tc{?)wJM?`!>$Qc@rW~4%&6={2M z7J6WdaqWgSeY_5$vb-GVk{}1?=c8uJ`f`fPvJMGR!bdimWDW!xUQp{2lfCvhJKeJ> z-^grR{Yy5F^ekI#PLNlpuPT*D*Q8vikHVyyn2I7#x+z4qUg`e_u~f*rxg~=OuFvG* z{b|+q{AUa7#m_4{6x!dOT;)r&#Y^yc;qyhucy9ax`(laCS7(t|TlEn9VmWQ4{2+?Pw-K=5m z6s!MgqLzp2rhQ^PR^7t7jauL4z2?3%+&FKl6_k`&x6vD@nm!xvVWW<@$HraohOKeg zN7iHYtu=!sI5RHp(o?h8{#*RQMjn2v6_$0iRnL3PMjmksxDq7IH&e&P0_Zg5-E7J& z$J?YE{wOk@_}4?NcJhZ-(xb2SUVkT>_2@Oh)#g5Pi*;XZGwU*JtkvS?V)o+OX0^s|!QgKc)4eMc-skX|$!#9pNB2~DI8 zQ$kZ1L&=O;LL04&fwV6d$~yXUWl6~Hl9Bb{%K@IM*ZDa+oFVQ-Kj$CXM;n}cJ+yG^ zJlRf)yYYaI;v;ZN2{Y}aEnd_Xy^s&>aR=umTa%9jHT0~L1lS=Gabv-kW(L==u72dR#l^&`^Y5tO>a{!Ev)0} zXQ%m6xp-~jLi@{OlkLhy#JJ+|33f}>+V)(JZ9!g*uK%!CWpG^VWPaI4dG$8rscW-r zPMa@-&ggrf)5+%bvLT(shl(*}bNWn6vvnE1stC7n-ejx!@@<(bmRr^OZMKh9eeeu? zagHAUt94&xQ~04wbE8!Z8D)i~U2V<_ciQ~d|7AtxT~Um2+oGjzAwM*>mg;$Gs(!3F zv`1ijQEh7r+S7sp*dy)QYBuPnM`@m;O2gx@7)%(!aRje7Y=e}~U zEqLcKD;ux^$oWax+1BoBY-Qb6T3f9v#!W)$faR?bH!B3lQdTC}kP%zy0xEA2Pj zx{ujV`5}9rVsoDQyV4O6O9LDcB%t<|$Q^lcnHPJK4ws!}BiU2$drodO)g6CDk>;KQ{B?P>I~JrsZFxy@wa)=X}LHNMg__KGm@?oo5NzVZw@V78qzR7B*e5|GMv8O#{A04-`Eq}nJ)@$AERcyvX zm)p$yFSMery|t`P^6S0+&bHhy&%=!QBm3mU&28KzA6QARftuw`y#6p-`IIND7-FrczgfQF}BXl^R2jBFX;p11^-V@+RFNE@k{Hu-VXNeZ&$SSZg;CF)9yY? zHx?y5`a8l0IQV<6x1$Z;^JM$%;(c*r(cM-&`0C{7-~R0iHf*2Mt^W^yZcPhk+s7wv zX)7Ffx%F6Wb5~yq^#AaF`^uH|ohR^Id@LjK8q9Y@?>8 zMmL}Ok70|zUYD+E=k9fv_3b{;n$f2nnYrG}VMEd)M5R9MsEI}z0u9mESqN=0?%hnY z(8`O;?Zc_B+avG(!zR!D3?x=$qXw;EJFm094eB-AS~ATnz*0WGkE1%AUQtn>RLawn zz}8=5T$7x?i{U(oK-xr>w2464O!_@Hu5w>r*54gF^4>8?raVd7ljnSHS3hyG9lZ6a zwp_oFswLPL)-A9<-?6X#dW++2t>u4e}B9+wR;P zTRvR9uI7Bu)`SVu!|&W`FMj%O)wx{XQMSiM|7RlyuC~ay|1DVeiFf|Oc3Artw!z4) zoiY#YGuwZOj)4>^fwr(CN^n}) z+tlOob#M*&AXFxIm_eXU>l2$V?*e6QM4~tAvHFj!>XR32;RjD!&o$f|+hzF5S|* z)7qqc4iJ;80)2nDpDlRfA)9f}dDe5CZN1T~Y~Tu3RM7)%cumXZl+`YHL&Pn(&>ezp zrWB!V`C#kn=T5WQ32)nw-T!O@fAV|CVK#WTW3B5->)PBGZg-9m|1s{k;||+?`|WM( zt+$qJw9!WP$Rm$<>-P&Eee{v_=+VQjyz)w~Sp+n8ajoGFoj5EPi_kD`!!j@P6pnlO zKqo!yfw=WzS&W51+!ZBV?1>NmX~*2Qhs~Hj$+lW;cm2bPkEgw6FOL7Wl@#;gQ~L5p zN&GLg6_tqqHK&_ZEMf}+eF9g7GeA~S-quPb7F_$S`x_=gUacU&e3tt zQ;IzYO+wnxxl!TtvUxpYsEF6oDT#?J>!G*|CbliscjKR7HaXtvCVyZ(*WMO7N5nnX z+Rmoj_$QG2R#wuz4@$6{St&?!){}p;%J-hM30EC#v!A-rYCeC(8fHyK6N>dDyNhr7 zjJTzy(k5Z{z3{{5bO^3Z&MpN8-uzeZw|S7cFW;l5!e>8oGh%VU%WS~bzp<)MU$D8) z-C~1xKFSq?^xJeFm4E+;HEs6OH>pjZocd#{{_-vPaMsR`2GU?Y+-Q{c8fe8`d)mb7 z{$LB#nai1TzfF&_i+*{(?XvCx_S5wauqzLE9E9?Ft8c0SF_u~j#?KpHK55T3MtN{kv`a^tVCCBDtgRwsw!fvd**={1hCKzsdvW}u zy3x=tqrpC_aw_V75_MLg+*9_<#}C?PGd~bn^9*r<#N+*F>YMi5$N#doCcYrjF2zj- zZ(!P@05=FFD$^cVu4k9NN;CSj`4cgFei-d~#6JJ(1L;1;@jUkK?e_TlciHP-K4b4s z&V8_z*Q_nZ?Phl#{=OaX!{h9StL$WF?R~pdly$S0KK<@*TH8PJh%ESSlDPOzGEI^t z;W8tFWu95D6QGkVh*t-FVuMPyB)GSQY)UU1cAVXoS6I(gH@9vh*Vkv+U^o0_j1Q)9 z>ATk&+qfbmTKui>>x->?(262t{?Fmj$KPko)eEg=;yYGQT5hHNSAah+B$&Z3znTr& z`ADnz;tiYi_;m~-n`;Yp80=k^8)vf~z1pVTaf(g9>vYH&Hs$7HWe@1J-j0~@uIC<_ z^EzVX)1S2Nt8Qj9|9z>RXz#MZ8dfoQv~0ya2UtnZ{z?aw^MG1zj#d+9BLf5?z3kO7mzO#u#mL1sEm$Coo1@^@fHym6)f+|NvH=n z%Y6|fO6>cC!$8#aR@YREeJy64*n?yXF@vtIUub9Fcd%Xl=m~cF%a_^}kDXvA-}Osd zSUXR%<|(s3h3z;ypY5!B z4z{~qxyr6ZnWJyr-R9TK!SR@VI{jU>i7^=W#%Is9lkfZ`2=g@&Fy}URzj_VqzqT8n zJ70BP`pEG*cm522EnNNhN%qj&w{P0YV> zWAdDpl~$m=r{bpL9{H!C8!hZ9!~z^o1I~T_?nAuhI|M)Tj%XiK?>IFx<>nJIndVHU zrMfbM87X8T(p3=bnXW~;w%SPz(h}xtGA(sMkf%sj>!hB7yo9&)qoXQu*s3y-k|z*b5kkkQZQ8=7IhY$%W!|72s9HzLmlKj9{k}E^wZ4vJ4hEr>4rda3 zt8o&?6Mp3M=2k~Lv(WPWg3F6jYYi!aPIAW_pnUJ4W))VjF>DlZz!75mxvD$sE(n4d zg0)9;o!t`Kx%;Dq<|5WV9E1B~Vq)+jTYOnR(w+#}PgHc~l~4V8(kdOcH>77`8BELm zONwZ>$Iz+mo{AspH;sISRe7{*AerTdbnZHwpb5W-&G2&Euc}{amR)C^^>5k()GXom zEM%=rX)=VhUsXRYE{F(tg1KX(axj3|IJ=s zV%^60$(TdU#@;R6k)RRNpmrhS6_-+FK;{B8>)M7*>0_AQ6_DD+*zublqu=B zpXX(zQL~3u(M*2IS3G~rGwYYP+t@_Mo;Y^6OAuzV_W9+FID7arE^FTNxVR;TuI#P! zZl;m&$f>#1^2M}u#BqzU3X@6aneuX^#{tUE@&M;zlo96gqlCVK*(##ObEMM&J1KYU zo$R0$Dn0$z`Nvat?@jJ*fDA_aYHEMAj5X`Mqv}FU6GlVy)&XKtUtUn+yymN=vl$uN zJOXIVVbE)xn^7oRukU_jN;=Qz?3`{Hf5%5{rQ(~qk1C4gq~sYu>M)G8A4Znuu!wxT z)x9vF87+aM4M~=8&cvd1!Z3YF0$fJCo2X=n_-@-Fk9a>*c#*4{%W8j9rdk{_vGmdP z%I(_IT$4Iqva}M;%cGXEHr|BM+S9F^ljGwL z$XOkoq3^x6+c_E(E@$%1)HADOq|T$=x2$hF*WvIYKJjo9`ukvX=dG9XoXGHCXOA^i zuBy$`)4nyY2eh0^bAB@?e=BfyZ+lGp;Xu9tz9=u^quC7ZZ0IF$ri(JlpL{8J8K_(S zU#xo_=bwIf_SBff>J$=@KltY!JH zhAK~tlXt%1E7niQA82k=T{sZNB(YB~X@)rp<9tNtjUA$P%S4(!V==PKama=e9xdu)oKkYZ+&3f%6lg&RA3x2E__78Ar3jb&kY z5MAWu!-yho9Rl_OB;*RWJ59H*U4k>Gsj?AF62L(?jYM`q8@8Osr_nuPKvUYNW7yEj z_)h((;f-Wzzgl*;QBy?G`6m|R$DLn%s5*yVo6~H)qG+(Mh=+}o!^O`aScq0uddWM}9 zsdk*l8Kt{6AzJz*6OZa!9zSz1Bm!IEDtRvjIkUV=)D_CqzAJKIZ@Kkcpd^&()5P9h@~qOlTY0*Bl^VQqw~%Qw^6BN^Ag<17r$d(s@>Rs$cRTZW_;CeJ~(NN?ax|s;nq57yj7T+ zqL~aW8`3oxTS{=K)d?yb8;O_w@y+{#uJ>;u^3eSwQt`ezKfj!uoMIqT8!4!=3Yi5F z)`nCsX7{$Q9awj#kW6{Z({$BR9(Ybs(DUaO1X%6!V{3|_drQl!XW}g5#|@kp1?uCM zOs0nU4@=00g?!IEymtPO!;fFeJEG>2f|edT(qSqKSvlS`+>(=9I&y76elgKBe3-}5 z@k`Qb_>L88XMBPkN@(1GD)buXl#)53Z zrus>6SnT5J0-@cE37;OZK@i*gdlGu7|3Or}e-1UmV&oE?=-e$P3dcWrB(x_hfSf99 z;owi>-Kt#Xh+aQlPIiDKd8DMCb64-;*o2!LsZ!#eQ8*HI&sgHmYH6tnGyC| zN^wisfNJ)(-y2XCt>_eKMvFsiNu^5!E;x>i)A%|F&2Zj=Cz6&l7Qvf4jCUj*&DeV# zC5~?ZpTNSL7mg6kZnteq(~7?#swxyQk}xb}Wg< zUwl8crQV#Ek`P&Ai-Q#3#GHnk zoXJ5A>oe(2HwCIUKt<`(_SKtKigK6?6PP|A0ZtFxtpBr>(mZOg)8Z78f`9 zwu_gK3=ikqrV2Odf;nrL9_dlIjgw?R)+IQh8?7WQ`A9|Ms3oFHOb?u%w(zsrZHCBlg z6e6yPcakHfA)+w5!&XzF@e&kk;(Of0=zeEYAlm${*d5-93XRxSQ$Pg6zzs{F+I*Ng zn+>#;Pd;ULVss?2ngs~6>)bS4!&Wr#6VV0@PDZz=507RW-l=n0N@2)$$PMpAXECQq z<$iuj)OEI~aD@5-!+YQVT3Res^RibB+wWwH zKKf}vnsVf2@D}d+LkV3TPlsW!)vyoI6or9M5Xh{sH*|JXUImk9s_;NHk|*l6caiyc zPBz-w<7JElN1{>RJ+)7^{^Nz+xoDHx4nE8`K|wYpL};-+dmQA^nWnP zp`wA?ZyOMCV?>t$oOCP=P1fMi&=Jo>#VyCZdlG}UBexa_-j4S(o6}EMb>7^b$~yCK z*DM-%#O7~Iv}vMh$cAFHL;ccjQfpnZb;=$rg$%BOz%LEGR-UtulSr3OXoS6v4_&}v zlw(_?t*n)-Uy)}Rv)|Q!6evIFi8Hnz%-F9r&w@!5)V~TSVu^{i}2u89(}Hoij>_S{P#8dhhQe#^e|&X+bpL&+=TG8(e!cp%fQ3 zJ`_L2`2-SvwT2ZPyCS5_MH0=!0o&wEE@b2Fn1!#}j9^7U+P<2?H9MD{Oa)|t7#dSj z411QFijG7*G)!#kpu2nlfoI2m>o7KXjU5ot!1J#!t*hHHO!ER0cw?inX^XNwpkJ8( zeyWZ|My}!IXnM-SmFQS5P4K{51Oz>?CSjx&oMP3^l33Vrk{4(%=O>-+0WHlt$Y_m>BgdRNJJkY-4@vPSk5e?&CQ>hz6)QdJ(Ty+DXhs@PPv2<8la}_=(yVWm| znm3hWbH^A4hFf*chGYl%eTTY7@QF zb{C%n7zxYz_I;$46JKC0N`EpZaZOJiAZO&3Oh0Dx+D$iR>tmJOt^H7UnrCwO2ekco zXQF20k=^IONwNSbY1IR}Sn zEqTucDhx^6b3j34O!H7DX4}&2)V=vst0O?xAITofi7$p`faWy4s#e z44G__oY7PrziYiW|2}gjH|q@nW7&6EE99VwCTo4>s}p8FzJ_Ix_|qe(_{qE~og)ei zOW}h1nm3O9Ks#Becb62p!&YG55SGb!TAzfV$*t|Q0ZzvWhaCAXaqhwDN{RGO;x>WW zyUd_`Jy$Q)n`!BG%C^~U4@_XxmiFoL)u@ZSK-EqpmeT+vU>3hAn z0f^|WzXKi5Wf$-D~{XqDis9RMd!+y=g4GCWYFJ z`41YIet5yy`1WCUyS%rx(%Fk(s2$y5?IW0%kD4z_;`ET4cz5Y!ZXyp~d%0kc#3?(E z?-Gtet$NR;WAN2@Z*pSVJ!^L>&#I_i{RSxgXAuOB2aXIY5pNRM_Kt>d!yx2nUH!GF z6k~BfeqfGYzKQl)Kvji)GZsyDQMndJk80)C#2X4^(Fkw{34FU}7x`gA!Po2iOCc=! z(PHvwoB}8;pWC5(Fm?NgBPmlNeJT`-bii;t5&4IwOAPq9K-P@5qFH&0xC`GMlv zOG%_7@P_e5cVpC>L0nJKl)u0+uPERfq{z)Ro?4MBa}CHuZRBRn*2Q1{(o52a8r!>` zBYMZaU)9-mb$D6rOv8SJ8$^(s0zTw=)^{5+c*}MDuBOFzj?rxGYAnhEI z)YUl2uMd?{E8Jd6iS+zO&W=uRLaW^yZ%KO((fYJl_3Sd#fyt02PW!(G-@2}` zvhL3bUjLZ0#GvhyH&KUeT-)#W-KEVcsMw(^6$Fd49u&suIOxYhhot);ck~grEY3xx zBz@15A(r}@3yk{nHyIVpzlN(Zzz?Z!zyzQ>Yywp&Hbnh%i!n4mC62v?`FU%M9SgHy zOW*v=TAm-=>vfka7>cf`rKmy5AmdmW<9!s{E?k-IoyeZTRDz+D%2AP;7Q`B@XSfxuxd!s4k3~tRB#taM zVlewfm4+H@hGvx3_}&Zx(Pno^*r1~b_fs*US@`JvaCOG&y#OWpHVF`DuFk(M?YRrJ z=B)|7FdCSeLhOkhn`d{0CAxd8xbbU=i?V8qWU*`rJGV5emM>r8$C|U~E18RN^5Cl5 z6st@ojUzb(U%=zEmi~JoOd`t7VD7mw9JYFWVSEsFe}2N^xttdkvam)FE93!GzZd0K z3pt9O+&T=*bV%wMJYB6&`=U{ubJX)W>;*V?r}3Hek(K8XOu4^LIux`0` z@?+j2)NP;P>LSK|W>6(&xEV@KdW%Du$p-bE*t0FfE4haoesWznEke$#w-0iZT6?$O z%#f3Ru*pd_IUjZMmI)U8y%j>*USXU(O*U49$(vsodBH`yL*x4E5j{8q{g~IK%~2*x zJjM}WiA!o(Sa;#Bfi53iJt?SvW=O~kb`9CbD2AG2(UfGw$R}Aec*|Kp1p#H#=7Vs| znRna_grwg%&wEbuIwSk)r?=LOlubI#tCo9+xB&JyB~4xVHr;EBSf_{b(Tq`yALUw> zkXw@U?U;$EsP=WrF?=5&kyTJAkp*wxBWhK+OWhU+N0}&B37<$>$E&?NXaiHWjW4!H z28nbu_MC!?)o*paHdTDeztKOmy0E=(zwGlWcrhD8hv~8#UvKDq3fN4%hN!($;@WyV z@AlDQ?HQHIL>+&OF|iMM@#aR|!%vgtO2@=E=8JO=H6xN`V+CF}^keS<&uX^HWthlw zi^zC^F#ZReB_qeIX$ATn1ql<H5IepBVr)l33*NvdkjRNtS|nBHboCDG!D(Liuj<-qTE8$% zHX5sXEsjOZOL*YcAEyvE&*=a&47Wi36OFS}WleiB8>UC;yk#UqQbvbA)1g4D$QgFYrSj@@TU*R0$rh0O?e;tOJs1jic`}3I@ep0 z?6Sd;(fw0_f?(EUKFzuO#4~@FvuzXbmd&N)_}XKB}{7 zk5IXBOMKpTyPU=_yhtjMm2b4orR(Ev|yd&~jEY?Bq~!mm=R z42zWP-0hu+IYdH06~O=P+2H%=P1w0P{94T5B-=g7>Z;F$zUJiHSIIS)`MJM69y=i0 zAJRNohF(HUux`JruwD+V1~Su^4?Zli@+FPxPW8}-(OG*S(}jj2&)(=>o#B?guOHE1 z0R?K!w!qe?0DTcFya>lpxO&wVoi5-SnR9&hADiEl0N1GBM`=|BOtH*Qnqo**oKS1o z75$l#(GG6^qC!8?$QG4eH8t0Xu|u9Ro%oK&gr zm^tYg+~v2<9kZD0+YRtODD^n)Xo`99dha@vAojBwF%eRC!Q)U*54 z2fo*S)~@>_u$<12)-7s(f=_fY(|n_&!#DBAiJ0cJMRIa=f;w)IlwI(WePsf$=SDd^ z>xWAC(Um%MYx^mAji97ET$u;NcFwMrx{GmR&M2clDd{gt(g(sCs|pjH187f^VDUv< zq{y|_c}>r?Ks=w17zobuov&cH`S}%vw+wK6AO9&mX=yGK?DKSN{8r6ziZcljORRgF zKACk@K`y_?P**OMYIRB(vBBbCmfZqF`DknU7O7Be;Mls}NgZC>9@>0jUsIjueIioU z&uL%ss@r=Cpi5%gcZ1V!LUVrq>;1Bjyj2G9mJAwdSSdP>@)L;^jSzV2<*m=GyEdY8 zbbjSUwGH*r?Y3)OEpM8l`pVXhvEwQs7hTOijtX8y`gOhMtrg@ftG1baXs|hVXt&>Y zsc@Y7EQ!%JKdN6JyJiG`L;RL5}(6TA$~SX@eC3dYqc(lkk7lVQ@d)lO>{(@usO+K+DzGtK;$T$eiL zM>x{U8~^@QrkTWYNk!(ckL`ZqwN3tCE3+apw!UomNd3<5`(Lk&0veT#CVBAWZP(Hg zUo(IiC<4G4K_j01jQ$>+(ISVf+MI*3SSMq_gdfE_7LAamV|`~+8?nrsM`bgm8yS>ZKE7>LD9}ShqmXB#prG!kZywuUMy4iuXvLw+filMFUd(Q4D zu^{?r$lV`GVS&!bs~EncTFsMdM1RHk`VCv-T+^$4}Z=a{r3aQ?_v5ge^cn zBRRo)PIzGuD$3As0DblJhW85m1h+hn*1MbHLbb+?FS*(JM0;exS>|2f;re}E=^Vi= zylURO-`AYewea44VD3USNLm;f*aP+47@makal@DR9$!E(T}APUMWG`is0hj(|C}qz z*$`*lyHcj9K6%q2lNwX?y{vJkQxgl^@HyqK!yEl=?y}uVL49=0a0ooOJ>uEX9YE8Q zp1YR5oHwqrKGrIIK@wCakXdDaFyTyiBvj3j`DDC9|6NaMd13u-z81~dUk7++^5rKs ze{S95DW+kP3nSge4UUz{li{(VkL~%TG|F`ba?_*(z|lCC;Ae3?V{w*xG|DKl)bupT zvX~Qxk9Ty|>d%YJ^Brrcm>qqQ{ECG+_V@Db&h|+a*~3?&#Ym|9H`*0ZEAyP&;={`y z>*dx9@weKvyp)8f!c}tVH`x!uopTE?3MLW&NEW(c7kb&_#qiy&#paDKN7*6k@Eemw zSPWQoSnA-~;sVGC$*4PrZSdJOT2dIKrpf zF2Q%IxkyaJ1D`US+53j=4j17~_mY+?zdiVVO)79?p~|zNhRQWaC|w@O(1B2VC+)Gc zfD|~!#RY`}9yN$wHCKcmvaB@`-ujc4@yYhKOJoQeX>)9ZhUBo!0=_Krz-};uz?~fX z@l3K1Tot9MD&tjk6+hj?MVgIfvdAV&V^Y<$MH?O)ZcSY4(9SS?D31Yw+9mn!br8eDj+wO}r(LyVkwsVi#BU4c#Wz ze;&GW%|bxN;(2{qXxD_mN_O{%HtRk}h4=1|CPK)ncH;lQp+f*jk*5FP}17>$8c z$mE0Muq^&$2_ve+Focg>3ZGQRG717#$IqI$iq8c*XhF{QUv9{Mo!Z{ji3a_<3%hZmTCiTsr%SCkI1jt^_*Ks9ko1U&cnu~F3!B|hD%u0{ zMeHG>xtRUIic!q5hZgtC-S%ZdFpugpxu!X6LJmG)KYUSVORO>0x4TuXpuu*vQ2?3g zlVRr=RBteHx2a3mxB8OygY=Sbc?!d>1FfzVa`|vdA*u@?UEYFJsF2v@#DVf3nwguh zSjPa=NXHT(?9tUd(nPqBhe$KWV)$Q97kF$d4$A%F`p4g-PR0vBfQQG!v&Pd!`}hXe zU144|q&T})$kn01RS+7V@Whh(gGp@2k<5pl!fNX=O}tUdX3`^8M4_!irzpcfOdj;Ux}FBEKqGE7`!mTQ@YplOH$ zmelfT_vC3?)oSlyM5}dvmT<+0jiqD5v8*haQN?%am_xz&9%zmGJu5sk=M}f zoX=dhttR{fQvI%z4Dsep?((PhmnED6RF!3v^o3vipIW-2q)VE|n67f=X6e<~RU-h! z;qSq5jiUB)jHm8H|)%7wa*I2S}ZD)E8biOgL>x4ymSYC}22{h*dJ>JY0>5PxJTY+Z9 z4>>QXd(0^x@kndB%rNx^H%0ZlJXWhUkdbKO5odWI?J;Zx^@#oo-GXAnfLVF%bcJ{T zwRM%{+Izbd4v4<3(SO~yUTZ0YX=fHUlh+lfx?C_2udd8|-R*iC5LN=Q|Kai4+xQo~ zh)GLOPssN+wL6}#R(&iEptT&b4nnRI*QH!1V5@Mg4H-n30DHufm+3mu#P!1_-q%5%6j1gc*iF2Yn$yC=;g$*L7x)xwg3)v0H zE}z#4MTK7uUx{I@6;nAZ3ms{m^J*sB2THt)7FBGCmxKvYea#2N=2$e%)tTWC$33oN zLO*1s5QW+AcQ&w&@&wUSi-1HNTKkSm_RW~T+oVTe)Dx4#KL6mFxVIRW z84;F}PSW2m#CldkXRflmN4)#6`3g~s>TlUajMXH?VK{Eg^TvHMP{AVD@yT#)@>vad zDrR3rYnJeNlb|s>S(Eh38)s*X9%KW;M;US%<)@!DwV;1tb>z^+dMKHeovze4J3 zMmlH`7GB@HM$8n+l4h>nQ-%`fPW>v(_r2T`SMP}nBA7vLif(q5Ri;7<0n;&sGl!4p z&QQhrWKi_214>8alb`AAHViMf7%QP8ylr5G&(wRAriGHO$3iz7*P|TtmglRU&qm6z zx!Cl_cCFt`R;)4J43=}VkoPidUIi9-$sZs&G|n#y$xUwwHfBR94q=HU+*om&ER%vy z;(W$}UOz=L(2p_zXWh^vPGYPtL%3W$4Vac!Yk`~nK+TLPwpD03m{razzCtI-b4$+C z%DdJmkx)Bm>AVg&KCi4*__{1AxXh?14-NVTm+URNz9}jf(IY!pp{vveWxV&P_t#|#koSFqH4lAsIeJGkrbK^H>tfR>Kc;p_l4ADz^)jJ&^R)QOftZ z7(vrWPEvj zSK$trc?)(wqNLJ2*%oDEXlxeqchg_KQrFyxv8cXC?93v9#T=o&s z7684T!3=@J&jX4<6oC8TyUY0gKjzmIB=E%dWifoHEq7$^yLX~M(8%)Le`tlmof`4y z4~ZE2$r`}k;5kqmSA%3*u%|e^euyykdaPLY zo7`nX8xw8ZBPtfRk`$R~c0m-rt!>gtKy{^VFR&T$d*q>A}E z0&X&l@lUlBbf&g$JgY_;XL;j$PD4wgtPMdc*}B*87Og`ei2I-0ERu}NQkJ0^MDVBnCbo-N>?kfsbk69ZI@- z!cfJ)fAHKAx3Vxj@~d(O6UqgA?-xwQ)AOWPnx2nRC1}a#yPg^r#j)yQ^eb}CM?UdS zY!qe$f|>M(Dk1@Vyewc2zzpI6y~EzDF8DG4$+!}(xE3**dbr7VU%*LA*`M7^ImhM~ zn)|Ih>v@vIi;48)n=!60<1gQrI!;kfr~MnpJ^$)>02gQAV6xx|ZH+=;Rhcl2%h#7G zvl35cacg;+U%j$;IIU}9!6;$SrJhT3c^BesoI$ulm?J)0Oz`rKF ziufl3K|r~`;cPVy8kEN&29aCEs4y9*$>a*}-ERq|I*1KOftGI282A&gFh>l-et_g`eq5ycLz6Rym<5 z?&-#lt&#YXWRN@`U76=Bxb7fr=Wvmh?BhA~XZW%E8}QD*5csG^2yG(PVN^yoDhH^! zsF|TOF*Z&&-9eA67ZmX&e`KVF1PTU#dhp@)=rdb$-HsV%F-yX#XvH=9?^>A6#vv)- zr3ej7H3EGPP0cUQ3i1%cR9st9Oiqcuhx)_LdGNQVa!APud_?wJM0^3MZJ8L8e3GHzj4s7K7?W5s$z+-s9@r*$OmgOyR{jz0`s$RfnXK-c`J~Tvp=x+dth}_g8E86q zrS{I1GAo44oC< z<%VgyYz0xA)#Gw3uQxNj)!3%LdUoP&w2#}Lq=RmvhTPr67Wj~}Nm*aZRNx7JjUG@U zC;-{EU+E!Z#76~XW(M9pu&U;FG4T@{dF!*6@2H4NZ;z}qv4wj`iG+2nTWU9tYn@2K1Gkl>-pK-Y|sM$U5SXc0tXHksH_9KaC8(3GG(d*QLn(CMXlc}XTx8&U?kIr_)Y=21HYzD2~ zSyn3o;=~fe|*_JX#noL9$(O z$~~G+7$GxOkS} z+p>B92w+B8(423Xuu_e0*xn=WISQmkN}byn%$DoD=Ic+5yV^A{umht-%BYT{Fe4LV zv*NNmhzEBcYu?jm@H}ZJn@o#s&1Ufj4*SC>qrYkxCl8QeL!>%O!geGU^!qb=zq+0v z39p^OHjVW@9>_V-AyEP?2!%K*ydZn zFNP=VwN76{@WzE-k8wM z;-pAV2dITJ2d?=!r(d1+b08SKX)5^i6k29tVjE$*s!V))AcY&d7HKJ{7qbL`&;jje z`H4SEgibQQv44SRm#`3b>lo6Q$T&iOZ561|yzKy10{&{W0 z@d5ZMh0ICI0|<8j&tnEW@X{6E?H^X9ShL>rpArJuy=aZFE27T-@>vymQZvPqT!Ono zOtyipIawO`Z-3pum6V&5Eij+z7T_=mDD927Iw%;}KXzUxb-EQN%MvOa#jg&6VbKxw zyRuO%06Gy>0*%6udR_-s$~fcGGyLExVO2cCI@S>f9sNc?#L$RtAP=~bN3RA3s#OIl zg@-b_Z3;|m$T;CB8LNpf1#QH=RaFn%h8mK(vS&c#d2d!IGDv*^Df&me5@1DOM`+_P z>J!ID0`qV+gik0p8_nj*zZ6vKe04WTQyVu`VR_?@8T#nr5fnw>qm}DF<^Y7k7ACH# zX|m=Vi*c47q1B9%_#bleiuU~wOg30`VLu}Ypdx0Y_3eN{r$RoO-?fCB6Ww}s>sYa! z_Pd48qIwmAjPEwg(%CS)qsOvPl9}FOqud46E3Wt-pj#|c83H6-8LzfuT!SG;+y`@b zCS{4n*ngOVnf}!r_rL{)Ek~LfZ%b*jTse1#`v{OUiIy@v$ zy{e0ZqCOd^ep!nvpfL3Htt-Mj1^9VzV5qkvzQm9wMj1IrV3q?Ok|Fgjj?L8*k%GJD zw@`JV==y#DRbL}&5(W6Qb?sCcG9rg=h|%y@#N6^wyj2Sj@^yA z0u_$pLodHuFw98vW_uqx0?Pj3SR4C&{K4;>4_;Y?=Q$#fI(SW>a2CZ)llco3%SxD{ zrr8o{#1ZYEgrX`wPJP==IX36HI-Dr*;?3HC$z%9=a-?W*^hX5B0vsWydG9E%SGOer zKNuJa0sCd(eCF!yw9x}<$EyhsU9tE-|GXkv09P7{8|nV<>!pwtFm_2|{pyJ;g{n!? PHQ<6NYAEE(y$$$(mSZC- literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/core_fence.png b/level-zero/1.10/_images/core_fence.png new file mode 100644 index 0000000000000000000000000000000000000000..f49f29083a2c29342d902a44d88e7c243ae78885 GIT binary patch literal 9285 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 A(f|Me literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/core_module.png b/level-zero/1.10/_images/core_module.png new file mode 100644 index 0000000000000000000000000000000000000000..1331ba0918754eeb82bae69a2cc1bbb89477e634 GIT binary patch literal 47570 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 literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/core_queue.png b/level-zero/1.10/_images/core_queue.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1dbb6da95bc786b9d5a570583f0fbfdb6c1f51 GIT binary patch literal 31757 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

eJaJTpdO*VO;hD>E1INF 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ɶ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 ZIDRZt<&{=#kqq)ST`eQc2kJIq{|7sOsd4}S literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/A21_Subvertex.png b/level-zero/1.10/_images/A21_Subvertex.png new file mode 100644 index 0000000000000000000000000000000000000000..356934c738334bd003103dcb3582cff5559ab922 GIT binary patch literal 302784 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�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 Fe*p=-vVH&n literal 0 HcmV?d00001 diff --git a/level-zero/1.10/_images/A21_Vertex+Subvertex+Remote.png b/level-zero/1.10/_images/A21_Vertex+Subvertex+Remote.png new file mode 100644 index 0000000000000000000000000000000000000000..44d72c6db41c743dd5fc3f6ef57d67423e7d5039 GIT binary patch literal 363751 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